|
ach
Real-TimeIPCLibrary
|
Header for shared memory area. More...
#include <ach.h>
Data Fields | |
| uint32_t | magic |
| magic number of ach shm files | |
| size_t | len |
| length of mmap'ed file | |
| char | name [1+ACH_CHAN_NAME_MAX] |
| Name of this channel. | |
| union { | |
| struct { | |
| size_t index_cnt | |
| number of entries in index | |
| size_t data_size | |
| size of data bytes | |
| size_t data_head | |
| offset to first open byte of data | |
| size_t data_free | |
| number of free data bytes | |
| size_t index_head | |
| index into index array of first unused index entry | |
| size_t index_free | |
| number of unused index entries | |
| int anon | |
| is channel in the heap? | |
| } | |
| uint64_t reserved [16] | |
| Reserve to compatibly add future variables. | |
| }; | |
| struct { | |
| pthread_mutex_t mutex | |
| mutex for condition variables | |
| pthread_cond_t cond | |
| condition variable | |
| int dirty | |
| } | sync |
| variables for synchronization | |
| uint64_t | last_seq |
| last sequence number written | |
Header for shared memory area.
There is no tail pointer here. Every subscriber that opens the channel must maintain its own tail pointer.