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
/* Special version of  for use under HP-UX.
6324 serge 2
   Copyright (C) 1988-2015 Free Software Foundation, Inc.
5191 serge 3
 
4
   This program is free software; you can redistribute it and/or modify
5
   it under the terms of the GNU General Public License as published by
6
   the Free Software Foundation; either version 3 of the License, or
7
   (at your option) any later version.
8
 
9
   This program is distributed in the hope that it will be useful,
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
   GNU General Public License for more details.
13
 
14
   You should have received a copy of the GNU General Public License
15
   along with this program; if not, write to the Free Software
16
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
17
   MA 02110-1301, USA.  */
18
 
19
/* THIS FILE IS OBSOLETE.  It needs to be revised as a variant "external"
20
   a.out format for use with BFD.  */
21
 
22
/* The `exec' structure and overall layout must be close to HP's when
23
   we are running on an HP system, otherwise we will not be able to
24
   execute the resulting file. */
25
 
26
/* Allow this file to be included twice. */
27
#ifndef __GNU_EXEC_MACROS__
28
 
29
struct exec
30
{
31
  unsigned short a_machtype;	/* machine type */
32
  unsigned short a_magic;	/* magic number */
33
  unsigned long a_spare1;
34
  unsigned long a_spare2;
35
  unsigned long a_text;		/* length of text, in bytes */
36
  unsigned long a_data;		/* length of data, in bytes */
37
  unsigned long a_bss;		/* length of uninitialized data area for file, in bytes */
38
  unsigned long a_trsize;	/* length of relocation info for text, in bytes */
39
  unsigned long a_drsize;	/* length of relocation info for data, in bytes */
40
  unsigned long a_spare3;	/* HP = pascal interface size */
41
  unsigned long a_spare4;	/* HP = symbol table size */
42
  unsigned long a_spare5;	/* HP = debug name table size */
43
  unsigned long a_entry;	/* start address */
44
  unsigned long a_spare6;	/* HP = source line table size */
45
  unsigned long a_spare7;	/* HP = value table size */
46
  unsigned long a_syms;		/* length of symbol table data in file, in bytes */
47
  unsigned long a_spare8;
48
};
49
 
50
/* Tell a.out.gnu.h not to define `struct exec'.  */
51
#define __STRUCT_EXEC_OVERRIDE__
52
 
53
#include "../a.out.gnu.h"
54
 
55
#undef N_MAGIC
56
#undef N_MACHTYPE
57
#undef N_FLAGS
58
#undef N_SET_INFO
59
#undef N_SET_MAGIC
60
#undef N_SET_MACHTYPE
61
#undef N_SET_FLAGS
62
 
63
#define N_MAGIC(exec) ((exec) . a_magic)
64
#define N_MACHTYPE(exec) ((exec) . a_machtype)
65
#define N_SET_MAGIC(exec, magic) (((exec) . a_magic) = (magic))
66
#define N_SET_MACHTYPE(exec, machtype) (((exec) . a_machtype) = (machtype))
67
 
68
#undef N_BADMAG
69
#define N_BADMAG(x) ((_N_BADMAG (x)) || (_N_BADMACH (x)))
70
 
71
#define _N_BADMACH(x)							\
72
(((N_MACHTYPE (x)) != HP9000S200_ID) &&					\
73
 ((N_MACHTYPE (x)) != HP98x6_ID))
74
 
75
#define HP98x6_ID 0x20A
76
#define HP9000S200_ID 0x20C
77
 
78
#undef _N_HDROFF
79
#define _N_HDROFF(x) (SEGMENT_SIZE - (sizeof (struct exec)))
80
 
81
#define SEGMENT_SIZE 0x1000
82
 
83
#endif /* __GNU_EXEC_MACROS__ */