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.