|
|
1.1 root 1: #ifndef COFF_H
2: #define COFF_H
3: /* Based on the elf.h file
4: * Changed accordingly to support COFF file support
5: */
6:
7:
8: /* Values for f_flags. */
9: #define F_RELFLG 0x0001 /* If set, not reloc. info. Clear for executables */
10: #define F_EXEC 0x0002 /* No unresolved symbols. Executable file ! */
11: #define F_LNNO 0x0004 /* If set, line information numbers removed */
12: #define F_LSYMS 0x0008 /* If set, local symbols removed */
13: #define F_AR32WR 0x0100 /* Indicates little endian file */
14:
15: /* Values for e_machine (architecute). */
16: #define EM_E1 0x17a /* Magic number for Hyperstone. Big endian format */
17:
18: /* Values for f_flags. */
19: #define O_MAGIC 0x017c /* Optional's header magic number for Hyperstone */
20:
21: /* Values for s_flags. */
22: #define S_TYPE_TEXT 0x0020 /* If set, the section contains only executable */
23: #define S_TYPE_DATA 0x0040 /* If set, the section contains only initialized data */
24: #define S_TYPE_BSS 0x0080 /* If set, the section is BSS no data stored */
25:
26:
27: typedef struct
28: {
29: unsigned short f_magic; /* magic number */
30: unsigned short f_nscns; /* number of sections */
31: unsigned long f_timdat; /* time & date stamp */
32: unsigned long f_symptr; /* file pointer to symtab */
33: unsigned long f_nsyms; /* number of symtab entries */
34: unsigned short f_opthdr; /* sizeof(optional hdr) */
35: unsigned short f_flags; /* flags */
36: }
37: COFF_filehdr;
38:
39: /*
40: * Optional header.
41: */
42: typedef struct
43: {
44: unsigned short magic; /* type of file */
45: unsigned short vstamp; /* version stamp */
46: unsigned long tsize; /* text size in bytes, padded to FW bdry*/
47: unsigned long dsize; /* initialized data " " */
48: unsigned long bsize; /* uninitialized data " " */
49: unsigned long entry; /* entry pt. */
50: unsigned long text_start; /* base of text used for this file */
51: unsigned long data_start; /* base of data used for this file */
52: }
53: COFF_opthdr;
54:
55: /*
56: * Section header.
57: */
58: typedef struct
59: {
60: char s_name[8]; /* section name */
61: unsigned long s_paddr; /* physical address, aliased s_nlib */
62: unsigned long s_vaddr; /* virtual address */
63: unsigned long s_size; /* section size */
64: unsigned long s_scnptr; /* file ptr to raw data for section */
65: unsigned long s_relptr; /* file ptr to relocation */
66: unsigned long s_lnnoptr; /* file ptr to line numbers */
67: unsigned short s_nreloc; /* number of relocation entries */
68: unsigned short s_nlnno; /* number of line number entries*/
69: unsigned long s_flags; /* flags */
70: }
71: COFF_scnhdr;
72:
73: #endif /* COFF_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.