vm_releasep 内核服务

用途

释放指定页面范围的虚拟内存资源。

语法

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

描述

vm_releasep 内核服务在虚拟内存对象中释放指定页范围的页面。 普首npages 参数中的值必须是非负的。

与页面范围 (普首普首 + npages -1) 相交的虚拟内存对象的每个页面在逻辑上重置为 0 ,并且任何页帧都将被废弃。 处于 I/O 状态的页帧在 I/O 完成时标记为废弃。

对于工作存储器,将释放调页空间磁盘块,并将存储保护密钥重置为缺省值。

注: 要释放的所有页面都必须位于同一个虚拟内存对象中。
注: 不支持在大页上使用 vm_releasep 子例程。

参数

描述
弗米德 指定虚拟内存对象标识。
普首 指定指定页范围内的第一个页号。
npages 指定指定的页面范围内的页面数。

执行环境

vm_releasep 内核服务只能从进程环境中进行调用。

返回值

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