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_att64或vm_att内核服务一起使用,使对象可在不同位置寻址。
只有在已知虚拟内存对象无法删除时,才可使用该服务,否则必须使用as_geth64内核服务。
as_puth64内核服务不得调用 "as_getsrval64内核服务返回的句柄。
as_getsrval64内核服务假定地址空间模型为固定大小的虚拟内存对象。
该服务可在 32 位和 64 位用户地址空间中正常运行。 它也适用于内核进程(kprocs)。
注意:该服务仅在当前进程的地址空间中运行。 不允许它在另一个地址空间上运行。
执行环境
只有当当前用户地址空间为 64 位时,才能从进程环境调用as_getsrval64内核服务。 如果当前用户地址空间为 32 位,或者是一个kproc,则可以从中断环境调用as_getsrval64。
返回值
成功完成后,此例程将返回相应的句柄。
如果出错,该例程将返回sys/seg.h 中定义的 INVLSID 值。 这是地址超出范围造成的。
错误包括: 输入地址超出范围。