init_module - initialize a loadable module entry
SYNOPSIS
#include <linux/module.h>
int init_module(const char *name, struct module *image);
DESCRIPTION
init_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.
RETURN VALUE
On success, zero is returned. On error, -1 is returned
and errno is set appropriately.
ERRORS
EPERM The user is not the superuser.
ENOENT No module by that name exists.
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.
EFAULT name or image is outside the program's accessible
address space.
SEE ALSO
create_module(2), delete_module(2), query_module(2).
Man(1) output converted with
man2html