diff --git a/man7/vdso.7 b/man7/vdso.7 index 3c287f365..e228eda8b 100644 --- a/man7/vdso.7 +++ b/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 \}