编程接口指南

连接和断开连接内存段

连接到段

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 正在使用