1/* 2 * Copyright 2011, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _SYSTEM_SIGNAL_DEFS_H 6#define _SYSTEM_SIGNAL_DEFS_H 7 8 9#include <signal.h> 10#include <unistd.h> 11 12 13// The total number of signals a process may have queued at receivers at any 14// time. 15#define MAX_QUEUED_SIGNALS _POSIX_SIGQUEUE_MAX 16 17// realtime signal number range 18#define SIGNAL_REALTIME_MIN 33 19#define SIGNAL_REALTIME_MAX 40 20 21// greatest actually supported signal number 22#define MAX_SIGNAL_NUMBER SIGNAL_REALTIME_MAX 23 24// additional send_signal_etc() flags 25#define SIGNAL_FLAG_QUEUING_REQUIRED (0x10000) 26 // force signal queuing, i.e. fail instead of falling back to unqueued 27 // signals, when queuing isn't possible 28#define SIGNAL_FLAG_SEND_TO_THREAD (0x20000) 29 // interpret the the given ID as a thread_id rather than a team_id (syscall 30 // use only) 31 32// additional sigaction::sa_flags flag 33#define SA_BEOS_COMPATIBLE_HANDLER 0x80000000 34 // BeOS compatible signal handler, i.e. the vregs argument is passed 35 // per-value, not per-pointer 36 37#define SIGNAL_TO_MASK(signal) ((sigset_t)1 << ((signal) - 1)) 38#define SIGNAL_RANGE_TO_MASK(first, last) \ 39 ((((SIGNAL_TO_MASK(last) - 1) << 1) | 1) & ~(SIGNAL_TO_MASK(first) - 1)) 40 // Note: The last mask computation looks that way to avoid an overflow for 41 // last == 64. 42 43#endif /* _SYSTEM_SIGNAL_DEFS_H */ 44