1 /* COFF spec for MAXQ
2 
3    Copyright 2004, 2005 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 2 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) */
57