microblaze.h revision 1.1.1.2 1 1.1 christos /* Xilinx MicroBlaze support for BFD.
2 1.1 christos
3 1.1.1.2 christos Copyright (C) 2009-2015 Free Software Foundation, Inc.
4 1.1 christos
5 1.1 christos This file is part of BFD, the Binary File Descriptor library.
6 1.1 christos
7 1.1 christos This program is free software; you can redistribute it and/or modify
8 1.1 christos it under the terms of the GNU General Public License as published by
9 1.1 christos the Free Software Foundation; either version 3 of the License, or
10 1.1 christos (at your option) any later version.
11 1.1 christos
12 1.1 christos This program is distributed in the hope that it will be useful,
13 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
14 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 1.1 christos GNU General Public License for more details.
16 1.1 christos
17 1.1 christos You should have received a copy of the GNU General Public License
18 1.1 christos along with this program; if not, write to the Free Software
19 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
20 1.1 christos 02110-1301, USA. */
21 1.1 christos
22 1.1 christos /* This file holds definitions specific to the MICROBLAZE ELF ABI. */
23 1.1 christos
24 1.1 christos #ifndef _ELF_MICROBLAZE_H
25 1.1 christos #define _ELF_MICROBLAZE_H
26 1.1 christos
27 1.1 christos #include "elf/reloc-macros.h"
28 1.1 christos
29 1.1 christos /* Relocations. */
30 1.1 christos START_RELOC_NUMBERS (elf_microblaze_reloc_type)
31 1.1 christos RELOC_NUMBER (R_MICROBLAZE_NONE, 0)
32 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32, 1)
33 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_PCREL, 2)
34 1.1 christos RELOC_NUMBER (R_MICROBLAZE_64_PCREL, 3)
35 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_PCREL_LO, 4)
36 1.1 christos RELOC_NUMBER (R_MICROBLAZE_64, 5)
37 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_LO, 6)
38 1.1 christos RELOC_NUMBER (R_MICROBLAZE_SRO32, 7)
39 1.1 christos RELOC_NUMBER (R_MICROBLAZE_SRW32, 8)
40 1.1 christos RELOC_NUMBER (R_MICROBLAZE_64_NONE, 9)
41 1.1 christos RELOC_NUMBER (R_MICROBLAZE_32_SYM_OP_SYM, 10)
42 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GNU_VTINHERIT, 11)
43 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GNU_VTENTRY, 12)
44 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOTPC_64, 13) /* PC-relative GOT offset. */
45 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOT_64, 14) /* GOT entry offset. */
46 1.1 christos RELOC_NUMBER (R_MICROBLAZE_PLT_64, 15) /* PLT offset (PC-relative). */
47 1.1 christos RELOC_NUMBER (R_MICROBLAZE_REL, 16) /* Adjust by program base. */
48 1.1 christos RELOC_NUMBER (R_MICROBLAZE_JUMP_SLOT, 17) /* Create PLT entry. */
49 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GLOB_DAT, 18) /* Create GOT entry. */
50 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOTOFF_64, 19) /* Offset relative to GOT. */
51 1.1 christos RELOC_NUMBER (R_MICROBLAZE_GOTOFF_32, 20) /* Offset relative to GOT. */
52 1.1 christos RELOC_NUMBER (R_MICROBLAZE_COPY, 21) /* Runtime copy. */
53 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLS, 22) /* TLS Reloc */
54 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSGD, 23) /* TLS General Dynamic */
55 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSLD, 24) /* TLS Local Dynamic */
56 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSDTPMOD32, 25) /* TLS Module ID */
57 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL32, 26) /* TLS Offset Within TLS Block */
58 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL64, 27) /* TLS Offset Within TLS Block */
59 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSGOTTPREL32, 28) /* TLS Offset From Thread Pointer */
60 1.1.1.2 christos RELOC_NUMBER (R_MICROBLAZE_TLSTPREL32, 29) /* TLS Offset From Thread Pointer */
61 1.1 christos
62 1.1 christos END_RELOC_NUMBERS (R_MICROBLAZE_max)
63 1.1 christos
64 1.1 christos /* Global base address names. */
65 1.1 christos #define RO_SDA_ANCHOR_NAME "_SDA2_BASE_"
66 1.1 christos #define RW_SDA_ANCHOR_NAME "_SDA_BASE_"
67 1.1 christos
68 1.1 christos /* Section Attributes. */
69 1.1 christos #define SHF_MICROBLAZE_NOREAD 0x80000000
70 1.1 christos
71 1.1 christos #endif /* _ELF_MICROBLAZE_H */
72