Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

RedHat 9 (Linux i386) - man page for init_module (redhat section 2)

INIT_MODULE(2)						       Linux Module Support						    INIT_MODULE(2)

NAME
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 fol- lows: 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.
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. 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. EFAULT name or image is outside the program's accessible address space.
SEE ALSO
create_module(2), delete_module(2), query_module(2). Linux 2.1.17 26 Dec 1996 INIT_MODULE(2)