fix for new FreeBSD signal mask representation

This commit is contained in:
marting 2000-05-16 07:46:13 +00:00
parent bce5c62cbf
commit f021f13b26
1 changed files with 9 additions and 0 deletions

View File

@ -1,10 +1,19 @@
/* Convert between a lo24/hi integer-pair bitset and a sigset_t value. /* Convert between a lo24/hi integer-pair bitset and a sigset_t value.
** These macros are OS-dependent, and must be defined per-OS. ** These macros are OS-dependent, and must be defined per-OS.
*/ */
#include <sys/param.h>
#if defined __FreeBSD_version && __FreeBSD_version > 400000
#define make_sigset(maskp, hi, lo)(*maskp.__bits[0] = ((hi)<<24)|(lo))
/* Not a procedure: */
#define split_sigset(mask, hip, lop) \
((*(hip)=(mask.__bits[0]>>24)&0xff), \
(*(lop)=(mask.__bits[0]&0xffffff)))
#else
#define make_sigset(maskp, hi, lo) (*maskp=((hi)<<24)|(lo)) #define make_sigset(maskp, hi, lo) (*maskp=((hi)<<24)|(lo))
/* Not a procedure: */ /* Not a procedure: */
#define split_sigset(mask, hip, lop) \ #define split_sigset(mask, hip, lop) \
((*(hip)=(mask>>24)&0xff), \ ((*(hip)=(mask>>24)&0xff), \
(*(lop)=(mask&0xffffff))) (*(lop)=(mask&0xffffff)))
#endif