RTEMS  5.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
elf_machdep.h
1 /* $NetBSD: elf_machdep.h,v 1.9 2011/01/15 10:00:07 matt Exp $ */
2 
3 #define ELF32_MACHDEP_ENDIANNESS ELFDATA2MSB
4 #define ELF32_MACHDEP_ID_CASES \
5  case EM_PPC: \
6  break;
7 
8 #define ELF64_MACHDEP_ENDIANNESS ELFDATA2MSB
9 #define ELF64_MACHDEP_ID_CASES \
10  case EM_PPC64: \
11  break;
12 
13 #define ELF32_MACHDEP_ID EM_PPC
14 #define ELF64_MACHDEP_ID EM_PPC64
15 
16 #ifdef _LP64
17 #define ARCH_ELFSIZE 64 /* MD native binary size */
18 #else
19 #define ARCH_ELFSIZE 32 /* MD native binary size */
20 #endif
21 
22 /* Specify the value of _GLOBAL_OFFSET_TABLE_ */
23 #define DT_PPC_GOT DT_LOPROC
24 
25 #define R_PPC_NONE 0
26 #define R_PPC_32 1
27 #define R_PPC_24 2
28 #define R_PPC_16 3
29 #define R_PPC_16_LO 4
30 #define R_PPC_16_HI 5 /* R_PPC_ADDIS */
31 #define R_PPC_16_HA 6
32 #define R_PPC_14 7
33 #define R_PPC_14_TAKEN 8
34 #define R_PPC_14_NTAKEN 9
35 #define R_PPC_REL24 10 /* R_PPC_BRANCH */
36 #define R_PPC_REL14 11
37 #define R_PPC_REL14_TAKEN 12
38 #define R_PPC_REL14_NTAKEN 13
39 #define R_PPC_GOT16 14
40 #define R_PPC_GOT16_LO 15
41 #define R_PPC_GOT16_HI 16
42 #define R_PPC_GOT16_HA 17
43 #define R_PPC_PLT24 18
44 #define R_PPC_COPY 19
45 #define R_PPC_GLOB_DAT 20
46 #define R_PPC_JMP_SLOT 21
47 #define R_PPC_RELATIVE 22
48 #define R_PPC_LOCAL24PC 23
49 #define R_PPC_U32 24
50 #define R_PPC_U16 25
51 #define R_PPC_REL32 26
52 #define R_PPC_PLT32 27
53 #define R_PPC_PLTREL32 28
54 #define R_PPC_PLT16_LO 29
55 #define R_PPC_PLT16_HI 30
56 #define R_PPC_PLT16_HA 31
57 #define R_PPC_SDAREL16 32
58 #define R_PPC_SECTOFF 33
59 #define R_PPC_SECTOFF_LO 34
60 #define R_PPC_SECTOFF_HI 35
61 #define R_PPC_SECTOFF_HA 36
62 #define R_PPC_ADDR30 37
63 
64 /* TLS relocations */
65 #define R_PPC_TLS 67
66 
67 #define R_PPC_DTPMOD32 68
68 #define R_PPC_TPREL16 69
69 #define R_PPC_TPREL16_LO 70
70 #define R_PPC_TPREL16_HI 71
71 #define R_PPC_TPREL16_HA 72
72 #define R_PPC_TPREL32 73
73 #define R_PPC_DTPREL16 74
74 #define R_PPC_DTPREL16_LO 75
75 #define R_PPC_DTPREL16_HI 76
76 #define R_PPC_DTPREL16_HA 77
77 #define R_PPC_DTPREL32 78
78 
79 #define R_PPC_GOT_TLSGD16 79
80 #define R_PPC_GOT_TLSGD16_LO 80
81 #define R_PPC_GOT_TLSGD16_HI 81
82 #define R_PPC_GOT_TLSGD16_HA 82
83 #define R_PPC_GOT_TLSLD16 83
84 #define R_PPC_GOT_TLSLD16_LO 84
85 #define R_PPC_GOT_TLSLD16_HI 85
86 #define R_PPC_GOT_TLSLD16_HA 86
87 
88 #define R_PPC_GOT_TPREL16 87
89 #define R_PPC_GOT_TPREL16_LO 88
90 #define R_PPC_GOT_TPREL16_HI 89
91 #define R_PPC_GOT_TPREL16_HA 90
92 #define R_PPC_GOT_DTPREL16 91
93 #define R_PPC_GOT_DTPREL16_LO 92
94 #define R_PPC_GOT_DTPREL16_HI 93
95 #define R_PPC_GOT_DTPREL16_HA 94
96 #define R_PPC_TLSGD 95
97 #define R_PPC_TLSLD 96
98 
99 /* Used for the secure-plt PIC code sequences */
100 #define R_PPC_REL16 249
101 #define R_PPC_REL16_LO 250
102 #define R_PPC_REL16_HI 251
103 #define R_PPC_REL16_HA 252
104 
105 #define R_TYPE(name) __CONCAT(R_PPC_,name)