init_module

Autres langues

Langue: pl

Autres versions - même langue

Version: 26 grudnia 1996 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

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