Man page - query_module(2)

Packages contains this manual

Available languages:

en fr ja ru ro zh_TW zh_CN

Manual

query_module

NUME
SINOPSIS
DESCRIERE
VALOAREA RETURNATĂ
ERORI-IEȘIRE
STANDARDE
VERSIUNI
CONSULTAȚI ȘI
TRADUCERE

NUME

query_module - interoghează nucleul pentru diverse lucruri referitoare la module

SINOPSIS

#include <linux/module.h>

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

DESCRIERE

Notă : Acest apel de sistem este prezent numai înainte de Linux 2.6.

query_module () solicită informații de la nucleu despre modulele încărcabile. Informațiile returnate sunt plasate în memoria tampon indicată de buf . Apelantul trebuie să precizeze dimensiunea lui buf în bufsize . Natura și formatul exact al informațiilor returnate depind de operația specificată de which . Unele operații necesită ca name să identifice un modul încărcat în mod curent, altele permit ca name să fie NULL, indicând nucleul propriu-zis.

Următoarele valori pot fi specificate în which :

0

Returnează succes, dacă nucleul acceptă query_module (). Utilizată pentru a verifica disponibilitatea apelului de sistem.

QM_MODULES

Returnează numele tuturor modulelor încărcate. Memoria tampon returnată constă dintr-o secvență de șiruri cu terminație nulă; ret este stabilit la numărul de module.

QM_DEPS

Returnează numele tuturor modulelor utilizate de modulul indicat. Memoria tampon returnată constă dintr-o secvență cu terminație nulă; ret este stabilit la numărul de module.

QM_REFS

Returnează numele tuturor modulelor care utilizează modulul indicat. Acesta este inversul lui QM_DEPS . Memoria tampon returnată constă dintr-o secvență cu terminație nulă; ret este stabilit la numărul de module.

QM_SYMBOLS

Returnează simbolurile și valorile exportate de nucleu sau de modulul indicat. Memoria tampon returnată este o matrice de structuri de forma următoare

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

urmată de șiruri de caractere cu terminație nulă. Valoarea lui name este decalajul de caractere al șirului de caractere în raport cu începutul lui buf ; ret este stabilit la numărul de simboluri.

QM_INFO

Returnează diverse informații despre modulul indicat. Formatul memoriei tampon de ieșire este:

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

unde address este adresa nucleului la care se află modulul, size este dimensiunea modulului în octeți, iar flags este o mască de MOD_RUNNING , MOD_AUTOCLEAN și așa mai departe, care indică starea curentă a modulului (a se vedea fișierul sursă al nucleului Linux include/linux/module.h ). ret este stabilit la dimensiunea structurii module_info .

VALOAREA RETURNATĂ

În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EFAULT

Cel puțin unul dintre name , buf sau ret se afla în afara spațiului de adrese accesibil programului.

EINVAL

which nevalid; sau name este NULL (indicând „nucleul”), dar acest lucru nu este permis cu valoarea specificată pentru which .

ENOENT

Nu există niciun modul cu acest nume name .

ENOSPC

Dimensiunea memoriei tampon furnizate a fost prea mică. ret este stabilit la dimensiunea minimă necesară.

ENOSYS

query_module () nu este compatibil cu această versiune a nucleului (de exemplu, Linux 2.6 sau o versiune ulterioară).

STANDARDE

Linux.

VERSIUNI

Eliminat în Linux 2.6.

Unele dintre informațiile care erau disponibile anterior prin query_module () pot fi obținute din /proc/modules , /proc/kallsyms și din fișierele din directorul /sys/module .

Apelul de sistem query_module () nu este acceptat de glibc. În anteturile glibc nu este furnizată nicio declarație, dar, printr-o ciudățenie a istoriei, glibc exportă un ABI pentru acest apel de sistem. Prin urmare, pentru a utiliza acest apel de sistem, este suficient să declarați manual interfața în codul dumneavoastră; alternativ, puteți invoca apelul de sistem utilizând syscall (2).

CONSULTAȚI ȘI

create_module (2), delete_module (2), get_kernel_syms (2), init_module (2), lsmod (8), modinfo (8)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net .