get_kernel_syms(2)

NAZWA
get_kernel_syms - pobranie udostępnionych symboli jądra i modułów

SKŁADNIA
#include <linux/module.h>

[[deprecated]] int get_kernel_syms(struct kernel_sym *table);

OPIS
Note: This system call is present only before Linux 2.6.

Jeśli table jest równe NULL, get_kernel_syms() zwraca liczbę symboli dostępnych dla zapytania. W przeciwnym wypadku wypełniana jest tabela struktur:

    struct kernel_sym {
        unsigned long value;
        char          name[60];
    };

Symbole są przeplatane magicznymi symbolami o postaci #nazwa-modułu, gdzie jądru odpowiada pusta nazwa.Wartością związaną z symbolem tej postaci jest adres, pod którym moduł został załadowany.

Symbole udostępniane przez poszczególne moduły następują po magicznych znacznikach modułów, a same moduły są zwracane kolejności odwrotnej do kolejności ich załadowania.

WARTOŚĆ ZWRACANA
On success, returns the number of symbols copied to table. On error, -1 is returned and errno is set to indicate the error.

BŁĘDY
Istnieje tylko jeden możliwy powód zwrócenia błędu:

ENOSYS
    get_kernel_syms() nie jest obsługiwane w tej wersji jądra.

STANDARDY
Linux.

HISTORIA
Removed in Linux 2.6.

This obsolete system call is not supported by glibc. No declaration is provided in glibc headers, but, through a quirk of history, glibc versions before glibc 2.23 did export an ABI for this system call. Therefore, in order to employ this system call, it was sufficient to manually declare the interface in your code; alternatively, you could invoke the system call using syscall(2).

BŁĘDY
Nie ma możliwości wskazania rozmiaru bufora przydzielonego dla table. Jeśli po zapytaniu przez program o rozmiar tabeli symboli zostały dodane do jądra nowe symbole, pamięć może zostać zamazana.

Długość nazw udostępnianych symboli jest ograniczona do 59 znaków.

Z powodu powyższych ograniczeń, to wywołanie systemowe jest przestarzałe, zamiast tego wywołanie systemowego zalecane jest query_module(2) (które dziś również jest uważane za przestarzałe na rzecz innych interfejsów opisanych na stronie podręcznika tego wywołania systemowego).

ZOBACZ TAKŻE
create_module(2), delete_module(2), init_module(2), query_module(2)

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.