控制器操作提供了访问控制器的机制,还可以确定底层互连的特征。下面列出了有关控制器操作的信息:
获取控制器
获取控制器属性
释放控制器
rsm_get_controller 操作可获取给定控制器实例(如 sci0 或 loopback)的控制器句柄。返回的控制器句柄用于后续 RSM 库调用。
返回值:如果成功,则返回 0。否则返回错误值。
控制器句柄无效
控制器不存在
内存不足
库版本无效
地址错误
此函数可用于释放与给定控制器句柄关联的控制器。每个 rsm_release_controller 调用都必须对应一个 rsm_get_controller。当与某个控制器关联的所有控制器句柄都被释放后,与此控制器关联的系统资源将被释放。尝试访问已释放控制器句柄,或者尝试访问已释放控制器句柄上的导入段或导出段都是非法操作。执行此类尝试的结果是不确定的。
返回值:如果成功,则返回 0。否则返回错误值。
控制器句柄无效
此函数可用于获取指定控制器句柄的属性。以下列出了此函数当前已定义的属性:
typedef struct { uint_t attr_direct_access_sizes; uint_t attr_atomic_sizes; size_t attr_page_size; size_t attr_max_export_segment_size; size_t attr_tot_export_segment_size; ulong_t attr_max_export_segments; size_t attr_max_import_map_size; size_t attr_tot_import_map_size; ulong_t attr_max_import_segments; } rsmapi_controller_attr_t;
返回值:如果成功,则返回 0。否则返回错误值。
控制器句柄无效
地址错误