aboutsummaryrefslogtreecommitdiff
path: root/aarch64/Makefrag.am
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2024-04-15 12:01:43 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2024-04-16 09:41:18 +0900
commita0ff799984cf2ed1a50c1161aabff3aaee622c64 (patch)
treeb70d57bf08544317711a47feb89b53241984fc15 /aarch64/Makefrag.am
parentb23e7718dd9942b27edfac9aee05f737d0e6922e (diff)
downloadgnumach-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.am2
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