编程接口指南

管理操作

RSM 段 ID 可以由应用程序指定,或者由系统使用 rsm_memseg_export_publish() 函数生成。指定段 ID 的应用程序需要使用保留范围的段 ID。要保留一组段 ID,请使用 rsm_get_segmentid_range 并在段 ID 配置文件 /etc/rsm/rsm.segmentid 中定义保留范围的段 ID。应用程序可以使用 rsm_get_segmentid_range 函数来获取为应用程序保留的段 ID 范围。此函数会读取在 /etc/rsm/rsm.segmentid 文件中针对给定应用程序 ID 定义的段 ID 范围。

应用程序 ID 是指用于标识应用程序的以空字符结尾的字符串。应用程序可以使用任何等于或大于 baseid 并且小于 baseid+length 的值。如果修改了 baseidlength,则返回到应用程序的段 ID 可能会超出保留的范围。要避免此问题,请使用相对于保留的一组段 ID 的偏移来获取段 ID。

/etc/rsm/rsm.segmentid 文件中的各项形式如下:


#keyword      appid      baseid       length

reserve       SUNWfoo    0x600000     100

这些项由可以用制表符或空格分隔的字符串组成。第一个字符串是关键字 reserve,后跟应用程序标识符(不包含空格的字符串)。应用程序标识符之后是 baseid,即保留范围的起始段 ID(十六进制)。baseid 之后是 length,即保留的段 ID 数。注释行的第一列中包含 #。此文件不应包含空行。为系统保留的段 ID 在 /usr/include/rsm/rsm_common.h 头文件中定义。应用程序不能使用为系统保留的段 ID。

rsm_get_segmentid_range 函数返回 0 表示成功。如果此函数失败,则会返回以下错误值之一:

RSMERR_BAD_ADDR

传递的地址无效

RSMERR_BAD_APPID

未在 /etc/rsm/rsm.segmentid 文件中定义应用程序 ID

RSMERR_BAD_CONF

配置文件 /etc/rsm/rsm.segmentid 不存在或无法读取。文件格式配置错误