1 struct coffsect 2 { 3 char name[8]; 4 ulong phys; 5 ulong virt; 6 ulong size; 7 ulong fptr; 8 ulong fptrreloc; 9 ulong fptrlineno; 10 ulong nrelocnlineno; 11 ulong flags; 12 }; 13 14 /* 15 * proprietary exec headers, needed to bootstrap various machines 16 */ 17 struct mipsexec 18 { 19 short mmagic; /* (0x160) mips magic number */ 20 short nscns; /* (unused) number of sections */ 21 long timdat; /* (unused) time & date stamp */ 22 long symptr; /* offset to symbol table */ 23 long nsyms; /* size of symbol table */ 24 short opthdr; /* (0x38) sizeof(optional hdr) */ 25 short pcszs; /* flags */ 26 short amagic; /* see above */ 27 short vstamp; /* version stamp */ 28 long tsize; /* text size in bytes */ 29 long dsize; /* initialized data */ 30 long bsize; /* uninitialized data */ 31 long mentry; /* entry pt. */ 32 long text_start; /* base of text used for this file */ 33 long data_start; /* base of data used for this file */ 34 long bss_start; /* base of bss used for this file */ 35 long gprmask; /* general purpose register mask */ 36 long cprmask[4]; /* co-processor register masks */ 37 long gp_value; /* the gp value used for this object */ 38 }; 39 #define pcsize cprmask[0] 40 41 struct mips4kexec 42 { 43 struct mipsexec h; 44 struct coffsect itexts; 45 struct coffsect idatas; 46 struct coffsect ibsss; 47 }; 48 49 struct sparcexec 50 { 51 short sjunk; /* dynamic bit and version number */ 52 short smagic; /* 0407 */ 53 ulong stext; 54 ulong sdata; 55 ulong sbss; 56 ulong ssyms; 57 ulong sentry; 58 ulong strsize; 59 ulong sdrsize; 60 }; 61 62 struct nextexec 63 { 64 struct nexthdr{ 65 ulong nmagic; 66 ulong ncputype; 67 ulong ncpusubtype; 68 ulong nfiletype; 69 ulong ncmds; 70 ulong nsizeofcmds; 71 ulong nflags; 72 }texth; 73 74 struct nextcmd{ 75 ulong cmd; 76 ulong cmdsize; 77 uchar segname[16]; 78 ulong vmaddr; 79 ulong vmsize; 80 ulong fileoff; 81 ulong filesize; 82 ulong maxprot; 83 ulong initprot; 84 ulong nsects; 85 ulong flags; 86 }textc; 87 struct nextsect{ 88 char sectname[16]; 89 char segname[16]; 90 ulong addr; 91 ulong size; 92 ulong offset; 93 ulong align; 94 ulong reloff; 95 ulong nreloc; 96 ulong flags; 97 ulong reserved1; 98 ulong reserved2; 99 }texts; 100 struct nextcmd datac; 101 struct nextsect datas; 102 struct nextsect bsss; 103 struct nextsym{ 104 ulong cmd; 105 ulong cmdsize; 106 ulong symoff; 107 ulong nsyms; 108 ulong spoff; 109 ulong pcoff; 110 }symc; 111 }; 112 113 struct i386exec 114 { 115 struct i386coff{ 116 ulong isectmagic; 117 ulong itime; 118 ulong isyms; 119 ulong insyms; 120 ulong iflags; 121 } icoff; 122 struct i386hdr{ 123 ulong imagic; 124 ulong itextsize; 125 ulong idatasize; 126 ulong ibsssize; 127 ulong ientry; 128 ulong itextstart; 129 ulong idatastart; 130 } ihdr; 131 struct coffsect itexts; 132 struct coffsect idatas; 133 struct coffsect ibsss; 134 struct coffsect icomments; 135 }; 136 137