/** * my implementation of a ringbuffer. * It maps a shared memory object twice directly following * thus make it possible to read and write from any * position within the buffer without the nasty wrap * calculations. * This is achived because the same memory region is mapped * at the two addresses. */ #ifndef __RINGBUFFER_H__ #define __RINGBUFFER_H__ #include #include "class.h" #define ERBOVRFL 100 CLASS(Ringbuffer) { char * shm_name; // shared memory identifier char * buffer; char * mirror; size_t bsize; size_t bused; size_t bstart; size_t bend; }; ssize_t rbRead(Ringbuffer, int fd); ssize_t rbWrite(Ringbuffer, int fd); #endif // __RINGBUFFER_H__ // vim: set ts=4 sw=4: