table of contents
other languages
INIT_MODULE(2) | Manuel du programmeur Linux | INIT_MODULE(2) |
NOM¶
init_module - Charger une module de noyauSYNOPSIS¶
int init_module(void *module_image, unsigned long len, const char *param_values);
DESCRIPTION¶
init_module() charge une image ELF dans l'espace du noyau, réalise toutes les réallocations de symboles nécessaires, initialise les paramètres du module aux valeurs fournies par l'appelant et exécute ensuite la fonction init du module. Cet appel système nécessite des droits.VALEUR RENVOYÉE¶
S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et définit errno en conséquence.ERREURS¶
- EBUSY
- Délai dépassé en essayant de résoudre une référence de symbole par ce module.
- EEXIST
- Un module de ce nom est déjà chargé.
- EFAULT
- Un argument d'adresse faisait référence à un emplacement en dehors de l'espace d'adressage accessible du processus.
- EINVAL
- param_values est incorrect, ou certaines parties de l'image ELF de module_image contient des incohérences.
- ENOEXEC
- L'image binaire fournie dans module_image n'est pas une image ELF, ou est une image ELF incorrecte ou pour une autre architecture.
- EPERM
- L'appelant n'avait pas les droits (n'avait pas la capacité CAP_SYS_MODULE), ou le chargement de module est désactivé (consultez /proc/sys/kernel/modules_disabled dans proc(5)).
CONFORMITɶ
init_module() est spécifique à Linux.NOTES¶
La glibc ne fournit pas de fonction autour de cet appel système ; utilisez syscall(2) pour l'appeler.Linux 2.4 et antérieurs¶
Dans Linux 2.4 et antérieurs, cet appel système était assez différent :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.
VOIR AUSSI¶
create_module(2), delete_module(2), query_module(2), lsmod(8), modprobe(8)COLOPHON¶
Cette page fait partie de la publication 3.44 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>. Alain Portal <http://manpagesfr.free.fr/> (2006-2008). Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr. Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».18 octobre 2012 | Linux |