编程接口指南

互连控制器操作

控制器操作提供了访问控制器的机制,还可以确定底层互连的特征。下面列出了有关控制器操作的信息:

rsm_get_controller

int rsm_get_controller(char *name, rsmapi_controller_handle_t *controller);

rsm_get_controller 操作可获取给定控制器实例(如 sci0loopback)的控制器句柄。返回的控制器句柄用于后续 RSM 库调用。

返回值:如果成功,则返回 0。否则返回错误值。

RSMERR_BAD_CTLR_HNDL

控制器句柄无效

RSMERR_CTLR_NOT_PRESENT

控制器不存在

RSMERR_INSUFFICIENT_MEM

内存不足

RSMERR_BAD_LIBRARY_VERSION

库版本无效

RSMERR_BAD_ADDR

地址错误

rsm_release_controller

int rsm_release_controller(rsmapi_controller_handle_t chdl);

此函数可用于释放与给定控制器句柄关联的控制器。每个 rsm_release_controller 调用都必须对应一个 rsm_get_controller。当与某个控制器关联的所有控制器句柄都被释放后,与此控制器关联的系统资源将被释放。尝试访问已释放控制器句柄,或者尝试访问已释放控制器句柄上的导入段或导出段都是非法操作。执行此类尝试的结果是不确定的。

返回值:如果成功,则返回 0。否则返回错误值。

RSMERR_BAD_CTLR_HNDL

控制器句柄无效

rsm_get_controller_attr

int rsm_get_controller_attr(rsmapi_controller_handle_t chdl, rsmapi_controller_attr_t *attr);

此函数可用于获取指定控制器句柄的属性。以下列出了此函数当前已定义的属性:

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。否则返回错误值。

RSMERR_BAD_CTLR_HNDL

控制器句柄无效

RSMERR_BAD_ADDR

地址错误