as_getsrval64 内核服务

用途

为指定的地址获取虚拟内存对象的句柄。

语法

#include <sys/types.h> #include <sys/errno.h> #include <sys/vmuser.h> #include <sys/adspace.h> vmhandle_t 'as_getsrval64 (addr64) 无符号长 地址;

参数

描述
addr64 指定应返回相应句柄的虚拟内存地址。

描述

as_getsrval64内核服务用于获取与输入地址addr64)相对应的虚拟内存对象句柄。 然后,该句柄可与as_att64vm_att内核服务一起使用,使对象可在不同位置寻址。

只有在已知虚拟内存对象无法删除时,才可使用该服务,否则必须使用as_geth64内核服务。

as_puth64内核服务不得调用 "as_getsrval64内核服务返回的句柄。

as_getsrval64内核服务假定地址空间模型为固定大小的虚拟内存对象。

该服务可在 32 位和 64 位用户地址空间中正常运行。 它也适用于内核进程(kprocs)。

注意:该服务仅在当前进程的地址空间中运行。 不允许它在另一个地址空间上运行。

执行环境

只有当当前用户地址空间为 64 位时,才能从进程环境调用as_getsrval64内核服务。 如果当前用户地址空间为 32 位,或者是一个kproc,则可以从中断环境调用as_getsrval64

返回值

成功完成后,此例程将返回相应的句柄。

如果出错,该例程将返回sys/seg.h 中定义的 INVLSID 值。 这是地址超出范围造成的。

错误包括: 输入地址超出范围。