#include 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);