Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
5191 serge 1
/* coff information for Windows CE with MIPS VR4111
2
 
6324 serge 3
   Copyright (C) 2000-2015 Free Software Foundation, Inc.
5191 serge 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 */