Home | History | Annotate | Line # | Download | only in elf
      1       1.1     skrll /* AVR ELF support for BFD.
      2  1.1.1.11  christos    Copyright (C) 1999-2026 Free Software Foundation, Inc.
      3       1.1     skrll    Contributed by Denis Chertykov <denisc (at) overta.ru>
      4       1.1     skrll 
      5       1.1     skrll    This file is part of BFD, the Binary File Descriptor library.
      6       1.1     skrll 
      7       1.1     skrll    This program is free software; you can redistribute it and/or modify
      8       1.1     skrll    it under the terms of the GNU General Public License as published by
      9   1.1.1.2  christos    the Free Software Foundation; either version 3 of the License, or
     10       1.1     skrll    (at your option) any later version.
     11       1.1     skrll 
     12       1.1     skrll    This program is distributed in the hope that it will be useful,
     13       1.1     skrll    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14       1.1     skrll    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15       1.1     skrll    GNU General Public License for more details.
     16       1.1     skrll 
     17       1.1     skrll    You should have received a copy of the GNU General Public License
     18   1.1.1.2  christos    along with this program; if not, write to the Free Software Foundation,
     19   1.1.1.2  christos    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
     20       1.1     skrll 
     21       1.1     skrll #ifndef _ELF_AVR_H
     22       1.1     skrll #define _ELF_AVR_H
     23       1.1     skrll 
     24       1.1     skrll #include "elf/reloc-macros.h"
     25       1.1     skrll 
     26       1.1     skrll /* Processor specific flags for the ELF header e_flags field.  */
     27       1.1     skrll #define EF_AVR_MACH 0x7F
     28       1.1     skrll 
     29       1.1     skrll /* If bit #7 is set, it is assumed that the elf file uses local symbols
     30       1.1     skrll    as reference for the relocations so that linker relaxation is possible.  */
     31       1.1     skrll #define EF_AVR_LINKRELAX_PREPARED 0x80
     32       1.1     skrll 
     33   1.1.1.3  christos #define E_AVR_MACH_AVR1     1
     34   1.1.1.3  christos #define E_AVR_MACH_AVR2     2
     35   1.1.1.3  christos #define E_AVR_MACH_AVR25   25
     36   1.1.1.3  christos #define E_AVR_MACH_AVR3     3
     37   1.1.1.3  christos #define E_AVR_MACH_AVR31   31
     38   1.1.1.3  christos #define E_AVR_MACH_AVR35   35
     39   1.1.1.3  christos #define E_AVR_MACH_AVR4     4
     40   1.1.1.3  christos #define E_AVR_MACH_AVR5     5
     41   1.1.1.3  christos #define E_AVR_MACH_AVR51   51
     42   1.1.1.3  christos #define E_AVR_MACH_AVR6     6
     43   1.1.1.4  christos #define E_AVR_MACH_AVRTINY 100
     44   1.1.1.4  christos #define E_AVR_MACH_XMEGA1  101
     45   1.1.1.4  christos #define E_AVR_MACH_XMEGA2  102
     46   1.1.1.4  christos #define E_AVR_MACH_XMEGA3  103
     47   1.1.1.4  christos #define E_AVR_MACH_XMEGA4  104
     48   1.1.1.4  christos #define E_AVR_MACH_XMEGA5  105
     49   1.1.1.4  christos #define E_AVR_MACH_XMEGA6  106
     50   1.1.1.4  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.1.4  christos      RELOC_NUMBER (R_AVR_DIFF8,                30)
     85   1.1.1.4  christos      RELOC_NUMBER (R_AVR_DIFF16,               31)
     86   1.1.1.4  christos      RELOC_NUMBER (R_AVR_DIFF32,               32)
     87   1.1.1.4  christos      RELOC_NUMBER (R_AVR_LDS_STS_16,           33)
     88   1.1.1.4  christos      RELOC_NUMBER (R_AVR_PORT6,                34)
     89   1.1.1.4  christos      RELOC_NUMBER (R_AVR_PORT5,                35)
     90   1.1.1.4  christos      RELOC_NUMBER (R_AVR_32_PCREL,             36)
     91       1.1     skrll END_RELOC_NUMBERS (R_AVR_max)
     92       1.1     skrll 
     93       1.1     skrll #endif /* _ELF_AVR_H */
     94