Provided by: modutils_2.4.27.0-3ubuntu1_i386 bug

NAME

       query_module - query the kernel for various bits pertaining to modules.

SYNOPSIS

       #include <linux/module.h>

       int query_module(const char *name, int which,
       void *buf, size_t bufsize, size_t *ret);

DESCRIPTION

       query_module requests information related to loadable modules from  the
       kernel.   The  precise nature of the information and its format depends
       on the which sub function.  Some  functions  require  name  to  name  a
       currently  loaded  module,  some  allow  name to be NULL indicating the
       kernel proper.

   VALUES OF WHICH
       0      Always returns success.  Used to probe for the system call.

       QM_MODULES
              Returns the names of all  loaded  modules.   The  output  buffer
              format  is  adjacent  null-terminated strings; ret is set to the
              number of modules.

       QM_DEPS
              Returns the names of all modules used by the  indicated  module.
              The  output  buffer  format is adjacent null-terminated strings;
              ret is set to the number of modules.

       QM_REFS
              Returns the names of all modules  using  the  indicated  module.
              This  is  the  inverse  of QM_DEPS.  The output buffer format is
              adjacent null-terminated strings; ret is set to  the  number  of
              modules.

       QM_SYMBOLS
              Returns  the  symbols  and  values exported by the kernel or the
              indicated module.  The buffer format is an array of:

              struct module_symbol
              {
                unsigned long value;
                unsigned long name;
              };

              followed by null-terminated strings.  The value of name  is  the
              character offset of the string relative to the start of buf; ret
              is set to the number of symbols.

       QM_INFO
              Returns miscellaneous information about  the  indicated  module.
              The output buffer format is:

              struct module_info
              {
                unsigned long address;
                unsigned long size;
                unsigned long flags;
              };

              where address is the kernel address at which the module resides,
              size is the size of the module in bytes, and flags is a mask  of
              MOD_RUNNING,  MOD_AUTOCLEAN,  et  al  that indicates the current
              status of the module.  ret is set to the size of the module_info
              struct.

RETURN VALUE

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

ERRORS

       ENOENT No module by that name exists.

       EINVAL Invalid which, or name indicates the kernel for an inappropriate
              sub function.

       ENOSPC The  buffer  size  provided  was  too  small.  ret is set to the
              minimum size needed.

       EFAULT At least one of name, buf, or  ret  was  outside  the  program’s
              accessible address space.

SEE ALSO

       create_module(2), init_module(2), delete_module(2).