diff options
Diffstat (limited to 'include/elf.h')
| -rw-r--r-- | include/elf.h | 85 |
1 files changed, 81 insertions, 4 deletions
diff --git a/include/elf.h b/include/elf.h index e4aa7c88..8317c9ca 100644 --- a/include/elf.h +++ b/include/elf.h @@ -3,6 +3,12 @@ #include <stdint.h> +#define ELF32_ST_BIND(val) (((unsigned char)(val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) + +#define ELF64_ST_BIND(val) ELF32_ST_BIND(val) +#define ELF64_ST_TYPE(val) ELF32_ST_TYPE(val) + #define PT_NULL 0 #define PT_LOAD 1 #define PT_DYNAMIC 2 @@ -140,6 +146,69 @@ #define ELFOSABI_NONE 0 #define ELFOSABI_LINUX 3 +#define AT_NULL 0 +#define AT_IGNORE 1 +#define AT_EXECFD 2 +#define AT_PHDR 3 +#define AT_PHENT 4 +#define AT_PHNUM 5 +#define AT_PAGESZ 6 +#define AT_BASE 7 +#define AT_FLAGS 8 +#define AT_ENTRY 9 +#define AT_NOTELF 10 +#define AT_UID 11 +#define AT_EUID 12 +#define AT_GID 13 +#define AT_EGID 14 +#define AT_CLKTCK 17 + +#define AT_PLATFORM 15 +#define AT_HWCAP 16 + +#define AT_FPUCW 18 + +#define AT_DCACHEBSIZE 19 +#define AT_ICACHEBSIZE 20 +#define AT_UCACHEBSIZE 21 + +#define AT_IGNOREPPC 22 + +#define AT_SECURE 23 + +#define AT_BASE_PLATFORM 24 + +#define AT_RANDOM 25 + +#define AT_HWCAP2 26 + +#define AT_RSEQ_FEATURE_SIZE 27 +#define AT_RSEQ_ALIGN 28 + +#define AT_HWCAP3 29 +#define AT_HWCAP4 30 + +#define AT_EXECFN 31 + +#define AT_SYSINFO 32 +#define AT_SYSINFO_EHDR 33 + +#define AT_L1I_CACHESHAPE 34 +#define AT_L1D_CACHESHAPE 35 +#define AT_L2_CACHESHAPE 36 +#define AT_L3_CACHESHAPE 37 + +#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 + typedef uint16_t Elf32_Half; typedef int16_t Elf32_SHalf; typedef uint32_t Elf32_Word; @@ -318,10 +387,18 @@ typedef struct elf64_note { Elf64_Word n_type; } Elf64_Nhdr; -#define ELF32_ST_BIND(val) (((unsigned char)(val)) >> 4) -#define ELF32_ST_TYPE(val) ((val) & 0xf) +typedef struct { + uint32_t a_type; + union { + uint32_t a_val; + } a_un; +} Elf32_auxv_t; -#define ELF64_ST_BIND(val) ELF32_ST_BIND(val) -#define ELF64_ST_TYPE(val) ELF32_ST_TYPE(val) +typedef struct { + uint64_t a_type; + union { + uint64_t a_val; + } a_un; +} Elf64_auxv_t; #endif |
