Home | History | Annotate | Line # | Download | only in elf
avr.h revision 1.1.1.3
      1      1.1     skrll /* AVR ELF support for BFD.
      2  1.1.1.3  christos    Copyright 1999, 2000, 2004, 2006, 2010, 2012
      3  1.1.1.3  christos    Free Software Foundation, Inc.
      4      1.1     skrll    Contributed by Denis Chertykov <denisc (at) overta.ru>
      5      1.1     skrll 
      6      1.1     skrll    This file is part of BFD, the Binary File Descriptor library.
      7      1.1     skrll 
      8      1.1     skrll    This program is free software; you can redistribute it and/or modify
      9      1.1     skrll    it under the terms of the GNU General Public License as published by
     10  1.1.1.2  christos    the Free Software Foundation; either version 3 of the License, or
     11      1.1     skrll    (at your option) any later version.
     12      1.1     skrll 
     13      1.1     skrll    This program is distributed in the hope that it will be useful,
     14      1.1     skrll    but WITHOUT ANY WARRANTY; without even the implied warranty of
     15      1.1     skrll    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16      1.1     skrll    GNU General Public License for more details.
     17      1.1     skrll 
     18      1.1     skrll    You should have received a copy of the GNU General Public License
     19  1.1.1.2  christos    along with this program; if not, write to the Free Software Foundation,
     20  1.1.1.2  christos    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
     21      1.1     skrll 
     22      1.1     skrll #ifndef _ELF_AVR_H
     23      1.1     skrll #define _ELF_AVR_H
     24      1.1     skrll 
     25      1.1     skrll #include "elf/reloc-macros.h"
     26      1.1     skrll 
     27      1.1     skrll /* Processor specific flags for the ELF header e_flags field.  */
     28      1.1     skrll #define EF_AVR_MACH 0x7F
     29      1.1     skrll 
     30      1.1     skrll /* If bit #7 is set, it is assumed that the elf file uses local symbols
     31      1.1     skrll    as reference for the relocations so that linker relaxation is possible.  */
     32      1.1     skrll #define EF_AVR_LINKRELAX_PREPARED 0x80
     33      1.1     skrll 
     34  1.1.1.3  christos #define E_AVR_MACH_AVR1     1
     35  1.1.1.3  christos #define E_AVR_MACH_AVR2     2
     36  1.1.1.3  christos #define E_AVR_MACH_AVR25   25
     37  1.1.1.3  christos #define E_AVR_MACH_AVR3     3
     38  1.1.1.3  christos #define E_AVR_MACH_AVR31   31
     39  1.1.1.3  christos #define E_AVR_MACH_AVR35   35
     40  1.1.1.3  christos #define E_AVR_MACH_AVR4     4
     41  1.1.1.3  christos #define E_AVR_MACH_AVR5     5
     42  1.1.1.3  christos #define E_AVR_MACH_AVR51   51
     43  1.1.1.3  christos #define E_AVR_MACH_AVR6     6
     44  1.1.1.3  christos #define E_AVR_MACH_XMEGA1 101
     45  1.1.1.3  christos #define E_AVR_MACH_XMEGA2 102
     46  1.1.1.3  christos #define E_AVR_MACH_XMEGA3 103
     47  1.1.1.3  christos #define E_AVR_MACH_XMEGA4 104
     48  1.1.1.3  christos #define E_AVR_MACH_XMEGA5 105
     49  1.1.1.3  christos #define E_AVR_MACH_XMEGA6 106
     50  1.1.1.3  christos #define E_AVR_MACH_XMEGA7 107
     51      1.1     skrll 
     52      1.1     skrll /* Relocations.  */
     53      1.1     skrll START_RELOC_NUMBERS (elf_avr_reloc_type)
     54      1.1     skrll      RELOC_NUMBER (R_AVR_NONE,			0)
     55      1.1     skrll      RELOC_NUMBER (R_AVR_32,			1)
     56      1.1     skrll      RELOC_NUMBER (R_AVR_7_PCREL,		2)
     57      1.1     skrll      RELOC_NUMBER (R_AVR_13_PCREL,		3)
     58      1.1     skrll      RELOC_NUMBER (R_AVR_16, 			4)
     59      1.1     skrll      RELOC_NUMBER (R_AVR_16_PM, 		5)
     60      1.1     skrll      RELOC_NUMBER (R_AVR_LO8_LDI,		6)
     61      1.1     skrll      RELOC_NUMBER (R_AVR_HI8_LDI,		7)
     62      1.1     skrll      RELOC_NUMBER (R_AVR_HH8_LDI,		8)
     63      1.1     skrll      RELOC_NUMBER (R_AVR_LO8_LDI_NEG,		9)
     64      1.1     skrll      RELOC_NUMBER (R_AVR_HI8_LDI_NEG,	       10)
     65      1.1     skrll      RELOC_NUMBER (R_AVR_HH8_LDI_NEG,	       11)
     66      1.1     skrll      RELOC_NUMBER (R_AVR_LO8_LDI_PM,	       12)
     67      1.1     skrll      RELOC_NUMBER (R_AVR_HI8_LDI_PM,	       13)
     68      1.1     skrll      RELOC_NUMBER (R_AVR_HH8_LDI_PM,	       14)
     69      1.1     skrll      RELOC_NUMBER (R_AVR_LO8_LDI_PM_NEG,       15)
     70      1.1     skrll      RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG,       16)
     71      1.1     skrll      RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG,       17)
     72      1.1     skrll      RELOC_NUMBER (R_AVR_CALL,		       18)
     73      1.1     skrll      RELOC_NUMBER (R_AVR_LDI,                  19)
     74      1.1     skrll      RELOC_NUMBER (R_AVR_6,                    20)
     75      1.1     skrll      RELOC_NUMBER (R_AVR_6_ADIW,               21)
     76      1.1     skrll      RELOC_NUMBER (R_AVR_MS8_LDI,              22)
     77      1.1     skrll      RELOC_NUMBER (R_AVR_MS8_LDI_NEG,          23)
     78      1.1     skrll      RELOC_NUMBER (R_AVR_LO8_LDI_GS,	       24)
     79      1.1     skrll      RELOC_NUMBER (R_AVR_HI8_LDI_GS,	       25)
     80  1.1.1.2  christos      RELOC_NUMBER (R_AVR_8, 		       26)
     81  1.1.1.3  christos      RELOC_NUMBER (R_AVR_8_LO8,                27)
     82  1.1.1.3  christos      RELOC_NUMBER (R_AVR_8_HI8,                28)
     83  1.1.1.3  christos      RELOC_NUMBER (R_AVR_8_HLO8,               29)
     84      1.1     skrll END_RELOC_NUMBERS (R_AVR_max)
     85      1.1     skrll 
     86      1.1     skrll #endif /* _ELF_AVR_H */
     87