vn_get 内核服务

用途

分配虚拟节点。

语法

#include <sys/types.h>
#include <sys/errno.h>
int vn_get ( vfsp,  gnp,  vpp)
struct vfs *vfsp;
struct gnode *gnp;
struct vnode **vpp;

参数

描述
弗夫斯普 指向 弗夫斯 结构,该结构描述要包含 v 节点的虚拟文件系统。 任何返回的 V 节点都属于此虚拟文件系统。
格尼普 指向该对象的 g-node。 此指针存储在返回的 v 节点中。 新的 v-node 将添加到 g-node 中的 v-nodes 列表中。
弗普 指向要在其中返回 v 节点指针的位置。 这是由 vn_get 内核服务设置的,用于指向新分配的 v 节点。

描述

vn_get 内核服务提供了一种用于分配 v 节点对象以在 虚拟文件系统 环境中使用的机制。 首先从有效的无限可用 V 型节点池分配 v 节点

vn_get 内核服务成功返回时,指向所提供的 v-node 指针 (由 弗普 参数指定) 的指针已设置为新分配的 v-node 的地址。

此 v 节点中的字段已初始化,如下所示:

字段 原始值
v_count 1 设置为 1。
v_vfsp 设置为 弗夫斯普 参数中的值。
v_gnode 设置为 格尼普 参数中的值。
v_next 设置为具有相同 g-node 的其他 v-node 的列表。

V 节点中的所有其他字段都将归零。

执行环境

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

返回值

描述
重大安全事件数量 指示成功完成。
ENOMEM 指示 vn_get 内核服务无法为 v-node 分配内存。 (这是极不可能发生的情况。)