mirror of https://github.com/mkerrisk/man-pages
82 lines
2.2 KiB
Groff
82 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 2012-10-18 "Linux" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
create_module \- create a loadable module entry
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B #include <linux/module.h>
|
|
.sp
|
|
.BI "caddr_t create_module(const char *" name ", size_t " size );
|
|
.fi
|
|
|
|
.IR Note :
|
|
No declaration of this function is provided in glibc headers; see NOTES.
|
|
.SH DESCRIPTION
|
|
.IR Note :
|
|
This system call is present only in kernels before Linux 2.6.
|
|
|
|
.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 appropriately.
|
|
.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
|
|
The
|
|
.BR create_module ()
|
|
system call is not suported by glibc.
|
|
No declaration is provided in glibc headers, but,
|
|
through a quirk of history, glibc does export an ABI for this system call.
|
|
Therefore, in order to employ this system call,
|
|
it is sufficient to manually declare the interface in your code;
|
|
alternatively, you can invoke the system call using
|
|
.BR syscall (2).
|
|
.SH SEE ALSO
|
|
.BR delete_module (2),
|
|
.BR init_module (2),
|
|
.BR query_module (2)
|