cpp-d1064d
[cross.git] / i686-linux-gnu-4.7 / usr / include / x86_64-linux-gnu / bits / types / sigevent_t.h
diff --git a/i686-linux-gnu-4.7/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h b/i686-linux-gnu-4.7/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h
new file mode 100644 (file)
index 0000000..e8b28de
--- /dev/null
@@ -0,0 +1,48 @@
+#ifndef __sigevent_t_defined
+#define __sigevent_t_defined 1
+
+#include <bits/wordsize.h>
+#include <bits/types.h>
+#include <bits/types/__sigval_t.h>
+
+#define __SIGEV_MAX_SIZE       64
+#if __WORDSIZE == 64
+# define __SIGEV_PAD_SIZE      ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
+#else
+# define __SIGEV_PAD_SIZE      ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
+#endif
+
+/* Forward declaration.  */
+#ifndef __have_pthread_attr_t
+typedef union pthread_attr_t pthread_attr_t;
+# define __have_pthread_attr_t 1
+#endif
+
+/* Structure to transport application-defined values with signals.  */
+typedef struct sigevent
+  {
+    __sigval_t sigev_value;
+    int sigev_signo;
+    int sigev_notify;
+
+    union
+      {
+       int _pad[__SIGEV_PAD_SIZE];
+
+       /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
+          thread to receive the signal.  */
+       __pid_t _tid;
+
+       struct
+         {
+           void (*_function) (__sigval_t);     /* Function to start.  */
+           pthread_attr_t *_attribute;         /* Thread attributes.  */
+         } _sigev_thread;
+      } _sigev_un;
+  } sigevent_t;
+
+/* POSIX names to access some of the members.  */
+#define sigev_notify_function   _sigev_un._sigev_thread._function
+#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
+
+#endif