zion - init_module
Nom
init_module, cleanup_module - routines de chargement et de déchargement de module
Résumé
#include <linux/module.h> #include <linux/modversions.h> int init_module(void); void cleanup_module(void);
Description
Ces fonctions ne font pas partie du noyau mais sont des points d'entrée dans les modules chargeables. Ce sont les seuls symboles que doit exporter un module.
Quand un module est chargé dans le noyau, la fonction init_module (9) du fichier objet en question est appelée pour initialiser le module. Elle doit en particulier initialiser les données locales au module et utiliser les fonctions comme register_chrdev (9) pour s'enregistrer auprès du noyau. Elle doit retourner zéro (0) en l'absence de problème. Si quelque chose ne fonctionne pas comme prévu ou si le module décide qu'il ne peut être chargé, cette fonction doit retourner un code d'erreur ( -ENODEV ) et le kernel décharge le module.
Une fois chargée, la fonction cleanup_module (9) du module est utilisée par le noyau pour détruire le module. Le module doit libérer toutes les ressources qu'il utilise.
Valeur de retour
La fonction init_module (9) renvoie 0 en l'absence de problème ou un code d'erreur négatif si le module ne peut être initialisé.
Disponibilité
Linux 1.0+
Voir aussi
MOD_INC_USE_COUNT (9), insmod (1)
Se reporter également au source des pilotes modulaires dans le noyau.
Auteur
Stephen Williams <steve@icarus.com>
Bugs
Il revient entièrement au module de se détacher proprement et de libérer toutes les ressources utilisées (mémoire, désenregistrement, ...). Si un module est mal codé à ce niveau, le système peut devenir instable.
Poster un commentaire