mirror of https://gitee.com/openkylin/glibc.git
submitted-auxv
https://sourceware.org/bugzilla/show_bug.cgi?id=15794 Gbp-Pq: Topic kfreebsd Gbp-Pq: Name submitted-auxv.diff
This commit is contained in:
parent
42e97ff20e
commit
0f1716c6a9
|
@ -0,0 +1,91 @@
|
|||
/* Copyright (C) 1995-2013 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Legal values for a_type (entry type). */
|
||||
|
||||
#define AT_NULL 0 /* End of vector */
|
||||
#define AT_IGNORE 1 /* Entry should be ignored */
|
||||
#define AT_EXECFD 2 /* File descriptor of program */
|
||||
#define AT_PHDR 3 /* Program headers for program */
|
||||
#define AT_PHENT 4 /* Size of program header entry */
|
||||
#define AT_PHNUM 5 /* Number of program headers */
|
||||
#define AT_PAGESZ 6 /* System page size */
|
||||
#define AT_BASE 7 /* Base address of interpreter */
|
||||
#define AT_FLAGS 8 /* Flags */
|
||||
#define AT_ENTRY 9 /* Entry point of program */
|
||||
#define AT_NOTELF 10 /* Program is not ELF */
|
||||
#define AT_UID 11 /* Real uid */
|
||||
#define AT_EUID 12 /* Effective uid */
|
||||
#define AT_GID 13 /* Real gid */
|
||||
#define AT_EGID 14 /* Effective gid */
|
||||
#define AT_CLKTCK 17 /* Frequency of times() */
|
||||
|
||||
/* Some more special a_type values describing the hardware. */
|
||||
#define AT_PLATFORM 15 /* String identifying platform. */
|
||||
#define AT_HWCAP 16 /* Machine-dependent hints about
|
||||
processor capabilities. */
|
||||
|
||||
/* This entry gives some information about the FPU initialization
|
||||
performed by the kernel. */
|
||||
#define AT_FPUCW 18 /* Used FPU control word. */
|
||||
|
||||
/* Cache block sizes. */
|
||||
#define AT_DCACHEBSIZE 19 /* Data cache block size. */
|
||||
#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
|
||||
#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
|
||||
|
||||
/* A special ignored value for PPC, used by the kernel to control the
|
||||
interpretation of the AUXV. Must be > 16. */
|
||||
#define AT_IGNOREPPC 22 /* Entry should be ignored. */
|
||||
|
||||
#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
|
||||
|
||||
#define AT_BASE_PLATFORM 24 /* String identifying real platforms.*/
|
||||
|
||||
#define AT_RANDOM 25 /* Address of 16 random bytes. */
|
||||
|
||||
#define AT_HWCAP2 26 /* More machine-dependent hints about
|
||||
processor capabilities. */
|
||||
|
||||
#define AT_EXECFN 31 /* Filename of executable. */
|
||||
|
||||
/* Pointer to the global system page used for system calls and other
|
||||
nice things. */
|
||||
#define AT_SYSINFO 32
|
||||
#define AT_SYSINFO_EHDR 33
|
||||
|
||||
/* Shapes of the caches. Bits 0-3 contains associativity; bits 4-7 contains
|
||||
log2 of line size; mask those to get cache size. */
|
||||
#define AT_L1I_CACHESHAPE 34
|
||||
#define AT_L1D_CACHESHAPE 35
|
||||
#define AT_L2_CACHESHAPE 36
|
||||
#define AT_L3_CACHESHAPE 37
|
||||
|
||||
/* Shapes of the caches, with more room to describe them.
|
||||
*GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
|
||||
and the cache associativity in the next 16 bits. */
|
||||
#define AT_L1I_CACHESIZE 40
|
||||
#define AT_L1I_CACHEGEOMETRY 41
|
||||
#define AT_L1D_CACHESIZE 42
|
||||
#define AT_L1D_CACHEGEOMETRY 43
|
||||
#define AT_L2_CACHESIZE 44
|
||||
#define AT_L2_CACHEGEOMETRY 45
|
||||
#define AT_L3_CACHESIZE 46
|
||||
#define AT_L3_CACHEGEOMETRY 47
|
||||
|
||||
#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery
|
||||
(AArch64). */
|
76
elf/elf.h
76
elf/elf.h
|
@ -1156,81 +1156,7 @@ typedef struct
|
|||
} a_un;
|
||||
} Elf64_auxv_t;
|
||||
|
||||
/* Legal values for a_type (entry type). */
|
||||
|
||||
#define AT_NULL 0 /* End of vector */
|
||||
#define AT_IGNORE 1 /* Entry should be ignored */
|
||||
#define AT_EXECFD 2 /* File descriptor of program */
|
||||
#define AT_PHDR 3 /* Program headers for program */
|
||||
#define AT_PHENT 4 /* Size of program header entry */
|
||||
#define AT_PHNUM 5 /* Number of program headers */
|
||||
#define AT_PAGESZ 6 /* System page size */
|
||||
#define AT_BASE 7 /* Base address of interpreter */
|
||||
#define AT_FLAGS 8 /* Flags */
|
||||
#define AT_ENTRY 9 /* Entry point of program */
|
||||
#define AT_NOTELF 10 /* Program is not ELF */
|
||||
#define AT_UID 11 /* Real uid */
|
||||
#define AT_EUID 12 /* Effective uid */
|
||||
#define AT_GID 13 /* Real gid */
|
||||
#define AT_EGID 14 /* Effective gid */
|
||||
#define AT_CLKTCK 17 /* Frequency of times() */
|
||||
|
||||
/* Some more special a_type values describing the hardware. */
|
||||
#define AT_PLATFORM 15 /* String identifying platform. */
|
||||
#define AT_HWCAP 16 /* Machine-dependent hints about
|
||||
processor capabilities. */
|
||||
|
||||
/* This entry gives some information about the FPU initialization
|
||||
performed by the kernel. */
|
||||
#define AT_FPUCW 18 /* Used FPU control word. */
|
||||
|
||||
/* Cache block sizes. */
|
||||
#define AT_DCACHEBSIZE 19 /* Data cache block size. */
|
||||
#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
|
||||
#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
|
||||
|
||||
/* A special ignored value for PPC, used by the kernel to control the
|
||||
interpretation of the AUXV. Must be > 16. */
|
||||
#define AT_IGNOREPPC 22 /* Entry should be ignored. */
|
||||
|
||||
#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
|
||||
|
||||
#define AT_BASE_PLATFORM 24 /* String identifying real platforms.*/
|
||||
|
||||
#define AT_RANDOM 25 /* Address of 16 random bytes. */
|
||||
|
||||
#define AT_HWCAP2 26 /* More machine-dependent hints about
|
||||
processor capabilities. */
|
||||
|
||||
#define AT_EXECFN 31 /* Filename of executable. */
|
||||
|
||||
/* Pointer to the global system page used for system calls and other
|
||||
nice things. */
|
||||
#define AT_SYSINFO 32
|
||||
#define AT_SYSINFO_EHDR 33
|
||||
|
||||
/* Shapes of the caches. Bits 0-3 contains associativity; bits 4-7 contains
|
||||
log2 of line size; mask those to get cache size. */
|
||||
#define AT_L1I_CACHESHAPE 34
|
||||
#define AT_L1D_CACHESHAPE 35
|
||||
#define AT_L2_CACHESHAPE 36
|
||||
#define AT_L3_CACHESHAPE 37
|
||||
|
||||
/* Shapes of the caches, with more room to describe them.
|
||||
*GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
|
||||
and the cache associativity in the next 16 bits. */
|
||||
#define AT_L1I_CACHESIZE 40
|
||||
#define AT_L1I_CACHEGEOMETRY 41
|
||||
#define AT_L1D_CACHESIZE 42
|
||||
#define AT_L1D_CACHEGEOMETRY 43
|
||||
#define AT_L2_CACHESIZE 44
|
||||
#define AT_L2_CACHEGEOMETRY 45
|
||||
#define AT_L3_CACHESIZE 46
|
||||
#define AT_L3_CACHEGEOMETRY 47
|
||||
|
||||
#define AT_MINSIGSTKSZ 51 /* Stack needed for signal delivery
|
||||
(AArch64). */
|
||||
|
||||
#include <bits/auxv.h>
|
||||
/* Note section contents. Each entry in the note section begins with
|
||||
a header of a fixed form. */
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ headers := sys/uio.h bits/uio-ext.h bits/uio_lim.h \
|
|||
regexp.h bits/select.h bits/mman.h sys/xattr.h \
|
||||
syslog.h sys/syslog.h \
|
||||
bits/syslog.h bits/syslog-ldbl.h bits/syslog-path.h bits/error.h \
|
||||
bits/select2.h bits/hwcap.h sys/auxv.h \
|
||||
bits/select2.h bits/hwcap.h bits/auxv.h sys/auxv.h \
|
||||
sys/sysmacros.h bits/sysmacros.h bits/types/struct_iovec.h \
|
||||
bits/err-ldbl.h bits/error-ldbl.h
|
||||
|
||||
|
|
|
@ -27,10 +27,15 @@ __getauxval (unsigned long int type)
|
|||
ElfW(auxv_t) *p;
|
||||
#endif
|
||||
|
||||
#ifdef AT_HWCAP
|
||||
if (type == AT_HWCAP)
|
||||
return GLRO(dl_hwcap);
|
||||
else if (type == AT_HWCAP2)
|
||||
#endif
|
||||
|
||||
#ifdef AT_HWCAP2
|
||||
if (type == AT_HWCAP2)
|
||||
return GLRO(dl_hwcap2);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_AUX_VECTOR
|
||||
for (p = GLRO(dl_auxv); p->a_type != AT_NULL; p++)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#define _SYS_AUXV_H 1
|
||||
|
||||
#include <elf.h>
|
||||
#include <bits/auxv.h>
|
||||
#include <sys/cdefs.h>
|
||||
#include <bits/hwcap.h>
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#include <elf.h>
|
||||
#include <bits/auxv.h>
|
||||
#include <dlfcn.h>
|
||||
#include <fpu_control.h>
|
||||
#include <sys/mman.h>
|
||||
|
|
Loading…
Reference in New Issue