Initial revision
authorRoland McGrath <roland@gnu.org>
Sat, 5 Feb 1994 19:31:48 +0000 (19:31 +0000)
committerRoland McGrath <roland@gnu.org>
Sat, 5 Feb 1994 19:31:48 +0000 (19:31 +0000)
sysdeps/unix/sysv/sysv4/sigset.h [new file with mode: 0644]

diff --git a/sysdeps/unix/sysv/sysv4/sigset.h b/sysdeps/unix/sysv/sysv4/sigset.h
new file mode 100644 (file)
index 0000000..b3e9f0e
--- /dev/null
@@ -0,0 +1,76 @@
+/* Copyright (C) 1991, 1992, 1994 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#ifndef        _SIGSET_H
+#define        _SIGSET_H       1
+
+typedef int __sig_atomic_t;
+
+/* Return a mask that includes SIG only.  */
+#define        __sigmask(sig)  (1 << ((sig) - 1))
+
+/* A `sigset_t' has a bit for each signal.  */
+typedef struct
+  {
+    unsigned long int __sigbits[4];
+  } __sigset_t;
+
+/* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
+#define        __NSSBITS       (sizeof (__sigset_t) * 8)
+#define        __SSELT(s)      ((s) / __NSSBITS)
+#define        __SSMASK(s)     (1 << ((s) % __NSSBITS))
+
+extern __inline int
+__sigemptyset (__sigset_t *__set)
+{
+  __set->__sigbits[0] = __set->__sigbits[1] = 0L;
+  __set->__sigbits[2] = __set->__sigbits[3] = 0L;
+  return 0;
+}
+
+extern __inline int
+__sigfillset (__sigset_t *__set)
+{
+  __set->__sigbits[0] = 0x7fffffffL;
+  __set->__sigbits[1] = __set->__sigbits[2] = __set->__sigbits[3] = 0L;
+  return 0;
+}
+
+extern __inline int
+__sigaddset (__sigset_t *__set, int __sig)
+{
+  __set->__sigbits[__SSELT (sig)] |= __SSMASK (__sig);
+  return 0;
+}
+
+extern __inline int
+__sigdelset (__sigset_t *__set, int __sig)
+{
+  __set->__sigbits[__SSELT (sig)] &= ~__SSMASK (__sig);
+  return 0;
+}
+
+extern __inline int
+__sigismember (__sigset_t *__set, int __sig)
+{
+  if (__set->__sigbits[__SSELT (sig)] & __SSMASK (__sig))
+    return 1;
+  return 0;
+}
+
+#endif /* sigset.h  */