diff options
| author | Richard Miller <millerresearch@gmail.com> | 2020-11-09 18:11:51 +0000 |
|---|---|---|
| committer | Charles Forsyth <charles.forsyth@gmail.com> | 2020-11-09 18:11:51 +0000 |
| commit | ec7a4b742467a19160dfa5322e3e0880e4abed48 (patch) | |
| tree | 523d2f81946b1e0abe4afddf1d2fce7e1525b7d7 /utils/libmach/executable.c | |
| parent | ed97654bd7a11d480b44505c8300d06b42e5fefe (diff) | |
| parent | 6e84dc968bc4eaf047fbefcba2f670940718dda8 (diff) | |
Merged in millerresearch/inferno-riscv/utils-riscv (pull request #8)
Add toolchain and libmach support for riscv and riscv64
Approved-by: Charles Forsyth <charles.forsyth@gmail.com>
Diffstat (limited to 'utils/libmach/executable.c')
| -rw-r--r-- | utils/libmach/executable.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/utils/libmach/executable.c b/utils/libmach/executable.c index b9954f0a..2734cf44 100644 --- a/utils/libmach/executable.c +++ b/utils/libmach/executable.c @@ -65,6 +65,8 @@ extern Mach mamd64; extern Mach marm; extern Mach mpower; extern Mach mpower64; +extern Mach mriscv; +extern Mach mriscv64; ExecTable exectab[] = { @@ -203,6 +205,24 @@ ExecTable exectab[] = sizeof(Exec), leswal, armdotout }, + { Z_MAGIC, /* riscv i.out */ + "riscv executable", + nil, + FRISCV, + 0, + &mriscv, + sizeof(Exec), + beswal, + common }, + { Y_MAGIC, /* riscv j.out */ + "riscv64 executable", + nil, + FRISCV64, + 0, + &mriscv64, + sizeof(Exec), + beswal, + common }, { 0 }, }; @@ -357,6 +377,12 @@ commonboot(Fhdr *fp) fp->name = "amd64 plan 9 boot image"; fp->dataddr = _round(fp->txtaddr+fp->txtsz, mach->pgsize); break; + case FRISCV: + fp->type = FRISCVB; + fp->txtaddr = (u32int)fp->entry; + fp->name = "riscv plan 9 boot image"; + fp->dataddr = _round(fp->txtaddr+fp->txtsz, mach->pgsize); + break; default: return; } @@ -580,6 +606,10 @@ elfdotout(int fd, Fhdr *fp, ExecHdr *hp) mach = &marm; fp->type = FARM; break; + case RISCV: + mach = &mriscv; + fp->type = FRISCV; + break; default: return 0; } |
