ltpin 内核服务
用途
锁定系统 (内核) 空间中的地址范围,并为关联的页面释放页面空间。
语法
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/pin.h> int ltpin (addr, length)
caddr_t addr;
int length;
参数
| 项 | 描述 |
|---|---|
| addr | 指定要置顶的第一个字节的地址。 |
| 长度 | 指定要置顶的字节数。 |
描述
LTPin (长期 pin) 内核服务会将系统 (内核) 地址空间中 地址 和 长度 参数指定的地址范围所触及的实内存页置顶。 它会锁定实内存页,以确保此地址范围内的内存引用不会发生缺页故障。 LTPin 内核服务会使每个实内存页面的长期引脚计数递增。 虽然长期或短期引脚计数不为零,但无法从实内存中调页。
LTPin 内核服务可以锁定整个地址范围,也可以不锁定任何地址范围。 系统中只有有限数量的页面被置顶。 如果系统中没有足够的未置顶页面,那么 LTPin 内核服务将返回错误代码。 LTPin 内核服务不是已发布的接口。
注: 操作系统一次仅置顶整个页面。 因此,如果请求的范围未在页边界上对齐,那么超出此范围的内存也会被锁定。
LTPin 内核服务只能针对系统 (内核) 地址空间内的地址进行调用。
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 指示成功完成。 |
| EINVAL | 指示 长度 参数的值为负值。 否则,未定义从第一个要置顶的字节的地址 ( 地址 参数) 开始并针对 长度 参数指定的字节数进行扩展的内存区域。 |
| EIO | 指示在引用数据时发生永久 I/O 错误。 |
| ENOMEM | 指示 销 内核服务由于实内存不足或超过系统范围的锁钉计数而无法锁钉。 |
| ENOSPC | 指示文件系统或调页空间不足。 |