19c93ae13SMarkus Armbruster #ifndef MIPS_TARGET_SIGNAL_H 29c93ae13SMarkus Armbruster #define MIPS_TARGET_SIGNAL_H 3a04e134aSths 4a04e134aSths #include "cpu.h" 5a04e134aSths 6a04e134aSths /* this struct defines a stack used during syscall handling */ 7a04e134aSths 8a04e134aSths typedef struct target_sigaltstack { 9992f48a0Sblueswir1 abi_long ss_sp; 10992f48a0Sblueswir1 abi_ulong ss_size; 11992f48a0Sblueswir1 abi_long ss_flags; 12c227f099SAnthony Liguori } target_stack_t; 13a04e134aSths 14a04e134aSths 15a04e134aSths /* 16a04e134aSths * sigaltstack controls 17a04e134aSths */ 18a04e134aSths #define TARGET_SS_ONSTACK 1 19a04e134aSths #define TARGET_SS_DISABLE 2 20a04e134aSths 21a04e134aSths #define TARGET_MINSIGSTKSZ 2048 22a04e134aSths #define TARGET_SIGSTKSZ 8192 23a04e134aSths 24992f48a0Sblueswir1 static inline abi_ulong get_sp_from_cpustate(CPUMIPSState *state) 25198a74deSths { 26b5dc7732Sths return state->active_tc.gpr[29]; 27198a74deSths } 28198a74deSths 298949bef1SLaurent Vivier #if defined(TARGET_ABI_MIPSO32) 308949bef1SLaurent Vivier /* compare linux/arch/mips/kernel/signal.c:setup_frame() */ 31*cb6ac802SLaurent Vivier #define TARGET_ARCH_HAS_SETUP_FRAME 328949bef1SLaurent Vivier #endif 339c93ae13SMarkus Armbruster #endif /* MIPS_TARGET_SIGNAL_H */ 34