Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       query_module - Interroger le noyau sur diverses choses relatives aux modules

SYNOPSIS

       #include <linux/module.h>

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

       Remarque : cet appel système n'est pas déclaré par les en-têtes de la glibc ; consultez la
       section NOTES.

DESCRIPTION

       Remarque : cet appel système n'est présent dans Linux qu'avant le noyau 2.6.

       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
       un name pour identifier un module actuellement chargé, d'autres permettent que  name  soit
       NULL, indiquant le noyau.

       which peut prendre les valeurs suivantes :

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

       QM_MODULES
              Renvoyer 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
              Renvoyer le nom 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
              Renvoyer 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
              Renvoyer 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ère de la chaîne relativement au début de buf ; ret  prend
              la valeur du nombre de modules.

       QM_INFO
              Renvoyer 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  (consultez  le  fichier  include/linux/module.h  dans  les
              sources  du  noyau  Linux).  ret  prend  la  valeur  de  la  taille de la structure
              module_info.

VALEUR RENVOYÉE

       On success, zero is returned. On error, -1 is returned and errno is set  to  indicate  the
       error.

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 ce n'est  pas  permis
              avec la valeur de which.

       ENOENT Aucun module du nom name n'existe.

       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 (par exemple  un
              noyau en version 2.6 ou au-delà).

VERSIONS

       Cet appel système n'est présent dans Linux que jusqu'au noyau 2.4 ; il a été supprimé dans
       Linux 2.6.

CONFORMITÉ

       query_module() est spécifique à Linux.

NOTES

       Certains renseignements, qui étaient auparavant disponibles avec  query_module(),  peuvent
       être   obtenus   dans   /proc/modules,   /proc/kallsyms  et  les  fichiers  du  répertoire
       /sys/modules.

       L'appel système query_module() n'est pas pris en charge par la glibc. Il n'est pas déclaré
       dans  les  en-têtes  de  la glibc, mais par un caprice de l'histoire, la glibc fournit une
       interface binaire pour cet appel  système.  Ainsi,  il  suffit  de  déclarer  manuellement
       l'interface dans votre code pour utiliser cet appel système. Sinon, vous pouvez l'invoquer
       en utilisant syscall(2).

VOIR AUSSI

       create_module(2),   delete_module(2),   get_kernel_syms(2),   init_module(2),    lsmod(8),
       modinfo(8)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.