xm_mapin 内核服务

用途

在当前流程上下文中设置可寻址性。

语法

#include <sys/adspace.h>

int xm_mapin (dp, baddr, count, eaddr)
struct xmem *dp;caddr_t baddr;
size_t count;
caddr_t *eaddr;

描述

xm_mapin 内核服务将当前进程上下文中的可寻址性设置为由地址 [巴德尔巴德尔 + 计数 -1] 的 民主党 参数所指向的交叉内存描述符所指示的地址空间。

此服务专门为客户机文件系统或其他需要设置 xmem 描述符所定义的地址空间的可寻址性的用户创建。

如果所请求的映射跨越段边界,那么将不会执行任何映射,并且会返回 EAGAIN 的返回码以指示需要对 xm_mapin 内核服务进行个别调用以映射每个段中的缓冲区部分。 必须使用原始 巴德尔计数 (指示下一个段的字节数) 来再次调用 xm_mapin 内核服务。 (可以使用 xm_maxmap 内核服务获取到下一个段边界的字节数。) 这将提供一个用于访问缓冲区的这一部分的有效地址。 然后,必须使用段边界地址 (先前为 巴德尔 + 计数) 和新 计数 (指示缓冲区的剩余部分或下一个段边界,以较小者为准) 以迭代方式调用 xm_mapin 。 这将提供另一个有效地址以用于访问缓冲区的下一部分。

当不再需要由 xm_mapin 内核服务设置的每个地址时,必须使用 xm_det 内核服务撤销该地址,因为 xm_mapin 内核服务当前使用的是 弗 _att 内核服务。

参数

描述
dp 指向该交叉内存描述符。
巴德尔 指向该虚拟缓冲区。
COUNT 指定要映射的虚拟缓冲区的长度。
埃德尔 指向用于访问数据缓冲区的有效地址的返回位置。

返回值

描述
重大安全事件数量 成功。 (引用参数 埃德尔 包含要使用的地址)
XMEM_FAIL 交叉内存描述符无效。
EAGAIN 迂到分段边界交叉。 调用者应该进行单独的 xm_mapin 调用以映射每个有价值的段。

执行环境

可从进程或中断环境中调用 xm_mapin 内核服务。