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 [AT] mail.hu>