Loading

NOM

       init_module - Initialiser une entrée de module chargeable

SYNOPSIS

       #include <linux/module.h>

       int init_module(const char *name, struct module *image);

       init_module() charge  l'image  du module relogé  dans l'espace noyau et
       lance la fonction init du module.

       L'image du module commence avec une structure module suivie par du code
       et des données appropriés. La structure module est définie comme suit :

       struct module {
           unsigned long         size_of_struct;
           struct module        *next;
           const char           *name;
           unsigned long         size;
           long                  usecount;
           unsigned long         flags;
           unsigned int          nsyms;
           unsigned int          ndeps;
           struct module_symbol *syms;
           struct module_ref    *deps;
           struct module_ref    *refs;
           int                 (*init)(void);
           void                (*cleanup)(void);
           const struct exception_table_entry *ex_table_start;
           const struct exception_table_entry *ex_table_end;
       #ifdef __alpha__
           unsigned long gp;
       #endif
       };

       On s'attend à ce que  tous les champs pointeurs,  à l'exception de next
       et  refs,  pointent  vers l'intérieur  du corps  du  module  et  qu'ils
       puissent être initialisés  de manière appropriée  pour l'espace  noyau,
       c'est-à-dire relogés avec le reste du module.

       Cet appel système nécessite des privilèges. 

VALEUR RENVOYÉE

       S'il réussit,  il  renvoie 0.  S'il échoue,  il renvoie -1  et  remplit
       errno en conséquence.

ERREURS

       EBUSY    La routine d'initialisation du module a échoué.

       EFAULT   name ou image est en dehors de l'espace d'adressage accessible
                du programme.

       EINVAL   Un  emplacement image  n'est  pas rempli de manière  correcte,
                image->name ne correspond plus au  nom original du module, une
                entrée  image->deps  ne correspond plus à un module  chargé ou
                autre incohérence similaire.

       ENOENT   Il n'existe aucun module de ce nom. 

       EPERM    L'appelant  n'est   pas  privilégié   (n'a  pas   la  capacité
                CAP_SYS_MODULE). 

CONFORMITÉ

       init_module() est spécifique à Linux.

VOIR AUSSI

       create_module(2), delete_module(2), query_module(2)

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Ce document est une  traduction réalisée par  Alain Portal  <aportal AT
       univ-montp2 DOT fr> le 21 juillet 2006 et révisée le 8 janvier 2008.

       L'équipe de traduction a fait le maximum  pour réaliser  une adaptation
       française de qualité. La version anglaise la plus à jour de ce document
       est toujours  consultable via la commande :  « LANG=C man 2 init_module
       ». N'hésitez pas à signaler à l'auteur ou au traducteur,  selon le cas,
       toute erreur dans cette page de manuel.