18dfbe4e8SEdgar E. Iglesias #ifndef TARGET_SIGNAL_H
28dfbe4e8SEdgar E. Iglesias #define TARGET_SIGNAL_H
38dfbe4e8SEdgar E. Iglesias 
48dfbe4e8SEdgar E. Iglesias #include "cpu.h"
58dfbe4e8SEdgar E. Iglesias 
68dfbe4e8SEdgar E. Iglesias /* this struct defines a stack used during syscall handling */
78dfbe4e8SEdgar E. Iglesias 
88dfbe4e8SEdgar E. Iglesias typedef struct target_sigaltstack {
98dfbe4e8SEdgar E. Iglesias 	abi_ulong ss_sp;
108dfbe4e8SEdgar E. Iglesias 	abi_ulong ss_size;
118dfbe4e8SEdgar E. Iglesias 	abi_long ss_flags;
12*c227f099SAnthony Liguori } target_stack_t;
138dfbe4e8SEdgar E. Iglesias 
148dfbe4e8SEdgar E. Iglesias 
158dfbe4e8SEdgar E. Iglesias /*
168dfbe4e8SEdgar E. Iglesias  * sigaltstack controls
178dfbe4e8SEdgar E. Iglesias  */
188dfbe4e8SEdgar E. Iglesias #define TARGET_SS_ONSTACK     1
198dfbe4e8SEdgar E. Iglesias #define TARGET_SS_DISABLE     2
208dfbe4e8SEdgar E. Iglesias 
218dfbe4e8SEdgar E. Iglesias #define TARGET_MINSIGSTKSZ    2048
228dfbe4e8SEdgar E. Iglesias #define TARGET_SIGSTKSZ       8192
238dfbe4e8SEdgar E. Iglesias 
248dfbe4e8SEdgar E. Iglesias static inline abi_ulong get_sp_from_cpustate(CPUMBState *state)
258dfbe4e8SEdgar E. Iglesias {
268dfbe4e8SEdgar E. Iglesias     return state->regs[14];
278dfbe4e8SEdgar E. Iglesias }
288dfbe4e8SEdgar E. Iglesias 
298dfbe4e8SEdgar E. Iglesias #endif /* TARGET_SIGNAL_H */
30