Provided by: manpages-pl-dev_0.7-2_all bug

NAZWA

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

SKŁADNIA

       #include <linux/module.h>

       int get_kernel_syms(struct kernel_sym *table);

       Uwaga: W nagłówkach glibc nie udostępnia się deklaracji tego wywołania systemowego, zob. UWAGI.

OPIS

       Uwaga: To wywołanie systemowe jest obecne tylko w jądrach Linuksa wcześniejszych niż 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

       W  przypadku  powodzenia  zwracana  jest  liczba symboli skopiowanych do table. W razie wystąpienia błędu
       zwracane jest -1 i ustawiana jest odpowiednia wartość zmiennej errno.

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.

WERSJE

       To wywołanie systemowe jest obecne w Linuksie tylko do wersji 2.4 jądra; zostało usunięte w Linuksie 2.6.

ZGODNE Z

       get_kernel_syms() jest specyficzna dla Linuksa.

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).

UWAGI

       To przestarzałe wywołanie systemowe nie jest obsługiwane przez glibc. W  nagłówkach  glibc  nie  ma  jego
       deklaracji,  ale  z  powodów pewnych zaszłości historycznych wersje glibc przed 2.23 eksportowały ABI dla
       tego wywołania systemowego. Z tego powodu, aby go użyć wystarczyło  manualnie  zadeklarować  interfejs  w
       swoim kodzie; alternatywnie można wywołać to wywołanie systemowe za pomocą syscall(2).

ZOBACZ TAKŻE

       create_module(2), delete_module(2), init_module(2), query_module(2)

O STRONIE

       Angielska  wersja  tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje
       dotyczące  zgłaszania   błędów,   oraz   najnowszą   wersję   oryginału   można   znaleźć   pod   adresem
       https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

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

       Polskie tłumaczenie jest częścią  projektu  manpages-pl;  uwagi,  pomoc,  zgłaszanie  błędów  na  stronie
       http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją  4.07 oryginału.

Linux                                              2016-03-15                                 GET_KERNEL_SYMS(2)