Index général des pages de man   Index Section man 2   Table des Matières de init_module   Imprime la page de man init_module en mode Texte   Recherche dans les pages de man   Page de man en français      Fonctions du système (section 2)

init_module

 
  

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 structure 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.
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 correspondent 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'adressage accessible.

Voir Aussi

create_module(2) , delete_module(2) , query_module(2) .

Traduction

Christophe Blaess, 1997.


Table des matières


Haut de page

© 1996-2000 Adaptation française "Christophe Blaess"