INIT_MODULE(2)

NAZWA
init_module - inicjalizacja wpisu ładowalnego modułu

SKŁADNIA
#include <linux/module.h>

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

OPIS
Uwaga! To tłumaczenie może być nieaktualne!

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).

INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:

    man --locale=C 2 init_module

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.