Scroll to navigation

CREATE_MODULE(2) Руководство программиста Linux CREATE_MODULE(2)

ИМЯ

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

СИНТАКСИС

#include <linux/module.h>
caddr_t create_module(const char *name, size_t size);

Замечание: В заголовочных файлах glibc этой системный вызов отсутствует; смотрите ЗАМЕЧАНИЯ.

ОПИСАНИЕ

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

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

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

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

ОШИБКИ

Модуль с таким именем уже существует.
name вне доступного программного адресного пространства.
Запрашиваемый размер мал даже для информационного заголовка модуля.
Ядро не может выделить непрерывный блок памяти, необходимый для модуля.
create_module() не поддерживается в этой версии ядра (например, в 2.6 или более поздних).
Вызывающий не имеет прав (не имеет мандата CAP_SYS_MODULE).

ВЕРСИИ

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

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

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

ЗАМЕЧАНИЯ

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

СМ. ТАКЖЕ

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

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

15 сентября 2017 г. Linux