1 /** 2 * D header file for GNU/Linux 3 * 4 * $(LINK2 http://sourceware.org/git/?p=glibc.git;a=blob;f=elf/elf.h, glibc elf/elf.h) 5 */ 6 module core.sys.linux.elf; 7 8 version (linux): 9 extern (C): 10 pure: 11 nothrow: 12 13 import core.stdc.stdint; 14 public import core.sys.elf; 15 16 extern (D) 17 { 18 auto ELF32_ST_VISIBILITY(O)(O o) { return o & 0x03; } 19 alias ELF32_ST_VISIBILITY ELF64_ST_VISIBILITY; 20 } 21 22 struct Elf32_Nhdr 23 { 24 Elf32_Word n_namesz; 25 Elf32_Word n_descsz; 26 Elf32_Word n_type; 27 } 28 29 struct Elf64_Nhdr 30 { 31 Elf64_Word n_namesz; 32 Elf64_Word n_descsz; 33 Elf64_Word n_type; 34 } 35 36 enum NT_PRSTATUS = 1; 37 enum NT_FPREGSET = 2; 38 enum NT_PRPSINFO = 3; 39 enum NT_PRXREG = 4; 40 enum NT_TASKSTRUCT = 4; 41 enum NT_PLATFORM = 5; 42 enum NT_AUXV = 6; 43 enum NT_GWINDOWS = 7; 44 enum NT_ASRS = 8; 45 enum NT_PSTATUS = 10; 46 enum NT_PSINFO = 13; 47 enum NT_PRCRED = 14; 48 enum NT_UTSNAME = 15; 49 enum NT_LWPSTATUS = 16; 50 enum NT_LWPSINFO = 17; 51 enum NT_PRFPXREG = 20; 52 enum NT_SIGINFO = 0x53494749; 53 enum NT_FILE = 0x46494c45; 54 enum NT_PRXFPREG = 0x46e62b7f; 55 enum NT_PPC_VMX = 0x100; 56 enum NT_PPC_SPE = 0x101; 57 enum NT_PPC_VSX = 0x102; 58 enum NT_386_TLS = 0x200; 59 enum NT_386_IOPERM = 0x201; 60 enum NT_X86_XSTATE = 0x202; 61 enum NT_S390_HIGH_GPRS = 0x300; 62 enum NT_S390_TIMER = 0x301; 63 enum NT_S390_TODCMP = 0x302; 64 enum NT_S390_TODPREG = 0x303; 65 enum NT_S390_CTRS = 0x304; 66 enum NT_S390_PREFIX = 0x305; 67 enum NT_S390_LAST_BREAK = 0x306; 68 enum NT_S390_SYSTEM_CALL = 0x307; 69 enum NT_S390_TDB = 0x308; 70 enum NT_ARM_VFP = 0x400; 71 enum NT_ARM_TLS = 0x401; 72 enum NT_ARM_HW_BREAK = 0x402; 73 enum NT_ARM_HW_WATCH = 0x403; 74 75 enum NT_VERSION = 1; 76 77 struct Elf32_Dyn 78 { 79 Elf32_Sword d_tag; 80 union _d_un 81 { 82 Elf32_Word d_val; 83 Elf32_Addr d_ptr; 84 } _d_un d_un; 85 } 86 87 struct Elf64_Dyn 88 { 89 Elf64_Sxword d_tag; 90 union _d_un 91 { 92 Elf64_Xword d_val; 93 Elf64_Addr d_ptr; 94 } _d_un d_un; 95 } 96 97 enum NT_GNU_ABI_TAG = 1; 98 enum NT_GNU_HWCAP = 2; 99 enum NT_GNU_BUILD_ID = 3; 100 enum NT_GNU_GOLD_VERSION = 4; 101 102 struct Elf32_auxv_t 103 { 104 uint32_t a_type; 105 union _a_un 106 { 107 uint32_t a_val; 108 } _a_un a_un; 109 } 110 111 struct Elf64_auxv_t 112 { 113 uint64_t a_type; 114 union _a_un 115 { 116 uint64_t a_val; 117 } _a_un a_un; 118 } 119 120 enum AT_NULL = 0; 121 enum AT_IGNORE = 1; 122 enum AT_EXECFD = 2; 123 enum AT_PHDR = 3; 124 enum AT_PHENT = 4; 125 enum AT_PHNUM = 5; 126 enum AT_PAGESZ = 6; 127 enum AT_BASE = 7; 128 enum AT_FLAGS = 8; 129 enum AT_ENTRY = 9; 130 enum AT_NOTELF = 10; 131 enum AT_UID = 11; 132 enum AT_EUID = 12; 133 enum AT_GID = 13; 134 enum AT_EGID = 14; 135 enum AT_CLKTCK = 17; 136 enum AT_PLATFORM = 15; 137 enum AT_HWCAP = 16; 138 enum AT_FPUCW = 18; 139 enum AT_DCACHEBSIZE = 19; 140 enum AT_ICACHEBSIZE = 20; 141 enum AT_UCACHEBSIZE = 21; 142 enum AT_IGNOREPPC = 22; 143 144 enum AT_SECURE = 23; 145 146 enum AT_BASE_PLATFORM = 24; 147 148 enum AT_RANDOM = 25; 149 150 enum AT_HWCAP2 = 26; 151 152 enum AT_EXECFN = 31; 153 enum AT_SYSINFO = 32; 154 enum AT_SYSINFO_EHDR = 33; 155 156 enum AT_L1I_CACHESHAPE = 34; 157 enum AT_L1D_CACHESHAPE = 35; 158 enum AT_L2_CACHESHAPE = 36; 159 enum AT_L3_CACHESHAPE = 37;