映射操作只能用于本机体系结构互连,如 Dolphin-SCI 或 NewLink。映射段可授予 CPU 内存操作访问该段的权限,从而节省了调用内存访问元语的开销。
int rsm_memseg_import_map(rsm_memseg_import_handle_t im_memseg, void **address, rsm_attribute_t attr, rsm_permission_t perm, off_t offset, size_t length);此函数可用于将导入的段映射成调用方地址空间。如果指定了属性 RSM_MAP_FIXED,则此函数会在 **address 中指定的值所在位置映射段。
typedef enum { RSM_MAP_NONE = 0x0, /* system will choose available virtual address */ RSM_MAP_FIXED = 0x1, /* map segment at specified virtual address */ } rsm_map_attr_t;
返回值:如果成功,则返回 0。否则返回错误值。
段句柄无效
地址无效
长度无效
偏移无效
权限无效
已映射段
未连接段
连接异常中止
映射时出现错误
地址未在页边界上对齐
此函数可用于从用户虚拟地址空间中取消映射导入的段。
返回值:如果成功,则返回 0。否则返回错误值。
段句柄无效