vm_protectp 内核服务

用途

设置页范围的页保护键。

语法

#include <sys/types.h>
#include <sys/errno.h>
#include  <sys/vmuser.h>
int vm_protectp ( vmid,  pfirst,  npages,  key)
vmid_t  vmid;
int pfirst;
int npages;
int key;

描述

将调用 vm_protectp 内核服务以设置给定页范围的存储保护密钥。 钥匙 参数指定设置页面保护键时所使用的值。 对于内存中驻留的指定页面范围所触及的所有页面,将设置保护键。 vm_protectp 内核服务仅适用于客户端存储器。

如果页面不在内存中,那么不会从对 vm_protectp 服务的特定调用中保存任何状态信息。 如果该页面稍后进行页面调进,那么它将接收到缺省页面保护密钥。

注: 不支持在大页上使用 vm_protectp 子例程。

参数

描述
弗米德 指定要为其设置页保护键的虚拟内存对象的标识。
普首 指定指定页面范围内的第一个页码。
npages 指定指定的页面范围内的页面数。
key 指定在为指定的页范围设置页保护键时要使用的值。

执行环境

仅可从 流程环境 调用 vm_protectp 内核服务。

返回值

描述
重大安全事件数量 指示操作成功。
EINVAL 指示下列其中一个错误:
  • 虚拟内存对象标识无效。
  • 指定页范围内的起始页为负数。
  • 页面范围内的页面数为负数。
  • 指定的页面范围超过虚拟内存对象的大小。
  • 该目标页面范围不存在。
  • 一个或多个大页面位于目标页面范围内。