Linux |
CentOS 5.3 |
|
register_chrdev(9) |
register_chrdev, unregister_chrdev − enregister un nombre majeur de périphérique |
#include <linux/fs.h> int register_chrdev(unsigned int major,
const char*name, struct
file_operations*ops); |
La fonction register_chrdev associe un nombre majeur (de périphérique de type caractère) avec un ensemble de points d’entrée de pilote. La structure file_operations contient des pointeurs sur les fonctions que le pilote utilise pour implémenter l’interface du pilote au noyau. Le paramètre major est le nombre majeur (caractère) associé au pilote de périphérique et devant être mappé dans la table des fonctions. Le paramètre name est un raccourci pour le périphérique et est affichée dans la liste /proc/devices unregister_chrdev quand les fonctions sont "libérées". Un pilote modularisé peut enregistrer autant de nombres majeurs que de périphériques gérés, bien que cela ne soit pas fréquent. La fonction unregister_chrdev libère le nombre majeur, et est normalement appelé dans la fonction de nettoyage du module lors de son déchargement du noyau. |
En cas de succès, register_chrdev retourne 0 si major est un nombre différent de 0, sinon Linux fermera le nombre majeur et retournera la valeur choisie. En cas d’erreur, l’un des codes suivants est retourné à la place : |
-EINVAL |
Le nombre spécifié n’est pas valide (> MAX_CHRDEV) |
-EBUSY |
Le nombre majeur est occupé |
La fonction unregister_chrdev retourne 0 en cas de succès, ou -EINVAL si le nombre majeur n’est pas enregistré avec le nom correspondant. |
Linux 1.0+ |
register_blkdev(9) mknod(2) |
Stephen Williams (steve@icarus.com) |
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999 |
register_chrdev(9) |