vm_move 内核服务

用途

在虚拟内存对象与 乌约 结构中指定的缓冲区之间移动数据。

语法

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/vmuser.h>
#include <sys/uio.h>
int vm_move (vmid, offset, limit, rw, uio)
vmid_t  vmid;      
caddr_t  offset;    
int  limit;        
enum uio_rw  rw;  
struct uio * uio;      

参数

描述
弗米德 指定虚拟内存对象标识。
偏移量 指定虚拟内存对象中的偏移量。
limit 指示对传输长度的限制。 如果此参数为负数或 0 ,那么不会传输任何字节。
rw 指定一个读/写标志,该标志给出移动的方向。 此参数 (UIO_READUIO_WRITE) 的可能值在 /usr/include/sys/uio.h 文件中定义。
乌约 点至 乌约 结构。

描述

vm_move 内核服务会在虚拟内存对象与 乌约 结构中指定的缓冲区之间移动数据。

此服务根据对象中的偏移量确定进行数据移动所需的虚拟寻址。

vm_move 内核服务与 乌约莫韦 内核服务类似,但是可信缓冲区的地址由 弗米德偏移 参数指定,而不是作为 卡德拉特 地址指定。 由于虚拟内存对象必须小于此大小,因此偏移量大小也限制为 卡德拉特 地址的大小。

注: vm_move 内核服务不支持跨内存描述符的使用。

调页空间的 I/O 错误和缺少调页空间被报告为信号。

执行环境

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

返回值

描述
重大安全事件数量 指示操作成功。
EFAULT 指示错误地址。
ENOMEM 指示内存不足。
ENOSPC 指示磁盘空间不足。
EIO 指示 I/O 错误。

其他特定于文件系统的 错误号 全局变量由移动功能中涉及的虚拟文件系统返回。