Man Pages

init_module(2) - phpMan init_module(2) - phpMan

Command: man perldoc info search(apropos)  


INIT_MODULE(2)             Linux Programmer's Manual            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 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.22 of the Linux man-pages project.  A description of the project,  and  informa-
       tion about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.



Linux                             2006-02-09                    INIT_MODULE(2)