init_module
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  appro-
       priate for kernel space, i.e. relocated 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 cor-
              respond to the original module name, some image->deps entry does
              not correspond to a loaded module, or some other similar  incon-
              sistency.
       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                   INIT_MODULE(2)