|
|
1.1 root 1: /*
2: * COFF section header file.
3: */
4:
5: struct scnhdr {
6: char s_name[8]; /* section name */
7: long s_paddr; /* physical address, aliased s_nlib */
8: long s_vaddr; /* virtual address */
9: long s_size; /* section size */
10: long s_scnptr; /* file ptr to raw data for section */
11: long s_relptr; /* file ptr to relocation */
12: long s_lnnoptr; /* file ptr to line numbers */
13: unsigned short s_nreloc; /* number of relocation entries */
14: unsigned short s_nlnno; /* number of line number entries */
15: long s_flags; /* flags */
16: };
17:
18: /* the number of shared libraries in a .lib section in an absolute output file
19: * is put in the s_paddr field of the .lib section header, the following define
20: * allows it to be referenced as s_nlib
21: */
22:
23: #define s_nlib s_paddr
24: #define SCNHDR struct scnhdr
25: #define SCNHSZ sizeof(SCNHDR)
26:
27:
28:
29:
30: /*
31: * Define constants for names of "special" sections
32: */
33:
34: #define _TEXT ".text"
35: #define _DATA ".data"
36: #define _BSS ".bss"
37: #define _TV ".tv"
38: #define _INIT ".init"
39: #define _FINI ".fini"
40:
41:
42:
43:
44: /*
45: * The low 2 bytes of s_flags is used as a section "type"
46: */
47:
48: #define STYP_REG 0x00 /* "regular" section:
49: allocated, relocated, loaded */
50: #define STYP_DSECT 0x01 /* "dummy" section:
51: not allocated, relocated,
52: not loaded */
53: #define STYP_NOLOAD 0x02 /* "noload" section:
54: allocated, relocated,
55: not loaded */
56: #define STYP_GROUP 0x04 /* "grouped" section:
57: formed of input sections */
58: #define STYP_PAD 0x08 /* "padding" section:
59: not allocated, not relocated,
60: loaded */
61: #define STYP_COPY 0x10 /* "copy" section:
62: for decision function used
63: by field update; not
64: allocated, not relocated,
65: loaded; reloc & lineno
66: entries processed normally */
67: #define STYP_INFO 0x200 /* comment section : not allocated
68: not relocated, not loaded */
69: #define STYP_LIB 0x800 /* for .lib section : same as INFO */
70: #define STYP_OVER 0x400 /* overlay section : relocated
71: not allocated or loaded */
72: #define STYP_TEXT 0x20 /* section contains text only */
73: #define STYP_DATA 0x40 /* section contains data only */
74: #define STYP_BSS 0x80 /* section contains bss only */
75:
76: /*
77: * In a minimal file or an update file, a new function
78: * (as compared with a replaced function) is indicated by S_NEWFCN
79: */
80:
81: #define S_NEWFCN 0x100
82:
83: /*
84: * In 3b Update Files (output of ogen), sections which appear in SHARED
85: * segments of the Pfile will have the S_SHRSEG flag set by ogen, to inform
86: * dufr that updating 1 copy of the proc. will update all process invocations.
87: */
88:
89: #define S_SHRSEG 0x20
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.