For a similar end result (a circular buffer from which all returned ranges are contiguous) but without OS support for mmap()ing, there's also Bip Buffers[0]. I did an implementation in C [1] designed to be used for zero-copy IPC over shared memory (by way of having a structure with a flexible array member for the actual data).
[0]: http://www.codeproject.com/Articles/3479/The-Bip-Buffer-The-...
[1]: https://github.com/wrl/wwrl/blob/master/src/bip_buffer.c