|
|
1.1 root 1: /* (-lgl
2: * COHERENT Version 4.0
3: * Copyright (c) 1982, 1992 by Mark Williams Company.
4: * All rights reserved. May not be copied without permission.
5: -lgl) */
6:
7: /*
8: * /usr/include/a.out.h
9: *
10: * COFF excerpted from Intel 386 Architecture BCS Supplement, draft 3/3/90
11: *
12: * Revised Mon Mar 22 15:52:26 1993 CST
13: */
14: #ifndef __A_OUT_H__
15: #define __A_OUT_H__
16:
17: struct filehdr {
18: unsigned short f_magic; /* I386MAGIC */
19: unsigned short f_nscns; /* unused by system */
20: long f_timdat; /* unused by system */
21: long f_symptr; /* unused by system */
22: long f_nsyms; /* unused by system */
23: unsigned short f_opthdr; /* sizeof(opthdr) */
24: unsigned short f_flags; /* unused by system */
25: };
26:
27: #define I286MAGIC 0x152
28: #define I386MAGIC 0x14C
29:
30: #define F_RELFLG 00001
31: #define F_EXEC 00002
32: #define F_LNNO 00004
33: #define F_LSYMS 00008
34: #define F_SWABD 00100
35: #define F_AR16WR 00200
36: #define F_AR12WR 00400
37:
38: struct aouthdr {
39: short magic; /* [ONZ]_MAGIC */
40: short vstamp; /* unused by system */
41: long tsize; /* unused by system */
42: long dsize; /* unused by system */
43: long bsize; /* unused by system */
44: long entry; /* address to start execution */
45: long tstart; /* unused by system */
46: long dstart; /* unused by system */
47: };
48:
49: #define O_MAGIC 0407
50: #define N_MAGIC 0410
51: #define I_MAGIC 0411
52: #define Z_MAGIC 0413
53:
54: struct scnhdr {
55: char s_name[8]; /* unused by system */
56: long s_paddr; /* unused by system */
57: long s_vaddr; /* offset of section - memory(bytes)*/
58: long s_size; /* section size (bytes) */
59: long s_scnptr; /* offset of section - file (bytes) */
60: /* if zero -> BSS segment */
61: long s_relptr; /* unused by system */
62: long s_lnnoptr; /* unused by system */
63: unsigned short s_nreloc; /* unused by system */
64: unsigned short s_lnno; /* unused by system */
65: long s_flags; /* see below */
66: };
67:
68: #define STYP_REG 0x000
69: #define STYP_DSECT 0x001
70: #define STYP_NOLOAD 0x002
71: #define STYP_GROUP 0x004
72: #define STYP_PAD 0x008
73: #define STYP_COPY 0x010
74: #define STYP_TEXT 0x020
75: #define STYP_DATA 0x040
76: #define STYP_BSS 0x080
77: #define STYP_INFO 0x200
78: #define STYP_OVER 0x400 /* not supported */
79: #define STYP_LIB 0x800 /* not supported */
80:
81: /*
82: * xechdr corresponds to the least commmon denominator
83: * of the COFF format and the <l.out> format 286 Coherent used
84: */
85:
86: struct xecseg {
87: unsigned mbase;
88: unsigned size;
89: unsigned fbase;
90: };
91:
92: struct xechdr {
93: unsigned magic;
94: unsigned entry;
95: unsigned initsp;
96: struct xecseg segs[NUSEG+1]; /* text, data, bss, stack */
97: };
98:
99: struct xecnode {
100: int segtype; /* 0..NUSEG */
101: struct xecseg xseg;
102: struct xecnode *xn;
103: };
104: #define XMAGIC(a, b) ((a<< 16) | b)
105:
106: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.