aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2015-05-17 18:35:58 +0000
committerAndrew Turner <andrew@FreeBSD.org>2015-05-17 18:35:58 +0000
commitb7112ead32bc50ef9744099bdbb1cfbd6e906b2a (patch)
treee42975222a79aedd965c73eaed1acd1c1f9fa187 /sys
parentafd1f4a7e308e0a3cf13d0985a6485ade52262b7 (diff)
downloadsrc-b7112ead32bc50ef9744099bdbb1cfbd6e906b2a.tar.gz
src-b7112ead32bc50ef9744099bdbb1cfbd6e906b2a.zip
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/include/proc.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/arm/include/proc.h b/sys/arm/include/proc.h
index 4ffbec59d86a..a86df3557ccc 100644
--- a/sys/arm/include/proc.h
+++ b/sys/arm/include/proc.h
@@ -68,15 +68,20 @@ struct mdproc {
#endif
#define MAXARGS 8
+/*
+ * This holds the syscall state for a single system call.
+ * As some syscall arguments may be 64-bit aligned we need to ensure the
+ * args value is 64-bit aligned. The ABI will then ensure any 64-bit
+ * arguments are already correctly aligned, even if they were passed in
+ * via registers, we just need to make sure we copy them to an algned
+ * buffer.
+ */
struct syscall_args {
u_int code;
struct sysent *callp;
register_t args[MAXARGS];
int narg;
u_int nap;
-#ifndef __ARM_EABI__
- u_int32_t insn;
-#endif
-};
+} __aligned(8);
#endif /* !_MACHINE_PROC_H_ */