Linux |
CentOS 5.3 |
|
init_module(9) |
init_module, cleanup_module − routines de chargement et de déchargement de module |
#include <linux/module.h> int init_module(void); |
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. |
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é. |
Linux 1.0+ |
MOD_INC_USE_COUNT(9), insmod(1) Se reporter également au source des pilotes modulaires dans le noyau. |
Stephen Williams <steve@icarus.com> |
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. |
init_module(9) |