# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2013-03-22 01:05+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: build/C/man2/create_module.2:10 #, no-wrap msgid "CREATE_MODULE" msgstr "" #. type: TH #: build/C/man2/create_module.2:10 build/C/man2/get_kernel_syms.2:10 #, no-wrap msgid "2012-10-18" msgstr "" #. type: TH #: build/C/man2/create_module.2:10 build/C/man2/delete_module.2:25 build/C/man2/get_kernel_syms.2:10 build/C/man2/init_module.2:27 build/C/man2/query_module.2:10 #, no-wrap msgid "Linux" msgstr "" #. type: TH #: build/C/man2/create_module.2:10 build/C/man2/delete_module.2:25 build/C/man2/get_kernel_syms.2:10 build/C/man2/init_module.2:27 build/C/man2/query_module.2:10 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: build/C/man2/create_module.2:11 build/C/man2/delete_module.2:26 build/C/man2/get_kernel_syms.2:11 build/C/man2/init_module.2:28 build/C/man2/query_module.2:11 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:13 msgid "create_module - create a loadable module entry" msgstr "" #. type: SH #: build/C/man2/create_module.2:13 build/C/man2/delete_module.2:28 build/C/man2/get_kernel_syms.2:13 build/C/man2/init_module.2:30 build/C/man2/query_module.2:13 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:16 build/C/man2/get_kernel_syms.2:16 build/C/man2/query_module.2:16 #, no-wrap msgid "B<#include Elinux/module.hE>\n" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:18 #, no-wrap msgid "BIB<, size_t >IB<);>\n" msgstr "" #. type: SH #: build/C/man2/create_module.2:19 build/C/man2/delete_module.2:35 build/C/man2/get_kernel_syms.2:19 build/C/man2/init_module.2:41 build/C/man2/query_module.2:23 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:22 build/C/man2/get_kernel_syms.2:22 build/C/man2/query_module.2:26 msgid "B: This system call is present only in kernels before Linux 2.6." msgstr "" #. type: Plain text #: build/C/man2/create_module.2:27 msgid "" "B() attempts to create a loadable module entry and reserve " "the kernel memory that will be needed to hold the module. This system call " "requires privilege." msgstr "" #. type: SH #: build/C/man2/create_module.2:27 build/C/man2/delete_module.2:124 build/C/man2/get_kernel_syms.2:48 build/C/man2/init_module.2:150 build/C/man2/query_module.2:129 #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:32 msgid "" "On success, returns the kernel address at which the module will reside. On " "error -1 is returned and I is set appropriately." msgstr "" #. type: SH #: build/C/man2/create_module.2:32 build/C/man2/delete_module.2:129 build/C/man2/get_kernel_syms.2:54 build/C/man2/init_module.2:155 build/C/man2/query_module.2:134 #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: build/C/man2/create_module.2:33 build/C/man2/init_module.2:194 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:36 msgid "A module by that name already exists." msgstr "" #. type: TP #: build/C/man2/create_module.2:36 build/C/man2/delete_module.2:143 build/C/man2/init_module.2:162 build/C/man2/query_module.2:135 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:40 msgid "I is outside the program's accessible address space." msgstr "" #. type: TP #: build/C/man2/create_module.2:40 build/C/man2/init_module.2:197 build/C/man2/init_module.2:232 build/C/man2/query_module.2:143 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:43 msgid "The requested size is too small even for the module header information." msgstr "" #. type: TP #: build/C/man2/create_module.2:43 build/C/man2/init_module.2:177 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:47 msgid "" "The kernel could not allocate a contiguous block of memory large enough for " "the module." msgstr "" #. type: TP #: build/C/man2/create_module.2:47 build/C/man2/get_kernel_syms.2:56 build/C/man2/query_module.2:163 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:52 msgid "" "B() is not supported in this version of the kernel (e.g., " "the kernel is version 2.6 or later)." msgstr "" #. type: TP #: build/C/man2/create_module.2:52 build/C/man2/delete_module.2:150 build/C/man2/init_module.2:180 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:58 msgid "" "The caller was not privileged (did not have the B " "capability)." msgstr "" #. type: SH #: build/C/man2/create_module.2:58 build/C/man2/get_kernel_syms.2:60 build/C/man2/init_module.2:252 build/C/man2/query_module.2:168 #, no-wrap msgid "VERSIONS" msgstr "" #. Removed in Linux 2.5.48 #. type: Plain text #: build/C/man2/create_module.2:62 build/C/man2/get_kernel_syms.2:64 build/C/man2/query_module.2:172 msgid "" "This system call is only present on Linux up until kernel 2.4; it was " "removed in Linux 2.6." msgstr "" #. type: SH #: build/C/man2/create_module.2:62 build/C/man2/delete_module.2:172 build/C/man2/get_kernel_syms.2:64 build/C/man2/init_module.2:255 build/C/man2/query_module.2:172 #, no-wrap msgid "CONFORMING TO" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:65 msgid "B() is Linux-specific." msgstr "" #. type: SH #: build/C/man2/create_module.2:65 build/C/man2/delete_module.2:202 build/C/man2/get_kernel_syms.2:80 build/C/man2/init_module.2:337 build/C/man2/query_module.2:187 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:69 msgid "B(2), B(2), B(2)" msgstr "" #. type: SH #: build/C/man2/create_module.2:69 build/C/man2/delete_module.2:209 build/C/man2/get_kernel_syms.2:85 build/C/man2/init_module.2:343 build/C/man2/query_module.2:194 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: build/C/man2/create_module.2:76 build/C/man2/delete_module.2:216 build/C/man2/get_kernel_syms.2:92 build/C/man2/init_module.2:350 build/C/man2/query_module.2:201 msgid "" "This page is part of release 3.50 of the Linux I project. A " "description of the project, and information about reporting bugs, can be " "found at http://www.kernel.org/doc/man-pages/." msgstr "" #. type: TH #: build/C/man2/delete_module.2:25 #, no-wrap msgid "DELETE_MODULE" msgstr "" #. type: TH #: build/C/man2/delete_module.2:25 #, no-wrap msgid "2012-11-08" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:28 msgid "delete_module - unload a kernel module" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:31 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:35 build/C/man2/query_module.2:23 msgid "I: There is no glibc wrapper for this system call; see NOTES." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:49 msgid "" "The B() system call attempts to remove the unused loadable " "module entry identified by I. If the module has an I function, " "then that function is executed before unloading the module. The I " "argument is used to modify the behavior of the system call, as described " "below. This system call requires privilege." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:51 msgid "Module removal is attempted according to the following rules:" msgstr "" #. type: IP #: build/C/man2/delete_module.2:51 #, no-wrap msgid "1." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:55 msgid "" "If there are other loaded modules that depend on (i.e., refer to symbols " "defined in) this module, then the call fails." msgstr "" #. type: IP #: build/C/man2/delete_module.2:55 #, no-wrap msgid "2." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:59 msgid "" "Otherwise, if the reference count for the module (i.e., the number of " "processes currently using the module) is zero, then the module is " "immediately unloaded." msgstr "" #. type: IP #: build/C/man2/delete_module.2:59 #, no-wrap msgid "3." msgstr "" #. O_TRUNC == KMOD_REMOVE_FORCE in kmod library #. O_NONBLOCK == KMOD_REMOVE_NOWAIT in kmod library #. type: Plain text #: build/C/man2/delete_module.2:70 msgid "" "If a module has a nonzero reference count, then the behavior depends on the " "bits set in I. In normal usage (see NOTES), the B flag " "is always specified, and the B flag may additionally be specified." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:74 msgid "The various combinations for I have the following effect:" msgstr "" #. type: TP #: build/C/man2/delete_module.2:75 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:78 msgid "The call returns immediately, with an error." msgstr "" #. type: TP #: build/C/man2/delete_module.2:78 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:82 msgid "" "The module is unloaded immediately, regardless of whether it has a nonzero " "reference count." msgstr "" #. type: TP #: build/C/man2/delete_module.2:82 #, no-wrap msgid "B<(flags & O_NONBLOCK) == 0>" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:89 msgid "If I does not specify B, the following steps occur:" msgstr "" #. type: IP #: build/C/man2/delete_module.2:90 build/C/man2/delete_module.2:92 build/C/man2/delete_module.2:97 #, no-wrap msgid "*" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:92 msgid "The module is marked so that no new references are permitted." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:97 msgid "" "If the module's reference count is nonzero, the caller is placed in an " "uninterruptible sleep state (B) until the reference " "count is zero, at which point the call unblocks." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:99 msgid "The module is unloaded in the usual way." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:113 msgid "" "The B flag has one further effect on the rules described above. By " "default, if a module has an I function but no I function, then " "an attempt to remove the module will fail. However, if B was " "specified, this requirement is bypassed." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:124 msgid "" "Using the B flag is dangerous! If the kernel was not built with " "B, this flag is silently ignored. (Normally, " "B is enabled.) Using this flag taints the " "kernel (TAINT_FORCED_RMMOD)." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:129 build/C/man2/query_module.2:134 msgid "" "On success, zero is returned. On error, -1 is returned and I is set " "appropriately." msgstr "" #. type: TP #: build/C/man2/delete_module.2:130 build/C/man2/init_module.2:159 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:143 msgid "" "The module is not \"live\" (i.e., it is still being initialized or is " "already marked for removal); or, the module has an I function but has " "no I function, and B was not specified in I." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:147 msgid "I refers to a location outside the process's accessible address space." msgstr "" #. type: TP #: build/C/man2/delete_module.2:147 build/C/man2/query_module.2:153 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:150 msgid "No module by that name exists." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:161 msgid "" "The caller was not privileged (did not have the B " "capability), or module unloading is disabled (see " "I in B(5))." msgstr "" #. type: TP #: build/C/man2/delete_module.2:161 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:172 msgid "" "Other modules depend on this module; or, B was specified in " "I, but the reference count of this module is nonzero and B " "was not specified in I." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:175 msgid "B() is Linux-specific." msgstr "" #. type: SH #: build/C/man2/delete_module.2:175 build/C/man2/init_module.2:260 build/C/man2/query_module.2:175 #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:178 msgid "" "Glibc does not provide a wrapper for this system call; call it using " "B(2)." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:188 msgid "" "The uninterruptible sleep that may occur if B is omitted from " "I is considered undesirable, because the sleeping process is left in " "an unkillable state. As at Linux 3.7, specifying B is optional, " "but in future kernels it is likely to become mandatory." msgstr "" #. type: SS #: build/C/man2/delete_module.2:188 build/C/man2/init_module.2:272 #, no-wrap msgid "Linux 2.4 and earlier" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:190 msgid "In Linux 2.4 and earlier, the system call took only one argument:" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:192 msgid "B< int delete_module(const char *>IB<);>" msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:196 msgid "If I is NULL, all unused modules marked auto-clean are removed." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:202 msgid "" "Some further details of differences in the behavior of B() " "in Linux 2.4 and earlier are I currently explained in this manual page." msgstr "" #. type: Plain text #: build/C/man2/delete_module.2:209 msgid "" "B(2), B(2), B(2), B(8), " "B(8), B(8)" msgstr "" #. type: TH #: build/C/man2/get_kernel_syms.2:10 #, no-wrap msgid "GET_KERNEL_SYMS" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:13 msgid "get_kernel_syms - retrieve exported kernel and module symbols" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:18 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:29 msgid "" "If I
is NULL, B() returns the number of symbols " "available for query. Otherwise it fills in a table of structures:" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:36 #, no-wrap msgid "" "struct kernel_sym {\n" " unsigned long value;\n" " char name[60];\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:44 msgid "" "The symbols are interspersed with magic symbols of the form " "B<#>I with the kernel having an empty name. The value " "associated with a symbol of this form is the address at which the module is " "loaded." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:48 msgid "" "The symbols exported from each module follow their magic module tag and the " "modules are returned in the reverse of the order in which they were loaded." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:54 msgid "" "On success, returns the number of symbols copied to I
. On error, -1 " "is returned and I is set appropriately." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:56 msgid "There is only one possible error return:" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:60 msgid "B() is not supported in this version of the kernel." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:67 msgid "B() is Linux-specific." msgstr "" #. type: SH #: build/C/man2/get_kernel_syms.2:67 #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:72 msgid "" "There is no way to indicate the size of the buffer allocated for I
. " "If symbols have been added to the kernel since the program queried for the " "symbol table size, memory will be corrupted." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:74 msgid "The length of exported symbol names is limited to 59 characters." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:80 msgid "" "Because of these limitations, this system call is deprecated in favor of " "B(2) (which is itself nowadays deprecated in favor of other " "interfaces described on its manual page)." msgstr "" #. type: Plain text #: build/C/man2/get_kernel_syms.2:85 msgid "" "B(2), B(2), B(2), " "B(2)" msgstr "" #. type: TH #: build/C/man2/init_module.2:27 #, no-wrap msgid "INIT_MODULE" msgstr "" #. type: TH #: build/C/man2/init_module.2:27 #, no-wrap msgid "2013-01-07" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:30 msgid "init_module, finit_module - load a kernel module" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:34 #, no-wrap msgid "" "BIB<, unsigned long >IB<,>\n" "B< const char *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:37 #, no-wrap msgid "" "BIB<, const char *>IB<,>\n" "B< int >IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:41 msgid "I: There are no glibc wrappers for these system calls; see NOTES." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:50 msgid "" "B() loads an ELF image into kernel space, performs any " "necessary symbol relocations, initializes module parameters to values " "provided by the caller, and then runs the module's I function. This " "system call requires privilege." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:58 msgid "" "The I argument points to a buffer containing the binary image " "to be loaded; I specifies the size of that buffer. The module image " "should be a valid ELF image, built for the running kernel." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:69 msgid "" "The I argument is a string containing space-delimited " "specifications of the values for module parameters (defined inside the " "module using B() and B()). The kernel " "parses this string and initializes the specified parameters. Each of the " "parameter specifications has the form:" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:74 msgid "I[B<=>I[B<,>I...]]" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:89 msgid "" "The parameter I is one of those defined within the module using " "I() (see the Linux kernel source file " "I). The parameter I is optional in the " "case of I and I parameters. Values for array parameters are " "specified as a comma-separated list." msgstr "" #. type: SS #: build/C/man2/init_module.2:89 #, no-wrap msgid "finit_module()" msgstr "" #. commit 34e1169d996ab148490c01b65b4ee371cf8ffba2 #. https://lwn.net/Articles/519010/ #. type: Plain text #: build/C/man2/init_module.2:107 msgid "" "The B() system call is like B(), but reads the " "module to be loaded from the file descriptor I. It is useful when the " "authenticity of a kernel module can be determined from its location in the " "file system; in cases where that is possible, the overhead of using " "cryptographically signed modules to determine the authenticity of a module " "can be avoided. The I argument is as for B()." msgstr "" #. commit 2f3238aebedb243804f58d62d57244edec4149b2 #. type: Plain text #: build/C/man2/init_module.2:115 msgid "" "The I argument modifies the operation of B(). It is a " "bit mask value created by ORing together zero or more of the following " "flags:" msgstr "" #. type: TP #: build/C/man2/init_module.2:115 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:118 msgid "Ignore symbol version hashes." msgstr "" #. type: TP #: build/C/man2/init_module.2:118 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:121 msgid "Ignore kernel version magic." msgstr "" #. http://www.tldp.org/HOWTO/Module-HOWTO/basekerncompat.html #. is dated, but informative #. type: Plain text #: build/C/man2/init_module.2:139 msgid "" "There are some safety checks built into a module to ensure that it matches " "the kernel against which it is loaded. These checks are recorded when the " "module is built and verified when the module is loaded. First, the module " "records a \"vermagic\" string containing the kernel version number and " "prominent features (such as the CPU type). Second, if the module was built " "with the B configuration option enabled, a version hash " "is recorded for each symbol the module uses. This hash is based on the " "types of the arguments and return value for the function named by the " "symbol. In this case, the kernel version number within the \"vermagic\" " "string is ignored, as the symbol version hashes are assumed to be " "sufficiently reliable." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:150 msgid "" "Using the B flag indicates that the " "\"vermagic\" string is to be ignored, and the " "B flag indicates that the symbol version " "hashes are to be ignored. If the kernel is built to permit forced loading " "(i.e., configured with B), then loading will " "continue, otherwise it will fail with B as expected for malformed " "modules." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:155 msgid "" "On success, these system calls return 0. On error, -1 is returned and " "I is set appropriately." msgstr "" #. type: TP #: build/C/man2/init_module.2:156 #, no-wrap msgid "B (since Linux 3.7)" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:159 msgid "Module signature is misformatted." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:162 msgid "Timeout while trying to resolve a symbol reference by this module." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:166 msgid "" "An address argument referred to a location that is outside the process's " "accessible address space." msgstr "" #. type: TP #: build/C/man2/init_module.2:166 #, no-wrap msgid "B (since Linux 3.7)" msgstr "" #. commit 48ba2462ace6072741fd8d0058207d630ce93bf1 #. commit 1d0059f3a468825b5fc5405c636a2f6e02707ffa #. commit 106a4ee258d14818467829bf0e12aeae14c16cd7 #. type: Plain text #: build/C/man2/init_module.2:177 msgid "" "Module signature is invalid or the kernel does not have a key for this " "module. This error is returned only if the kernel was configured with " "B; if the kernel was not configured with this " "option, then an invalid or unsigned module simply taints the kernel." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:180 msgid "Out of memory." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:191 msgid "" "The caller was not privileged (did not have the B " "capability), or module loading is disabled (see " "I in B(5))." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:194 msgid "The following errors may additionally occur for B():" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:197 msgid "A module with this name is already loaded." msgstr "" #. .TP #. .BR EINVAL " (Linux 2.4 and earlier)" #. Some #. .I image #. slot is filled in incorrectly, #. .I image\->name #. does not correspond to the original module name, some #. .I image\->deps #. entry does not correspond to a loaded module, #. or some other similar inconsistency. #. type: Plain text #: build/C/man2/init_module.2:213 msgid "" "I is invalid, or some part of the ELF image in I " "contains inconsistencies." msgstr "" #. type: TP #: build/C/man2/init_module.2:213 build/C/man2/init_module.2:236 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:219 msgid "" "The binary image supplied in I is not an ELF image, or is an " "ELF image that is invalid or for a different architecture." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:222 msgid "The following errors may additionally occur for B():" msgstr "" #. type: TP #: build/C/man2/init_module.2:222 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:227 msgid "The file referred to by I is not opened for reading." msgstr "" #. type: TP #: build/C/man2/init_module.2:227 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:232 msgid "The file referred to by I is too large." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:236 msgid "I is invalid." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:240 msgid "I does not refer to an open file." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:252 msgid "" "In addition to the above errors, if the module's I function is " "executed and returns an error, then B() or B() " "fails and I is set to the value returned by the I function." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:255 msgid "B is available since Linux 3.8." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:260 msgid "B() and B() are Linux-specific." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:263 msgid "" "Glibc does not provide a wrapper for these system calls; call them using " "B(2)." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:268 msgid "" "Information about currently loaded modules can be found in I " "and in the file trees under the per-module subdirectories under " "I." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:272 msgid "" "See the Linux kernel source file I for some useful " "background information." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:277 msgid "" "In Linux 2.4 and earlier, the B() system call was rather " "different:" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:279 msgid "B<#include Elinux/module.hE>" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:281 msgid "B< int init_module(const char *>IB<, struct module *>IB<);>" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:289 msgid "" "(User-space applications can detect which version of B() is " "available by calling B(); the latter call fails with the error " "B on Linux 2.6 and later.)" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:300 msgid "" "The older version of the system call loads the relocated module image " "pointed to by I into kernel space and runs the module's I " "function. The caller is responsible for providing the relocated image " "(since Linux 2.6, the B() system call does the relocation)." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:304 msgid "" "The module image begins with a module structure and is followed by code and " "data as appropriate. Since Linux 2.2, the module structure is defined as " "follows:" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:327 #, no-wrap msgid "" "struct module {\n" " unsigned long size_of_struct;\n" " struct module *next;\n" " const char *name;\n" " unsigned long size;\n" " long usecount;\n" " unsigned long flags;\n" " unsigned int nsyms;\n" " unsigned int ndeps;\n" " struct module_symbol *syms;\n" " struct module_ref *deps;\n" " struct module_ref *refs;\n" " int (*init)(void);\n" " void (*cleanup)(void);\n" " const struct exception_table_entry *ex_table_start;\n" " const struct exception_table_entry *ex_table_end;\n" "#ifdef __alpha__\n" " unsigned long gp;\n" "#endif\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/init_module.2:337 msgid "" "All of the pointer fields, with the exception of I and I, are " "expected to point within the module body and be initialized as appropriate " "for kernel space, that is, relocated with the rest of the module." msgstr "" #. type: Plain text #: build/C/man2/init_module.2:343 msgid "" "B(2), B(2), B(2), B(8), " "B(8)" msgstr "" #. type: TH #: build/C/man2/query_module.2:10 #, no-wrap msgid "QUERY_MODULE" msgstr "" #. type: TH #: build/C/man2/query_module.2:10 #, no-wrap msgid "2013-01-27" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:13 msgid "query_module - query the kernel for various bits pertaining to modules" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:19 #, no-wrap msgid "" "BIB<, int >IB<, void " "*>IB<,>\n" "B< size_t >IB<, size_t *>IB<);>\n" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:43 msgid "" "B() requests information from the kernel about loadable " "modules. The returned information is placed in the buffer pointed to by " "I. The caller must specify the size of I in I. The " "precise nature and format of the returned information depend on the " "operation specified by I. Some operations require I to " "identify a currently loaded module, some allow I to be NULL, " "indicating the kernel proper." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:46 msgid "The following values can be specified for I:" msgstr "" #. type: TP #: build/C/man2/query_module.2:46 #, no-wrap msgid "B<0>" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:51 msgid "" "Returns success, if the kernel supports B(). Used to probe " "for availability of the system call." msgstr "" #. type: TP #: build/C/man2/query_module.2:51 #, no-wrap msgid "B" msgstr "" #. ret is set on ENOSPC #. type: Plain text #: build/C/man2/query_module.2:59 msgid "" "Returns the names of all loaded modules. The returned buffer consists of a " "sequence of null-terminated strings; I is set to the number of modules." msgstr "" #. type: TP #: build/C/man2/query_module.2:59 #, no-wrap msgid "B" msgstr "" #. ret is set on ENOSPC #. type: Plain text #: build/C/man2/query_module.2:66 msgid "" "Returns the names of all modules used by the indicated module. The returned " "buffer consists of a sequence of null-terminated strings; I is set to " "the number of modules." msgstr "" #. type: TP #: build/C/man2/query_module.2:66 #, no-wrap msgid "B" msgstr "" #. ret is set on ENOSPC #. type: Plain text #: build/C/man2/query_module.2:75 msgid "" "Returns the names of all modules using the indicated module. This is the " "inverse of B. The returned buffer consists of a sequence of " "null-terminated strings; I is set to the number of modules." msgstr "" #. type: TP #: build/C/man2/query_module.2:75 #, no-wrap msgid "B" msgstr "" #. ret is set on ENOSPC #. type: Plain text #: build/C/man2/query_module.2:81 msgid "" "Returns the symbols and values exported by the kernel or the indicated " "module. The returned buffer is an array of structures of the following form" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:88 #, no-wrap msgid "" "struct module_symbol {\n" " unsigned long value;\n" " unsigned long name;\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:98 msgid "" "followed by null-terminated strings. The value of I is the character " "offset of the string relative to the start of I; I is set to the " "number of symbols." msgstr "" #. type: TP #: build/C/man2/query_module.2:98 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:102 msgid "" "Returns miscellaneous information about the indicated module. The output " "buffer format is:" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:110 #, no-wrap msgid "" "struct module_info {\n" " unsigned long address;\n" " unsigned long size;\n" " unsigned long flags;\n" "};\n" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:129 msgid "" "where I
is the kernel address at which the module resides, I " "is the size of the module in bytes, and I is a mask of " "B, B, etc., that indicates the current status of " "the module (see the Linux kernel source file I). " "I is set to the size of the I structure." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:143 msgid "" "At least one of I, I, or I was outside the program's " "accessible address space." msgstr "" #. Not permitted with QM_DEPS, QM_REFS, or QM_INFO. #. type: Plain text #: build/C/man2/query_module.2:153 msgid "" "Invalid I; or I is NULL (indicating \"the kernel\"), but this " "is not permitted with the specified value of I." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:158 msgid "No module by that I exists." msgstr "" #. type: TP #: build/C/man2/query_module.2:158 #, no-wrap msgid "B" msgstr "" #. type: Plain text #: build/C/man2/query_module.2:163 msgid "" "The buffer size provided was too small. I is set to the minimum size " "needed." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:168 msgid "" "B() is not supported in this version of the kernel (e.g., the " "kernel is version 2.6 or later)." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:175 msgid "B() is Linux-specific." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:183 msgid "" "Some of the information that was formerly available via B() " "can be obtained from I, I, and the files " "under the directory I." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:187 msgid "" "Glibc does not provide a wrapper for this system call; in the unlikely event " "that you need to use it on an old kernel, use B(2)." msgstr "" #. type: Plain text #: build/C/man2/query_module.2:194 msgid "" "B(2), B(2), B(2), " "B(2), B(8), B(8)" msgstr ""