Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* XGATE ELF support for BFD.
  2.    Copyright 2010, 2011, 2012 Free Software Foundation, Inc.
  3.  
  4.    This file is part of BFD, the Binary File Descriptor library.
  5.  
  6.    This program is free software; you can redistribute it and/or modify
  7.    it under the terms of the GNU General Public License as published by
  8.    the Free Software Foundation; either version 2 of the License, or
  9.    (at your option) any later version.
  10.  
  11.    This program is distributed in the hope that it will be useful,
  12.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.    GNU General Public License for more details.
  15.  
  16.    You should have received a copy of the GNU General Public License
  17.    along with this program; if not, write to the Free Software Foundation,
  18.    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
  19.  
  20. #ifndef _ELF_XGATE_H
  21. #define _ELF_XGATE_H
  22.  
  23. #include "elf/reloc-macros.h"
  24.  
  25. /* Relocation types.  */
  26. START_RELOC_NUMBERS (elf_xgate_reloc_type)
  27.   RELOC_NUMBER (R_XGATE_NONE, 0)
  28.   RELOC_NUMBER (R_XGATE_8, 1)
  29.   RELOC_NUMBER (R_XGATE_PCREL_8, 2)
  30.   RELOC_NUMBER (R_XGATE_16, 3)
  31.   RELOC_NUMBER (R_XGATE_32, 4)
  32.   RELOC_NUMBER (R_XGATE_PCREL_16, 5)
  33.   /* These are GNU extensions to enable C++ vtable garbage collection.  */
  34.   RELOC_NUMBER (R_XGATE_GNU_VTINHERIT, 6)
  35.   RELOC_NUMBER (R_XGATE_GNU_VTENTRY, 7)
  36.  
  37.   RELOC_NUMBER (R_XGATE_24, 8)
  38.   RELOC_NUMBER (R_XGATE_LO16, 9)
  39.   RELOC_NUMBER (R_XGATE_GPAGE, 10)
  40.   RELOC_NUMBER (R_XGATE_PCREL_9, 11)
  41.   RELOC_NUMBER (R_XGATE_PCREL_10, 12)
  42.   RELOC_NUMBER (R_XGATE_IMM8_LO, 13)
  43.   RELOC_NUMBER (R_XGATE_IMM8_HI, 14)
  44.   RELOC_NUMBER (R_XGATE_IMM3, 15)
  45.   RELOC_NUMBER (R_XGATE_IMM4, 16)
  46.   RELOC_NUMBER (R_XGATE_IMM5, 17)
  47.  
  48.   /* GNU extension for linker relaxation.
  49.      Mark beginning of a jump instruction (any form).  */
  50.   RELOC_NUMBER (R_XGATE_RL_JUMP, 18)
  51.  
  52.   /* Mark beginning of Gcc relaxation group instruction.  */
  53.   RELOC_NUMBER (R_XGATE_RL_GROUP, 19)
  54. END_RELOC_NUMBERS (R_XGATE_max)
  55.  
  56. /* Processor specific flags for the ELF header e_flags field.  */
  57.  
  58. /* ABI identification.  */
  59. #define EF_XGATE_ABI  0x00000000F
  60.  
  61. /* Integers are 32-bit long.  */
  62. #define E_XGATE_I32   0x000000001
  63.  
  64. /* Doubles are 64-bit long.  */
  65. #define E_XGATE_F64   0x000000002
  66.  
  67. #define EF_XGATE_MACH_MASK  0xF0
  68.  
  69. #define EF_XGATE_MACH       0x80 /* XGATE microcontroller.  */
  70.  
  71. #define E_M68HCS12X_GLOBAL  0x100
  72.  
  73. /* Identify interrupt handlers.  This is used by the debugger to
  74.    correctly compute the stack frame.  */
  75. #define STO_XGATE_INTERRUPT 0x40
  76.      
  77. #endif
  78.