The libmemobj library
The library provides functions to manage shared memory objects. This memory objects are identified by their memory object handles of type struct memobj*.
The library allows you to create new memory objects with user-specified parameters. It also allows you to wrap existing memory by specifying its size, and either the shared memory file descriptor (with offset) or virtual address. For the wrapped memory, you can also specify a destructor function to call when the last memory object handle closes.
After creating a memory object handle, the library enables the client to get physical memory information, perform a map or unmap of the memory into its process space, and to create additional memory object handles. The library keeps track of all memory mappings and unmaps them when the memory handle is closed.
