#define RSM_DRIVER_PRIVATE_ID_BASE | 0 |
#define RSM_DRIVER_PRIVATE_ID_END | 0x0FFFFF |
#define RSM_CLUSTER_TRANSPORT_ID_BASE | 0x100000 |
#define RSM_CLUSTER_TRANSPORT_ID_END | 0x1FFFFF |
#define RSM_RSMLIB_ID_BASE | 0x200000 |
#define RSM_RSMLIB_ID_END | 0x2FFFFF |
#define RSM_DLPI_ID_BASE | 0x300000 |
#define RSM_DLPI_ID_END | 0x3FFFFF |
#define RSM_HPC_ID_BASE | 0x400000 |
#define RSM_HPC_ID_END | 0x4FFFFF |
The range below is reserved for allocation by the system when the publish value is zero.
#define RSM_USER_APP_ID_BASE | 0x80000000 |
#define RSM_USER_APP_ID_END | 0xFFFFFFF |
int rsm_memseg_export_republish(rsm_memseg_export_handle_t memseg, rsmapi_access_entry_t access_list[], uint_t access_list_length);
This function establishes a new node access list and segment access mode. These changes only affect future import calls and do not revoke already granted import requests.
Return Values: Returns 0 if successful; returns an error value otherwise.
RSMERR_BAD_SEG_HNDL | Invalid segment handle |
RSMERR_SEG_NOT_PUBLISHED | Segment not published |
RSMERR_BAD_ACL | Invalid access control list |
RSMERR_NOT_CREATOR | Not creator of segment |
RSMERR_INSUFFICIENT_MEM | Insufficient memory |
RSMERR_INSUFFICIENT_RESOURCES | Insufficient resources |
RSMERR_INTERRUPTED | Operation interrupted by signal |
int rsm_memseg_export_unpublish(rsm_memseg_export_handle_t memseg);
Return Values: Returns 0 if successful; returns an error value otherwise.
RSMERR_BAD_SEG_HNDL | Invalid segment handle |
RSMERR_SEG_NOT_PUBLISHED | Segment not published |
RSMERR_NOT_CREATOR | Not creator of segment |
RSMERR_INTERRUPTED | Operation interrupted by signal |
Memory Segment Rebind
The rebind operation releases the current backing store for an export segment and allocates a new backing store. The application must first obtain a new virtual memory allocation for the segment. This operation is transparent to importers of the segment.
Note - The application has the responsibility of preventing access to segment data until the rebind operation is complete. Retrieving data from a segment during rebinding does not cause a system failure, but the results of such an operation are undefined.
int rsm_memseg_export_rebind(rsm_memseg_export_handle_t memseg, void *vaddr, offset_t off, size_t size);
Return Values: Returns 0 if successful; returns an error value otherwise.
RSMERR_BAD_SEG_HNDL | Invalid segment handle |
RSMERR_BAD_LENGTH | Invalid length |
RSMERR_BAD_ADDR | Invalid address |
RSMERR_REBIND_NOT_ALLOWED | Rebind not allowed |
RSMERR_NOT_CREATOR | Not creator of segment |
RSMERR_PERM_DENIED | Permission denied |
RSMERR_INSUFFICIENT_MEM | Insufficient memory |
RSMERR_INSUFFICIENT_RESOURCES | Insufficient resources |
RSMERR_INTERRUPTED | Operation interrupted by signal |
Import-Side Memory Segment Operations
Import-side operations include:
Memory segment connection and disconnection
Access to imported segment memory
Barrier operations used to impose order on data access operations and for access error detection
The connect operation is used to create an RSM import segment and form a logical connection with an exported segment.
Access to imported segment memory is provided by three interface categories:
Segment access.
Data transfer.
Segment memory mapping.