ОБЗОР
#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).