Subversion Repositories Kolibri OS

Rev

Rev 5191 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* coff information for Windows CE with MIPS VR4111
  2.    
  3.    Copyright (C) 2000-2015 Free Software Foundation, Inc.
  4.  
  5.    This program is free software; you can redistribute it and/or modify
  6.    it under the terms of the GNU General Public License as published by
  7.    the Free Software Foundation; either version 3 of the License, or
  8.    (at your option) any later version.
  9.    
  10.    This program is distributed in the hope that it will be useful,
  11.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.    GNU General Public License for more details.
  14.    
  15.    You should have received a copy of the GNU General Public License
  16.    along with this program; if not, write to the Free Software
  17.    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  18.    MA 02110-1301, USA.  */
  19.  
  20. #define L_LNNO_SIZE 2
  21. #define INCLUDE_COMDAT_FIELDS_IN_AUXENT
  22. #include "coff/external.h"
  23.  
  24. #define MIPS_ARCH_MAGIC_WINCE   0x0166  /* Windows CE - little endian */
  25. #define MIPS_PE_MAGIC           0x010b
  26.  
  27. #define MIPSBADMAG(x) ((x).f_magic != MIPS_ARCH_MAGIC_WINCE)
  28.  
  29. /* define some NT default values */
  30. /*  #define NT_IMAGE_BASE        0x400000 moved to internal.h */
  31. #define NT_SECTION_ALIGNMENT 0x1000
  32. #define NT_FILE_ALIGNMENT    0x200
  33. #define NT_DEF_RESERVE       0x100000
  34. #define NT_DEF_COMMIT        0x1000
  35.  
  36. /********************** RELOCATION DIRECTIVES **********************/
  37.  
  38. /* The external reloc has an offset field, because some of the reloc
  39.    types on the h8 don't have room in the instruction for the entire
  40.    offset - eg the strange jump and high page addressing modes.  */
  41.  
  42. struct external_reloc
  43. {
  44.   char r_vaddr[4];
  45.   char r_symndx[4];
  46.   char r_type[2];
  47. };
  48.  
  49. #define RELOC struct external_reloc
  50. #define RELSZ 10
  51.  
  52. /* MIPS PE relocation types. */
  53.  
  54. #define MIPS_R_ABSOLUTE 0 /* ignored */
  55. #define MIPS_R_REFHALF  1
  56. #define MIPS_R_REFWORD  2
  57. #define MIPS_R_JMPADDR  3
  58. #define MIPS_R_REFHI    4 /* PAIR follows */
  59. #define MIPS_R_REFLO    5
  60. #define MIPS_R_GPREL    6
  61. #define MIPS_R_LITERAL  7 /* same as GPREL */
  62. #define MIPS_R_SECTION  10
  63. #define MIPS_R_SECREL   11
  64. #define MIPS_R_SECRELLO 12
  65. #define MIPS_R_SECRELHI 13 /* PAIR follows */
  66. #define MIPS_R_RVA      34 /* 0x22 */
  67. #define MIPS_R_PAIR     37 /* 0x25 - symndx is really a signed 16-bit addend */
  68.