1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
.\" Copyright (C) 1996 Free Software Foundation, Inc.
.\" This file is distributed accroding to the GNU General Public License.
.\" See the file COPYING in the top level source directory for details.
.\"
.\"
.\" Traduction 21/07/1997 par Christophe Blaess (ccb@club-internet.fr)
.\"
.TH INIT_MODULE 2 "21 Juillet 1997" Linux "Manuel du programmeur Linux"
.SH NOM
init_module \- Initialiser un module chargeable.
.SH SYNOPSIS
.nf
.B #include <linux/module.h>
.sp
.BI "int init_module(const char *" nom ", struct module *" image );
.fi
.SH DESCRIPTION
.B init_module
charge l'image du module dans l'espace du noyau, et lance la fonction
\fIinit\fP du module.
.PP
L'image du module commence par une structure, et est suivie par le code,
et les donnees necessaires. La structure de module est definie ainsi :
.PP
.RS
.nf
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
};
.fi
.RE
.PP
Tous les membres de type pointeur, a l'exception de \fInext\fP et
\fIrefs\fP, doivent pointer dans le corps du module, et initialises
correctement par rapport a l'espace du noyau. Ceci signifie qu'ils
doivent etre translates correctement avec le reste du module.
.PP
Seul le Super-Utilisateur peut invoquer cet appel-systeme.
.SH "VALEUR RENVOYEE"
.B init_module
renvoie 0 s'il reussit, ou \-1 s'il echoue, auquel cas \fIerrno\fP
contient le code d'erreur.
.SH ERREURS
.TP
.B EPERM
L'appelant n'est pas le Super-Utilisateur.
.TP
.B ENOENT
Il n'y a pas de module de ce \fInom\fP.
.TP
.B EINVAL
Certains champs de l'\fIimage\fP sont incorrects, \fIimage->name\fP ne
correspond pas au nom original du module, des elements de \fIimage->deps\fP
ne correspondent pas a un module charge, ou d'autres incoherences du meme ordre.
.TP
.B EBUSY
La routine d'initialisation du module a echoue.
.TP
.B EFAULT
\fIname\fP ou \fIimage\fP
pointe en dehors de l'espace d'adressage accessible.
.SH "VOIR AUSSI"
.BR create_module "(2), " delete_module "(2), " query_module "(2)."
|