diff options
Diffstat (limited to '')
-rw-r--r-- | man2/create_module.2 | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/man2/create_module.2 b/man2/create_module.2 new file mode 100644 index 0000000..d159cb1 --- /dev/null +++ b/man2/create_module.2 @@ -0,0 +1,72 @@ +.\" Copyright (C) 1996 Free Software Foundation, Inc. +.\" +.\" SPDX-License-Identifier: GPL-1.0-or-later +.\" +.\" 2006-02-09, some reformatting by Luc Van Oostenryck; some +.\" reformatting and rewordings by mtk +.\" +.TH create_module 2 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +create_module \- create a loadable module entry +.SH SYNOPSIS +.nf +.B #include <linux/module.h> +.PP +.BI "[[deprecated]] caddr_t create_module(const char *" name ", size_t " size ); +.fi +.SH DESCRIPTION +.IR Note : +This system call is present only before Linux 2.6. +.PP +.BR create_module () +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. +.SH RETURN VALUE +On success, returns the kernel address at which the module will reside. +On error, \-1 is returned and +.I errno +is set to indicate the error. +.SH ERRORS +.TP +.B EEXIST +A module by that name already exists. +.TP +.B EFAULT +.I name +is outside the program's accessible address space. +.TP +.B EINVAL +The requested size is too small even for the module header information. +.TP +.B ENOMEM +The kernel could not allocate a contiguous block of memory large +enough for the module. +.TP +.B ENOSYS +.BR create_module () +is not supported in this version of the kernel +(e.g., Linux 2.6 or later). +.TP +.B EPERM +The caller was not privileged +(did not have the +.B CAP_SYS_MODULE +capability). +.SH STANDARDS +Linux. +.SH HISTORY +Removed in Linux 2.6. +.\" Removed in Linux 2.5.48 +.PP +This obsolete system call is not supported by glibc. +No declaration is provided in glibc headers, but, through a quirk of history, +glibc versions before glibc 2.23 did export an ABI for this system call. +Therefore, in order to employ this system call, +it was sufficient to manually declare the interface in your code; +alternatively, you could invoke the system call using +.BR syscall (2). +.SH SEE ALSO +.BR delete_module (2), +.BR init_module (2), +.BR query_module (2) |