Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   create_module - создать элемент загружаемого модуля

create_module(2) создать элемент загружаемого модуля


ОБЗОР

#include <linux/module.h>


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

Замечание: В заголовочных файлах glibc эта функция отсутствует; смотрите


ЗАМЕЧАНИЯ.


ОПИСАНИЕ

Замечание: Данный системный вызов доступен только в ядрах до Linux 2.6.

create_module() пытается создать элемент загружаемого модуля и зарезервировать память ядра, которая необходима для хранения модуля. Данный системный вызов требует особых прав.


ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении возвращается адрес в ядре, где будет располагаться модуль. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.


ОШИБКИ

EEXIST Модуль с таким именем уже существует.

EFAULT name вне доступного программного адресного пространства.

EINVAL Запрашиваемый размер мал даже для информационного заголовка модуля.

ENOMEM Ядро не может выделить непрерывный блок памяти, необходимый для модуля.

ENOSYS create_module() не поддерживается в этой версии ядра (например, в 2.6 или более поздних).

EPERM Вызывающий не имеет прав (не имеет мандата CAP_SYS_MODULE).

ВЕРСИИ

Данный системный вызов есть только в Linux до версии 2.4; он был удалён в Linux 2.6.


СООТВЕТСТВИЕ СТАНДАРТАМ

create_module() есть только в Linux.


ЗАМЕЧАНИЯ

Системный вызов create_module() не поддерживается glibc. В заголовочных файлах glibc он не объявлен, но в недавнем прошлом glibc экспортировал ABI для этого системного вызова. Поэтому чтобы получить данный системный вызов достаточно вручную объявить интерфейс в своём коде; или же вы можете вызвать его через syscall(2).