Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       query_module - Interroger le noyau sur diverses choses relatives aux modules

SYNOPSIS

       #include <linux/module.h>

       [[obsolète]] int query_module(const char *name, int which,
                                       void buf[.bufsize], size_t bufsize,
                                       size_t *ret);

DESCRIPTION

       Remarque : cet appel système n'est présent qu'avant Linux 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 renvoyé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 symboles.

       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

       En  cas  de  succès,  0 est renvoyé. en cas d'échec, -1 est renvoyé et errno se positionné
       pour indiquer l'erreur.

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,
              Linux 2.6 ou au-delà).

VERSIONS

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

STANDARDS

       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)

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>,  David  Prévot  <david@tilapin.org>   et   Thomas   Vincent
       <tvincent@debian.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⟩.