diff options
Diffstat (limited to 'Documentation/x86/elf_auxvec.rst')
-rw-r--r-- | Documentation/x86/elf_auxvec.rst | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/Documentation/x86/elf_auxvec.rst b/Documentation/x86/elf_auxvec.rst deleted file mode 100644 index 18e4744717f9..000000000000 --- a/Documentation/x86/elf_auxvec.rst +++ /dev/null @@ -1,53 +0,0 @@ -.. SPDX-License-Identifier: GPL-2.0 - -================================== -x86-specific ELF Auxiliary Vectors -================================== - -This document describes the semantics of the x86 auxiliary vectors. - -Introduction -============ - -ELF Auxiliary vectors enable the kernel to efficiently provide -configuration-specific parameters to userspace. In this example, a program -allocates an alternate stack based on the kernel-provided size:: - - #include <sys/auxv.h> - #include <elf.h> - #include <signal.h> - #include <stdlib.h> - #include <assert.h> - #include <err.h> - - #ifndef AT_MINSIGSTKSZ - #define AT_MINSIGSTKSZ 51 - #endif - - .... - stack_t ss; - - ss.ss_sp = malloc(ss.ss_size); - assert(ss.ss_sp); - - ss.ss_size = getauxval(AT_MINSIGSTKSZ) + SIGSTKSZ; - ss.ss_flags = 0; - - if (sigaltstack(&ss, NULL)) - err(1, "sigaltstack"); - - -The exposed auxiliary vectors -============================= - -AT_SYSINFO is used for locating the vsyscall entry point. It is not -exported on 64-bit mode. - -AT_SYSINFO_EHDR is the start address of the page containing the vDSO. - -AT_MINSIGSTKSZ denotes the minimum stack size required by the kernel to -deliver a signal to user-space. AT_MINSIGSTKSZ comprehends the space -consumed by the kernel to accommodate the user context for the current -hardware configuration. It does not comprehend subsequent user-space stack -consumption, which must be added by the user. (e.g. Above, user-space adds -SIGSTKSZ to AT_MINSIGSTKSZ.) |