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 union{ 37 long mcprmask[4]; /* co-processor register masks */ 38 long mpcsize; 39 } u0; 40 long gp_value; /* the gp value used for this object */ 41 }; 42 43 struct mips4kexec 44 { 45 struct mipsexec h; 46 struct coffsect itexts; 47 struct coffsect idatas; 48 struct coffsect ibsss; 49 }; 50 51 struct sparcexec 52 { 53 short sjunk; /* dynamic bit and version number */ 54 short smagic; /* 0407 */ 55 ulong stext; 56 ulong sdata; 57 ulong sbss; 58 ulong ssyms; 59 ulong sentry; 60 ulong strsize; 61 ulong sdrsize; 62 }; 63 64 struct nextexec 65 { 66 struct nexthdr{ 67 ulong nmagic; 68 ulong ncputype; 69 ulong ncpusubtype; 70 ulong nfiletype; 71 ulong ncmds; 72 ulong nsizeofcmds; 73 ulong nflags; 74 }texth; 75 76 struct nextcmd{ 77 ulong cmd; 78 ulong cmdsize; 79 uchar segname[16]; 80 ulong vmaddr; 81 ulong vmsize; 82 ulong fileoff; 83 ulong filesize; 84 ulong maxprot; 85 ulong initprot; 86 ulong nsects; 87 ulong flags; 88 }textc; 89 struct nextsect{ 90 char sectname[16]; 91 char segname[16]; 92 ulong addr; 93 ulong size; 94 ulong offset; 95 ulong align; 96 ulong reloff; 97 ulong nreloc; 98 ulong flags; 99 ulong reserved1; 100 ulong reserved2; 101 }texts; 102 struct nextcmd datac; 103 struct nextsect datas; 104 struct nextsect bsss; 105 struct nextsym{ 106 ulong cmd; 107 ulong cmdsize; 108 ulong symoff; 109 ulong nsyms; 110 ulong spoff; 111 ulong pcoff; 112 }symc; 113 }; 114 115 struct i386exec 116 { 117 struct i386coff{ 118 ulong isectmagic; 119 ulong itime; 120 ulong isyms; 121 ulong insyms; 122 ulong iflags; 123 } icoff; 124 struct i386hdr{ 125 ulong imagic; 126 ulong itextsize; 127 ulong idatasize; 128 ulong ibsssize; 129 ulong ientry; 130 ulong itextstart; 131 ulong idatastart; 132 } ihdr; 133 struct coffsect itexts; 134 struct coffsect idatas; 135 struct coffsect ibsss; 136 struct coffsect icomments; 137 }; 138 139 struct i960exec 140 { 141 struct i960coff{ 142 ulong i6sectmagic; 143 ulong i6time; 144 ulong i6syms; 145 ulong i6nsyms; 146 ulong i6opthdrflags; 147 }i6coff; 148 struct i960hdr{ 149 ulong i6magic; 150 ulong i6textsize; 151 ulong i6datasize; 152 ulong i6bsssize; 153 ulong i6entry; 154 ulong i6textstart; 155 ulong i6datastart; 156 ulong i6tagentries; 157 }i6hdr; 158 struct i960sect{ 159 char name[8]; 160 ulong phys; 161 ulong virt; 162 ulong size; 163 ulong fptr; 164 ulong fptrreloc; 165 ulong fptrlineno; 166 ulong nrelocnlineno; 167 ulong flags; 168 ulong align; 169 }i6texts; 170 struct i960sect i6datas; 171 }; 172 173