19c93ae13SMarkus Armbruster #ifndef MIPS_TARGET_SIGNAL_H 29c93ae13SMarkus Armbruster #define MIPS_TARGET_SIGNAL_H 3a04e134aSths 4f70c7313SLaurent Vivier #define TARGET_SIGHUP 1 /* Hangup (POSIX). */ 5f70c7313SLaurent Vivier #define TARGET_SIGINT 2 /* Interrupt (ANSI). */ 6f70c7313SLaurent Vivier #define TARGET_SIGQUIT 3 /* Quit (POSIX). */ 7f70c7313SLaurent Vivier #define TARGET_SIGILL 4 /* Illegal instruction (ANSI). */ 8f70c7313SLaurent Vivier #define TARGET_SIGTRAP 5 /* Trace trap (POSIX). */ 9f70c7313SLaurent Vivier #define TARGET_SIGIOT 6 /* IOT trap (4.2 BSD). */ 10f70c7313SLaurent Vivier #define TARGET_SIGABRT TARGET_SIGIOT /* Abort (ANSI). */ 11f70c7313SLaurent Vivier #define TARGET_SIGEMT 7 12f70c7313SLaurent Vivier #define TARGET_SIGSTKFLT 7 /* XXX: incorrect */ 13f70c7313SLaurent Vivier #define TARGET_SIGFPE 8 /* Floating-point exception (ANSI). */ 14f70c7313SLaurent Vivier #define TARGET_SIGKILL 9 /* Kill, unblockable (POSIX). */ 15f70c7313SLaurent Vivier #define TARGET_SIGBUS 10 /* BUS error (4.2 BSD). */ 16f70c7313SLaurent Vivier #define TARGET_SIGSEGV 11 /* Segmentation violation (ANSI). */ 17f70c7313SLaurent Vivier #define TARGET_SIGSYS 12 18f70c7313SLaurent Vivier #define TARGET_SIGPIPE 13 /* Broken pipe (POSIX). */ 19f70c7313SLaurent Vivier #define TARGET_SIGALRM 14 /* Alarm clock (POSIX). */ 20f70c7313SLaurent Vivier #define TARGET_SIGTERM 15 /* Termination (ANSI). */ 21f70c7313SLaurent Vivier #define TARGET_SIGUSR1 16 /* User-defined signal 1 (POSIX). */ 22f70c7313SLaurent Vivier #define TARGET_SIGUSR2 17 /* User-defined signal 2 (POSIX). */ 23f70c7313SLaurent Vivier #define TARGET_SIGCHLD 18 /* Child status has changed (POSIX). */ 24f70c7313SLaurent Vivier #define TARGET_SIGCLD TARGET_SIGCHLD /* Same as TARGET_SIGCHLD (System V). */ 25f70c7313SLaurent Vivier #define TARGET_SIGPWR 19 /* Power failure restart (System V). */ 26f70c7313SLaurent Vivier #define TARGET_SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ 27f70c7313SLaurent Vivier #define TARGET_SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ 28f70c7313SLaurent Vivier #define TARGET_SIGIO 22 /* I/O now possible (4.2 BSD). */ 29f70c7313SLaurent Vivier #define TARGET_SIGPOLL TARGET_SIGIO /* Pollable event occurred (System V). */ 30f70c7313SLaurent Vivier #define TARGET_SIGSTOP 23 /* Stop, unblockable (POSIX). */ 31f70c7313SLaurent Vivier #define TARGET_SIGTSTP 24 /* Keyboard stop (POSIX). */ 32f70c7313SLaurent Vivier #define TARGET_SIGCONT 25 /* Continue (POSIX). */ 33f70c7313SLaurent Vivier #define TARGET_SIGTTIN 26 /* Background read from tty (POSIX). */ 34f70c7313SLaurent Vivier #define TARGET_SIGTTOU 27 /* Background write to tty (POSIX). */ 35f70c7313SLaurent Vivier #define TARGET_SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */ 36f70c7313SLaurent Vivier #define TARGET_SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */ 37f70c7313SLaurent Vivier #define TARGET_SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */ 38f70c7313SLaurent Vivier #define TARGET_SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */ 39f70c7313SLaurent Vivier #define TARGET_SIGRTMIN 32 40f70c7313SLaurent Vivier 41f70c7313SLaurent Vivier #define TARGET_SIG_BLOCK 1 /* for blocking signals */ 42f70c7313SLaurent Vivier #define TARGET_SIG_UNBLOCK 2 /* for unblocking signals */ 43f70c7313SLaurent Vivier #define TARGET_SIG_SETMASK 3 /* for setting the signal mask */ 44f70c7313SLaurent Vivier 45a04e134aSths /* this struct defines a stack used during syscall handling */ 46a04e134aSths 47a04e134aSths typedef struct target_sigaltstack { 48ce437484SLemonBoy abi_ulong ss_sp; 49992f48a0Sblueswir1 abi_ulong ss_size; 50ce437484SLemonBoy abi_int ss_flags; 51c227f099SAnthony Liguori } target_stack_t; 52a04e134aSths 53a04e134aSths 54a04e134aSths /* 55a04e134aSths * sigaltstack controls 56a04e134aSths */ 57a04e134aSths #define TARGET_SS_ONSTACK 1 58a04e134aSths #define TARGET_SS_DISABLE 2 59a04e134aSths 60f70c7313SLaurent Vivier #define TARGET_SA_NOCLDSTOP 0x00000001 61f70c7313SLaurent Vivier #define TARGET_SA_NOCLDWAIT 0x00010000 62f70c7313SLaurent Vivier #define TARGET_SA_SIGINFO 0x00000008 63f70c7313SLaurent Vivier #define TARGET_SA_ONSTACK 0x08000000 64f70c7313SLaurent Vivier #define TARGET_SA_NODEFER 0x40000000 65f70c7313SLaurent Vivier #define TARGET_SA_RESTART 0x10000000 66f70c7313SLaurent Vivier #define TARGET_SA_RESETHAND 0x80000000 67f70c7313SLaurent Vivier #define TARGET_SA_RESTORER 0x04000000 /* Only for O32 */ 68f70c7313SLaurent Vivier 69a04e134aSths #define TARGET_MINSIGSTKSZ 2048 70a04e134aSths 718949bef1SLaurent Vivier #if defined(TARGET_ABI_MIPSO32) 728949bef1SLaurent Vivier /* compare linux/arch/mips/kernel/signal.c:setup_frame() */ 73cb6ac802SLaurent Vivier #define TARGET_ARCH_HAS_SETUP_FRAME 748949bef1SLaurent Vivier #endif 75*317a33b6SRichard Henderson #define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1 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 /* MIPS_TARGET_SIGNAL_H */ 83