Make struct syscall_args machine independent

After a round of cleanups in late 2020, all definitions are
functionally identical.

This removes a rotted __aligned(8) on arm. It was added in
b7112ead32 and was intended to align the
args member so that 64-bit types (off_t, etc) could be safely read on
armeb compiled with clang. With the removal of armev, this is no
longer needed (armv7 requires that 32-bit aligned reads of 64-bit
values be supported and we enable such support on armv6).  As further
evidence this is unnecessary, cleanups to struct syscall_args have
resulted in args being 32-bit aligned on 32-bit systems.  The sole
effect is to bloat the struct by 4 bytes.

Reviewed by:	kib, jhb, imp
Differential Revision:	https://reviews.freebsd.org/D33308
This commit is contained in:
Brooks Davis
2021-12-08 18:45:15 +00:00
parent 9a128e1678
commit 547566526f
8 changed files with 8 additions and 63 deletions
-16
View File
@@ -56,22 +56,6 @@ struct mdproc {
#define KINFO_PROC_SIZE 816
#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 aligned
* buffer.
*/
struct syscall_args {
u_int code;
u_int original_code;
struct sysent *callp;
register_t args[MAXARGS];
} __aligned(8);
#ifdef _KERNEL
#include <machine/pcb.h>