#include <sys/cdefs.h>
#include <sys/appleapiopts.h>
+#include <Availability.h>
#define __DARWIN_NSIG 32 /* counting 0; could be 33 (mask is 1-32) */
/* This will provide 64bit register set in a 32bit user address space */
#define SA_64REGSET 0x0200 /* signal handler with SA_SIGINFO args with 64bit regs information */
#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+#ifdef BSD_KERNEL_PRIVATE
+#define SA_VALIDATE_SIGRETURN_FROM_SIGTRAMP 0x0400 /* use token to validate sigreturn was called from matching sigtramp */
+#endif /* BSD_KERNEL_PRIVATE */
/* the following are the only bits we support from user space, the
* rest are for kernel use only.
* signals delivered on a per-thread basis.
*/
#define threadmask (sigmask(SIGILL)|sigmask(SIGTRAP)|\
- sigmask(SIGIOT)|sigmask(SIGEMT)|\
+ sigmask(SIGABRT)|sigmask(SIGEMT)|\
sigmask(SIGFPE)|sigmask(SIGBUS)|\
sigmask(SIGSEGV)|sigmask(SIGSYS)|\
sigmask(SIGPIPE)|sigmask(SIGKILL))
-#define workq_threadmask (threadmask | sigcantmask)
+#define workq_threadmask ((threadmask | sigcantmask | sigmask(SIGPROF)) & ~sigmask(SIGABRT))
/*
* Signals carried across exec.