连接和断开连接内存段
连接到段
int rsm_memseg_import_connect(
rsmapi_controller_handle_t controller,
rsm_node_id_t node_id,
rsm_memseg_id_t segment_id,
rsm_permission_t perm,
rsm_memseg_import_handle_t *im_memseg);
此函数可用于通过指定的权限 perm 连接到远程节点 node_id 上的段 segment_id。连接到段之后,此函数会返回一个段句柄。
参数 perm 用于指定导入者针对此连接请求的访问模式。要建立连接,可将导出者指定的访问权限与导入者使用的访问模式、用户 ID 和组 ID 进行比较。如果请求模式无效,则会拒绝连接请求。perm 参数限制为以下八进制值:
- 0400
-
读取模式
- 0200
-
写入模式
- 0600
-
读/写模式
指定的控制器必须与用于段导出的控制器具有物理连接。
返回值:如果成功,则返回 0。否则返回错误值。
-
RSMERR_BAD_CTLR_HNDL
-
控制器句柄无效
-
RSMERR_CTLR_NOT_PRESENT
-
控制器不存在
-
RSMERR_BAD_SEG_HNDL
-
段句柄无效
-
RSMERR_PERM_DENIED
-
权限被拒绝
-
RSMERR_SEG_NOT_PUBLISHED_TO_NODE
-
未将段发布到节点
-
RSMERR_SEG_NOT_PUBLISHED
-
未发布此类段
-
RSMERR_REMOTE_NODE_UNREACHABLE
-
无法访问远程节点
-
RSMERR_INTERRUPTED
-
连接已中断
-
RSMERR_INSUFFICIENT_MEM
-
内存不足
-
RSMERR_INSUFFICIENT_RESOURCES
-
资源不足
-
RSMERR_BAD_ADDR
-
地址错误
断开段连接
int rsm_memseg_import_disconnect(
rsm_memseg_import_handle_t im_memseg);
此函数可用于断开段连接。断开段连接之后,此函数将释放段的资源。所有与断开连接的段的现有映射都将删除。句柄 im_memseg 将会释放。
返回值:如果成功,则返回 0。否则返回错误值。
-
RSMERR_BAD_SEG_HNDL
-
段句柄无效
-
RSMERR_SEG_STILL_MAPPED
-
仍映射段
-
RSMERR_POLLFD_IN_USE
-
pollfd 正在使用