OSDN Git Service

5f8a9f53a13e6e861064d075aa7d130366b1e330
[pf3gnuchains/sourceware.git] / include / coff / maxq.h
1 /* COFF spec for MAXQ
2
3    Copyright 2004, 2005, 2010 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify it
6    under the terms of the GNU General Public License as published by the Free 
7    Software Foundation; either version 3 of the License, or (at your option)
8    any later version.
9
10    This program is distributed in the hope that it will be useful, but
11    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
12    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13    for more details.
14
15    You should have received a copy of the GNU General Public License along
16    with this program; if not, write to the Free Software Foundation, Inc.,
17    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
18
19    Contributed by Vineet Sharma(vineets@noida.hcltech.com) Inderpreet
20    S.(inderpreetb@noida.hcltech.com) HCL Technologies Ltd.  */
21
22 #define L_LNNO_SIZE 2
23
24 #include "coff/external.h"
25
26 /* Bits for f_flags: F_RELFLG relocation info stripped from file F_EXEC file
27    is executable (no unresolved external references) F_LNNO line numbers
28    stripped from file F_LSYMS local symbols stripped from file.  */
29
30 #define F_RELFLG        (0x0001)
31 #define F_EXEC          (0x0002)
32 #define F_LNNO          (0x0004)
33 #define F_LSYMS         (0x0008)
34
35 /* Variant Specific Flags for MAXQ10 and MAXQ20.  */
36 #define F_MAXQ10        (0x0030)
37 #define F_MAXQ20        (0x0040)
38
39 #define F_MACHMASK      (0x00F0)
40
41 /* Magic numbers for maxq.  */
42 #define MAXQ20MAGIC      0xa0
43 #define MAXQ20BADMAG(x) (((x).f_magic != MAXQ20MAGIC))
44 #define BADMAG(x)        MAXQ20BADMAG (x)
45
46 /* Relocation information declaration and related definitions.  */
47 struct external_reloc
48 {
49   char r_vaddr[4];              /* (Virtual) address of reference.  */
50   char r_symndx[4];             /* Index into symbol table.  */
51   char r_type[2];               /* Relocation type.  */
52   char r_offset[2];             /* Addend.  */
53 };
54
55 #define RELOC           struct external_reloc
56 #define RELSZ           (10 + 2)        /* sizeof (RELOC) */