Service de noyau vn_get

Objectif

Allère un noeud virtuel.

Syntaxe

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

Paramètres

Article Descriptif
Vfsp Pointe vers une structure Vfs décrivant le système de fichiers virtuel qui doit contenir le noeud v. Tout fichier v-node renvoyé appartient à ce système de fichiers virtuel.
Gnp Pointe vers le noeud g pour l'objet. Ce pointeur est stocké dans le noeud v retourné. Le nouveau v-node est ajouté à la liste des noeuds v du noeud g.
Vpp Pointe vers l'endroit où retourner le pointeur v-node. Ce paramètre est défini par le service de noyau Vn_get pour pointer vers le nouveau v-node alloué.

Descriptif

Le service de noyau Vn_get fournit un mécanisme permettant d'allouer des objets v-node à des fins d'utilisation dans l'environnement Système de fichiers virtuel . Un V-noeud est d'abord attribué à partir d'un pool infini de noeuds v disponibles.

Lors du retour réussi du service de noyau Vn_get , le pointeur vers le pointeur v-node fourni (indiqué par le paramètre Vpp ) a été défini sur l'adresse du nouveau noeud v alloué.

Les zones de ce noeud v ont été initialisées comme suit:

Zone Valeur initiale
v_count Définissez sur 1.
v_vfsp Définissez la valeur dans le paramètre Vfsp .
v_gnode Définissez la valeur dans le paramètre Gnp .
v_next Défini sur la liste des autres v-noeuds avec le même noeud g.

Toutes les autres zones du noeud v sont à zéro.

Environnement d'exécution

Le service de noyau Vn_get peut être appelé à partir de Environnement de processus uniquement.

Valeurs renvoyées

Article Descriptif
0 % Indique que l'exécution a réussi.
ENOMEM Indique que le service de noyau Vn_get n'a pas pu allouer de mémoire pour le noeud v. (Il s'agit d'une occurrence très improbable.)