Linux

CentOS 4.8

query_module(2)


QUERY_MODULE

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 précise des informations, et leurs formats dépendent de l’argument which, qui joue le rôle de sélecteur de fonction.

Certaines fonctions nécessitent le nom d’un module effectivement chargé, certaines permettent à nom d’être NULL, afin d’obtenir les informations propres au noyau.

VALEURS POSSIBLES DE WHICH

0

Réussit toujours. Permet de vérifier l’appel-système.

QM_MODULES

Renvoie le nom de tous les modules chargés. Le buffer de sortie est rempli avec des chaînes de caractères terminées par des caractères nuls. ret contient le nombre de modules.

QM_DEPS

Renvoie le nom de tous les modules utilisés par le module indiqué. Le buffer de sortie est rempli avec des chaînes de caractères terminées par des caractères nuls. ret contient le nombre de modules.

QM_REFS

Renvoie le nom de tous les modules utilisant le module indiqué. C’est la fonction inverse de QM_DEPS. Le buffer de sortie est rempli avec des chaînes de caractères terminées par des caractères nuls. ret contient le nombre de modules.

QM_SYMBOLS

Renvoie les symboles et les valeurs exportés par le noyau, ou par le module indiqué. Le buffer de sortie est un tableau de structures :

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

suivi de chaînes terminées par des caractères nuls. La valeur de name correspond au décalage entre le nom du symbole et le début du buffer buf. ret contient le nombre de symboles.

QM_INFO

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

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

ou address correspond à l’adresse à laquelle le module réside 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’état actuel du module. ret correspond à la taille de la structure module_info.

VALEUR RENVOYÃE

query_modules renvoie zéro s’il réussit, ou −1 s’il échoue, 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 appropriée pour le noyau.

ENOSPC

Le buffer fourni est trop petit. ret contient la taille minimum nécessaire.

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).

TRADUCTION

Christophe Blaess, 1997.


query_module(2)