signal: separate sigval from sigevent
authorMarko Kreen <markokr@gmail.com>
Fri, 29 Apr 2011 14:56:12 +0000 (17:56 +0300)
committerMarko Kreen <markokr@gmail.com>
Fri, 29 Apr 2011 14:56:12 +0000 (17:56 +0300)
On OpenBSD sigval is defined but sigevent is not.

Tie sigval with siginfo's SI_QUEUE.

Reported-by: Pierre-Emmanuel André
usual/signal.h

index 3fcb0b2d738edc4bc36ac5da8d0d37f6842a06fa..c44c81aca85fae3bcd6db3e9ff44b85333e1d9e0 100644 (file)
 
 #include <signal.h>
 
+/*
+ * Compat sigval, detect based on siginfo_t.si_code.
+ */
+
+#ifndef SI_QUEUE
+union sigval {
+       int sival_int;
+       void *sival_ptr;
+};
+#endif
+
 /*
  * Compat sigevent
  */
 #define SIGEV_NONE 0
 #define SIGEV_SIGNAL 1
 #define SIGEV_THREAD 2
-union sigval {
-       int sival_int;
-       void *sival_ptr;
-};
 struct sigevent {
        int sigev_notify;
        int sigev_signo;