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