create_module.2, delete_module.2, init_module.2, query_module.2: Clarify glibc header file declaration/ABI wrapper details

create_module(), delete_module(), init_module(), and
query_module() are not declared in header files, but
through an accident of history glibc provides an ABI
for them that it continues to maintain, for
compatibility reasons.

Reported-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2014-05-02 08:51:50 +02:00
parent 1205c84585
commit 4a9c7a5ecb
4 changed files with 51 additions and 9 deletions

View File

@ -16,8 +16,11 @@ create_module \- create a loadable module entry
.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
.BR Note :
.IR Note :
This system call is present only in kernels before Linux 2.6.
.BR create_module ()
@ -62,6 +65,16 @@ it was removed in Linux 2.6.
.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),

View File

@ -31,7 +31,7 @@ delete_module \- unload a kernel module
.fi
.IR Note :
There is no glibc wrapper for this system call; see NOTES.
No declaration of this function is provided in glibc headers; see NOTES.
.SH DESCRIPTION
The
.BR delete_module ()
@ -173,7 +173,14 @@ was not specified in
.BR delete_module ()
is Linux-specific.
.SH NOTES
Glibc does not provide a wrapper for this system call; call it using
The
.BR delete_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).
The uninterruptible sleep that may occur if

View File

@ -37,7 +37,11 @@ init_module, finit_module \- load a kernel module
.fi
.IR Note :
There are no glibc wrappers for these system calls; see NOTES.
glibc provides no header file declaration of
.BR init_module ()
and no wrapper function for
.BR finit_module ();
see NOTES.
.SH DESCRIPTION
.BR init_module ()
loads an ELF image into kernel space,
@ -258,7 +262,19 @@ and
.BR finit_module ()
are Linux-specific.
.SH NOTES
Glibc does not provide a wrapper for these system calls; call them using
The
.BR init_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).
Glibc does not provide a wrapper for
.BR finit_module ();
call it using
.BR syscall (2).
Information about currently loaded modules can be found in

View File

@ -19,9 +19,9 @@ query_module \- query the kernel for various bits pertaining to modules
.fi
.IR Note :
There is no glibc wrapper for this system call; see NOTES.
No declaration of this function is provided in glibc headers; see NOTES.
.SH DESCRIPTION
.BR Note :
.IR Note :
This system call is present only in kernels before Linux 2.6.
.BR query_module ()
@ -181,8 +181,14 @@ can be obtained from
and the files under the directory
.IR /sys/module .
Glibc does not provide a wrapper for this system call;
in the unlikely event that you need to use it on an old kernel, use
The
.BR query_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 create_module (2),