libshmemq/include/shmemq.h

47 lines
798 B
C
Raw Normal View History

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