NÉV¶
init_module - inicializál egy betölthető modul
területet.
ÁTTEKINTÉS¶
#include <linux/module.h>
int init_module(const char *name, struct module *image);
LEÍRÁS¶
init_module betölti a relokált modul image-et a kernel
területére, és futtatja a modul
init
függvényét.
A modul image egy modul struktúrával kezdődik és
rendszerint a kód és adat részekkel folytatódik. A
modul struktúra a következő:
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
};
Minden pointer mező, kivéve a
next és
refs
mezőket, a modul területén belülre kell hogy
mutassanak, és a kernel területének megfelelően
inicializálódnak, pl. áthelyeződnek a modul
többi részével együtt.
Ezt a rendszerhívást csak a superuser használhatja.
VISSZATÉRÉSI ÉRTÉK¶
Siker esetén zéró. Hiba esetén az
érték -1, és az
errno értéke
megfelelően lesz beállítva.
HIBÁK¶
- EPERM
- A felhasználó nem a superuser.
- ENOENT
- Nincs ilyen nevű modul.
- EINVAL
- Néhány image mutató helytelen,
image->name nem felel meg az eredeti modul nevének,
néhány image->deps hivatkozás nem felel meg
a betöltött modulnak, vagy hasonló inkonzisztencia
történt.
- EBUSY
- A modul inicializáló rutinja sikertelen volt.
- EFAULT
- name vagy image kívül esik a program
által elérhető cimtartományon.
LÁSD MÉG¶
create_module(2),
delete_module(2),
query_module(2).
MAGYAR FORDÍTÁS¶
Böszörményi Zoltán
<zboszor@mail.externet.hu>