2002-08-26 Roland McGrath <roland@redhat.com>
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / linux / sigset-cvt-mask.h
1 /* Convert between lowlevel sigmask and libc representation of sigset_t.
2    Linux version.
3    Copyright (C) 1998, 2002 Free Software Foundation, Inc.
4    This file is part of the GNU C Library.
5    Contributed by Joe Keane <jgk@jgk.org>.
6
7    The GNU C Library is free software; you can redistribute it and/or
8    modify it under the terms of the GNU Lesser General Public
9    License as published by the Free Software Foundation; either
10    version 2.1 of the License, or (at your option) any later version.
11
12    The GNU C Library is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    Lesser General Public License for more details.
16
17    You should have received a copy of the GNU Lesser General Public
18    License along with the GNU C Library; if not, write to the Free
19    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20    02111-1307 USA.  */
21
22 #define sigset_set_old_mask(set, mask) \
23   ({                                                                          \
24     unsigned long int *__ptr;                                                 \
25     int __cnt;                                                                \
26     __ptr = &(set)->__val[0];                                                 \
27     *__ptr++ = (unsigned long int) (mask);                                    \
28     __cnt = _SIGSET_NWORDS - 2;                                               \
29     do                                                                        \
30       *__ptr++ = 0ul;                                                         \
31     while (--__cnt >= 0);                                                     \
32     0; })
33
34 #define sigset_get_old_mask(set) \
35   ((unsigned int) (set)->__val[0])