]> git.ipfire.org Git - thirdparty/gcc.git/blame - libphobos/libdruntime/core/sys/linux/elf.d
Merge remote-tracking branch 'origin/master' into devel/c++-contracts
[thirdparty/gcc.git] / libphobos / libdruntime / core / sys / linux / elf.d
CommitLineData
b4c522fa
IB
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 */
6module core.sys.linux.elf;
7
8version (linux):
9extern (C):
10pure:
11nothrow:
12
13import core.stdc.stdint;
5eb9927a 14public import core.sys.elf;
b4c522fa
IB
15
16extern (D)
17{
18 auto ELF32_ST_VISIBILITY(O)(O o) { return o & 0x03; }
19 alias ELF32_ST_VISIBILITY ELF64_ST_VISIBILITY;
20}
b4c522fa 21
5eb9927a 22struct Elf32_Nhdr
b4c522fa 23{
5eb9927a
IB
24 Elf32_Word n_namesz;
25 Elf32_Word n_descsz;
26 Elf32_Word n_type;
b4c522fa
IB
27}
28
5eb9927a 29struct Elf64_Nhdr
b4c522fa 30{
5eb9927a
IB
31 Elf64_Word n_namesz;
32 Elf64_Word n_descsz;
33 Elf64_Word n_type;
b4c522fa
IB
34}
35
b4c522fa
IB
36enum NT_PRSTATUS = 1;
37enum NT_FPREGSET = 2;
38enum NT_PRPSINFO = 3;
39enum NT_PRXREG = 4;
40enum NT_TASKSTRUCT = 4;
41enum NT_PLATFORM = 5;
42enum NT_AUXV = 6;
43enum NT_GWINDOWS = 7;
44enum NT_ASRS = 8;
45enum NT_PSTATUS = 10;
46enum NT_PSINFO = 13;
47enum NT_PRCRED = 14;
48enum NT_UTSNAME = 15;
49enum NT_LWPSTATUS = 16;
50enum NT_LWPSINFO = 17;
51enum NT_PRFPXREG = 20;
52enum NT_SIGINFO = 0x53494749;
53enum NT_FILE = 0x46494c45;
54enum NT_PRXFPREG = 0x46e62b7f;
55enum NT_PPC_VMX = 0x100;
56enum NT_PPC_SPE = 0x101;
57enum NT_PPC_VSX = 0x102;
58enum NT_386_TLS = 0x200;
59enum NT_386_IOPERM = 0x201;
60enum NT_X86_XSTATE = 0x202;
61enum NT_S390_HIGH_GPRS = 0x300;
62enum NT_S390_TIMER = 0x301;
63enum NT_S390_TODCMP = 0x302;
64enum NT_S390_TODPREG = 0x303;
65enum NT_S390_CTRS = 0x304;
66enum NT_S390_PREFIX = 0x305;
67enum NT_S390_LAST_BREAK = 0x306;
68enum NT_S390_SYSTEM_CALL = 0x307;
69enum NT_S390_TDB = 0x308;
70enum NT_ARM_VFP = 0x400;
71enum NT_ARM_TLS = 0x401;
72enum NT_ARM_HW_BREAK = 0x402;
73enum NT_ARM_HW_WATCH = 0x403;
74
75enum NT_VERSION = 1;
76
ec486b73
IB
77struct 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
87struct 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
5eb9927a
IB
97enum NT_GNU_ABI_TAG = 1;
98enum NT_GNU_HWCAP = 2;
99enum NT_GNU_BUILD_ID = 3;
100enum NT_GNU_GOLD_VERSION = 4;
b4c522fa
IB
101
102struct 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
111struct 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
120enum AT_NULL = 0;
121enum AT_IGNORE = 1;
122enum AT_EXECFD = 2;
123enum AT_PHDR = 3;
124enum AT_PHENT = 4;
125enum AT_PHNUM = 5;
126enum AT_PAGESZ = 6;
127enum AT_BASE = 7;
128enum AT_FLAGS = 8;
129enum AT_ENTRY = 9;
130enum AT_NOTELF = 10;
131enum AT_UID = 11;
132enum AT_EUID = 12;
133enum AT_GID = 13;
134enum AT_EGID = 14;
135enum AT_CLKTCK = 17;
136enum AT_PLATFORM = 15;
137enum AT_HWCAP = 16;
138enum AT_FPUCW = 18;
139enum AT_DCACHEBSIZE = 19;
140enum AT_ICACHEBSIZE = 20;
141enum AT_UCACHEBSIZE = 21;
142enum AT_IGNOREPPC = 22;
143
144enum AT_SECURE = 23;
145
146enum AT_BASE_PLATFORM = 24;
147
148enum AT_RANDOM = 25;
149
150enum AT_HWCAP2 = 26;
151
152enum AT_EXECFN = 31;
153enum AT_SYSINFO = 32;
154enum AT_SYSINFO_EHDR = 33;
155
b4c522fa
IB
156enum AT_L1I_CACHESHAPE = 34;
157enum AT_L1D_CACHESHAPE = 35;
158enum AT_L2_CACHESHAPE = 36;
159enum AT_L3_CACHESHAPE = 37;