home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | SEE ALSO | COLOPHONThe Linux Programming Interface


INIT_MODULE(2)                Linux Programmer's Manual                INIT_MODULE(2)

NAME         top

       init_module - initialize a loadable module entry

SYNOPSIS         top

       #include <linux/module.h>

       int init_module(const char *name, struct module *image);

DESCRIPTION         top

       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.

RETURN VALUE         top

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

ERRORS         top

       EBUSY  The module's initialization routine failed.

       EFAULT name or image is outside the program's accessible address space.

       EINVAL 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.

       ENOENT No module by that name exists.

       EPERM  The caller was not privileged (did not have the CAP_SYS_MODULE
              capability).

CONFORMING TO         top

       init_module() is Linux-specific.

SEE ALSO         top

       create_module(2), delete_module(2), query_module(2)

COLOPHON         top

       This page is part of release 3.32 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

Linux                                 2006-02-09                       INIT_MODULE(2)

HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface

customisable
counter