summaryrefslogtreecommitdiffstats
path: root/man/man2/create_module.2
diff options
context:
space:
mode:
Diffstat (limited to 'man/man2/create_module.2')
-rw-r--r--man/man2/create_module.272
1 files changed, 72 insertions, 0 deletions
diff --git a/man/man2/create_module.2 b/man/man2/create_module.2
new file mode 100644
index 000000000..1121713a8
--- /dev/null
+++ b/man/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 (date) "Linux man-pages (unreleased)"
+.SH NAME
+create_module \- create a loadable module entry
+.SH SYNOPSIS
+.nf
+.B #include <linux/module.h>
+.P
+.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.
+.P
+.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
+.P
+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)