vm_setdevid 内核服务

用途

修改虚拟内存对象的页面调度设备表条目。

语法

#include <sys/types.h>
#include <sys/kerrno.h>
#include  <sys/vmuser.h>
kerrno_t vm_setdevid ( vmid, type,  ptr,  flags)
vmid_t vmid;
int type;  
int (*ptr)();
unsigned long flags;    

参数

描述
弗米德 指定要为其设置调页设备表项的虚拟内存对象的标识。
TYPE 指定设备的类型。 类型 参数的值必须为D_REMOTE。
PTR 指向该文件系统的策略例程。
标志 已保留。 必须将 标志 参数设置为零。

描述

vm_setdevid 内核服务将与文件系统策略例程 普特尔相关联的调页设备表条目绑定到虚拟内存对象 弗米德。 通过先前的 vm_mount 内核服务调用,调页设备表条目必须已安装为类型 D_REMOTE。

在文件系统在给定虚拟内存对象上调用 vm_setdevid 内核服务后,将对新指定的调页设备表执行后续调页 I/O 或从该表执行后续调页 I/O。 先前与虚拟内存对象关联的调页设备表的任何未完成 I/O 都将保持排队状态,并且将异步完成。 在它们完成后,将对这些文件页执行后续页面调度 I/O ,或者从新指定的页面调度设备表执行后续页面调度 I/O。

在此调用的输入中,当前与 弗米德 对象关联的页面调度设备表条目必须有效且类型为 D_REMOTE。 在调用 vm_mount 内核服务时指定的任何标志必须与针对新的页面调度设备表条目调用 vm_mount 内核服务时指定的任何标志完全匹配。

执行环境

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

返回值

描述
重大安全事件数量 指示操作成功。
EINVAL_VM_SETDEVID1 指示 弗米德 值不是客户机段,或者输入类型的值不是 D_REMOTE/VALUE。
ENODEV_VM_SETDEVID2 指示具有由 普特尔 参数指定的策略例程的文件系统不在页面调度设备表中。
EINVAL_VM_SETDEVID3 指示新的页面调度设备表项不是 D_REMOTE 或无效。
EINVAL_VM_SETDEVID4 指示当前与 弗米德 对象关联的调页设备表条目不是 D_REMOTE 或无效。
EINVAL_VM_SETDEVID5 指示当前页面调度设备表条目和新页面调度设备表条目的 vm_mount 标志不同。
EINVAL_VM_SETDEVID6 指示这是在中断级别调用的。
EINVAL_VM_SETDEVID7 指示输入标志是非零的。
EINVAL_VM_SETDEVID8 指示输入 弗米德 的值无效。

相关信息

vm_mount 内核服务, vm_umount 内核服务。

内存内核服务了解虚拟内存管理器接口内核扩展和设备支持编程概念