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 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,  i.e.  relo-
       cated 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                          1