Scroll to navigation

INIT_MODULE(2) Manuel du programmeur Linux INIT_MODULE(2)

NOM

init_module - Initialiser une entrée de module chargeable

SYNOPSIS

#include <linux/module.h>

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

DESCRIPTION

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

La routine d'initialisation du module a échoué.
name ou image est en dehors de l'espace d'adressage accessible du programme.
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 au module chargé ou autre incohérence simliaire.
Il n'existe aucun module de ce nom.
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 <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.

Alain Portal <URL:http://manpagesfr.free.fr/> (2006-2008).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-l10n-fr@lists.alioth.debian.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

9 février 2006 Linux