scnhdr.h - scc - simple c99 compiler
HTML git clone git://git.simple-cc.org/scc
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
scnhdr.h (1427B)
---
1 /* This file is inspired in the book "Understanding and using COFF" */
2
3 #define SCNNMLEN 8
4
5 #define s_name _s._s_name
6 #define s_zeroes _s._s_s._s_zeroes
7 #define s_offset _s._s_s._s_offset
8
9 struct scnhdr {
10 union {
11 char _s_name[SCNNMLEN]; /* section name */
12 struct {
13 long _s_zeroes; /* if _s_name[0-3] == 0 */
14 long _s_offset; /* offset into string table */
15 } _s_s;
16 } _s;
17 long s_paddr; /* physical address */
18 long s_vaddr; /* virtual address */
19 long s_size; /* section size */
20 long s_scnptr; /* file ptr to raw data */
21 long s_relptr; /* file ptr to relo info */
22 long s_lnnoptr; /* file ptr to line number */
23 unsigned short s_nrelloc; /* number of relocation entries */
24 unsigned short s_nlnno; /* number of lines entries */
25 long s_flags; /* type and content flags */
26 };
27
28 #define SCNHDR struct scnhdr
29 #define SCNHSZ 40
30
31
32 #define STYP_REG 0x00
33 #define STYP_DSECT 0x01
34 #define STYP_NOLOAD 0x02
35 #define STYP_GROUP 0x04
36 #define STYP_PAD 0x08
37 #define STYP_COPY 0x10
38 #define STYP_TEXT 0x20
39 #define STYP_DATA 0x40
40 #define STYP_BSS 0x80
41 #define STYP_RDATA 0x100
42 #define STYP_INFO 0x200
43 #define STYP_OVER 0x400
44 #define STYP_LIB 0x800
45 #define STYP_MERGE 0x2000
46 #define TYP_REVERSE_PAD 0x4000
47 #define STYP_LIT 0x8020