cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

elf_auxvec.rst (1484B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3==================================
      4x86-specific ELF Auxiliary Vectors
      5==================================
      6
      7This document describes the semantics of the x86 auxiliary vectors.
      8
      9Introduction
     10============
     11
     12ELF Auxiliary vectors enable the kernel to efficiently provide
     13configuration-specific parameters to userspace. In this example, a program
     14allocates 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
     40The exposed auxiliary vectors
     41=============================
     42
     43AT_SYSINFO is used for locating the vsyscall entry point.  It is not
     44exported on 64-bit mode.
     45
     46AT_SYSINFO_EHDR is the start address of the page containing the vDSO.
     47
     48AT_MINSIGSTKSZ denotes the minimum stack size required by the kernel to
     49deliver a signal to user-space.  AT_MINSIGSTKSZ comprehends the space
     50consumed by the kernel to accommodate the user context for the current
     51hardware configuration.  It does not comprehend subsequent user-space stack
     52consumption, which must be added by the user.  (e.g. Above, user-space adds
     53SIGSTKSZ to AT_MINSIGSTKSZ.)