Loading

NOM

       query_module - Interroger le noyau  sur divers éléments  concernant les
       modules

SYNOPSIS

       #include <linux/module.h>

       int query_module(const char *name, int which, void *buf,
                        size_t bufsize, size_t *ret);

       query_module()  demande  au noyau  des  informations  sur  les  modules
       chargeables.  L'information renvoyée  est placée  dans un tampon pointé
       par buf.  L'appelant doit indiquer  la taille de buf  dans bufsize.  La
       nature  précise  et le format de  l'information retournée  dépendent de
       l'opération  qui a  été  spécifiée  dans  which.  Certaines  opérations
       nécessitent  name  pour  identifier   un  module  actuellement  chargé,
       d'autres permettent que name soit NULL, indiquant le noyau.

       which peut prendre les valeurs suivantes :

       0
           Succès si  le noyau prend  en charge  query_module().  Utilisé pour
           tester la disponibilité de l'appel système.

       QM_MODULES
           Obtient  les noms de tous  les modules chargés.  Le tampon  renvoyé
           consiste en une séquence de chaînes de caractères terminées  par un
           octet nul ; ret prend la valeur du nombre de modules.

       QM_DEPS
           Obtient les  noms  de  tous  les modules  utilisés  par  le  module
           indiqué.  Le tampon renvoyé consiste  en une séquence de chaînes de
           caractères terminées  par un octet  nul ;  ret prend  la valeur  du
           nombre de modules.

       QM_REFS
           Obtient  le nom de  tous les modules  utilisant  le module indiqué.
           C'est  l'inverse de QM_DEPS.  Le  tampon  renvoyé  consiste en  une
           séquence de chaînes de caractères terminées par un octet nul ;  ret
           prend la valeur du nombre de modules.

       QM_SYMBOLS
           Obtient les symboles et valeurs exportés par le noyau  ou le module
           indiqué. Le tampon renvoyé est un tableau de structures de la forme
           suivante :

           struct module_symbol {
               unsigned long value;
               unsigned long name;
           };

           suivi par des chaînes de caractères terminées par un octet nul.  La
           valeur  de  name  est  le  décalage  en  caractères  de  la  chaîne
           relativement  au début de buf ;  ret prend  la valeur  du nombre de
           symboles.

       QM_INFO
           Obtient diverses informations  sur le module indiqué.  Le format du
           tampon de sortie est de la forme :

           struct module_info {
               unsigned long address;
               unsigned long size;
               unsigned long flags;
           };

          où address est l'adresse noyau  où se trouve le module,  size est la
          taille  en octets  du module  et  flags  un masque  de  MOD_RUNNING,
          MOD_AUTOCLEAN, etc.  qui indique  l'état actuel  du module  (voir le
          fichier <include/linux/module.h>  dans les  sources du  noyau).  ret
          prend la valeur de la taille de la structure module_info.

VALEUR RENVOYÉE

       S'il réussit,  il  renvoie 0.  S'il échoue,  il renvoie -1  et  remplit
       errno en conséquence.

ERREURS

       EFAULT   Au moins  une adresse  parmi name,  buf ou  ret est  en dehors
                de l'espace d'adressage accessible du programme.

       EINVAL   which est invalide ;  ou name est  NULL (indiquant  le noyau),
                mais cela n'est pas permis avec la valeur de which. 

       ENOENT   Il n'existe aucun module de nom name.

       ENOSPC   La taille  du tampon  fournie est  trop petite ;  ret prend la
                valeur de la taille minimum nécessaire.

       ENOSYS   query_module() n'est  pas pris en charge  par cette version du
                noyau.

CONFORMITÉ

       query_module() est spécifique à Linux.

NOTES

       Cet appel système est présent dans Linux jusqu'au noyau 2.4 ;  il a été
       retiré du  noyau 2.6.  Certaines informations  qui étaient  disponibles
       via  query_module()   peuvent   être   obtenues  avec    /proc/modules,
       /proc/kallsyms et /sys/modules.

VOIR AUSSI

       create_module(2), delete_module(2), get_kernel_syms(2), init_module(2)

COLOPHON

       Cette page fait partie de  la  publication  3.32  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

       Ce document est une  traduction réalisée par  Alain Portal  <aportal AT
       univ-montp2 DOT fr> le 21 juillet 2006 et révisée le 8 janvier 2008.

       L'équipe de traduction a fait le maximum  pour réaliser  une adaptation
       française de qualité. La version anglaise la plus à jour de ce document
       est toujours consultable via la commande :  « LANG=C man 2 query_module
       ». N'hésitez pas à signaler à l'auteur ou au traducteur,  selon le cas,
       toute erreur dans cette page de manuel.

       Révisé pour ce site par l'équipe man-linux-magique.net (mai 2011).