1 .\" Copyright (C) 1996 Free Software Foundation, Inc.
2 .\" This file is distributed according to the GNU General Public License.
3 .\" See the file COPYING in the top level source directory for details.
5 .\" 2006-02-09, some reformatting by Luc Van Oostenryck; some
6 .\" reformatting and rewordings by mtk
8 .TH QUERY_MODULE 2 "2002" "Linux" "Linux Module Support"
10 query_module \- query the kernel for various bits pertaining to modules.
13 .B #include <linux/module.h>
15 .BI "int query_module(const char *" name ", int " which ",
16 .BI "void *" buf ", size_t " bufsize ", size_t *" ret );
20 requests information from the kernel about loadable modules.
21 The returned information is placed in the buffer pointed to by
23 The caller must specify the size of
27 The precise nature and format of the returned information
28 depend on the operation specified by
30 Some operations require
32 to identify a currently loaded module, some allow
34 to be NULL, indicating the kernel proper.
36 The following values can be specified for
40 Always returns success.
41 Used to probe for availability of the system call.
44 Returns the names of all loaded modules.
45 The returned buffer consists of a sequence of null-terminated strings;
47 is set to the number of
51 Returns the names of all modules used by the indicated module.
52 The returned buffer consists of a sequence of null-terminated strings;
54 is set to the number of modules.
57 Returns the names of all modules using the indicated module. This is
60 The returned buffer consists of a sequence of null-terminated strings;
62 is set to the number of modules.
65 Returns the symbols and values exported by the kernel or the indicated
67 The returned buffer is an array of structures of the following form
71 struct module_symbol {
77 followed by null-terminated strings.
80 is the character offset of the string relative to the start of
83 is set to the number of symbols.
87 Returns miscellaneous information about the indicated module. The output
93 unsigned long address;
101 is the kernel address at which the module resides,
103 is the size of the module in bytes, and
108 etc. that indicates the current status of the module
109 (see the kernel source file
110 .IR include/linux/module.h ).
112 is set to the size of the
117 On success, zero is returned. On error, \-1 is returned and
119 is set appropriately.
128 was outside the program's accessible address space.
135 is NULL (indicating "the kernel"),
136 but this is not permitted with the specified value of
138 .\" Not permitted with QM_DEPS, QM_REFS, or QM_INFO.
146 The buffer size provided was too small.
148 is set to the minimum size needed.
153 This system call is only present on Linux up until kernel 2.4;
154 it was removed in Linux 2.6.
155 .\" Removed in Linux-2.5.48
156 Some of the information that was available via
164 .BR create_module (2),
165 .BR delete_module (2),
166 .BR get_kernel_syms (2),