QUERY_MODULE(2) Manuel du programmeur Linux QUERY_MODULE(2)
NOM
query_module - Demander au noyau des informations concer
nant 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 informa
tions 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 fonc
tion.
Certaines fonctions nécessitent le nom d'un module effec
tivement 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 mod
ules.
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 sor
tie est un tableau de structures :
struct module_symbol
{
unsigned long value;
Linux 21 Juillet 1997 1
QUERY_MODULE(2) Manuel du programmeur Linux QUERY_MODULE(2)
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 con
tient le nombre de symboles.
QM_INFO
Renvoie des informations diverses concernant le
module indiqué. Le buffer de sortie est une struc
ture :
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.
Linux 21 Juillet 1997 2