extern Mach mi386;
extern Mach mamd64;
extern Mach marm;
+extern Mach marm64;
extern Mach mpower;
extern Mach mpower64;
-extern Mach malpha;
ExecTable exectab[] =
{
sizeof(Exec),
leswal,
armdotout },
- { L_MAGIC, /* alpha 7.out */
- "alpha plan 9 executable",
- "alpha plan 9 dlm",
- FALPHA,
+ { R_MAGIC, /* Arm64 7.out and boot image */
+ "arm64 plan 9 executable",
+ "arm64 plan 9 dlm",
+ FARM64,
1,
- &malpha,
- sizeof(Exec),
- beswal,
- common },
- { 0x0700e0c3, /* alpha boot image */
- "alpha plan 9 boot image",
+ &marm64,
+ sizeof(Exec)+8,
nil,
- FALPHA,
- 0,
- &malpha,
- sizeof(Exec),
- beswal,
- common },
+ commonllp64 },
{ 0 },
};
fp->name = "ARM plan 9 boot image";
fp->dataddr = _round(fp->txtaddr+fp->txtsz, mach->pgsize);
return;
- case FALPHA:
- fp->type = FALPHAB;
- fp->txtaddr = (u32int)fp->entry;
- fp->name = "alpha plan 9 boot image";
- fp->dataddr = fp->txtaddr+fp->txtsz;
- break;
+ case FARM64:
+ fp->type = FARM64B;
+ fp->txtaddr = fp->entry;
+ fp->name = "arm64 plan 9 boot image";
+ fp->dataddr = _round(fp->txtaddr+fp->txtsz, mach->pgsize);
+ return;
case FPOWER:
fp->type = FPOWERB;
fp->txtaddr = (u32int)fp->entry;
break;
case MIPS:
mach = &mmips;
- fp->type = FMIPS;
- fp->name = "mips ELF32 executable";
+ if(ep->ident[DATA] == ELFDATA2LSB){
+ fp->type = FMIPSLE;
+ fp->name = "mips le ELF32 executable";
+ } else {
+ fp->type = FMIPS;
+ fp->name = "mips be ELF32 executable";
+ }
break;
case SPARC64:
mach = &msparc64;