INIT_MODULE(2) Manuel du programmeur Linux INIT_MODULE(2)
NOM
init_module - Initialiser un module chargeable.
SYNOPSIS
#include <linux/module.h>
int init_module(const char *nom, struct module *image);
DESCRIPTION
init_module charge l'image du module dans l'espace du
noyau, et lance la fonction init du module.
L'image du module commence par une structure, et est
suivie par le code, et les données nécessaires. La struc
ture de module est définie ainsi :
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
};
Tous les membres de type pointeur, à l'exception de next
et refs, doivent pointer dans le corps du module, et être
initialisés correctement par rapport à l'espace du noyau.
Ceci signifie qu'ils doivent être translatés correctement
avec le reste du module.
Seul le Super-Utilisateur peut invoquer cet appel-système.
VALEUR RENVOYÉE
init_module renvoie 0 s'il réussit, ou -1 s'il échoue,
auquel cas errno contient le code d'erreur.
ERREURS
EPERM L'appelant n'est pas le Super-Utilisateur.
ENOENT Il n'y a pas de module de ce nom.
Linux 21 Juillet 1997 1
INIT_MODULE(2) Manuel du programmeur Linux INIT_MODULE(2)
EINVAL Certains champs de l'image sont incorrects,
image->name ne correspond pas au nom original du
module, des éléments de image->deps ne correspon
dent pas à un module chargé, ou d'autres
incohérences du même ordre.
EBUSY La routine d'initialisation du module a échoué.
EFAULT name ou image pointe en dehors de l'espace d'adres
sage accessible.
VOIR AUSSI
create_module(2), delete_module(2), query_module(2).
TRADUCTION
Christophe Blaess, 1997.
Linux 21 Juillet 1997 2