mirror of
https://github.com/qemu/qemu.git
synced 2024-12-05 01:33:41 +08:00
5d70c3510b
The real kernel collects _TIF_MTE_ASYNC_FAULT into the current thread's state on any kernel entry (interrupt, exception etc), and then delivers the signal in advance of resuming the thread. This means that while the signal won't be delivered immediately, it will not be delayed forever -- at minimum it will be delivered after the next clock interrupt. We don't have a clock interrupt in linux-user, so we issue a cpu_kick to signal a return to the main loop at the end of the current TB. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210212184902.1251044-29-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
29 lines
640 B
C
29 lines
640 B
C
#ifndef AARCH64_TARGET_SIGNAL_H
|
|
#define AARCH64_TARGET_SIGNAL_H
|
|
|
|
/* this struct defines a stack used during syscall handling */
|
|
|
|
typedef struct target_sigaltstack {
|
|
abi_ulong ss_sp;
|
|
abi_int ss_flags;
|
|
abi_ulong ss_size;
|
|
} target_stack_t;
|
|
|
|
|
|
/*
|
|
* sigaltstack controls
|
|
*/
|
|
#define TARGET_SS_ONSTACK 1
|
|
#define TARGET_SS_DISABLE 2
|
|
|
|
#define TARGET_MINSIGSTKSZ 2048
|
|
#define TARGET_SIGSTKSZ 8192
|
|
|
|
#include "../generic/signal.h"
|
|
|
|
#define TARGET_SEGV_MTEAERR 8 /* Asynchronous ARM MTE error */
|
|
#define TARGET_SEGV_MTESERR 9 /* Synchronous ARM MTE exception */
|
|
|
|
#define TARGET_ARCH_HAS_SETUP_FRAME
|
|
#endif /* AARCH64_TARGET_SIGNAL_H */
|