Provided by: manpages-pl-dev_4.15.0-9_all
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
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.
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.
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).
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)
O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.13 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 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⟩.