Provided by: manpages-dev_3.35-0.1ubuntu1_all bug

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

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

ERRORS

       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

       init_module() is Linux-specific.

SEE ALSO

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

COLOPHON

       This  page  is  part of release 3.35 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/.