diff options
author | Sergey Bugaev <bugaevc@gmail.com> | 2024-04-15 12:01:43 +0300 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-04-16 09:41:18 +0900 |
commit | a0ff799984cf2ed1a50c1161aabff3aaee622c64 (patch) | |
tree | b70d57bf08544317711a47feb89b53241984fc15 /aarch64/Makefrag.am | |
parent | b23e7718dd9942b27edfac9aee05f737d0e6922e (diff) | |
download | gnumach-a0ff799984cf2ed1a50c1161aabff3aaee622c64.tar.gz gnumach-a0ff799984cf2ed1a50c1161aabff3aaee622c64.tar.bz2 gnumach-a0ff799984cf2ed1a50c1161aabff3aaee622c64.zip |
aarch64: Add public syscall ABI
We use largely the same ABI as Linux: a syscall is invoked with the
"svc #0" instruction, passing arguments the same way as for a regular
function call. Specifically, up to 8 arguments are passed in the x0-x7
registers, and the rest are placed on the stack (this is only necessary
for the vm_map() syscall). w8 should contain the (negative) Mach trap
number. A syscall preserves all registers except for x0, which upon
returning contains the return value.
Message-ID: <20240415090149.38358-4-bugaevc@gmail.com>
Diffstat (limited to 'aarch64/Makefrag.am')
-rw-r--r-- | aarch64/Makefrag.am | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/aarch64/Makefrag.am b/aarch64/Makefrag.am index 15ce3f49..7949d7ba 100644 --- a/aarch64/Makefrag.am +++ b/aarch64/Makefrag.am @@ -27,9 +27,11 @@ if HOST_aarch64 include_mach_aarch64dir = $(includedir)/mach/aarch64 include_mach_aarch64_HEADERS = \ + aarch64/include/mach/aarch64/asm.h \ aarch64/include/mach/aarch64/boolean.h \ aarch64/include/mach/aarch64/kern_return.h \ aarch64/include/mach/aarch64/machine_types.defs \ + aarch64/include/mach/aarch64/syscall_sw.h \ aarch64/include/mach/aarch64/vm_types.h endif # HOST_aarch64 |