summaryrefslogtreecommitdiffstats
path: root/sys/ia64/ia32/ia32_trap.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-05-24 17:24:14 +0000
committerkib <kib@FreeBSD.org>2010-05-24 17:24:14 +0000
commit83ca04e61c5d7d05f2d17fe5bbec5822ac6d10d9 (patch)
tree3871b51737ab67ec769f768c2dd5adb8dd61bbe6 /sys/ia64/ia32/ia32_trap.c
parentf3e521941db62f14add692cbd5abd7d2e3e3d08b (diff)
downloadFreeBSD-src-83ca04e61c5d7d05f2d17fe5bbec5822ac6d10d9.zip
FreeBSD-src-83ca04e61c5d7d05f2d17fe5bbec5822ac6d10d9.tar.gz
Change ia64' struct syscall_args definition so that args is a pointer to
the arguments array instead of array itself. ia64 syscall arguments are readily available in the frame, point args to it, do not do unnecessary bcopy. Still reserve the array in syscall_args for ia32 emulation. Suggested and reviewed by: marcel MFC after: 1 month
Diffstat (limited to 'sys/ia64/ia32/ia32_trap.c')
-rw-r--r--sys/ia64/ia32/ia32_trap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/ia64/ia32/ia32_trap.c b/sys/ia64/ia32/ia32_trap.c
index 9c7f08d..57f4791 100644
--- a/sys/ia64/ia32/ia32_trap.c
+++ b/sys/ia64/ia32/ia32_trap.c
@@ -132,10 +132,11 @@ ia32_fetch_syscall_args(struct thread *td, struct syscall_args *sa)
error = copyin(params, (caddr_t)args, sa->narg * sizeof(int));
else
error = 0;
+ sa->args = &sa->args32[0];
if (error == 0) {
for (i = 0; i < sa->narg; i++)
- sa->args[i] = args[i];
+ sa->args32[i] = args[i];
td->td_retval[0] = 0;
td->td_retval[1] = tf->tf_scratch.gr10; /* edx */
}
OpenPOWER on IntegriCloud