LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
ELF/enums.h
1#ifndef LIEF_ELF_C_ENUMS_H_
2#define LIEF_ELF_C_ENUMS_H_
3#include "LIEF/ELF/undef.h"
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
10enum LIEF_IDENTITY {
11 LIEF_EI_MAG0 = 0,
12 LIEF_EI_MAG1 = 1,
13 LIEF_EI_MAG2 = 2,
14 LIEF_EI_MAG3 = 3,
15 LIEF_EI_CLASS = 4,
16 LIEF_EI_DATA = 5,
17 LIEF_EI_VERSION = 6,
18 LIEF_EI_OSABI = 7,
19 LIEF_EI_ABIVERSION = 8,
20 LIEF_EI_PAD = 9,
21 LIEF_EI_NIDENT = 16
22};
23
24
26enum LIEF_E_TYPE {
27 LIEF_ET_NONE = 0,
28 LIEF_ET_REL = 1,
29 LIEF_ET_EXEC = 2,
30 LIEF_ET_DYN = 3,
31 LIEF_ET_CORE = 4,
32 LIEF_ET_LOPROC = 0xff00,
33 LIEF_ET_HIPROC = 0xffff
34};
35
36
38enum LIEF_VERSION {
39 LIEF_EV_NONE = 0,
40 LIEF_EV_CURRENT = 1
41};
42
48enum LIEF_ARCH {
49 LIEF_EM_NONE = 0,
50 LIEF_EM_M32 = 1,
51 LIEF_EM_SPARC = 2,
52 LIEF_EM_386 = 3,
53 LIEF_EM_68K = 4,
54 LIEF_EM_88K = 5,
55 LIEF_EM_IAMCU = 6,
56 LIEF_EM_860 = 7,
57 LIEF_EM_MIPS = 8,
58 LIEF_EM_S370 = 9,
59 LIEF_EM_MIPS_RS3_LE = 10,
60 LIEF_EM_PARISC = 15,
61 LIEF_EM_VPP500 = 17,
62 LIEF_EM_SPARC32PLUS = 18,
63 LIEF_EM_960 = 19,
64 LIEF_EM_PPC = 20,
65 LIEF_EM_PPC64 = 21,
66 LIEF_EM_S390 = 22,
67 LIEF_EM_SPU = 23,
68 LIEF_EM_V800 = 36,
69 LIEF_EM_FR20 = 37,
70 LIEF_EM_RH32 = 38,
71 LIEF_EM_RCE = 39,
72 LIEF_EM_ARM = 40,
73 LIEF_EM_ALPHA = 41,
74 LIEF_EM_SH = 42,
75 LIEF_EM_SPARCV9 = 43,
76 LIEF_EM_TRICORE = 44,
77 LIEF_EM_ARC = 45,
78 LIEF_EM_H8_300 = 46,
79 LIEF_EM_H8_300H = 47,
80 LIEF_EM_H8S = 48,
81 LIEF_EM_H8_500 = 49,
82 LIEF_EM_IA_64 = 50,
83 LIEF_EM_MIPS_X = 51,
84 LIEF_EM_COLDFIRE = 52,
85 LIEF_EM_68HC12 = 53,
86 LIEF_EM_MMA = 54,
87 LIEF_EM_PCP = 55,
88 LIEF_EM_NCPU = 56,
89 LIEF_EM_NDR1 = 57,
90 LIEF_EM_STARCORE = 58,
91 LIEF_EM_ME16 = 59,
92 LIEF_EM_ST100 = 60,
93 LIEF_EM_TINYJ = 61,
94 LIEF_EM_X86_64 = 62,
95 LIEF_EM_PDSP = 63,
96 LIEF_EM_PDP10 = 64,
97 LIEF_EM_PDP11 = 65,
98 LIEF_EM_FX66 = 66,
99 LIEF_EM_ST9PLUS = 67,
100 LIEF_EM_ST7 = 68,
101 LIEF_EM_68HC16 = 69,
102 LIEF_EM_68HC11 = 70,
103 LIEF_EM_68HC08 = 71,
104 LIEF_EM_68HC05 = 72,
105 LIEF_EM_SVX = 73,
106 LIEF_EM_ST19 = 74,
107 LIEF_EM_VAX = 75,
108 LIEF_EM_CRIS = 76,
109 LIEF_EM_JAVELIN = 77,
110 LIEF_EM_FIREPATH = 78,
111 LIEF_EM_ZSP = 79,
112 LIEF_EM_MMIX = 80,
113 LIEF_EM_HUANY = 81,
114 LIEF_EM_PRISM = 82,
115 LIEF_EM_AVR = 83,
116 LIEF_EM_FR30 = 84,
117 LIEF_EM_D10V = 85,
118 LIEF_EM_D30V = 86,
119 LIEF_EM_V850 = 87,
120 LIEF_EM_M32R = 88,
121 LIEF_EM_MN10300 = 89,
122 LIEF_EM_MN10200 = 90,
123 LIEF_EM_PJ = 91,
124 LIEF_EM_OPENRISC = 92,
125 LIEF_EM_ARC_COMPACT = 93,
126 LIEF_EM_XTENSA = 94,
127 LIEF_EM_VIDEOCORE = 95,
128 LIEF_EM_TMM_GPP = 96,
129 LIEF_EM_NS32K = 97,
130 LIEF_EM_TPC = 98,
131 LIEF_EM_SNP1K = 99,
132 LIEF_EM_ST200 = 100,
133 LIEF_EM_IP2K = 101,
134 LIEF_EM_MAX = 102,
135 LIEF_EM_CR = 103,
136 LIEF_EM_F2MC16 = 104,
137 LIEF_EM_MSP430 = 105,
138 LIEF_EM_BLACKFIN = 106,
139 LIEF_EM_SE_C33 = 107,
140 LIEF_EM_SEP = 108,
141 LIEF_EM_ARCA = 109,
142 LIEF_EM_UNICORE = 110,
143 LIEF_EM_EXCESS = 111,
144 LIEF_EM_DXP = 112,
145 LIEF_EM_ALTERA_NIOS2 = 113,
146 LIEF_EM_CRX = 114,
147 LIEF_EM_XGATE = 115,
148 LIEF_EM_C166 = 116,
149 LIEF_EM_M16C = 117,
150 LIEF_EM_DSPIC30F = 118,
151 /* Controller */
152 LIEF_EM_CE = 119,
153 LIEF_EM_M32C = 120,
154 LIEF_EM_TSK3000 = 131,
155 LIEF_EM_RS08 = 132,
156 LIEF_EM_SHARC = 133,
157 /* processors */
158 LIEF_EM_ECOG2 = 134,
159 LIEF_EM_SCORE7 = 135,
160 LIEF_EM_DSP24 = 136,
161 LIEF_EM_VIDEOCORE3 = 137,
162 LIEF_EM_LATTICEMICO32 = 138,
163 LIEF_EM_SE_C17 = 139,
164 LIEF_EM_TI_C6000 = 140,
165 LIEF_EM_TI_C2000 = 141,
166 LIEF_EM_TI_C5500 = 142,
167 LIEF_EM_MMDSP_PLUS = 160,
168 LIEF_EM_CYPRESS_M8C = 161,
169 LIEF_EM_R32C = 162,
170 LIEF_EM_TRIMEDIA = 163,
171 LIEF_EM_HEXAGON = 164,
172 LIEF_EM_8051 = 165,
173 LIEF_EM_STXP7X = 166,
174 /* and extensible RISC processors */
175 LIEF_EM_NDS32 = 167, /* Andes Technology compact code size embedded RISC */
176 /* processor family */
177 LIEF_EM_ECOG1 = 168,
178 LIEF_EM_ECOG1X = 168,
179 LIEF_EM_MAXQ30 = 169,
180 LIEF_EM_XIMO16 = 170,
181 LIEF_EM_MANIK = 171,
182 LIEF_EM_CRAYNV2 = 172,
183 LIEF_EM_RX = 173,
184 LIEF_EM_METAG = 174,
185 /* architecture */
186 LIEF_EM_MCST_ELBRUS = 175,
187 LIEF_EM_ECOG16 = 176,
188 LIEF_EM_CR16 = 177,
189 /* microprocessor */
190 LIEF_EM_ETPU = 178,
191 LIEF_EM_SLE9X = 179,
192 LIEF_EM_L10M = 180,
193 LIEF_EM_K10M = 181,
194 LIEF_EM_AARCH64 = 183,
195 LIEF_EM_AVR32 = 185,
196 LIEF_EM_STM8 = 186,
197 LIEF_EM_TILE64 = 187,
198 LIEF_EM_TILEPRO = 188,
199 LIEF_EM_CUDA = 190,
200 LIEF_EM_TILEGX = 191,
201 LIEF_EM_CLOUDSHIELD = 192,
202 LIEF_EM_COREA_1ST = 193,
203 LIEF_EM_COREA_2ND = 194,
204 LIEF_EM_ARC_COMPACT2 = 195,
205 LIEF_EM_OPEN8 = 196,
206 LIEF_EM_RL78 = 197,
207 LIEF_EM_VIDEOCORE5 = 198,
208 LIEF_EM_78KOR = 199,
209 LIEF_EM_56800EX = 200,
210 LIEF_EM_BA1 = 201,
211 LIEF_EM_BA2 = 202,
212 LIEF_EM_XCORE = 203,
213 LIEF_EM_MCHP_PIC = 204,
214 LIEF_EM_INTEL205 = 205,
215 LIEF_EM_INTEL206 = 206,
216 LIEF_EM_INTEL207 = 207,
217 LIEF_EM_INTEL208 = 208,
218 LIEF_EM_INTEL209 = 209,
219 LIEF_EM_KM32 = 210,
220 LIEF_EM_KMX32 = 211,
221 LIEF_EM_KMX16 = 212,
222 LIEF_EM_KMX8 = 213,
223 LIEF_EM_KVARC = 214,
224 LIEF_EM_CDP = 215,
225 LIEF_EM_COGE = 216,
226 LIEF_EM_COOL = 217,
227 LIEF_EM_NORC = 218,
228 LIEF_EM_CSR_KALIMBA = 219,
229 LIEF_EM_AMDGPU = 224,
230 LIEF_EM_RISCV = 243,
231 LIEF_EM_BPF = 247,
232 LIEF_EM_LOONGARCH = 258
233};
234
235
237enum LIEF_ELF_CLASS {
238 LIEF_ELFCLASSNONE = 0,
239 LIEF_ELFCLASS32 = 1,
240 LIEF_ELFCLASS64 = 2
241};
242
244enum LIEF_ELF_DATA {
245 LIEF_ELFDATANONE = 0,
246 LIEF_ELFDATA2LSB = 1,
247 LIEF_ELFDATA2MSB = 2
248};
249
251enum LIEF_OS_ABI {
252 LIEF_OSABI_SYSTEMV = 0,
253 LIEF_OSABI_HPUX = 1,
254 LIEF_OSABI_NETBSD = 2,
255 LIEF_OSABI_GNU = 3,
256 LIEF_OSABI_LINUX = 3,
257 LIEF_OSABI_HURD = 4,
258 LIEF_OSABI_SOLARIS = 6,
259 LIEF_OSABI_AIX = 7,
260 LIEF_OSABI_IRIX = 8,
261 LIEF_OSABI_FREEBSD = 9,
262 LIEF_OSABI_TRU64 = 10,
263 LIEF_OSABI_MODESTO = 11,
264 LIEF_OSABI_OPENBSD = 12,
265 LIEF_OSABI_OPENVMS = 13,
266 LIEF_OSABI_NSK = 14,
267 LIEF_OSABI_AROS = 15,
268 LIEF_OSABI_FENIXOS = 16,
269 LIEF_OSABI_CLOUDABI = 17,
270 LIEF_OSABI_C6000_ELFABI = 64,
271 LIEF_OSABI_AMDGPU_HSA = 64,
272 LIEF_OSABI_C6000_LINUX = 65,
273 LIEF_OSABI_ARM = 97,
274 LIEF_OSABI_STANDALONE = 255
275};
276
277/* ELF Relocations */
278
279#define ELF_RELOC(name, value) name = value,
280
282enum LIEF_RELOC_x86_64 {
283 #include "LIEF/ELF/Relocations/x86_64.def"
284};
285
287enum RELOC_i386 {
288 #include "LIEF/ELF/Relocations/i386.def"
289};
290
291/* ELF Relocation types for PPC32 */
292enum LIEF_RELOC_POWERPC32 {
293 #include "LIEF/ELF/Relocations/PowerPC.def"
294};
295
296/* ELF Relocation types for PPC64 */
297enum LIEF_RELOC_POWERPC64 {
298 #include "LIEF/ELF/Relocations/PowerPC64.def"
299};
300
301/* ELF Relocation types for AArch64 */
302enum LIEF_RELOC_AARCH64 {
303 #include "LIEF/ELF/Relocations/AArch64.def"
304};
305
306/* ELF Relocation types for ARM */
307enum LIEF_RELOC_ARM {
308 #include "LIEF/ELF/Relocations/ARM.def"
309};
310
311/* ELF Relocation types for Mips */
312enum LIEF_RELOC_MIPS {
313 #include "LIEF/ELF/Relocations/Mips.def"
314};
315
316/* ELF Relocation types for Hexagon */
317enum LIEF_RELOC_HEXAGON {
318 #include "LIEF/ELF/Relocations/Hexagon.def"
319};
320
321/* ELF Relocation types for S390/zSeries */
322enum LIEF_RELOC_SYSTEMZ {
323 #include "LIEF/ELF/Relocations/SystemZ.def"
324};
325
326/* ELF Relocation type for Sparc. */
327enum LIEF_RELOC_SPARC {
328 #include "LIEF/ELF/Relocations/Sparc.def"
329};
330
331/* ELF Relocation types for LoongArch. */
332enum LIEF_RELOC_LOONGARCH {
333 #include "LIEF/ELF/Relocations/LoongArch.def"
334};
335
336#undef ELF_RELOC
337
338/* Specific e_flags for PPC64 */
339enum LIEF_PPC64_EFLAGS {
340 /* e_flags bits specifying ABI: */
341 /* 1 for original ABI using function descriptors, */
342 /* 2 for revised ABI without function descriptors, */
343 /* 0 for unspecified or not using any features affected by the differences. */
344 LIEF_EF_PPC64_ABI = 3
345};
346
347/* ARM Specific e_flags */
348enum LIEF_ARM_EFLAGS {
349 LIEF_EF_ARM_SOFT_FLOAT = 0x00000200U,
350 LIEF_EF_ARM_VFP_FLOAT = 0x00000400U,
351 LIEF_EF_ARM_EABI_UNKNOWN = 0x00000000U,
352 LIEF_EF_ARM_EABI_VER1 = 0x01000000U,
353 LIEF_EF_ARM_EABI_VER2 = 0x02000000U,
354 LIEF_EF_ARM_EABI_VER3 = 0x03000000U,
355 LIEF_EF_ARM_EABI_VER4 = 0x04000000U,
356 LIEF_EF_ARM_EABI_VER5 = 0x05000000U,
357 LIEF_EF_ARM_EABIMASK = 0xFF000000U
358};
359
360/* Mips Specific e_flags */
361enum LIEF_MIPS_EFLAGS {
362 LIEF_EF_MIPS_NOREORDER = 0x00000001, /* Don't reorder instructions */
363 LIEF_EF_MIPS_PIC = 0x00000002, /* Position independent code */
364 LIEF_EF_MIPS_CPIC = 0x00000004, /* Call object with Position independent code */
365 LIEF_EF_MIPS_ABI2 = 0x00000020, /* File uses N32 ABI */
366 LIEF_EF_MIPS_32BITMODE = 0x00000100, /* Code compiled for a 64-bit machine */
367 /* in 32-bit mode */
368 LIEF_EF_MIPS_FP64 = 0x00000200, /* Code compiled for a 32-bit machine */
369 /* but uses 64-bit FP registers */
370 LIEF_EF_MIPS_NAN2008 = 0x00000400, /* Uses IEE 754-2008 NaN encoding */
371
372 /* ABI flags */
373 LIEF_EF_MIPS_ABI_O32 = 0x00001000, /* This file follows the first MIPS 32 bit ABI */
374 LIEF_EF_MIPS_ABI_O64 = 0x00002000, /* O32 ABI extended for 64-bit architecture. */
375 LIEF_EF_MIPS_ABI_EABI32 = 0x00003000, /* EABI in 32 bit mode. */
376 LIEF_EF_MIPS_ABI_EABI64 = 0x00004000, /* EABI in 64 bit mode. */
377 LIEF_EF_MIPS_ABI = 0x0000f000, /* Mask for selecting EF_MIPS_ABI_ variant. */
378
379 /* MIPS machine variant */
380 LIEF_EF_MIPS_MACH_3900 = 0x00810000, /* Toshiba R3900 */
381 LIEF_EF_MIPS_MACH_4010 = 0x00820000, /* LSI R4010 */
382 LIEF_EF_MIPS_MACH_4100 = 0x00830000, /* NEC VR4100 */
383 LIEF_EF_MIPS_MACH_4650 = 0x00850000, /* MIPS R4650 */
384 LIEF_EF_MIPS_MACH_4120 = 0x00870000, /* NEC VR4120 */
385 LIEF_EF_MIPS_MACH_4111 = 0x00880000, /* NEC VR4111/VR4181 */
386 LIEF_EF_MIPS_MACH_SB1 = 0x008a0000, /* Broadcom SB-1 */
387 LIEF_EF_MIPS_MACH_OCTEON = 0x008b0000, /* Cavium Networks Octeon */
388 LIEF_EF_MIPS_MACH_XLR = 0x008c0000, /* RMI Xlr */
389 LIEF_EF_MIPS_MACH_OCTEON2 = 0x008d0000, /* Cavium Networks Octeon2 */
390 LIEF_EF_MIPS_MACH_OCTEON3 = 0x008e0000, /* Cavium Networks Octeon3 */
391 LIEF_EF_MIPS_MACH_5400 = 0x00910000, /* NEC VR5400 */
392 LIEF_EF_MIPS_MACH_5900 = 0x00920000, /* MIPS R5900 */
393 LIEF_EF_MIPS_MACH_5500 = 0x00980000, /* NEC VR5500 */
394 LIEF_EF_MIPS_MACH_9000 = 0x00990000, /* Unknown */
395 LIEF_EF_MIPS_MACH_LS2E = 0x00a00000, /* ST Microelectronics Loongson 2E */
396 LIEF_EF_MIPS_MACH_LS2F = 0x00a10000, /* ST Microelectronics Loongson 2F */
397 LIEF_EF_MIPS_MACH_LS3A = 0x00a20000, /* Loongson 3A */
398 LIEF_EF_MIPS_MACH = 0x00ff0000, /* EF_MIPS_MACH_xxx selection mask */
399
400 /* ARCH_ASE */
401 LIEF_EF_MIPS_MICROMIPS = 0x02000000, /* microMIPS */
402 LIEF_EF_MIPS_ARCH_ASE_M16 = 0x04000000, /* Has Mips-16 ISA extensions */
403 LIEF_EF_MIPS_ARCH_ASE_MDMX = 0x08000000, /* Has MDMX multimedia extensions */
404 LIEF_EF_MIPS_ARCH_ASE = 0x0f000000, /* Mask for EF_MIPS_ARCH_ASE_xxx flags */
405
406 /* ARCH */
407 LIEF_EF_MIPS_ARCH_1 = 0x00000000, /* MIPS1 instruction set */
408 LIEF_EF_MIPS_ARCH_2 = 0x10000000, /* MIPS2 instruction set */
409 LIEF_EF_MIPS_ARCH_3 = 0x20000000, /* MIPS3 instruction set */
410 LIEF_EF_MIPS_ARCH_4 = 0x30000000, /* MIPS4 instruction set */
411 LIEF_EF_MIPS_ARCH_5 = 0x40000000, /* MIPS5 instruction set */
412 LIEF_EF_MIPS_ARCH_32 = 0x50000000, /* MIPS32 instruction set per linux not elf.h */
413 LIEF_EF_MIPS_ARCH_64 = 0x60000000, /* MIPS64 instruction set per linux not elf.h */
414 LIEF_EF_MIPS_ARCH_32R2 = 0x70000000, /* mips32r2, mips32r3, mips32r5 */
415 LIEF_EF_MIPS_ARCH_64R2 = 0x80000000, /* mips64r2, mips64r3, mips64r5 */
416 LIEF_EF_MIPS_ARCH_32R6 = 0x90000000, /* mips32r6 */
417 LIEF_EF_MIPS_ARCH_64R6 = 0xa0000000, /* mips64r6 */
418 LIEF_EF_MIPS_ARCH = 0xf0000000 /* Mask for applying EF_MIPS_ARCH_ variant */
419};
420
421/* Hexagon Specific e_flags */
422/* Release 5 ABI */
423enum LIEF_HEXAGON_EFLAGS {
424 /* Object processor version flags, bits[3:0] */
425 LIEF_EF_HEXAGON_MACH_V2 = 0x00000001, /* Hexagon V2 */
426 LIEF_EF_HEXAGON_MACH_V3 = 0x00000002, /* Hexagon V3 */
427 LIEF_EF_HEXAGON_MACH_V4 = 0x00000003, /* Hexagon V4 */
428 LIEF_EF_HEXAGON_MACH_V5 = 0x00000004, /* Hexagon V5 */
429
430 /* Highest ISA version flags */
431 LIEF_EF_HEXAGON_ISA_MACH = 0x00000000, /* Same as specified in bits[3:0] */
432 /* of e_flags */
433 LIEF_EF_HEXAGON_ISA_V2 = 0x00000010, /* Hexagon V2 ISA */
434 LIEF_EF_HEXAGON_ISA_V3 = 0x00000020, /* Hexagon V3 ISA */
435 LIEF_EF_HEXAGON_ISA_V4 = 0x00000030, /* Hexagon V4 ISA */
436 LIEF_EF_HEXAGON_ISA_V5 = 0x00000040 /* Hexagon V5 ISA */
437};
438
439
440/* LoongArch Specific e_flags */
441enum LIEF_LOONGARCH_EFLAGS {
442 LIEF_EF_LOONGARCH_ABI_SOFT_FLOAT = 0x1,
443 LIEF_EF_LOONGARCH_ABI_SINGLE_FLOAT = 0x2,
444 LIEF_EF_LOONGARCH_ABI_DOUBLE_FLOAT = 0x3
445};
446
448enum LIEF_SYMBOL_SECTION_INDEX {
449 LIEF_SHN_UNDEF = 0,
450 LIEF_SHN_LORESERVE = 0xff00,
451 LIEF_SHN_LOPROC = 0xff00,
452 LIEF_SHN_HIPROC = 0xff1f,
453 LIEF_SHN_LOOS = 0xff20,
454 LIEF_SHN_HIOS = 0xff3f,
455 LIEF_SHN_ABS = 0xfff1,
456 LIEF_SHN_COMMON = 0xfff2,
457 LIEF_SHN_XINDEX = 0xffff,
458 LIEF_SHN_HIRESERVE = 0xffff
459};
460
462enum LIEF_ELF_SECTION_TYPES {
463 LIEF_SHT_NULL = 0,
464 LIEF_SHT_PROGBITS = 1,
465 LIEF_SHT_SYMTAB = 2,
466 LIEF_SHT_STRTAB = 3,
467 LIEF_SHT_RELA = 4,
468 LIEF_SHT_HASH = 5,
469 LIEF_SHT_DYNAMIC = 6,
470 LIEF_SHT_NOTE = 7,
471 LIEF_SHT_NOBITS = 8,
472 LIEF_SHT_REL = 9,
473 LIEF_SHT_SHLIB = 10,
474 LIEF_SHT_DYNSYM = 11,
475 LIEF_SHT_INIT_ARRAY = 14,
476 LIEF_SHT_FINI_ARRAY = 15,
477 LIEF_SHT_PREINIT_ARRAY = 16,
478 LIEF_SHT_GROUP = 17,
479 LIEF_SHT_SYMTAB_SHNDX = 18,
480 LIEF_SHT_LOOS = 0x60000000,
481 LIEF_SHT_ANDROID_REL = 0x60000001,
482 LIEF_SHT_ANDROID_RELA = 0x60000002,
483 LIEF_SHT_LLVM_ADDRSIG = 0x6fff4c03,
484 LIEF_SHT_RELR = 0x6fffff00,
485 LIEF_SHT_GNU_ATTRIBUTES = 0x6ffffff5,
486 LIEF_SHT_GNU_HASH = 0x6ffffff6,
487 LIEF_SHT_GNU_verdef = 0x6ffffffd,
488 LIEF_SHT_GNU_verneed = 0x6ffffffe,
489 LIEF_SHT_GNU_versym = 0x6fffffff,
490 LIEF_SHT_HIOS = 0x6fffffff,
491 LIEF_SHT_LOPROC = 0x70000000,
492 LIEF_SHT_ARM_EXIDX = 0x70000001U,
493 LIEF_SHT_ARM_PREEMPTMAP = 0x70000002U,
494 LIEF_SHT_ARM_ATTRIBUTES = 0x70000003U,
495 LIEF_SHT_ARM_DEBUGOVERLAY = 0x70000004U,
496 LIEF_SHT_ARM_OVERLAYSECTION = 0x70000005U,
497 LIEF_SHT_HEX_ORDERED = 0x70000000,
499 /* this section based on their sizes */
500 LIEF_SHT_X86_64_UNWIND = 0x70000001,
501 LIEF_SHT_MIPS_REGINFO = 0x70000006,
502 LIEF_SHT_MIPS_OPTIONS = 0x7000000d,
503 LIEF_SHT_MIPS_ABIFLAGS = 0x7000002a,
505 LIEF_SHT_HIPROC = 0x7fffffff,
506 LIEF_SHT_LOUSER = 0x80000000,
507 LIEF_SHT_HIUSER = 0xffffffff
508};
509
510
511
513enum LIEF_ELF_SECTION_FLAGS {
514 LIEF_SHF_NONE = 0x0,
515 LIEF_SHF_WRITE = 0x1,
516 LIEF_SHF_ALLOC = 0x2,
517 LIEF_SHF_EXECINSTR = 0x4,
518 LIEF_SHF_MERGE = 0x10,
519 LIEF_SHF_STRINGS = 0x20,
520 LIEF_SHF_INFO_LINK = 0x40U,
521 LIEF_SHF_LINK_ORDER = 0x80U,
522 LIEF_SHF_OS_NONCONFORMING = 0x100U,
523 LIEF_SHF_GROUP = 0x200U,
524 LIEF_SHF_TLS = 0x400U,
525 LIEF_SHF_EXCLUDE = 0x80000000U,
526 /* Start of target-specific flags. */
527
528 /* XCORE_SHF_CP_SECTION - All sections with the "c" flag are grouped
529 * together by the linker to form the constant pool and the cp register is
530 * set to the start of the constant pool by the boot code.
531 */
532 LIEF_XCORE_SHF_CP_SECTION = 0x800U,
533
534 /* XCORE_SHF_DP_SECTION - All sections with the "d" flag are grouped
535 * together by the linker to form the data section and the dp register is
536 * set to the start of the section by the boot code.
537 */
538 LIEF_XCORE_SHF_DP_SECTION = 0x1000U,
539 LIEF_SHF_MASKOS = 0x0ff00000,
540 LIEF_SHF_MASKPROC = 0xf0000000,
542 /* If an object file section does not have this flag set, then it may not hold
543 * more than 2GB and can be freely referred to in objects using smaller code
544 * models. Otherwise, only objects using larger code models can refer to them.
545 * For example, a medium code model object can refer to data in a section that
546 * sets this flag besides being able to refer to data in a section that does
547 * not set it; likewise, a small code model object can refer only to code in a
548 * section that does not set this flag.
549 */
550 LIEF_SHF_X86_64_LARGE = 0x10000000,
551
552 /* All sections with the GPREL flag are grouped into a global data area
553 * for faster accesses.
554 */
555 LIEF_SHF_HEX_GPREL = 0x10000000,
556
557 /* Section contains text/data which may be replicated in other sections.
558 * Linker must retain only one copy.
559 */
560 LIEF_SHF_MIPS_NODUPES = 0x01000000,
561
562 LIEF_SHF_MIPS_NAMES = 0x02000000,
563 LIEF_SHF_MIPS_LOCAL = 0x04000000,
564 LIEF_SHF_MIPS_NOSTRIP = 0x08000000,
565 LIEF_SHF_MIPS_GPREL = 0x10000000,
566 LIEF_SHF_MIPS_MERGE = 0x20000000,
567 LIEF_SHF_MIPS_ADDR = 0x40000000,
568 LIEF_SHF_MIPS_STRING = 0x80000000
569};
570
571
573enum LIEF_SYMBOL_BINDINGS {
574 LIEF_STB_LOCAL = 0,
575 LIEF_STB_GLOBAL = 1,
576 LIEF_STB_WEAK = 2,
577 LIEF_STB_GNU_UNIQUE = 10,
578 LIEF_STB_LOOS = 10,
579 LIEF_STB_HIOS = 12,
580 LIEF_STB_LOPROC = 13,
581 LIEF_STB_HIPROC = 15
582};
583
584
585/* Symbol types. */
586enum LIEF_ELF_SYMBOL_TYPES {
587 LIEF_STT_NOTYPE = 0, /* Symbol's type is not specified */
588 LIEF_STT_OBJECT = 1, /* Symbol is a data object (variable, array, etc. */
589 LIEF_STT_FUNC = 2, /* Symbol is executable code (function, etc. */
590 LIEF_STT_SECTION = 3, /* Symbol refers to a section */
591 LIEF_STT_FILE = 4, /* Local, absolute symbol that refers to a file */
592 LIEF_STT_COMMON = 5, /* An uninitialized common block */
593 LIEF_STT_TLS = 6, /* Thread local data object */
594 LIEF_STT_GNU_IFUNC = 10, /* GNU indirect function */
595 LIEF_STT_LOOS = 10, /* Lowest operating system-specific symbol type */
596 LIEF_STT_HIOS = 12, /* Highest operating system-specific symbol type */
597 LIEF_STT_LOPROC = 13, /* Lowest processor-specific symbol type */
598 LIEF_STT_HIPROC = 15 /* Highest processor-specific symbol type */
599};
600
601enum LIEF_ELF_SYMBOL_VISIBILITY {
602 LIEF_STV_DEFAULT = 0, /* Visibility is specified by binding type */
603 LIEF_STV_INTERNAL = 1, /* Defined by processor supplements */
604 LIEF_STV_HIDDEN = 2, /* Not visible to other components */
605 LIEF_STV_PROTECTED = 3 /* Visible in other components but not preemptable */
606};
607
608
610enum LIEF_SEGMENT_TYPES {
611 LIEF_PT_NULL = 0,
612 LIEF_PT_LOAD = 1,
613 LIEF_PT_DYNAMIC = 2,
614 LIEF_PT_INTERP = 3,
615 LIEF_PT_NOTE = 4,
616 LIEF_PT_SHLIB = 5,
617 LIEF_PT_PHDR = 6,
618 LIEF_PT_TLS = 7,
619 LIEF_PT_LOOS = 0x60000000,
620 LIEF_PT_HIOS = 0x6fffffff,
621 LIEF_PT_LOPROC = 0x70000000,
622 LIEF_PT_HIPROC = 0x7fffffff,
624 /* x86-64 program header types. */
625 /* These all contain stack unwind tables. */
626 LIEF_PT_GNU_EH_FRAME = 0x6474e550,
627 LIEF_PT_SUNW_EH_FRAME = 0x6474e550,
628 LIEF_PT_SUNW_UNWIND = 0x6464e550,
629
630 LIEF_PT_GNU_STACK = 0x6474e551,
631 LIEF_PT_GNU_PROPERTY = 0x6474e553,
632 LIEF_PT_GNU_RELRO = 0x6474e552,
634 /* ARM program header types. */
635 LIEF_PT_ARM_ARCHEXT = 0x70000000,
637 /* These all contain stack unwind tables. */
638 LIEF_PT_ARM_EXIDX = 0x70000001,
639 LIEF_PT_ARM_UNWIND = 0x70000001,
640
641 /* MIPS program header types. */
642 LIEF_PT_MIPS_REGINFO = 0x70000000,
643 LIEF_PT_MIPS_RTPROC = 0x70000001,
644 LIEF_PT_MIPS_OPTIONS = 0x70000002,
645 LIEF_PT_MIPS_ABIFLAGS = 0x70000003
646};
647
648
650enum LIEF_ELF_SEGMENT_FLAGS {
651 LIEF_PF_NONE = 0,
652 LIEF_PF_X = 1,
653 LIEF_PF_W = 2,
654 LIEF_PF_R = 4,
655 LIEF_PF_MASKOS = 0x0ff00000,
656 LIEF_PF_MASKPROC = 0xf0000000
657};
658
659
661enum LIEF_DYNAMIC_TAGS {
662 LIEF_DT_NULL = 0,
663 LIEF_DT_NEEDED = 1,
664 LIEF_DT_PLTRELSZ = 2,
665 LIEF_DT_PLTGOT = 3,
666 LIEF_DT_HASH = 4,
667 LIEF_DT_STRTAB = 5,
668 LIEF_DT_SYMTAB = 6,
669 LIEF_DT_RELA = 7,
670 LIEF_DT_RELASZ = 8,
671 LIEF_DT_RELAENT = 9,
672 LIEF_DT_STRSZ = 10,
673 LIEF_DT_SYMENT = 11,
674 LIEF_DT_INIT = 12,
675 LIEF_DT_FINI = 13,
676 LIEF_DT_SONAME = 14,
677 LIEF_DT_RPATH = 15,
678 LIEF_DT_SYMBOLIC = 16,
679 LIEF_DT_REL = 17,
680 LIEF_DT_RELSZ = 18,
681 LIEF_DT_RELENT = 19,
682 LIEF_DT_PLTREL = 20,
683 LIEF_DT_DEBUG = 21,
684 LIEF_DT_TEXTREL = 22,
685 LIEF_DT_JMPREL = 23,
686 LIEF_DT_BIND_NOW = 24,
687 LIEF_DT_INIT_ARRAY = 25,
688 LIEF_DT_FINI_ARRAY = 26,
689 LIEF_DT_INIT_ARRAYSZ = 27,
690 LIEF_DT_FINI_ARRAYSZ = 28,
691 LIEF_DT_RUNPATH = 29,
692 LIEF_DT_FLAGS = 30,
693 LIEF_DT_ENCODING = 32,
695 LIEF_DT_PREINIT_ARRAY = 32,
696 LIEF_DT_PREINIT_ARRAYSZ = 33,
698 LIEF_DT_LOOS = 0x60000000,
699 LIEF_DT_HIOS = 0x6FFFFFFF,
700 LIEF_DT_LOPROC = 0x70000000,
701 LIEF_DT_HIPROC = 0x7FFFFFFF,
703 LIEF_DT_GNU_HASH = 0x6FFFFEF5,
704 LIEF_DT_RELACOUNT = 0x6FFFFFF9,
705 LIEF_DT_RELCOUNT = 0x6FFFFFFA,
707 LIEF_DT_FLAGS_1 = 0x6FFFFFFB,
708 LIEF_DT_VERSYM = 0x6FFFFFF0,
709 LIEF_DT_VERDEF = 0x6FFFFFFC,
710 LIEF_DT_VERDEFNUM = 0x6FFFFFFD,
711 LIEF_DT_VERNEED = 0x6FFFFFFE,
712 LIEF_DT_VERNEEDNUM = 0x6FFFFFFF,
714 /* Mips specific dynamic table entry tags. */
715 LIEF_DT_MIPS_RLD_VERSION = 0x70000001,
716 LIEF_DT_MIPS_TIME_STAMP = 0x70000002,
717 LIEF_DT_MIPS_ICHECKSUM = 0x70000003,
718 LIEF_DT_MIPS_IVERSION = 0x70000004,
719 LIEF_DT_MIPS_FLAGS = 0x70000005,
720 LIEF_DT_MIPS_BASE_ADDRESS = 0x70000006,
721 LIEF_DT_MIPS_MSYM = 0x70000007,
722 LIEF_DT_MIPS_CONFLICT = 0x70000008,
723 LIEF_DT_MIPS_LIBLIST = 0x70000009,
724 LIEF_DT_MIPS_LOCAL_GOTNO = 0x7000000a,
725 LIEF_DT_MIPS_CONFLICTNO = 0x7000000b,
726 LIEF_DT_MIPS_LIBLISTNO = 0x70000010,
727 LIEF_DT_MIPS_SYMTABNO = 0x70000011,
728 LIEF_DT_MIPS_UNREFEXTNO = 0x70000012,
729 LIEF_DT_MIPS_GOTSYM = 0x70000013,
730 LIEF_DT_MIPS_HIPAGENO = 0x70000014,
731 LIEF_DT_MIPS_RLD_MAP = 0x70000016,
732 LIEF_DT_MIPS_DELTA_CLASS = 0x70000017,
733 LIEF_DT_MIPS_DELTA_CLASS_NO = 0x70000018,
734 LIEF_DT_MIPS_DELTA_INSTANCE = 0x70000019,
735 LIEF_DT_MIPS_DELTA_INSTANCE_NO = 0x7000001A,
736 LIEF_DT_MIPS_DELTA_RELOC = 0x7000001B,
737 LIEF_DT_MIPS_DELTA_RELOC_NO = 0x7000001C,
738 LIEF_DT_MIPS_DELTA_SYM = 0x7000001D,
739 LIEF_DT_MIPS_DELTA_SYM_NO = 0x7000001E,
740 LIEF_DT_MIPS_DELTA_CLASSSYM = 0x70000020,
741 LIEF_DT_MIPS_DELTA_CLASSSYM_NO = 0x70000021,
742 LIEF_DT_MIPS_CXX_FLAGS = 0x70000022,
743 LIEF_DT_MIPS_PIXIE_INIT = 0x70000023,
744 LIEF_DT_MIPS_SYMBOL_LIB = 0x70000024,
745 LIEF_DT_MIPS_LOCALPAGE_GOTIDX = 0x70000025,
746 LIEF_DT_MIPS_LOCAL_GOTIDX = 0x70000026,
747 LIEF_DT_MIPS_HIDDEN_GOTIDX = 0x70000027,
748 LIEF_DT_MIPS_PROTECTED_GOTIDX = 0x70000028,
749 LIEF_DT_MIPS_OPTIONS = 0x70000029,
750 LIEF_DT_MIPS_INTERFACE = 0x7000002A,
751 LIEF_DT_MIPS_DYNSTR_ALIGN = 0x7000002B,
752 LIEF_DT_MIPS_INTERFACE_SIZE = 0x7000002C,
753 LIEF_DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 0x7000002D,
754 LIEF_DT_MIPS_PERF_SUFFIX = 0x7000002E,
755 LIEF_DT_MIPS_COMPACT_SIZE = 0x7000002F,
756 LIEF_DT_MIPS_GP_VALUE = 0x70000030,
757 LIEF_DT_MIPS_AUX_DYNAMIC = 0x70000031,
758 LIEF_DT_MIPS_PLTGOT = 0x70000032,
759 LIEF_DT_MIPS_RWPLT = 0x70000034,
761 /* Android specific dynamic table entry tags. */
762 LIEF_DT_ANDROID_REL_OFFSET = 0x6000000D,
763 LIEF_DT_ANDROID_REL_SIZE = 0x6000000E,
764 LIEF_DT_ANDROID_REL = 0x6000000F,
765 LIEF_DT_ANDROID_RELSZ = 0x60000010,
766 LIEF_DT_ANDROID_RELA = 0x60000011,
767 LIEF_DT_ANDROID_RELASZ = 0x60000012,
768 LIEF_DT_RELR = 0x6FFFE000,
769 LIEF_DT_RELRSZ = 0x6FFFE001,
770 LIEF_DT_RELRENT = 0x6FFFE003,
771 LIEF_DT_RELRCOUNT = 0x6FFFE005
772};
773
775enum LIEF_DYNAMIC_FLAGS {
776 LIEF_DF_ORIGIN = 0x00000001,
777 LIEF_DF_SYMBOLIC = 0x00000002,
778 LIEF_DF_TEXTREL = 0x00000004,
779 LIEF_DF_BIND_NOW = 0x00000008,
780 LIEF_DF_STATIC_TLS = 0x00000010,
781};
782
783enum LIEF_DYNAMIC_FLAGS_1 {
784 LIEF_DF_1_NOW = 0x00000001,
785 LIEF_DF_1_GLOBAL = 0x00000002,
786 LIEF_DF_1_GROUP = 0x00000004,
787 LIEF_DF_1_NODELETE = 0x00000008,
788 LIEF_DF_1_LOADFLTR = 0x00000010,
789 LIEF_DF_1_INITFIRST = 0x00000020,
790 LIEF_DF_1_NOOPEN = 0x00000040,
791 LIEF_DF_1_ORIGIN = 0x00000080,
792 LIEF_DF_1_DIRECT = 0x00000100,
793 LIEF_DF_1_TRANS = 0x00000200,
794 LIEF_DF_1_INTERPOSE = 0x00000400,
795 LIEF_DF_1_NODEFLIB = 0x00000800,
796 LIEF_DF_1_NODUMP = 0x00001000,
797 LIEF_DF_1_CONFALT = 0x00002000,
798 LIEF_DF_1_ENDFILTEE = 0x00004000,
799 LIEF_DF_1_DISPRELDNE = 0x00008000,
800 LIEF_DF_1_DISPRELPND = 0x00010000,
801 LIEF_DF_1_NODIRECT = 0x00020000,
802 LIEF_DF_1_IGNMULDEF = 0x00040000,
803 LIEF_DF_1_NOKSYMS = 0x00080000,
804 LIEF_DF_1_NOHDR = 0x00100000,
805 LIEF_DF_1_EDITED = 0x00200000,
806 LIEF_DF_1_NORELOC = 0x00400000,
807 LIEF_DF_1_SYMINTPOSE = 0x00800000,
808 LIEF_DF_1_GLOBAUDIT = 0x01000000,
809 LIEF_DF_1_SINGLETON = 0x02000000,
810 LIEF_DF_1_PIE = 0x08000000
811};
812
813/* DT_MIPS_FLAGS values. */
814enum {
815 LIEF_RHF_NONE = 0x00000000, /* No flags. */
816 LIEF_RHF_QUICKSTART = 0x00000001, /* Uses shortcut pointers. */
817 LIEF_RHF_NOTPOT = 0x00000002, /* Hash size is not a power of two. */
818 LIEF_RHS_NO_LIBRARY_REPLACEMENT = 0x00000004, /* Ignore LD_LIBRARY_PATH. */
819 LIEF_RHF_NO_MOVE = 0x00000008, /* DSO address may not be relocated. */
820 LIEF_RHF_SGI_ONLY = 0x00000010, /* SGI specific features. */
821 LIEF_RHF_GUARANTEE_INIT = 0x00000020, /* Guarantee that .init will finish */
822 /* executing before any non-init */
823 /* code in DSO is called. */
824 LIEF_RHF_DELTA_C_PLUS_PLUS = 0x00000040, /* Contains Delta C++ code. */
825 LIEF_RHF_GUARANTEE_START_INIT = 0x00000080, /* Guarantee that .init will start */
826 /* executing before any non-init */
827 /* code in DSO is called. */
828 LIEF_RHF_PIXIE = 0x00000100, /* Generated by pixie. */
829 LIEF_RHF_DEFAULT_DELAY_LOAD = 0x00000200, /* Delay-load DSO by default. */
830 LIEF_RHF_REQUICKSTART = 0x00000400, /* Object may be requickstarted */
831 LIEF_RHF_REQUICKSTARTED = 0x00000800, /* Object has been requickstarted */
832 LIEF_RHF_CORD = 0x00001000, /* Generated by cord. */
833 LIEF_RHF_NO_UNRES_UNDEF = 0x00002000, /* Object contains no unresolved */
834 /* undef symbols. */
835 LIEF_RHF_RLD_ORDER_SAFE = 0x00004000 /* Symbol table is in a safe order. */
836};
837
839enum {
840 LIEF_VER_DEF_NONE = 0,
841 LIEF_VER_DEF_CURRENT = 1
842};
843
845enum {
846 LIEF_VER_FLG_BASE = 0x1,
847 LIEF_VER_FLG_WEAK = 0x2,
848 LIEF_VER_FLG_INFO = 0x4
849};
850
852enum {
853 LIEF_VER_NDX_LOCAL = 0,
854 LIEF_VER_NDX_GLOBAL = 1,
855 LIEF_VERSYM_VERSION = 0x7fff,
856 LIEF_VERSYM_HIDDEN = 0x8000
857};
858
860enum {
861 LIEF_VER_NEED_NONE = 0,
862 LIEF_VER_NEED_CURRENT = 1
863};
864
865enum LIEF_AUX_TYPE {
866 LIEF_AT_NULL = 0,
867 LIEF_AT_IGNORE = 1,
868 LIEF_AT_EXECFD = 2,
869 LIEF_AT_PHDR = 3,
870 LIEF_AT_PHENT = 4,
871 LIEF_AT_PHNUM = 5,
872 LIEF_AT_PAGESZ = 6,
873 LIEF_AT_BASE = 7,
874 LIEF_AT_FLAGS = 8,
875 LIEF_AT_ENTRY = 9,
876 LIEF_AT_NOTELF = 10,
877 LIEF_AT_UID = 11,
878 LIEF_AT_EUID = 12,
879 LIEF_AT_GID = 13,
880 LIEF_AT_EGID = 14,
881 LIEF_AT_CLKTCK = 17,
883 /* Some more special a_type values describing the hardware. */
884
885 LIEF_AT_PLATFORM = 15,
886 LIEF_AT_HWCAP = 16,
888 /* This entry gives some information about the FPU initialization
889 performed by the kernel. */
890
891 LIEF_AT_FPUCW = 18,
893 /* Cache block sizes. */
894 LIEF_AT_DCACHEBSIZE = 19,
895 LIEF_AT_ICACHEBSIZE = 20,
896 LIEF_AT_UCACHEBSIZE = 21,
898 /* A special ignored value for PPC, used by the kernel to control the
899 interpretation of the AUXV. Must be > 16. */
900
901 LIEF_AT_IGNOREPPC = 22,
902 LIEF_AT_SECURE = 23,
903 LIEF_AT_BASE_PLATFORM = 24,
904 LIEF_AT_RANDOM = 25,
905 LIEF_AT_HWCAP2 = 26,
906 LIEF_AT_EXECFN = 31,
908 /* Pointer to the global system page used for system calls and other
909 nice things. */
910 LIEF_AT_SYSINFO = 32,
911 LIEF_AT_SYSINFO_EHDR = 33,
912
913 /* Shapes of the caches. Bits 0-3 contains associativity; bits 4-7 contains
914 log2 of line size; mask those to get cache size. */
915 LIEF_AT_L1I_CACHESHAPE = 34,
916 LIEF_AT_L1D_CACHESHAPE = 35,
917 LIEF_AT_L2_CACHESHAPE = 36,
918 LIEF_AT_L3_CACHESHAPE = 37
919};
920
923enum LIEF_DYNSYM_COUNT_METHODS {
924 LIEF_COUNT_AUTO = 0,
925 LIEF_COUNT_SECTION = 1,
926 LIEF_COUNT_HASH = 2,
927 LIEF_COUNT_RELOCATIONS = 3,
928};
929
930enum LIEF_NOTE_TYPES {
931 LIEF_NT_UNKNOWN = 0,
932 LIEF_NT_GNU_ABI_TAG = 1,
933 LIEF_NT_GNU_HWCAP = 2,
934 LIEF_NT_GNU_BUILD_ID = 3,
935 LIEF_NT_GNU_GOLD_VERSION = 4,
936 LIEF_NT_GNU_PROPERTY_TYPE_0 = 5,
937 LIEF_NT_GNU_BUILD_ATTRIBUTE_OPEN = 0x100,
938 LIEF_NT_GNU_BUILD_ATTRIBUTE_FUNC = 0x101,
939 LIEF_NT_CRASHPAD = 0x4f464e49,
940};
941
942enum LIEF_NOTE_TYPES_CORE {
943 LIEF_NT_CORE_UNKNOWN = 0,
944 LIEF_NT_PRSTATUS = 1,
945 LIEF_NT_PRFPREG = 2,
946 LIEF_NT_PRPSINFO = 3,
947 LIEF_NT_TASKSTRUCT = 4,
948 LIEF_NT_AUXV = 6,
949 LIEF_NT_SIGINFO = 0x53494749,
950 LIEF_NT_FILE = 0x46494c45,
951 LIEF_NT_PRXFPREG = 0x46e62b7f,
952
953 LIEF_NT_ARM_VFP = 0x400,
954 LIEF_NT_ARM_TLS = 0x401,
955 LIEF_NT_ARM_HW_BREAK = 0x402,
956 LIEF_NT_ARM_HW_WATCH = 0x403,
957 LIEF_NT_ARM_SYSTEM_CALL = 0x404,
958 LIEF_NT_ARM_SVE = 0x405,
959
960 LIEF_NT_386_TLS = 0x200,
961 LIEF_NT_386_IOPERM = 0x201,
962 LIEF_NT_386_XSTATE = 0x202,
963
964};
965
966
967enum LIEF_NOTE_ABIS {
968 LIEF_ELF_NOTE_UNKNOWN = ~(unsigned int)(0),
969 LIEF_ELF_NOTE_OS_LINUX = 0,
970 LIEF_ELF_NOTE_OS_GNU = 1,
971 LIEF_ELF_NOTE_OS_SOLARIS2 = 2,
972 LIEF_ELF_NOTE_OS_FREEBSD = 3,
973 LIEF_ELF_NOTE_OS_NETBSD = 4,
974 LIEF_ELF_NOTE_OS_SYLLABLE = 5,
975};
976
977enum LIEF_RELOCATION_PURPOSES {
978 LIEF_RELOC_PURPOSE_NONE = 0,
979 LIEF_RELOC_PURPOSE_PLTGOT = 1,
980 LIEF_RELOC_PURPOSE_DYNAMIC = 2,
981 LIEF_RELOC_PURPOSE_OBJECT = 3,
982};
983
984#ifdef __cplusplus
985}
986#endif
987
988
989#endif