1 .. SPDX-License-Identifier: GPL-2.0 2 3 ================================== 4 x86-specific ELF Auxiliary Vectors 5 ================================== 6 7 This document describes the semantics of the x86 auxiliary vectors. 8 9 Introduction 10 ============ 11 12 ELF Auxiliary vectors enable the kernel to efficiently provide 13 configuration-specific parameters to userspace. In this example, a program 14 allocates an alternate stack based on the kernel-provided size:: 15 16 #include <sys/auxv.h> 17 #include <elf.h> 18 #include <signal.h> 19 #include <stdlib.h> 20 #include <assert.h> 21 #include <err.h> 22 23 #ifndef AT_MINSIGSTKSZ 24 #define AT_MINSIGSTKSZ 51 25 #endif 26 27 .... 28 stack_t ss; 29 30 ss.ss_sp = malloc(ss.ss_size); 31 assert(ss.ss_sp); 32 33 ss.ss_size = getauxval(AT_MINSIGSTKSZ) + SIGSTKSZ; 34 ss.ss_flags = 0; 35 36 if (sigaltstack(&ss, NULL)) 37 err(1, "sigaltstack"); 38 39 40 The exposed auxiliary vectors 41 ============================= 42 43 AT_SYSINFO is used for locating the vsyscall entry point. It is not 44 exported on 64-bit mode. 45 46 AT_SYSINFO_EHDR is the start address of the page containing the vDSO. 47 48 AT_MINSIGSTKSZ denotes the minimum stack size required by the kernel to 49 deliver a signal to user-space. AT_MINSIGSTKSZ comprehends the space 50 consumed by the kernel to accommodate the user context for the current 51 hardware configuration. It does not comprehend subsequent user-space stack 52 consumption, which must be added by the user. (e.g. Above, user-space adds 53 SIGSTKSZ to AT_MINSIGSTKSZ.)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.