2020-12-13 09:15:45 +00:00
|
|
|
#ifndef SHMEMQ_INCLUDED
|
|
|
|
#define SHMEMQ_INCLUDED 1
|
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
2020-12-13 09:44:03 +00:00
|
|
|
#define SHMEMQ_NAME_SIZE_MAX ((size_t)255)
|
|
|
|
|
2020-12-13 09:15:45 +00:00
|
|
|
#define SHMEMQ_FRAME_SIZE ((size_t)8)
|
|
|
|
|
|
|
|
#define SHMEMQ_FRAME_DATA_SIZE \
|
|
|
|
(SHMEMQ_FRAME_SIZE - sizeof(struct Shmemq_FrameHeader))
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct Shmemq_FrameHeader {
|
|
|
|
size_t frame_size;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Shmemq_Frame {
|
|
|
|
struct Shmemq_FrameHeader header;
|
|
|
|
unsigned char data[SHMEMQ_FRAME_DATA_SIZE];
|
|
|
|
};
|
|
|
|
|
2020-12-13 09:33:04 +00:00
|
|
|
struct Shmemq_BufferHeader {
|
2020-12-13 09:15:45 +00:00
|
|
|
size_t frames_count;
|
|
|
|
size_t read_frame_index;
|
|
|
|
size_t write_frame_index;
|
|
|
|
};
|
|
|
|
|
2020-12-13 09:33:04 +00:00
|
|
|
struct Shmemq_Buffer {
|
|
|
|
struct Shmemq_BufferHeader header;
|
2020-12-13 09:15:45 +00:00
|
|
|
struct Shmemq_Frame frames[];
|
|
|
|
};
|
|
|
|
|
2020-12-13 09:44:03 +00:00
|
|
|
struct Shmemq {
|
|
|
|
char name[SHMEMQ_NAME_SIZE_MAX];
|
|
|
|
struct Shmemq_Buffer *buffer;
|
|
|
|
};
|
|
|
|
|
2020-12-13 09:15:45 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|