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 appropriate for
      kernel space, that is, relocated with the rest of the
      module.
This system call requires privilege.
The module's initialization routine failed.
name or
            image is
            outside the program's accessible address space.
Some image
            slot is 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.
No module by that name exists.
The caller was not privileged (did not have the
            CAP_SYS_MODULE
            capability).
This page is part of release 3.33 of the Linux man-pages project. A
      description of the project, and information about reporting
      bugs, can be found at http://man7.org/linux/man-pages/.
| Copyright (C) 1996 Free Software Foundation, Inc. This file is distributed according to the GNU General Public License. See the file COPYING in the top level source directory for details. 2006-02-09, some reformatting by Luc Van Oostenryck; some reformatting and rewordings by mtk |