GNU/Linux |
RedHat 6.2(Zoot) |
|
![]() |
query_module(2) |
![]() |
query_module − query the kernel for various bits pertaining to modules.
#include <linux/module.h>
int
query_module(const char *name, int
which,
void *buf, size_t bufsize,
size_t *ret);
query_module requests information related to loadable modules from the kernel. The precise nature of the information and its format depends on the which subfunction. 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 miscelaneous 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.
On success, zero is returned. On error, −1 is returned and errno is set appropriately.
ENOENT |
No module by that name exists. | ||
EINVAL |
Invalid which, or name indicates the kernel for an inappropriate subfunction. | ||
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. |
create_module(2), init_module(2), delete_module(2).
![]() |
query_module(2) | ![]() |