+#: build/C/man2/init_module.2:41
+msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:50
+msgid ""
+"B<init_module>() 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<init> function. This "
+"system call requires privilege."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:58
+msgid ""
+"The I<module_image> argument points to a buffer containing the binary image "
+"to be loaded; I<len> 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<param_values> argument is a string containing space-delimited "
+"specifications of the values for module parameters (defined inside the "
+"module using B<module_param>() and B<module_param_array>()). 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<name>[B<=>I<value>[B<,>I<value>...]]"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:89
+msgid ""
+"The parameter I<name> is one of those defined within the module using "
+"I<module_param>() (see the Linux kernel source file "
+"I<include/linux/moduleparam.h>). The parameter I<value> is optional in the "
+"case of I<bool> and I<invbool> 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<finit_module>() system call is like B<init_module>(), but reads the "
+"module to be loaded from the file descriptor I<fd>. 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<param_values> argument is as for B<init_module>()."
+msgstr ""
+
+#. commit 2f3238aebedb243804f58d62d57244edec4149b2
+#. type: Plain text
+#: build/C/man2/init_module.2:115
+msgid ""
+"The I<flags> argument modifies the operation of B<finit_module>(). 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<MODULE_INIT_IGNORE_MODVERSIONS>"
+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<MODULE_INIT_IGNORE_VERMAGIC>"
+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<CONFIG_MODVERSIONS> 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<MODULE_INIT_IGNORE_VERMAGIC> flag indicates that the "
+"\"vermagic\" string is to be ignored, and the "
+"B<MODULE_INIT_IGNORE_MODVERSIONS> 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<CONFIG_MODULE_FORCE_LOAD>), then loading will "
+"continue, otherwise it will fail with B<ENOEXEC> 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<errno> is set appropriately."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/init_module.2:156
+#, no-wrap
+msgid "B<EBADMSG> (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<ENOKEY> (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<CONFIG_MODULE_SIG_FORCE>; 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<CAP_SYS_MODULE> "
+"capability), or module loading is disabled (see "
+"I</proc/sys/kernel/modules_disabled> in B<proc>(5))."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:194
+msgid "The following errors may additionally occur for B<init_module>():"
+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<param_values> is invalid, or some part of the ELF image in I<module_image> "
+"contains inconsistencies."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/init_module.2:213 build/C/man2/init_module.2:236
+#, no-wrap
+msgid "B<ENOEXEC>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:219
+msgid ""
+"The binary image supplied in I<module_image> 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<finit_module>():"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/init_module.2:222
+#, no-wrap
+msgid "B<EBADF>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:227
+msgid "The file referred to by I<fd> is not opened for reading."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/init_module.2:227
+#, no-wrap
+msgid "B<EFBIG>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:232
+msgid "The file referred to by I<fd> is too large."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:236
+msgid "I<flags> is invalid."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:240
+msgid "I<fd> 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<init> function is "
+"executed and returns an error, then B<init_module>() or B<finit_module>() "
+"fails and I<errno> is set to the value returned by the I<init> function."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:255
+msgid "B<finit_module ()> is available since Linux 3.8."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:260
+msgid "B<init_module>() and B<finit_module>() 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<syscall>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:268
+msgid ""
+"Information about currently loaded modules can be found in I</proc/modules> "
+"and in the file trees under the per-module subdirectories under "
+"I</sys/module>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:272
+msgid ""
+"See the Linux kernel source file I<include/linux/module.h> 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<init_module>() system call was rather "
+"different:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:279
+msgid "B<#include E<lt>linux/module.hE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:281
+msgid "B< int init_module(const char *>I<name>B<, struct module *>I<image>B<);>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:289
+msgid ""
+"(User-space applications can detect which version of B<init_module>() is "
+"available by calling B<query_module>(); the latter call fails with the error "
+"B<ENOSYS> 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<image> into kernel space and runs the module's I<init> "
+"function. The caller is responsible for providing the relocated image "
+"(since Linux 2.6, the B<init_module>() system call does the relocation)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/init_module.2:304