summaryrefslogtreecommitdiff
path: root/sys/src/libmach/executable.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-05-03 21:00:17 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2019-05-03 21:00:17 +0200
commit14b69dcde0dfbb72df721424571d07cdf3dcbf05 (patch)
tree26fac46e8a0b6462d7e9e5f388468bee09eb3ce6 /sys/src/libmach/executable.c
parent9920ecc04b87cab3968f7f0c286b264bd31e132f (diff)
libmach: initial arm64 support
Diffstat (limited to 'sys/src/libmach/executable.c')
-rw-r--r--sys/src/libmach/executable.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/src/libmach/executable.c b/sys/src/libmach/executable.c
index 794dc7ef3..46b1a07d7 100644
--- a/sys/src/libmach/executable.c
+++ b/sys/src/libmach/executable.c
@@ -66,6 +66,7 @@ extern Mach m68020;
extern Mach mi386;
extern Mach mamd64;
extern Mach marm;
+extern Mach marm64;
extern Mach mpower;
extern Mach mpower64;
@@ -233,6 +234,15 @@ ExecTable exectab[] =
sizeof(Exec),
leswal,
armdotout },
+ { R_MAGIC, /* Arm64 7.out and boot image */
+ "arm64 plan 9 executable",
+ "arm64 plan 9 dlm",
+ FARM64,
+ 1,
+ &marm64,
+ sizeof(Exec)+8,
+ nil,
+ commonllp64 },
{ 0 },
};
@@ -375,6 +385,12 @@ commonboot(Fhdr *fp)
fp->name = "ARM plan 9 boot image";
fp->dataddr = _round(fp->txtaddr+fp->txtsz, mach->pgsize);
return;
+ 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;