bsd_signal is a legacy (removed) XSI function, not needed in _BSD_SOURCE
[musl] / include / signal.h
index 6e22bdf..d4856a8 100644 (file)
@@ -6,7 +6,12 @@ extern "C" {
 #endif
 
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
+ || defined(_BSD_SOURCE)
+
+#ifdef _GNU_SOURCE
+#define __siginfo siginfo
+#endif
 
 #define __NEED_size_t
 #define __NEED_pid_t
@@ -21,15 +26,12 @@ extern "C" {
 
 #include <bits/alltypes.h>
 
+#define SIG_HOLD ((void (*)(int)) 2)
+
 #define SIG_BLOCK     0
 #define SIG_UNBLOCK   1
 #define SIG_SETMASK   2
 
-#define SIG_ERR  ((void (*)(int))-1)
-#define SIG_DFL  ((void (*)(int)) 0)
-#define SIG_IGN  ((void (*)(int)) 1)
-#define SIG_HOLD ((void (*)(int)) 2)
-
 #define SI_ASYNCNL (-60)
 #define SI_TKILL (-6)
 #define SI_SIGIO (-5)
@@ -44,7 +46,7 @@ extern "C" {
 #define FPE_INTOVF 2
 #define FPE_FLTDIV 3
 #define FPE_FLTOVF 4
-#define FPE_FLTUNT 5
+#define FPE_FLTUND 5
 #define FPE_FLTRES 6
 #define FPE_FLTINV 7
 #define FPE_FLTSUB 8
@@ -79,7 +81,7 @@ struct sigaction {
        } __sa_handler;
        sigset_t sa_mask;
        int sa_flags;
-       void (*__sa_restorer)(void);    
+       void (*sa_restorer)(void);      
 };
 #define sa_handler   __sa_handler.sa_handler
 #define sa_sigaction __sa_handler.sa_sigaction
@@ -95,12 +97,7 @@ union sigval {
        void *sival_ptr;
 };
 
-#ifdef _GNU_SOURCE
-struct siginfo
-#else
-struct __siginfo
-#endif
-{
+struct __siginfo {
        int si_signo, si_errno, si_code;
        union {
                char __pad[128 - 3*sizeof(int)];
@@ -138,6 +135,8 @@ struct __siginfo
 #define si_fd      __si_fields.__sigpoll.si_fd
 #define si_timer1  __si_fields.__timer.si_timer1
 #define si_timer2  __si_fields.__timer.si_timer2
+#define si_ptr     __si_fields.__rt.si_sigval.sival_ptr
+#define si_int     __si_fields.__rt.si_sigval.sival_int
 
 struct sigevent {
        union sigval sigev_value;
@@ -206,6 +205,10 @@ void (*sigset(int, void (*)(int)))(int);
 #define SIGSTKSZ 8192
 #endif
 
+#ifdef _BSD_SOURCE
+typedef void (*sig_t)(int);
+#endif
+
 #ifdef _GNU_SOURCE
 typedef void (*sighandler_t)(int);
 void (*bsd_signal(int, void (*)(int)))(int);
@@ -216,6 +219,10 @@ int sigisemptyset(const sigset_t *);
 
 #include <bits/signal.h>
 
+#define SIG_ERR  ((void (*)(int))-1)
+#define SIG_DFL  ((void (*)(int)) 0)
+#define SIG_IGN  ((void (*)(int)) 1)
+
 typedef int sig_atomic_t;
 
 void (*signal(int, void (*)(int)))(int);