NÉV¶
query_module - különböző modulokra vonatkozó
paramétereket kérdez a kerneltől.
ÁTTEKINTÉS¶
#include <linux/module.h>
int query_module(const char *name, int which,
void *buf, size_t bufsize, size_t *ret);
LEÍRÁS¶
A
query_module betölthető modulokra vonatkozó
információkat kér a kerneltől. Az
információ pontos természete és formátuma a
which alfunkciótól függ. Néhány
funkciónak szüksége van a
name paraméterre,
hogy megnevezzen egy jelenleg betöltött modult,
néhány másik megengedi hogy a
name
értéke
NULL legyen, jelezve a magát a kernelt.
A WHICH ÉRTÉKEI¶
- 0
- Mindig sikerrel tér vissza. A rendszerhívás
tesztelésére használható.
- QM_MODULES
- A betöltött modulok nevét adja vissza. A
kimenő puffer formátuma egymás után
sorakozó nullára végződő stringek; a
ret értéke a modulok száma.
- QM_DEPS
- Visszaadja a megadott modul által használt összes
modul nevét. A kimenő puffer formátuma egymás
után sorakozó nullára végződő
stringek; a ret értéke a modulok száma.
- QM_REFS
- Visszaadja az összes modul nevét, amelyik a megadott modult
használja. Ez a QM_DEPS fordítottja. A kimenő
puffer formátuma egymás után sorakozó
nullára végződő stringek; a ret
értéke a modulok száma.
- QM_SYMBOLS
- Visszaadja a kernel vagy a megadott modul által exportált
szimbólumok nevét és értékét. A
puffer formátuma egy ilyen struktúrákból
álló tömb:
struct module_symbol
{
unsigned long value;
unsigned long name;
};
nullára végződő stringekkel folytatva. A
name
értéke a
buf kezdetéhez képest
relatív karakter offszet; a
ret értéke a
szimbólumok száma.
- QM_INFO
- Egyéb információt ad a megadott modulról. A
kimenő puffer formátuma:
struct module_info
{
unsigned long address;
unsigned long size;
unsigned long flags;
};
ahol a
address a kernel memória cím, ahol a modul helyet
foglal,
size a modul mérete bájtban, és
flags egy maszkolt érték a
következőkből:
MOD_RUNNING,
MOD_AUTOCLEAN,
stb., ami a modul jelenlegi állapotát jelzi. A
ret
értéke a
module_info struktúra
méretét adja meg.
VISSZATÉRÉSI ÉRTÉK¶
Siker esetén zéró. Hiba esetén az
érték -1, és az
errno értéke
megfelelően lesz beállítva.
HIBÁK¶
- ENOENT
- Nincs name nevű modul.
- EINVAL
- Hibás which, vagy name a kernelt jelenti egy olyan
alfunkciónál, ahol ez nem értelmes.
- ENOSPC
- A megadott buffer méret túl kicsi. ret a
minimálisan szükséges méretet
tartalmazza.
- EFAULT
- A name, buf, vagy ret közül
legalább az egyik kívül volt a program által
elérhető címtartományon.
LÁSD MÉG¶
create_module(2),
init_module(2),
delete_module(2).
MAGYAR FORDÍTÁS¶
Böszörményi Zoltán
<zboszor@mail.externet.hu>