> Linux Reviews > man >

init_module


  1. init_module.2.man


1. init_module.2.man

Manpage of INIT_MODULE

INIT_MODULE

Section: Руководство программиста Linux (2)
Updated: 2006-02-09
Index Return to Main Contents
 

ИМЯ

init_module - инициализировать элемент загружаемого модуля  

ОБЗОР

#include <linux/module.h>

int init_module(const char *name, struct module *image);
 

ОПИСАНИЕ

init_module() загружает образ перемещаемого модуля в пространство ядра и запускает функцию init из модуля.

Образ модуля начинается со структуры модуля, за которой следует код и данные. Структура модуля:

struct module {
    unsigned long         size_of_struct;
    struct module        *next;
    const char           *name;
    unsigned long         size;
    long                  usecount;
    unsigned long         flags;
    unsigned int          nsyms;
    unsigned int          ndeps;
    struct module_symbol *syms;
    struct module_ref    *deps;
    struct module_ref    *refs;
    int                 (*init)(void);
    void                (*cleanup)(void);
    const struct exception_table_entry *ex_table_start;
    const struct exception_table_entry *ex_table_end;
#ifdef __alpha__
    unsigned long gp;
#endif
};

Все поля указателей, за исключением next и refs, указывают в тело модуля и будут инициализированы в соответствии с адресным пространством ядра, то есть перемещены с остальной частью модуля.

Данный системный вызов требует особых прав.  

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

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

ОШИБКИ

EBUSY
Процедура инициализации из модуля завершилась неудачно.
EFAULT
name или image вне доступного программного адресного пространства.
EINVAL
Какой-то из слотов image заполнен неправильно, image->name не соответствует первоначальному имени модуля, какой-то элемент image->deps не соответствует загружаемому модулю, или возникло какое-то подобное расхождение.
ENOENT
Модуль с таким именем не существует.
EPERM
Вызывающий не имеет прав (не имеет мандата CAP_SYS_MODULE).
 

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

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

СМОТРИТЕ ТАКЖЕ

create_module(2), delete_module(2), query_module(2)


 

Index

ИМЯ
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
СООТВЕТСТВИЕ СТАНДАРТАМ
СМОТРИТЕ ТАКЖЕ

This document was created by man2html using the manual pages.
Time: 17:41:21 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - SVENSKA - ja - pl