CREATE_MODULE(2)

NAZWA
create_module - tworzy wpis ładowalnego modułu

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

caddr_t create_module(const char *name, size_t size);

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

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

create_module() attempts to create a loadable module entry and reserve the kernel memory that will be needed to hold the module. This system call requires privilege.

WARTOŚĆ ZWRACANA
On success, returns the kernel address at which the module will reside. On error, -1 is returned and errno is set to indicate the error.

BŁĘDY

EEXIST
    Moduł o takiej nazwie już istnieje.

EFAULT
    name jest poza dostępną przestrzenią adresową.

EINVAL
    Żądany rozmiar jest zbyt mały, nawet na informacje z nagłówka modułu.

ENOMEM
    Kernel nie mógł przydzielić dostatecznie dużego, ciągłego bloku pamięci by pomieścić moduł.

ENOSYS
    create_module() is not supported in this version of the kernel (e.g., the kernel is version 2.6 or later).

EPERM
    The caller was not privileged (did not have the CAP_SYS_MODULE capability).

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
create_module() is Linux-specific.

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

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.