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 M68K
2
 
6324 serge 3
   Copyright (C) 2001-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
#ifndef GNU_COFF_M68K_H
21
#define GNU_COFF_M68K_H 1
22
 
23
#define L_LNNO_SIZE 2
24
#include "coff/external.h"
25
 
26
/* Motorola 68000/68008/68010/68020 */
27
#define	MC68MAGIC	0520
28
#define MC68KWRMAGIC	0520	/* writeable text segments */
29
#define	MC68TVMAGIC	0521
30
#define MC68KROMAGIC	0521	/* readonly shareable text segments */
31
#define MC68KPGMAGIC	0522	/* demand paged text segments */
32
#define	M68MAGIC	0210
33
#define	M68TVMAGIC	0211
34
 
35
/* This is the magic of the Bull dpx/2 */
36
#define MC68KBCSMAGIC	0526
37
 
38
/* This is Lynx's all-platform magic number for executables. */
39
 
40
#define LYNXCOFFMAGIC	0415
41
 
42
#define OMAGIC M68MAGIC
43
 
44
/* This intentionally does not include MC68KBCSMAGIC; it only includes
45
   magic numbers which imply that names do not have underscores.  */
46
#define M68KBADMAG(x) (((x).f_magic != MC68MAGIC) \
47
                    && ((x).f_magic != MC68KWRMAGIC) \
48
                    && ((x).f_magic != MC68TVMAGIC) \
49
                    && ((x).f_magic != MC68KROMAGIC) \
50
                    && ((x).f_magic != MC68KPGMAGIC) \
51
                    && ((x).f_magic != M68MAGIC) \
52
                    && ((x).f_magic != M68TVMAGIC) \
53
                    && ((x).f_magic != LYNXCOFFMAGIC))
54
 
55
/* Magic numbers for the a.out header.  */
56
 
57
#define PAGEMAGICEXECSWAPPED  0407 /* executable (swapped) */
58
#define PAGEMAGICPEXECSWAPPED 0410 /* pure executable (swapped) */
59
#define PAGEMAGICPEXECTSHLIB  0443 /* pure executable (target shared library) */
60
#define PAGEMAGICPEXECPAGED   0413 /* pure executable (paged) */
61
 
62
/********************** RELOCATION DIRECTIVES **********************/
63
 
64
struct external_reloc
65
{
66
  char r_vaddr[4];
67
  char r_symndx[4];
68
  char r_type[2];
69
#ifdef M68K_COFF_OFFSET
70
  char r_offset[4];
71
#endif
72
};
73
 
74
#define RELOC struct external_reloc
75
 
76
#ifdef M68K_COFF_OFFSET
77
#define RELSZ 14
78
#else
79
#define RELSZ 10
80
#endif
81
 
82
#endif /* GNU_COFF_M68K_H */