query_module(2) System Calls Manual query_module(2) NUME query_module - interogheaza nucleul pentru diverse lucruri referitoare la module SINOPSIS #include [[depreciat]] int query_module(size_t bufsize; const char *name, int which, void buf[bufsize], size_t bufsize, size_t *ret); DESCRIERE Nota: Acest apel de sistem este prezent numai inainte de Linux 2.6. query_module() solicita informaii de la nucleu despre modulele incarcabile. Informaiile returnate sunt plasate in memoria tampon indicata de buf. Apelantul trebuie sa precizeze dimensiunea lui buf in bufsize. Natura i formatul exact al informaiilor returnate depind de operaia specificata de which. Unele operaii necesita ca name sa identifice un modul incarcat in mod curent, altele permit ca name sa fie NULL, indicand nucleul propriu-zis. Urmatoarele valori pot fi specificate in which: 0 Returneaza succes, daca nucleul accepta query_module(). Utilizata pentru a verifica disponibilitatea apelului de sistem. QM_MODULES Returneaza numele tuturor modulelor incarcate. Memoria tampon returnata consta dintr-o secvena de iruri cu terminaie nula; ret este stabilit la numarul de module. QM_DEPS Returneaza numele tuturor modulelor utilizate de modulul indicat. Memoria tampon returnata consta dintr-o secvena cu terminaie nula; ret este stabilit la numarul de module. QM_REFS Returneaza numele tuturor modulelor care utilizeaza modulul indicat. Acesta este inversul lui QM_DEPS. Memoria tampon returnata consta dintr-o secvena cu terminaie nula; ret este stabilit la numarul de module. QM_SYMBOLS Returneaza simbolurile i valorile exportate de nucleu sau de modulul indicat. Memoria tampon returnata este o matrice de structuri de forma urmatoare struct module_symbol { unsigned long value; unsigned long name; }; urmata de iruri de caractere cu terminaie nula. Valoarea lui name este decalajul de caractere al irului de caractere in raport cu inceputul lui buf; ret este stabilit la numarul de simboluri. QM_INFO Returneaza diverse informaii despre modulul indicat. Formatul memoriei tampon de ieire este: struct module_info { unsigned long address; unsigned long size; unsigned long flags; }; unde address este adresa nucleului la care se afla modulul, size este dimensiunea modulului in octei, iar flags este o masca de MOD_RUNNING, MOD_AUTOCLEAN i aa mai departe, care indica starea curenta a modulului (a se vedea fiierul sursa al nucleului Linux include/linux/module.h). ret este stabilit la dimensiunea structurii module_info. VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EFAULT Cel puin unul dintre name, buf sau ret se afla in afara spaiului de adrese accesibil programului. EINVAL which nevalid; sau name este NULL (indicand ,,nucleul"), dar acest lucru nu este permis cu valoarea specificata pentru which. ENOENT Nu exista niciun modul cu acest nume name. ENOSPC Dimensiunea memoriei tampon furnizate a fost prea mica. ret este stabilit la dimensiunea minima necesara. ENOSYS query_module() nu este compatibil cu aceasta versiune a nucleului (de exemplu, Linux 2.6 sau o versiune ulterioara). STANDARDE Linux. VERSIUNI Eliminat in Linux 2.6. Unele dintre informaiile care erau disponibile anterior prin query_module() pot fi obinute din /proc/modules, /proc/kallsyms i din fiierele din directorul /sys/module. Apelul de sistem query_module() nu este acceptat de glibc. In anteturile glibc nu este furnizata nicio declaraie, dar, printr-o ciudaenie a istoriei, glibc exporta un ABI pentru acest apel de sistem. Prin urmare, pentru a utiliza acest apel de sistem, este suficient sa declarai manual interfaa in codul dumneavoastra; alternativ, putei invoca apelul de sistem utilizand syscall(2). CONSULTAI I create_module(2), delete_module(2), get_kernel_syms(2), init_module(2), lsmod(8), modinfo(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.18 7 septembrie 2025 query_module(2)