19c93ae13SMarkus Armbruster #ifndef SPARC_TARGET_SIGNAL_H 29c93ae13SMarkus Armbruster #define SPARC_TARGET_SIGNAL_H 3a04e134aSths 41bdefb5aSLaurent Vivier #define TARGET_SIGHUP 1 51bdefb5aSLaurent Vivier #define TARGET_SIGINT 2 61bdefb5aSLaurent Vivier #define TARGET_SIGQUIT 3 71bdefb5aSLaurent Vivier #define TARGET_SIGILL 4 81bdefb5aSLaurent Vivier #define TARGET_SIGTRAP 5 91bdefb5aSLaurent Vivier #define TARGET_SIGABRT 6 101bdefb5aSLaurent Vivier #define TARGET_SIGIOT 6 11*e64c6d42SRichard Henderson #define TARGET_SIGEMT 7 121bdefb5aSLaurent Vivier #define TARGET_SIGFPE 8 131bdefb5aSLaurent Vivier #define TARGET_SIGKILL 9 141bdefb5aSLaurent Vivier #define TARGET_SIGBUS 10 151bdefb5aSLaurent Vivier #define TARGET_SIGSEGV 11 161bdefb5aSLaurent Vivier #define TARGET_SIGSYS 12 171bdefb5aSLaurent Vivier #define TARGET_SIGPIPE 13 181bdefb5aSLaurent Vivier #define TARGET_SIGALRM 14 191bdefb5aSLaurent Vivier #define TARGET_SIGTERM 15 201bdefb5aSLaurent Vivier #define TARGET_SIGURG 16 211bdefb5aSLaurent Vivier #define TARGET_SIGSTOP 17 221bdefb5aSLaurent Vivier #define TARGET_SIGTSTP 18 231bdefb5aSLaurent Vivier #define TARGET_SIGCONT 19 241bdefb5aSLaurent Vivier #define TARGET_SIGCHLD 20 251bdefb5aSLaurent Vivier #define TARGET_SIGTTIN 21 261bdefb5aSLaurent Vivier #define TARGET_SIGTTOU 22 271bdefb5aSLaurent Vivier #define TARGET_SIGIO 23 281bdefb5aSLaurent Vivier #define TARGET_SIGXCPU 24 291bdefb5aSLaurent Vivier #define TARGET_SIGXFSZ 25 301bdefb5aSLaurent Vivier #define TARGET_SIGVTALRM 26 311bdefb5aSLaurent Vivier #define TARGET_SIGPROF 27 321bdefb5aSLaurent Vivier #define TARGET_SIGWINCH 28 331bdefb5aSLaurent Vivier #define TARGET_SIGPWR 29 341bdefb5aSLaurent Vivier #define TARGET_SIGUSR1 30 351bdefb5aSLaurent Vivier #define TARGET_SIGUSR2 31 361bdefb5aSLaurent Vivier #define TARGET_SIGRTMIN 32 371bdefb5aSLaurent Vivier 381bdefb5aSLaurent Vivier #define TARGET_SIG_BLOCK 0x01 /* for blocking signals */ 391bdefb5aSLaurent Vivier #define TARGET_SIG_UNBLOCK 0x02 /* for unblocking signals */ 401bdefb5aSLaurent Vivier #define TARGET_SIG_SETMASK 0x04 /* for setting the signal mask */ 411bdefb5aSLaurent Vivier 42a04e134aSths /* this struct defines a stack used during syscall handling */ 43a04e134aSths 44a04e134aSths typedef struct target_sigaltstack { 45992f48a0Sblueswir1 abi_ulong ss_sp; 46ce437484SLemonBoy abi_int ss_flags; 47992f48a0Sblueswir1 abi_ulong ss_size; 48c227f099SAnthony Liguori } target_stack_t; 49a04e134aSths 50a04e134aSths 51a04e134aSths /* 52a04e134aSths * sigaltstack controls 53a04e134aSths */ 54a04e134aSths #define TARGET_SS_ONSTACK 1 55a04e134aSths #define TARGET_SS_DISABLE 2 56a04e134aSths 571bdefb5aSLaurent Vivier #define TARGET_SA_NOCLDSTOP 8u 581bdefb5aSLaurent Vivier #define TARGET_SA_NOCLDWAIT 0x100u 591bdefb5aSLaurent Vivier #define TARGET_SA_SIGINFO 0x200u 601bdefb5aSLaurent Vivier #define TARGET_SA_ONSTACK 1u 611bdefb5aSLaurent Vivier #define TARGET_SA_RESTART 2u 621bdefb5aSLaurent Vivier #define TARGET_SA_NODEFER 0x20u 631bdefb5aSLaurent Vivier #define TARGET_SA_RESETHAND 4u 641bdefb5aSLaurent Vivier #define TARGET_ARCH_HAS_SA_RESTORER 1 651bdefb5aSLaurent Vivier #define TARGET_ARCH_HAS_KA_RESTORER 1 661bdefb5aSLaurent Vivier 67a04e134aSths #define TARGET_MINSIGSTKSZ 4096 68a04e134aSths 69bb3347f8SRichard Henderson #ifdef TARGET_ABI32 70cb6ac802SLaurent Vivier #define TARGET_ARCH_HAS_SETUP_FRAME 713f7685eaSRichard Henderson #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 723f7685eaSRichard Henderson #else 733f7685eaSRichard Henderson /* For sparc64, use of KA_RESTORER is mandatory. */ 743f7685eaSRichard Henderson #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0 75bb3347f8SRichard Henderson #endif 76fba08745SChen Gang 77fba08745SChen Gang /* bit-flags */ 78fba08745SChen Gang #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */ 79fba08745SChen Gang /* mask for all SS_xxx flags */ 80fba08745SChen Gang #define TARGET_SS_FLAG_BITS TARGET_SS_AUTODISARM 81fba08745SChen Gang 829c93ae13SMarkus Armbruster #endif /* SPARC_TARGET_SIGNAL_H */ 83