#include #include #include #ifdef RINGBUFFER_THREAD_SAFE #include #endif #define RINGBUFFER_H struct ringBuffer { void *buffer; int blocks; size_t blockSize; void *reader; void *writer; #ifdef RINGBUFFER_THREAD_SAFE pthread_mutex_t mutex; #endif }; void ringBufferCreate(int blocks, size_t blockSize, struct ringBuffer *out); void ringBufferDestroy(struct ringBuffer *buf); int ringBufferRead(struct ringBuffer *buf, void *out); void ringBufferWrite(struct ringBuffer *buf, void *in);