create_module(2)

НАИМЕНОВАНИЕ
create_module - создаёт запись загружаемого модуля

ОБЗОР
#include <linux/module.h>

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

ОПИСАНИЕ
Note (примечание): Данный системный вызов доступен только в ядрах до Linux 2.6.

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

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается адрес расположения модуля в ядре. В случае ошибки возвращается -1, а значение errno является индикатором ошибки.

ОШИБКИ

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

EFAULT
    name (имя) находится вне доступного программного адресного пространства.

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

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

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

EPERM
    Вызывающая сторона не имеет привилегий (не имеет прав доступа CAP_SYS_MODULE).

СТАНДАРТЫ
Linux.

ИСТОРИЯ
Удалён в Linux 2.6.

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

СМОТРИТЕ ТАКЖЕ
delete_module(2), init_module(2), query_module(2)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Aleksandr Felda <isk8da@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).