vnop_map 入口点

用途

验证文件映射请求。

语法

int vnop_map (vp, addr, length, offset, flags, crp)
struct vnode * vp;
caddr_t  addr;
uint  length;
uint  offset;
uint  flags;
struct ucred * crp;

参数

注: 在当前实现中,未使用 地址偏移长度 参数。 期望文件系统将段标识与文件一起存储在gn_seg文件的 g-node 字段的值。
描述
VP 指向文件中的虚拟节点 (v 节点)。
addr 标识要开始映射的过程地址空间中的位置。
长度 指定要映射的最大大小。
偏移量 指定要开始映射的文件中的位置。
标志 标识要执行的映射类型。 此值由 /usr/include/sys/shm.h 文件中定义的位值组成。 以下值是文件系统实现的特定相关值:
仅限 SHM_RDONLY
该虚拟内存对象是只读的。
SHM_COPY
虚拟内存对象是写入时复制的。 如果设置了此值,那么对段的更新将延迟到对文件执行 Fsync 操作为止。 如果在没有 Fsync 操作的情况下关闭文件,那么将废弃修改。 调用 vnop_map 入口点的应用程序也会负责调用 vnop_fsync 入口点。
注: 映射的段不反映对写入时复制段所做的修改。
茨尔普 点至 克雷德 结构。 此结构包含应用程序可用来验证访问许可权的数据。

描述

vnop_map 入口点由逻辑文件系统调用以验证从 mmap什马特 子例程产生的映射请求。 逻辑文件系统 将创建虚拟内存对象 (如果该对象尚不存在) ,并增加对象的使用计数。

执行环境

vnop_map 入口点只能从 流程环境 中调用。

返回值

描述
重大安全事件数量 指示成功。

/usr/include/sys/errno.h 文件返回非零返回值以指示失败。