diff options
author | Brooks Davis <brooks@FreeBSD.org> | 2022-03-28 18:43:03 +0000 |
---|---|---|
committer | Brooks Davis <brooks@FreeBSD.org> | 2022-03-28 18:43:03 +0000 |
commit | b1ad6a9000c3fc58d4373fa5a4733d46a9a365ca (patch) | |
tree | 8d6b53e920242b9a1bffd6cf7a9bf06ae75d3008 /sys/arm64 | |
parent | cd8796cee0e5c5dc3a39551b9d1dce53f6dbdf6a (diff) | |
download | src-b1ad6a9000c3fc58d4373fa5a4733d46a9a365ca.tar.gz src-b1ad6a9000c3fc58d4373fa5a4733d46a9a365ca.zip |
syscallarg_t: Add a type for system call arguments
This more clearly differentiates system call arguments from integer
registers and return values. On current architectures it has no effect,
but on architectures where pointers are not integers (CHERI) and may
not even share registers (CHERI-MIPS) it is necessiary to differentiate
between system call arguments (syscallarg_t) and integer register values
(register_t).
Obtained from: CheriBSD
Reviewed by: imp, kib
Differential Revision: https://reviews.freebsd.org/D33780
Diffstat (limited to 'sys/arm64')
-rw-r--r-- | sys/arm64/arm64/trap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c index 226f69592952..b664501b62fa 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -134,7 +134,7 @@ int cpu_fetch_syscall_args(struct thread *td) { struct proc *p; - register_t *ap, *dst_ap; + syscallarg_t *ap, *dst_ap; struct syscall_args *sa; p = td->td_proc; @@ -159,7 +159,7 @@ cpu_fetch_syscall_args(struct thread *td) KASSERT(sa->callp->sy_narg <= nitems(sa->args), ("Syscall %d takes too many arguments", sa->code)); - memcpy(dst_ap, ap, (nitems(sa->args) - 1) * sizeof(register_t)); + memcpy(dst_ap, ap, (nitems(sa->args) - 1) * sizeof(*dst_ap)); td->td_retval[0] = 0; td->td_retval[1] = 0; |