1*219b2ee8SDavid du Colombier struct coffsect 2*219b2ee8SDavid du Colombier { 3*219b2ee8SDavid du Colombier char name[8]; 4*219b2ee8SDavid du Colombier ulong phys; 5*219b2ee8SDavid du Colombier ulong virt; 6*219b2ee8SDavid du Colombier ulong size; 7*219b2ee8SDavid du Colombier ulong fptr; 8*219b2ee8SDavid du Colombier ulong fptrreloc; 9*219b2ee8SDavid du Colombier ulong fptrlineno; 10*219b2ee8SDavid du Colombier ulong nrelocnlineno; 11*219b2ee8SDavid du Colombier ulong flags; 12*219b2ee8SDavid du Colombier }; 13*219b2ee8SDavid du Colombier 143e12c5d1SDavid du Colombier /* 153e12c5d1SDavid du Colombier * proprietary exec headers, needed to bootstrap various machines 163e12c5d1SDavid du Colombier */ 173e12c5d1SDavid du Colombier struct mipsexec 183e12c5d1SDavid du Colombier { 193e12c5d1SDavid du Colombier short mmagic; /* (0x160) mips magic number */ 203e12c5d1SDavid du Colombier short nscns; /* (unused) number of sections */ 213e12c5d1SDavid du Colombier long timdat; /* (unused) time & date stamp */ 223e12c5d1SDavid du Colombier long symptr; /* offset to symbol table */ 233e12c5d1SDavid du Colombier long nsyms; /* size of symbol table */ 243e12c5d1SDavid du Colombier short opthdr; /* (0x38) sizeof(optional hdr) */ 253e12c5d1SDavid du Colombier short pcszs; /* flags */ 263e12c5d1SDavid du Colombier short amagic; /* see above */ 273e12c5d1SDavid du Colombier short vstamp; /* version stamp */ 283e12c5d1SDavid du Colombier long tsize; /* text size in bytes */ 293e12c5d1SDavid du Colombier long dsize; /* initialized data */ 303e12c5d1SDavid du Colombier long bsize; /* uninitialized data */ 313e12c5d1SDavid du Colombier long mentry; /* entry pt. */ 323e12c5d1SDavid du Colombier long text_start; /* base of text used for this file */ 333e12c5d1SDavid du Colombier long data_start; /* base of data used for this file */ 343e12c5d1SDavid du Colombier long bss_start; /* base of bss used for this file */ 353e12c5d1SDavid du Colombier long gprmask; /* general purpose register mask */ 363e12c5d1SDavid du Colombier union{ 373e12c5d1SDavid du Colombier long cprmask[4]; /* co-processor register masks */ 383e12c5d1SDavid du Colombier long pcsize; 393e12c5d1SDavid du Colombier }; 403e12c5d1SDavid du Colombier long gp_value; /* the gp value used for this object */ 413e12c5d1SDavid du Colombier }; 423e12c5d1SDavid du Colombier 43*219b2ee8SDavid du Colombier struct mips4kexec 44*219b2ee8SDavid du Colombier { 45*219b2ee8SDavid du Colombier struct mipsexec h; 46*219b2ee8SDavid du Colombier struct coffsect itexts; 47*219b2ee8SDavid du Colombier struct coffsect idatas; 48*219b2ee8SDavid du Colombier struct coffsect ibsss; 49*219b2ee8SDavid du Colombier }; 50*219b2ee8SDavid du Colombier 513e12c5d1SDavid du Colombier struct sparcexec 523e12c5d1SDavid du Colombier { 533e12c5d1SDavid du Colombier short sjunk; /* dynamic bit and version number */ 543e12c5d1SDavid du Colombier short smagic; /* 0407 */ 553e12c5d1SDavid du Colombier ulong stext; 563e12c5d1SDavid du Colombier ulong sdata; 573e12c5d1SDavid du Colombier ulong sbss; 583e12c5d1SDavid du Colombier ulong ssyms; 593e12c5d1SDavid du Colombier ulong sentry; 603e12c5d1SDavid du Colombier ulong strsize; 613e12c5d1SDavid du Colombier ulong sdrsize; 623e12c5d1SDavid du Colombier }; 633e12c5d1SDavid du Colombier 643e12c5d1SDavid du Colombier struct nextexec 653e12c5d1SDavid du Colombier { 663e12c5d1SDavid du Colombier struct nexthdr{ 673e12c5d1SDavid du Colombier ulong nmagic; 683e12c5d1SDavid du Colombier ulong ncputype; 693e12c5d1SDavid du Colombier ulong ncpusubtype; 703e12c5d1SDavid du Colombier ulong nfiletype; 713e12c5d1SDavid du Colombier ulong ncmds; 723e12c5d1SDavid du Colombier ulong nsizeofcmds; 733e12c5d1SDavid du Colombier ulong nflags; 743e12c5d1SDavid du Colombier }; 753e12c5d1SDavid du Colombier 763e12c5d1SDavid du Colombier struct nextcmd{ 773e12c5d1SDavid du Colombier ulong cmd; 783e12c5d1SDavid du Colombier ulong cmdsize; 793e12c5d1SDavid du Colombier uchar segname[16]; 803e12c5d1SDavid du Colombier ulong vmaddr; 813e12c5d1SDavid du Colombier ulong vmsize; 823e12c5d1SDavid du Colombier ulong fileoff; 833e12c5d1SDavid du Colombier ulong filesize; 843e12c5d1SDavid du Colombier ulong maxprot; 853e12c5d1SDavid du Colombier ulong initprot; 863e12c5d1SDavid du Colombier ulong nsects; 873e12c5d1SDavid du Colombier ulong flags; 883e12c5d1SDavid du Colombier }textc; 893e12c5d1SDavid du Colombier struct nextsect{ 903e12c5d1SDavid du Colombier char sectname[16]; 913e12c5d1SDavid du Colombier char segname[16]; 923e12c5d1SDavid du Colombier ulong addr; 933e12c5d1SDavid du Colombier ulong size; 943e12c5d1SDavid du Colombier ulong offset; 953e12c5d1SDavid du Colombier ulong align; 963e12c5d1SDavid du Colombier ulong reloff; 973e12c5d1SDavid du Colombier ulong nreloc; 983e12c5d1SDavid du Colombier ulong flags; 993e12c5d1SDavid du Colombier ulong reserved1; 1003e12c5d1SDavid du Colombier ulong reserved2; 1013e12c5d1SDavid du Colombier }texts; 1023e12c5d1SDavid du Colombier struct nextcmd datac; 1033e12c5d1SDavid du Colombier struct nextsect datas; 1043e12c5d1SDavid du Colombier struct nextsect bsss; 1053e12c5d1SDavid du Colombier struct nextsym{ 1063e12c5d1SDavid du Colombier ulong cmd; 1073e12c5d1SDavid du Colombier ulong cmdsize; 1083e12c5d1SDavid du Colombier ulong symoff; 1093e12c5d1SDavid du Colombier ulong nsyms; 1103e12c5d1SDavid du Colombier ulong spoff; 1113e12c5d1SDavid du Colombier ulong pcoff; 1123e12c5d1SDavid du Colombier }symc; 1133e12c5d1SDavid du Colombier }; 1143e12c5d1SDavid du Colombier 1153e12c5d1SDavid du Colombier struct i386exec 1163e12c5d1SDavid du Colombier { 1173e12c5d1SDavid du Colombier struct i386coff{ 1183e12c5d1SDavid du Colombier ulong isectmagic; 1193e12c5d1SDavid du Colombier ulong itime; 1203e12c5d1SDavid du Colombier ulong isyms; 1213e12c5d1SDavid du Colombier ulong insyms; 1223e12c5d1SDavid du Colombier ulong iflags; 1233e12c5d1SDavid du Colombier }; 1243e12c5d1SDavid du Colombier struct i386hdr{ 1253e12c5d1SDavid du Colombier ulong imagic; 1263e12c5d1SDavid du Colombier ulong itextsize; 1273e12c5d1SDavid du Colombier ulong idatasize; 1283e12c5d1SDavid du Colombier ulong ibsssize; 1293e12c5d1SDavid du Colombier ulong ientry; 1303e12c5d1SDavid du Colombier ulong itextstart; 1313e12c5d1SDavid du Colombier ulong idatastart; 1323e12c5d1SDavid du Colombier }; 133*219b2ee8SDavid du Colombier struct coffsect itexts; 134*219b2ee8SDavid du Colombier struct coffsect idatas; 135*219b2ee8SDavid du Colombier struct coffsect ibsss; 136*219b2ee8SDavid du Colombier struct coffsect icomments; 1373e12c5d1SDavid du Colombier }; 138