aboutsummaryrefslogtreecommitdiff
path: root/linux-user/sh4
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-11-05 16:52:51 +0100
committerLaurent Vivier <laurent@vivier.eu>2020-11-11 10:59:39 +0100
commitce437484fced8292d90497d7b740335428fffed6 (patch)
treef489abcb4819b2adef74c0c98779e65f28c1d552 /linux-user/sh4
parentc6f28ed5075df79fef39c500362a3f4089256c9c (diff)
downloadqemu-ce437484fced8292d90497d7b740335428fffed6.zip
qemu-ce437484fced8292d90497d7b740335428fffed6.tar.gz
qemu-ce437484fced8292d90497d7b740335428fffed6.tar.bz2
linux-user: Correct definition of stack_t
Some platforms used the wrong definition of stack_t where the flags and size fields were swapped or where the flags field had type ulong instead of int. Due to the presence of padding space in the structure and the prevalence of little-endian machines this problem went unnoticed for a long time. The type definitions have been cross-checked with the ones defined in the Linux kernel v5.9, plus some older versions for a few architecture that have been removed and Xilinx's kernel fork for NiosII [1]. The bsd-user headers remain unchanged as I don't know if they are wrong or not. [1] https://github.com/Xilinx/linux-xlnx/blob/master/arch/nios2/include/uapi/asm/signal.h Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <e9d47692-ee92-009f-6007-0abc3f502b97@gmail.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user/sh4')
-rw-r--r--linux-user/sh4/target_signal.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/linux-user/sh4/target_signal.h b/linux-user/sh4/target_signal.h
index 434970a..d7309b7 100644
--- a/linux-user/sh4/target_signal.h
+++ b/linux-user/sh4/target_signal.h
@@ -4,9 +4,9 @@
/* this struct defines a stack used during syscall handling */
typedef struct target_sigaltstack {
- abi_ulong ss_sp;
- abi_long ss_flags;
- abi_ulong ss_size;
+ abi_ulong ss_sp;
+ abi_int ss_flags;
+ abi_ulong ss_size;
} target_stack_t;