]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/libmach/executable.c
kernel: avoid selecting the boot process in killbig()
[plan9front.git] / sys / src / libmach / executable.c
index 4dbe94d92817e8c2ce75121912ed0cb7b6d10a7c..46b1a07d74af93696ac4e79834445f66ee0a730d 100644 (file)
@@ -66,9 +66,9 @@ extern        Mach    m68020;
 extern Mach    mi386;
 extern Mach    mamd64;
 extern Mach    marm;
+extern Mach    marm64;
 extern Mach    mpower;
 extern Mach    mpower64;
-extern Mach    malpha;
 
 ExecTable exectab[] =
 {
@@ -234,24 +234,15 @@ 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 },
 };
 
@@ -394,12 +385,12 @@ commonboot(Fhdr *fp)
                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;
@@ -733,8 +724,13 @@ elf32dotout(int fd, Fhdr *fp, ExecHdr *hp)
                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;