#include struct ringBuffer { void *buffer; int blocks; size_t blockSize; void *reader; void *writer; pthread_mutex_t mutex; }; 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);