mirror of https://github.com/mkerrisk/man-pages
80 lines
2.2 KiB
Groff
80 lines
2.2 KiB
Groff
.\" Copyright (C) 1996 Free Software Foundation, Inc.
|
|
.\"
|
|
.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
|
|
.\" This file is distributed according to the GNU General Public License.
|
|
.\" %%%LICENSE_END
|
|
.\"
|
|
.\" 2006-02-09, some reformatting by Luc Van Oostenryck; some
|
|
.\" reformatting and rewordings by mtk
|
|
.\"
|
|
.TH CREATE_MODULE 2 2021-03-22 "Linux" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
create_module \- create a loadable module entry
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B #include <linux/module.h>
|
|
.PP
|
|
.BI "caddr_t create_module(const char *" name ", size_t " size );
|
|
.fi
|
|
.PP
|
|
.IR Note :
|
|
No declaration of this system call is provided in glibc headers; see NOTES.
|
|
.SH DESCRIPTION
|
|
.IR Note :
|
|
This system call is present only in kernels 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., the kernel is version 2.6 or later).
|
|
.TP
|
|
.B EPERM
|
|
The caller was not privileged
|
|
(did not have the
|
|
.B CAP_SYS_MODULE
|
|
capability).
|
|
.SH VERSIONS
|
|
This system call is present on Linux only up until kernel 2.4;
|
|
it was removed in Linux 2.6.
|
|
.\" Removed in Linux 2.5.48
|
|
.SH CONFORMING TO
|
|
.BR create_module ()
|
|
is Linux-specific.
|
|
.SH NOTES
|
|
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 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)
|