aboutsummaryrefslogtreecommitdiff
path: root/sys/arm64
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2022-03-28 18:43:03 +0000
committerBrooks Davis <brooks@FreeBSD.org>2022-03-28 18:43:03 +0000
commitb1ad6a9000c3fc58d4373fa5a4733d46a9a365ca (patch)
tree8d6b53e920242b9a1bffd6cf7a9bf06ae75d3008 /sys/arm64
parentcd8796cee0e5c5dc3a39551b9d1dce53f6dbdf6a (diff)
downloadsrc-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.c4
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;