table of contents
- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
create_module(2) | System Calls Manual | 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 до версии 2.4; в версии Linux 2.6 он был удалён.
СТАНДАРТЫ¶
create_module() есть только в Linux.
ПРИМЕЧАНИЯ¶
Устаревший системный вызов, не поддерживается glibc. В заголовках glibc не поддерживается, но, по странности истории, версии glibc до glibc 2.23 экспортировали ABI для этого системного вызова. Поэтому, чтобы получить данный системный вызов достаточно вручную объявить код интерфейса или же можно вызвать его через syscall(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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
2022-12-04 | Страницы руководства Linux 6.03 |