source: trunk/binutils/include/coff/apollo.h@ 2670

Last change on this file since 2670 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 4.6 KB
Line 
1/* coff information for Apollo M68K
2
3 Copyright 2001 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
18
19#define DO_NOT_DEFINE_AOUTHDR
20#define L_LNNO_SIZE 2
21#include "coff/external.h"
22
23/* Motorola 68000/68008/68010/68020 */
24#define MC68MAGIC 0520
25#define MC68KWRMAGIC 0520 /* writeable text segments */
26#define MC68TVMAGIC 0521
27#define MC68KROMAGIC 0521 /* readonly shareable text segments */
28#define MC68KPGMAGIC 0522 /* demand paged text segments */
29#define M68MAGIC 0210
30#define M68TVMAGIC 0211
31
32/* Apollo 68000-based machines have a different magic number. This comes
33 * from /usr/include/apollo/filehdr.h
34 */
35#define APOLLOM68KMAGIC 0627
36
37#define OMAGIC M68MAGIC
38#define M68KBADMAG(x) (((x).f_magic!=MC68MAGIC) && ((x).f_magic!=MC68KWRMAGIC) && ((x).f_magic!=MC68TVMAGIC) && \
39 ((x).f_magic!=MC68KROMAGIC) && ((x).f_magic!=MC68KPGMAGIC) && ((x).f_magic!=M68MAGIC) && ((x).f_magic!=M68TVMAGIC) && \
40 ((x).f_magic!=APOLLOM68KMAGIC) )
41
42/********************** AOUT "OPTIONAL HEADER" **********************/
43
44typedef struct
45{
46 char magic[2]; /* type of file */
47 char vstamp[2]; /* version stamp */
48 char tsize[4]; /* text size in bytes, padded to FW bdry*/
49 char dsize[4]; /* initialized data " " */
50 char bsize[4]; /* uninitialized data " " */
51 char entry[4]; /* entry pt. */
52 char text_start[4]; /* base of text used for this file */
53 char data_start[4]; /* base of data used for this file */
54 char o_sri[4]; /* Apollo specific - .sri data pointer */
55 char o_inlib[4]; /* Apollo specific - .inlib data pointer */
56 char vid[8]; /* Apollo specific - 64 bit version ID */
57}
58AOUTHDR;
59
60#define APOLLO_COFF_VERSION_NUMBER 1 /* the value of the aouthdr magic */
61#define AOUTHDRSZ 44
62#define AOUTSZ 44
63
64/* Apollo allowa for larger section names by allowing
65 them to be in the string table. */
66
67/* If s_zeores is all zeroes, s_offset gives the real
68 location of the name in the string table. */
69
70#define s_zeroes section_name.s_name
71#define s_offset (section_name.s_name+4)
72
73/* More names of "special" sections. */
74#define _TV ".tv"
75#define _INIT ".init"
76#define _FINI ".fini"
77#define _LINES ".lines"
78#define _BLOCKS ".blocks"
79#define _SRI ".sri" /* Static Resource Information (systype,
80 et al.) */
81#define _MIR ".mir" /* Module Information Records */
82#define _APTV ".aptv" /* Apollo-style transfer vectors. */
83#define _INLIB ".inlib" /* Shared Library information */
84#define _RWDI ".rwdi" /* Read/write data initialization directives for
85 compressed sections */
86#define _UNWIND ".unwind" /* Stack unwind information */
87
88/********************** RELOCATION DIRECTIVES **********************/
89
90struct external_reloc
91{
92 char r_vaddr[4];
93 char r_symndx[4];
94 char r_type[2];
95#ifdef M68K_COFF_OFFSET
96 char r_offset[4];
97#endif
98
99};
100
101#define RELOC struct external_reloc
102
103#ifdef M68K_COFF_OFFSET
104#define RELSZ 14
105#else
106#define RELSZ 10
107#endif
108
109/* Apollo specific STYP flags */
110
111#define STYP_RELOCATED_NOT_LOADED 0x00010000 /* Section is relocated normally during linking, but need
112 not be loaded during program execution */
113#define STYP_DEBUG 0x00020000 /* debug section */
114#define STYP_OVERLAY 0x00040000 /* Section is overlayed */
115#define STYP_INSTRUCTION 0x00200000 /* Section contains executable code */
116
117#define STYP_ZERO 0x00800000 /* Section is initialized to zero */
118#define STYP_INSTALLED 0x02000000 /* Section should be installable in KGT */
119#define STYP_LOOK_INSTALLED 0x04000000 /* Look for section in KGT */
120#define STYP_SECALIGN1 0x08000000 /* Specially aligned section */
121#define STYP_SECALIGN2 0x10000000 /* " " " */
122#define STYP_COMPRESSED 0x20000000 /* No section data per se (s_scnptr = 0), but there are
123 initialization directives for it in .rwdi section
124 (used in conjunction with STYP_BSS) */
Note: See TracBrowser for help on using the repository browser.