Scroll to navigation

proc_dir_entry(9) Fonctions relatives à /proc proc_dir_entry(9)

NOM

proc_dir_entry, proc_register, proc_register_dynamic, proc_unregister - ajouter des entrées dans le système de fichiers /proc.

SYNOPSIS

#include <linux/proc_fs.h>

DESCRIPTION

Les fonctions proc_register ajoutent une entrée de fichier ou de répertoire au système de fichier virtuel /proc. Chaque entrée est associée à une routine chargée de gérer les entrées-sorties sur cette inode. La structure proc_dir_entry est définie comme :


struct proc_dir_entry {


unsigned short low_ino;

unsigned short namelen;

const char *name;

mode_t mode;

nlink_t nlink;

uid_t uid;

gid_t gid;

unsigned long size;

struct inode_operations * ops;

int (*get_info)(char *buffer, char **start,

off_t offset, int length, int unused);

void (*fill_inode)(struct inode *);

struct proc_dir_entry *next, *parent, *subdir;

void *data;
};

Le numéro d'inode de cette entrée de répertoire. Pour proc_register , ce nombre doit être unique dans le système de fichiers /proc. Des valeurs sont définies dans <linux/proc_fs.h>. Pour proc_register_dynamic , le numéro d'inode est dynamiquement choisi.
La longueur du nom, sans compter le caractère nul terminal.
Le nom de l'inode.
Le type et les droits (permissions) sur l'inode. Voir <linux/stat.h>.
Le nombre de liens au noeud. S'initialise à 2 si le mode inclut S_IFDIR, sinon 1 .
L'UID (User ID) du propriétaire de l'inode, normalement 0.
Le GD (Group ID) du propriétaire de l'inode, normalement 0.
Taille de l'inode telle qu'elle apparaîtra dans les listings retournés par stat. stat. À moins que vous n'ayez réellement besoin d'une taille, ce champ doit être à zéro.
Définit les opérations réalisables sur l'inode. Pour un répertoire, utiliser &proc_dir_inode_operations à moins qu'un comportement spécial doive être défini. Pour un inode leaf, mettez normalement NULL.
Si définie, cette procédure sera appelée à chaque fois que l'inode sera lue. Normalement initialisée à NULL pour un répertoire. NOTE : Si vous retournez de grandes quantités de données, la procédure doit retourner les données par morceaux et se préparer au prochain appel en positionnant la variable offset Voir ip_masq_procinfo pour un tel exemple.
Remplit dynamiquement les caractéristiques de l'inode lors des opérations sur le répertoire. Devrait être à NULL. Voir proc_pid_fill_inode pour un exemple.
Mis à jour par les routines de /proc. À initialiser à NULL.
Pointeur utilisé par les routines de /proc pour passer des données locales. Vous pouvez en faire ce que vous voulez quand vous appellez proc_register, normalement NULL. Ce pointeur est copié dans le champ u.ip_generic de l'inode par proc_get_inode et est donc disponible pour toutes les routines de /proc à qui l'on passe une inode.

proc_register ajoute l'inode child en tant que sous-inode de parent.

proc_register_dynamic assigne dynamiquement un numéro d'inode puis ajoute l'inode child comme sous-inode de parent.

proc_unregister examine la liste des sous-inodes de parent pour rechercher le numéro d'inode inode particulier et détruire l'entrée correspondante.

VALEUR RENVOYEÉ

proc_register retourne toujours 0.

proc_register_dynamic retourne 0 si tout se passe normalement ou -EAGAIN s'il est impossible d'allouer dynamiquement un numéro d'inode.

proc_unregister retourne 0 si tout se passe normalement ou -EINVAL si l'inode n'est pas trouvée.

VOIR AUSSI

proc_net_register(9), proc_net_unregister(9), proc_scsi_register(9), proc_scsi_unregister(9), stat(2). [Notedutraducteur] Jeter un coup d'oeil à proc"(5) "n'est pas une mauvaise idée.

AUTEUR

Keith Owens <kaos@ocs.com.au>

TRADUCTEUR

Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999

BOGUES

L'unicité des numéros d'inode dans /proc est supposée, mais rien n'est fait pour l'assurer réellement... Il est possible que deux inodes aient le même numéro.

1er juillet 1997 Linux 2.0.30