I can provide a library that encapsulates the ring buffer proposed. additionally the data segment of the ring buffer can be extensible. the library would act as a wrapper for the data you wish to buffer. the calling program would be responsible for memory management of the data segments, the ring buffer would manage its own memory. This code should be POSIX compatible and therefore cross platform.
This library would be able to be produced in about one week from start of contract.