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