QUERY_MODULE(2)

NOM
query_module - Demander au noyau des informations concernant les modules.

SYNOPSIS
#include <linux/module.h>

int query_module(const char *nom, int which,
  void *buf, size_t taille_buf, size_t *ret);

DESCRIPTION
query_module interroge le noyau pour obtenir des informations concernant les modules chargeables. La nature precise des informations, et leurs formats dependent de l'argument which, qui joue le role de selecteur de fonction. Certaines fonctions necessitent le nom d'un module effectivement charge, certaines permettent a nom d'etre NULL, afin d'obtenir les informations propres au noyau.

  VALEURS POSSIBLES DE WHICH

0   Reussit toujours. Permet de verifier l'appel-systeme.

QM_MODULES
    Renvoie le nom de tous les modules charges. Le buffer de sortie est rempli avec des chaines de caracteres terminees par des caracteres nuls. ret contient le nombre de modules.

QM_DEPS
    Renvoie le nom de tous les modules utilises par le module indique. Le buffer de sortie est rempli avec des chaines de caracteres terminees par des caracteres nuls. ret contient le nombre de modules.

QM_REFS
    Renvoie le nom de tous les modules utilisant le module indique. C'est la fonction inverse de QM_DEPS. Le buffer de sortie est rempli avec des chaines de caracteres terminees par des caracteres nuls. ret contient le nombre de modules.

QM_SYMBOLS
    Renvoie les symboles et les valeurs exportes par le noyau, ou par le module indique. Le buffer de sortie est un tableau de structures :

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

    suivi de chaines terminees par des caracteres nuls. La valeur de name correspond au decalage entre le nom du symbole et le debut du buffer buf. ret contient le nombre de symboles.

QM_INFO
    Renvoie des informations diverses concernant le module indique. Le buffer de sortie est une structure :

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

    ou address correspond a l'adresse a laquelle le module reside dans le noyau, size est la taille, en octets, du module, et flags est un masque de MOD_RUNNING, MOD_AUTOCLEAN, etc. qui indiquent l'etat actuel du module. ret correspond a la taille de la structure module_info.

VALEUR RENVOYEE
query_modules renvoie zero s'il reussit, ou -1 s'il echoue, auquel cas errno contient le code d'erreur.

ERREURS

ENOENT
    Il n'y a pas de module de ce nom.

EINVAL
    La valeur de which est invalide, ou le nom est NULL et la sous-fonction n'est pas appropriee pour le noyau.

ENOSPC
    Le buffer fourni est trop petit. ret contient la taille minimum necessaire.

EFAULT
    nom, buf, ou ret pointe en dehors de l'espace d'adressage accessible.

VOIR AUSSI
create_module(2), init_module(2), delete_module(2).