table of contents
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; };
- low_ino
- 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.
- namelen
- La longueur du nom, sans compter le caractère nul terminal.
- name
- Le nom de l'inode.
- mode
- Le type et les droits (permissions) sur l'inode. Voir <linux/stat.h>.
- nlink
- Le nombre de liens au noeud. S'initialise à 2 si le mode inclut S_IFDIR, sinon 1 .
- uid
- L'UID (User ID) du propriétaire de l'inode, normalement 0.
- gid
- Le GD (Group ID) du propriétaire de l'inode, normalement 0.
- size
- 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.
- ops
- 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.
- get_info
- 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.
- fill_inode
- 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.
- next, parent, subdir
- Mis à jour par les routines de /proc. À initialiser à NULL.
- data
- 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 |