RSM_CREATE_LOCALMEMORY_HANDLE(3RSM) Remote Shared Memory Library Functions RSM_CREATE_LOCALMEMORY_HANDLE(3RSM)

rsm_create_localmemory_handle, rsm_free_localmemory_handle - create or free local memory handle

cc [ flag... ] file... -lrsm [ library... ]
#include <rsmapi.h>
int rsm_create_localmemory_handle(
     rsmapi_controller_handle_t handle,
     rsm_localmemory_handle_t *l_handle,
     caddr_t local_vaddr, size_t length);

int rsm_free_localmemory_handle(
     rsmapi_controller_handle_t handle,
     rsm_localmemory_handle_t l_handle);

The rsm_create_localmemory_handle() and rsm_free_localmemory_handle() functions are supporting functions for rsm_memseg_import_putv(3RSM) and rsm_memseg_import_getv(3RSM).

The rsm_create_localmemory_handle() function creates a local memory handle to be used in the I/O vector component of a scatter-gather list of subsequent rsm_memseg_import_putv() and rsm_memseg_import_getv() calls. The handle argument specifies the controller handle obtained from rsm_get_controller(3RSM). The l_handle argument is a pointer to the location for the function to return the local memory handle. The local_vaddr argument specifies the local virtual address; it should be aligned at a page boundary. The length argument specifies the length of memory spanned by the handle.

The rsm_free_localmemory_handle() function unlocks the memory range for the local handle specified by l_handle and releases the associated system resources. The handle argument specifies the controller handle. All handles created by a process are freed when the process exits, but the process should call rsm_free_localmemory_handle() as soon as possible to free the system resources.

Upon successful completion, these functions return 0. Otherwise, an error value is returned to indicate the error.

The rsm_create_localmemory_handle() and rsm_free_localmemory_handle() functions can return the following errors:

RSMERR_BAD_CTLR_HNDL

Invalid controller handle.

RSMERR_BAD_LOCALMEM_HNDL

Invalid local memory handle.

The rsm_create_localmemory_handle() function can return the following errors:

RSMERR_BAD_LENGTH

Invalid length.

RSMERR_BAD_ADDRESS

Invalid address.

RSMERR_INSUFFICIENT_MEM

Insufficient memory.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Evolving
MT-Level MT-Safe

rsm_memseg_import_putv(3RSM), attributes(7)

June 8, 2001 OmniOS