ABCDEFGHIJKLMNOPQRSTUVWXYZ

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)