- online man pages   

Linux man pages : init_module (2)
INIT_MODULE(2)		     Linux Module Support		INIT_MODULE(2)


init_module - initialize a loadable module entry


#include <linux/module.h> int init_module(const char *name, struct module *image);


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 appro- priate for kernel space, i.e. relocated with the rest of the module. This system call is only open to the superuser.


On success, zero is returned. On error, -1 is returned and errno is set appropriately.


EPERM The user is not the superuser. ENOENT No module by that name exists. EINVAL Some image slot filled in incorrectly, image->name does not cor- respond to the original module name, some image->deps entry does not correspond to a loaded module, or some other similar incon- sistency. EBUSY The module's initialization routine failed. EFAULT name or image is outside the program's accessible address space.


create_module(2), delete_module(2), query_module(2). Linux 2.1.17 26 Dec 1996 INIT_MODULE(2)