Home | History | Annotate | Line # | Download | only in elf
      1       1.1  christos /* Xilinx MicroBlaze support for BFD.
      2       1.1  christos 
      3  1.1.1.10  christos    Copyright (C) 2009-2026 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.1.5  christos   RELOC_NUMBER (R_MICROBLAZE_TEXTPCREL_64, 30)  /* PC-relative TEXT offset.  */
     62   1.1.1.5  christos   RELOC_NUMBER (R_MICROBLAZE_TEXTREL_64, 31)    /* TEXT Entry offset 64-bit.  */
     63   1.1.1.5  christos   RELOC_NUMBER (R_MICROBLAZE_TEXTREL_32_LO, 32) /* TEXT Entry offset 32-bit.  */
     64   1.1.1.8  christos   RELOC_NUMBER (R_MICROBLAZE_32_NONE, 33)
     65       1.1  christos END_RELOC_NUMBERS (R_MICROBLAZE_max)
     66       1.1  christos 
     67       1.1  christos /* Global base address names.  */
     68       1.1  christos #define RO_SDA_ANCHOR_NAME "_SDA2_BASE_"
     69       1.1  christos #define RW_SDA_ANCHOR_NAME "_SDA_BASE_"
     70       1.1  christos 
     71       1.1  christos /* Section Attributes.  */
     72       1.1  christos #define SHF_MICROBLAZE_NOREAD	0x80000000
     73       1.1  christos 
     74       1.1  christos #endif /* _ELF_MICROBLAZE_H */
     75