|
|
1.1 ! root 1: #ifndef XCOFF_H ! 2: #define XCOFF_H ! 3: ! 4: /* XCOFF executable loader */ ! 5: ! 6: typedef struct COFF_filehdr_t { ! 7: uint16_t f_magic; /* magic number */ ! 8: uint16_t f_nscns; /* number of sections */ ! 9: uint32_t f_timdat; /* time & date stamp */ ! 10: uint32_t f_symptr; /* file pointer to symtab */ ! 11: uint32_t f_nsyms; /* number of symtab entries */ ! 12: uint16_t f_opthdr; /* sizeof(optional hdr) */ ! 13: uint16_t f_flags; /* flags */ ! 14: } COFF_filehdr_t; ! 15: ! 16: /* IBM RS/6000 */ ! 17: ! 18: #define U802WRMAGIC 0x02DA /* writeable text segments **chh** */ ! 19: #define U802ROMAGIC 0x02DF /* readonly sharable text segments */ ! 20: #define U802TOCMAGIC 0x02E1 /* readonly text segments and TOC */ ! 21: #define U802TOMAGIC 0x01DF ! 22: ! 23: /* ! 24: * Bits for f_flags: ! 25: * ! 26: * F_RELFLG relocation info stripped from file ! 27: * F_EXEC file is executable (i.e. no unresolved external ! 28: * references) ! 29: * F_LNNO line numbers stripped from file ! 30: * F_LSYMS local symbols stripped from file ! 31: * F_MINMAL this is a minimal object file (".m") output of fextract ! 32: * F_UPDATE this is a fully bound update file, output of ogen ! 33: * F_SWABD this file has had its bytes swabbed (in names) ! 34: * F_AR16WR this file has the byte ordering of an AR16WR ! 35: * (e.g. 11/70) machine ! 36: * F_AR32WR this file has the byte ordering of an AR32WR machine ! 37: * (e.g. vax and iNTEL 386) ! 38: * F_AR32W this file has the byte ordering of an AR32W machine ! 39: * (e.g. 3b,maxi) ! 40: * F_PATCH file contains "patch" list in optional header ! 41: * F_NODF (minimal file only) no decision functions for ! 42: * replaced functions ! 43: */ ! 44: ! 45: #define COFF_F_RELFLG 0000001 ! 46: #define COFF_F_EXEC 0000002 ! 47: #define COFF_F_LNNO 0000004 ! 48: #define COFF_F_LSYMS 0000010 ! 49: #define COFF_F_MINMAL 0000020 ! 50: #define COFF_F_UPDATE 0000040 ! 51: #define COFF_F_SWABD 0000100 ! 52: #define COFF_F_AR16WR 0000200 ! 53: #define COFF_F_AR32WR 0000400 ! 54: #define COFF_F_AR32W 0001000 ! 55: #define COFF_F_PATCH 0002000 ! 56: #define COFF_F_NODF 0002000 ! 57: ! 58: typedef struct COFF_aouthdr_t { ! 59: uint16_t magic; /* type of file */ ! 60: uint16_t vstamp; /* version stamp */ ! 61: uint32_t tsize; /* text size in bytes, padded to FW bdry */ ! 62: uint32_t dsize; /* initialized data " " */ ! 63: uint32_t bsize; /* uninitialized data " " */ ! 64: uint32_t entry; /* entry pt. */ ! 65: uint32_t text_start; /* base of text used for this file */ ! 66: uint32_t data_start; /* base of data used for this file */ ! 67: uint32_t o_toc; /* address of TOC */ ! 68: uint16_t o_snentry; /* section number of entry point */ ! 69: uint16_t o_sntext; /* section number of .text section */ ! 70: uint16_t o_sndata; /* section number of .data section */ ! 71: uint16_t o_sntoc; /* section number of TOC */ ! 72: uint16_t o_snloader; /* section number of .loader section */ ! 73: uint16_t o_snbss; /* section number of .bss section */ ! 74: uint16_t o_algntext; /* .text alignment */ ! 75: uint16_t o_algndata; /* .data alignment */ ! 76: uint16_t o_modtype; /* module type (??) */ ! 77: uint16_t o_cputype; /* cpu type */ ! 78: uint32_t o_maxstack; /* max stack size (??) */ ! 79: uint32_t o_maxdata; /* max data size (??) */ ! 80: char o_resv2[12]; /* reserved */ ! 81: } COFF_aouthdr_t; ! 82: ! 83: #define AOUT_MAGIC 0x010b ! 84: ! 85: typedef struct COFF_scnhdr_t { ! 86: char s_name[8]; /* section name */ ! 87: uint32_t s_paddr; /* physical address, aliased s_nlib */ ! 88: uint32_t s_vaddr; /* virtual address */ ! 89: uint32_t s_size; /* section size */ ! 90: uint32_t s_scnptr; /* file ptr to raw data for section */ ! 91: uint32_t s_relptr; /* file ptr to relocation */ ! 92: uint32_t s_lnnoptr; /* file ptr to line numbers */ ! 93: uint16_t s_nreloc; /* number of relocation entries */ ! 94: uint16_t s_nlnno; /* number of line number entries */ ! 95: uint32_t s_flags; /* flags */ ! 96: } COFF_scnhdr_t; ! 97: ! 98: #endif /* XCOFF_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.