2002-08-26 Roland McGrath <roland@redhat.com>
authorroland <roland>
Tue, 27 Aug 2002 02:43:04 +0000 (02:43 +0000)
committerroland <roland>
Tue, 27 Aug 2002 02:43:04 +0000 (02:43 +0000)
* sysdeps/generic/sigset-cvt-mask.h (sigset_set_old_mask): Replace
macro with inline function.
(sigset_get_old_mask): Likewise.
* sysdeps/posix/sigblock.c (__sigblock): Update callers.
* sysdeps/posix/sigsetmask.c (__sigsetmask): Likewise.
* sysdeps/posix/sigpause.c (__sigpause): Likewise.
* sysdeps/posix/sigvec.c (__sigvec, sigvec_wrapper_handler): Likewise.
* sysdeps/unix/sysv/aix/sigset-cvt-mask.h
(sigset_set_old_mask, sigset_get_old_mask): Make these macros return
values.
* sysdeps/unix/sysv/linux/sigset-cvt-mask.h: Likewise.
* sysdeps/unix/sysv/sysv4/sigset-cvt-mask.h: Likewise.

sysdeps/posix/sigvec.c
sysdeps/unix/sysv/aix/sigset-cvt-mask.h
sysdeps/unix/sysv/linux/sigset-cvt-mask.h
sysdeps/unix/sysv/sysv4/sigset-cvt-mask.h

index d5f7ccd..d1b80e2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,94,95,96,97,98,2002 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
@@ -21,7 +21,7 @@
 #include <stddef.h>
 
 /* Include macros to convert between `sigset_t' and old-style mask. */
-#include "sigset-cvt-mask.h"
+#include <sigset-cvt-mask.h>
 
 /* We use a wrapper handler to support SV_RESETHAND.  */
 struct sigvec_wrapper_data
@@ -80,7 +80,8 @@ __sigvec (sig, vec, ovec)
 #endif
          n = &new;
          new.sa_handler = handler;
-         sigset_set_old_mask (&new.sa_mask, mask);
+         if (sigset_set_old_mask (&new.sa_mask, mask) < 0)
+           return -1;
          new.sa_flags = sa_flags;
        }
 
@@ -122,7 +123,7 @@ __sigvec (sig, vec, ovec)
          /* should we use data->sw_mask?? */
          sv_flags |= SV_RESETHAND;
        }
-      sigset_get_old_mask (&old.sa_mask, mask);
+      mask = sigset_get_old_mask (&old.sa_mask);
 #ifdef SA_ONSTACK
      if (sa_flags & SA_ONSTACK)
        sv_flags |= SV_ONSTACK;
@@ -147,19 +148,18 @@ sigvec_wrapper_handler (sig)
      int sig;
 {
   struct sigvec_wrapper_data *data;
-  unsigned int mask;
   struct sigaction act;
   int save;
   __sighandler_t handler;
 
   data = &sigvec_wrapper_data[sig];
-  mask = data->sw_mask;
   act.sa_handler = SIG_DFL;
-  sigset_set_old_mask (&act.sa_mask, mask);
   act.sa_flags = 0;
-  save = errno;
+  sigset_set_old_mask (&act.sa_mask, data->sw_mask);
   handler = data->sw_handler;
+  save = errno;
   (void) __sigaction (sig, &act, (struct sigaction *) NULL);
   __set_errno (save);
+
   (*handler) (sig);
 }
index 762144e..50d70ae 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert between lowlevel sigmask and libc representation of sigset_t.
    AIX version.
-   Copyright (C) 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998,2000,02 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
    02111-1307 USA.  */
 
 #define sigset_set_old_mask(set, mask) \
-  do {                                                                       \
-    (set)->__losigs = (unsigned int) mask;                                   \
-    (set)->__hisigs = 0;                                                     \
-  } while (0)
+  ((set)->__losigs = (unsigned int) (mask), (set)->__hisigs = 0, 0)
 
 #define sigset_get_old_mask(set, mask) \
-  ((mask) = (unsigned int) (set)->__losigs)
+  ((unsigned int) (set)->__losigs)
index 2bd4b3a..b86a101 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert between lowlevel sigmask and libc representation of sigset_t.
    Linux version.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joe Keane <jgk@jgk.org>.
 
@@ -20,7 +20,7 @@
    02111-1307 USA.  */
 
 #define sigset_set_old_mask(set, mask) \
-  do {                                                                       \
+  ({                                                                         \
     unsigned long int *__ptr;                                                \
     int __cnt;                                                               \
     __ptr = &(set)->__val[0];                                                \
@@ -29,7 +29,7 @@
     do                                                                       \
       *__ptr++ = 0ul;                                                        \
     while (--__cnt >= 0);                                                    \
-  } while (0)
+    0; })
 
-#define sigset_get_old_mask(set, mask) \
-  ((mask) = (unsigned int) (set)->__val[0])
+#define sigset_get_old_mask(set) \
+  ((unsigned int) (set)->__val[0])
index 7b082f7..f647dfe 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert between lowlevel sigmask and libc representation of sigset_t.
    SysVr4 version.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joe Keane <jgk@jgk.org>.
 
    02111-1307 USA.  */
 
 #define sigset_set_old_mask(set, mask) \
-  do {                                                                       \
+  ({                                                                         \
     unsigned long int *__ptr;                                                \
     __ptr = &(set)->__sigbits[0];                                            \
     __ptr[0] = (mask);                                                       \
     __ptr[1] = 0ul;                                                          \
     __ptr[2] = 0ul;                                                          \
     __ptr[3] = 0ul;                                                          \
-  } while (0)
+    0; })
 
-#define sigset_get_old_mask(set, mask) \
-  ((mask) = (unsigned int) (set)->__sigbits[0])
+#define sigset_get_old_mask(set) \
+  ((unsigned int) (set)->__sigbits[0])