|
Monado OpenXR Runtime
|
Generic typedef for platform-specific shared memory handle. More...
#include </builds/monado/monado/src/xrt/ipc/shared/ipc_shmem.h>
Public Member Functions | |
| xrt_result_t | ipc_shmem_create (size_t size, xrt_shmem_handle_t *out_handle, void **out_map) |
| Create and map a shared memory region. More... | |
| xrt_result_t | ipc_shmem_map (xrt_shmem_handle_t handle, size_t size, void **out_map) |
| Map a shared memory region. More... | |
| void | ipc_shmem_unmap (void **map_ptr, size_t size) |
| Unmap a shared memory region. More... | |
| void | ipc_shmem_destroy (xrt_shmem_handle_t *handle_ptr, void **map_ptr, size_t size) |
| Destroy a handle to a shared memory region. More... | |
Static Public Member Functions | |
| static bool | xrt_shmem_is_valid (xrt_shmem_handle_t handle) |
| Check whether a shared memory handle is valid. More... | |
Related Functions | |
(Note that these are not member functions.) | |
| #define | XRT_SHMEM_HANDLE_IS_FD 1 |
| Defined to allow detection of the underlying type. More... | |
| #define | XRT_SHMEM_HANDLE_INVALID (-1) |
| An invalid value for a shared memory block. More... | |
Generic typedef for platform-specific shared memory handle.
| xrt_result_t ipc_shmem_create | ( | size_t | size, |
| xrt_shmem_handle_t * | out_handle, | ||
| void ** | out_map | ||
| ) |
Create and map a shared memory region.
| [in] | size | Desired size of region |
| [in,out] | out_handle | Pointer to the handle to populate. Receives the handle if this succeeds, or the invalid value if it fails. |
| [in,out] | out_map | Pointer to the pointer to populate with the mapping of this shared memory region. On failure, contents are undefined. |
| void ipc_shmem_destroy | ( | xrt_shmem_handle_t * | handle_ptr, |
| void ** | map_ptr, | ||
| size_t | size | ||
| ) |
Destroy a handle to a shared memory region.
This probably does not destroy the underlying region, if other references to it (in this process or others) are still open.
| [in,out] | handle_ptr | Pointer to the handle to destroy - will be checked for validity, destroyed, and cleared. |
| [in,out] | map_ptr | Pointer to the mapped memory to unmap - will be checked for validity, destroyed, and cleared. It's necessary unmap the region to destroy the shmem. |
| [in] | size | Size of the mapped region. |
References ipc_shmem_unmap().
| xrt_result_t ipc_shmem_map | ( | xrt_shmem_handle_t | handle, |
| size_t | size, | ||
| void ** | out_map | ||
| ) |
Map a shared memory region.
| [in] | handle | Handle for region |
| [in] | size | Size of region |
| [in,out] | out_map | Pointer to the pointer to populate with the mapping of this shared memory region. |
References XRT_ERROR_IPC_FAILURE, and XRT_SUCCESS.
| void ipc_shmem_unmap | ( | void ** | map_ptr, |
| size_t | size | ||
| ) |
Unmap a shared memory region.
| [in] | map_ptr | pointer to region |
| [in] | size | Size of region |
Referenced by ipc_shmem_destroy().
|
inlinestatic |
Check whether a shared memory handle is valid.
|
related |
An invalid value for a shared memory block.
Note that there may be more than one value that's invalid - use xrt_shmem_is_valid instead of comparing against this!
Referenced by ipc_client_connection_fini().
|
related |
Defined to allow detection of the underlying type.