Provided by: manpages-pl-dev_20051117-1_all bug

NAZWA

       init_module - inicjalizacja wpisu ładowalnego modułu

SKŁADNIA

       #include <linux/module.h>

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

OPIS

       init_module  ładuje  do  przestrzeni  jądra  przesunięty obraz modułu i
       wykonuje funkcję init tego modułu.

       Obraz modułu rozpoczyna się od struktury modułu, po  której  następują,
       odpowiednio,   kod   i   dane.   Struktura   modułu  jest  zdefiniowana
       następująco:

              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
              };

       Wszystkie pola wskazujące, oprócz next i  refs,  powinny  wskazywać  na
       adresy  w  ciele  modułu  i  zostać  zainicjalizowane  odpowiednio  dla
       przestrzeni adresowej jądra, tzn. przesunięte wraz z resztą modułu.

       Ta funkcja jest dostępna jedynie dla superużytkownika.

RETURN VALUE

       W przypadku sukcesu  zwracane  jest  zero.  W  przypadku  błędu,  -1  i
       odpowiednio ustawiane jest errno.

BŁĘDY

       EPERM  Użytkownik nie jest superużytkownikiem.

       ENOENT Nie istnieje moduł o tej nazwie.

       EINVAL Któryś z wpisów image jest wypęłniony nieprawidłowo, image->name
              różni  się  od  oryginalnej  nazwy  modułu,  któryś   z   wpisów
              image->deps nie odpowiada żadnemu załadowanemu modułowi lub inna
              podobna niespójność.

       EBUSY  Procedura inicjalizacji modułu zakończyła się niepowodzeniem.

       EFAULT name lub image znajduje się poza dostępną przestrzenią adresową.

ZOBACZ TAKŻE

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