INIT_MODULE(2) Linux Module Support INIT_MODULE(2)
NAME
init_module - initialize a loadable module entry
SYNOPSIS#include<linux/module.h>intinit_module(constchar*name,structmodule*image);DESCRIPTIONinit_module loads the relocated module image into kernel
space and runs the module's init function.
The module image begins with a module structure and is
followed by code and data as appropriate. The module
structure is defined as follows:
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
};
All of the pointer fields, with the exception of next and
refs, are expected to point within the module body and be
initialized as appropriate for kernel space, i.e. relo-
cated with the rest of the module.
This system call is only open to the superuser.
RETURNVALUE
On success, zero is returned. On error, -1 is returned
and errno is set appropriately.
ERRORSEPERM The user is not the superuser.
ENOENT No module by that name exists.
EINVAL Some image slot filled in incorrectly, image->name
does not correspond to the original module name,
some image->deps entry does not correspond to a
loaded module, or some other similar inconsistency.
EBUSY The module's initialization routine failed.
EFAULTname or image is outside the program's accessible
address space.
SEEALSOcreate_module(2), delete_module(2), query_module(2).
Linux 2.1.17 26 Dec 1996 1