summaryrefslogtreecommitdiff
path: root/include/elf.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/elf.h')
-rw-r--r--include/elf.h85
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