Provided by: manpages-ro-dev_4.27.0-1_all bug

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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                    query_module(2)