mirror of https://github.com/mkerrisk/man-pages
vdso.7: Further tweaks after discussion with Mike Frysinger
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
fb634bd8da
commit
f6816de988
37
man7/vdso.7
37
man7/vdso.7
|
@ -22,7 +22,7 @@ The "vDSO" is a small shared library that the kernel automatically maps into the
|
|||
address space of all user-space applications.
|
||||
Applications usually do not need to concern themselves with these details
|
||||
as the vDSO is most commonly called by the C library.
|
||||
This way you can write using standard functions
|
||||
This way you can code in the normal way using standard functions
|
||||
and the C library will take care
|
||||
of using any functionality that is available via the vDSO.
|
||||
|
||||
|
@ -132,12 +132,6 @@ You will frequently find it under the architecture-specific directory:
|
|||
|
||||
find arch/$ARCH/ -name '*vdso*.so*' -o -name '*gate*.so*'
|
||||
|
||||
Note that the vDSO that is used is based on the ABI of your user-space code
|
||||
and not the ABI of the kernel.
|
||||
In other words,
|
||||
if you run an i386 32-bit ELF under an i386 32-bit kernel or under an
|
||||
x86_64 64-bit kernel, you'll get the same vDSO.
|
||||
So when referring to sections below, use the user-space ABI.
|
||||
.SS vDSO names
|
||||
The name of vDSO shared object varies across architectures.
|
||||
It will often show up in things like glibc's
|
||||
|
@ -166,6 +160,18 @@ x86/x32 linux-vdso.so.1
|
|||
.in
|
||||
.ft P
|
||||
\}
|
||||
.SH ARCHITECTURE_SPECIFIC NOTES
|
||||
The subsections below provide architecture-specific notes
|
||||
on the vDSO.
|
||||
|
||||
Note that the vDSO that is used is based on the ABI of your user-space code
|
||||
and not the ABI of the kernel.
|
||||
Thus, for example,
|
||||
when you run an i386 32-bit ELF binary,
|
||||
you'll get the same vDSO regardless of whether you run it under
|
||||
an i386 32-bit kernel or under an x86_64 64-bit kernel.
|
||||
Thus, the name of the user-space ABI should be used to determine
|
||||
which of the sections below is relevant.
|
||||
.SS ARM functions
|
||||
.\" See linux/arch/arm/kernel/entry-armv.S
|
||||
.\" See linux/Documentation/arm/kernel_user_helpers.txt
|
||||
|
@ -180,6 +186,7 @@ as it's extremely detailed and covers everything you need to know:
|
|||
.IR Documentation/arm/kernel_user_helpers.txt .
|
||||
.SS aarch64 functions
|
||||
.\" See linux/arch/arm64/kernel/vdso/vdso.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -208,12 +215,14 @@ There is no provision for backward compatibility beyond sniffing raw opcodes,
|
|||
but as this is an embedded CPU, it can get away with things\(emsome of the
|
||||
object formats it runs aren't even ELF based (they're bFLT/FLAT).
|
||||
|
||||
For documentation on this code page, it's better you refer to the public docs:
|
||||
For information on this code page,
|
||||
it's best to refer to the public documentation:
|
||||
.br
|
||||
http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:fixed-code
|
||||
.SS ia64 (Itanium) functions
|
||||
.\" See linux/arch/ia64/kernel/gate.lds.S
|
||||
.\" Also linux/arch/ia64/kernel/fsys.S and linux/Documentation/ia64/fsys.txt
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -306,10 +315,11 @@ _
|
|||
\}
|
||||
.SS ppc/32 functions
|
||||
.\" See linux/arch/powerpc/kernel/vdso32/vdso32.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
The functions marked with a
|
||||
.I *
|
||||
below are available only when the kernel is
|
||||
a powerpc64 (64-bit) kernel.
|
||||
are available only when the kernel is
|
||||
a PowerPC64 (64-bit) kernel.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -335,6 +345,7 @@ __kernel_sync_dicache_p5 LINUX_2.6.15
|
|||
\}
|
||||
.SS ppc/64 functions
|
||||
.\" See linux/arch/powerpc/kernel/vdso64/vdso64.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -359,6 +370,7 @@ __kernel_sync_dicache_p5 LINUX_2.6.15
|
|||
\}
|
||||
.SS s390 functions
|
||||
.\" See linux/arch/s390/kernel/vdso32/vdso32.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -376,6 +388,7 @@ __kernel_gettimeofday LINUX_2.6.29
|
|||
\}
|
||||
.SS s390x functions
|
||||
.\" See linux/arch/s390/kernel/vdso64/vdso64.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -393,6 +406,7 @@ __kernel_gettimeofday LINUX_2.6.29
|
|||
\}
|
||||
.SS sh (SuperH) functions
|
||||
.\" See linux/arch/sh/kernel/vsyscall/vsyscall.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -410,6 +424,7 @@ __kernel_vsyscall LINUX_2.6
|
|||
\}
|
||||
.SS i386 functions
|
||||
.\" See linux/arch/x86/vdso/vdso32/vdso32.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
@ -427,6 +442,7 @@ __kernel_vsyscall LINUX_2.5
|
|||
\}
|
||||
.SS x86_64 functions
|
||||
.\" See linux/arch/x86/vdso/vdso.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
All of these symbols are also available without the "__vdso_" prefix, but
|
||||
you should ignore those and stick to the names below.
|
||||
.if t \{\
|
||||
|
@ -447,6 +463,7 @@ __vdso_time LINUX_2.6
|
|||
\}
|
||||
.SS x86/x32 functions
|
||||
.\" See linux/arch/x86/vdso/vdso32.lds.S
|
||||
The table below lists the symbols exported by the vDSO.
|
||||
.if t \{\
|
||||
.ft CW
|
||||
\}
|
||||
|
|
Loading…
Reference in New Issue