1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_ASM_GENERIC_SIGINFO_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_ASM_GENERIC_SIGINFO_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/compiler.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef union sigval {
24d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int sival_int;
25d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  void __user * sival_ptr;
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} sigval_t;
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __ARCH_SI_PREAMBLE_SIZE
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SI_MAX_SIZE 128
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef SI_PAD_SIZE
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __ARCH_SI_UID_T
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SI_UID_T __kernel_uid32_t
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __ARCH_SI_BAND_T
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SI_BAND_T long
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __ARCH_SI_CLOCK_T
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SI_CLOCK_T __kernel_clock_t
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __ARCH_SI_ATTRIBUTES
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SI_ATTRIBUTES
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef HAVE_ARCH_SIGINFO_T
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct siginfo {
48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int si_signo;
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int si_errno;
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int si_code;
51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    int _pad[SI_PAD_SIZE];
53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __kernel_pid_t _pid;
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __ARCH_SI_UID_T _uid;
56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _kill;
57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __kernel_timer_t _tid;
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      int _overrun;
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      sigval_t _sigval;
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      int _sys_private;
63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _timer;
64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __kernel_pid_t _pid;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __ARCH_SI_UID_T _uid;
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      sigval_t _sigval;
68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _rt;
69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __kernel_pid_t _pid;
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __ARCH_SI_UID_T _uid;
72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      int _status;
73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __ARCH_SI_CLOCK_T _utime;
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __ARCH_SI_CLOCK_T _stime;
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _sigchld;
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      void __user * _addr;
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifdef __ARCH_SI_TRAPNO
79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      int _trapno;
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      short _addr_lsb;
82106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris      union {
83106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris        struct {
84106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris          void __user * _lower;
85106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris          void __user * _upper;
86106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris        } _addr_bnd;
87106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris        __u32 _pkey;
88106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris      };
89106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris    } _sigfault;
90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      __ARCH_SI_BAND_T _band;
92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      int _fd;
93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _sigpoll;
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    struct {
95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      void __user * _call_addr;
96d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      int _syscall;
97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      unsigned int _arch;
98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _sigsys;
99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } _sifields;
100655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} __ARCH_SI_ATTRIBUTES siginfo_t;
101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SIGSYS
102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_pid _sifields._kill._pid
104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_uid _sifields._kill._uid
105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_tid _sifields._timer._tid
106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_overrun _sifields._timer._overrun
107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_sys_private _sifields._timer._sys_private
108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_status _sifields._sigchld._status
109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_utime _sifields._sigchld._utime
110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_stime _sifields._sigchld._stime
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_value _sifields._rt._sigval
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_int _sifields._rt._sigval.sival_int
113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_ptr _sifields._rt._sigval.sival_ptr
114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_addr _sifields._sigfault._addr
115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifdef __ARCH_SI_TRAPNO
116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_trapno _sifields._sigfault._trapno
117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_addr_lsb _sifields._sigfault._addr_lsb
11905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define si_lower _sifields._sigfault._addr_bnd._lower
12005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define si_upper _sifields._sigfault._addr_bnd._upper
121106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define si_pkey _sifields._sigfault._pkey
122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_band _sifields._sigpoll._band
123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_fd _sifields._sigpoll._fd
124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifdef __ARCH_SIGSYS
125655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_call_addr _sifields._sigsys._call_addr
126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_syscall _sifields._sigsys._syscall
127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define si_arch _sifields._sigsys._arch
128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SI_USER 0
130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SI_KERNEL 0x80
131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SI_QUEUE - 1
1321308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SI_TIMER - 2
1331308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SI_MESGQ - 3
134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SI_ASYNCIO - 4
135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SI_SIGIO - 5
136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SI_TKILL - 6
137d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define SI_DETHREAD - 7
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0)
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0)
1401308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_ILLOPC 1
1411308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_ILLOPN 2
1421308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_ILLADR 3
1431308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_ILLTRP 4
1441308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_PRVOPC 5
1451308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_PRVREG 6
1461308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_COPROC 7
1471308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define ILL_BADSTK 8
148655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGILL 8
1491308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_INTDIV 1
1501308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_INTOVF 2
1511308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_FLTDIV 3
1521308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_FLTOVF 4
1531308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_FLTUND 5
1541308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_FLTRES 6
1551308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_FLTINV 7
1561308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define FPE_FLTSUB 8
157655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGFPE 8
1581308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SEGV_MAPERR 1
1591308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SEGV_ACCERR 2
1601308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SEGV_BNDERR 3
1611308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SEGV_PKUERR 4
162106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NSIGSEGV 4
1631308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define BUS_ADRALN 1
1641308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define BUS_ADRERR 2
1651308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define BUS_OBJERR 3
1661308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define BUS_MCEERR_AR 4
1671308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define BUS_MCEERR_AO 5
168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGBUS 5
1691308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TRAP_BRKPT 1
1701308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TRAP_TRACE 2
1711308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TRAP_BRANCH 3
1721308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TRAP_HWBKPT 4
173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGTRAP 4
1741308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CLD_EXITED 1
1751308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CLD_KILLED 2
1761308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CLD_DUMPED 3
1771308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CLD_TRAPPED 4
1781308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CLD_STOPPED 5
1791308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CLD_CONTINUED 6
180655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGCHLD 6
1811308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define POLL_IN 1
1821308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define POLL_OUT 2
1831308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define POLL_MSG 3
1841308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define POLL_ERR 4
1851308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define POLL_PRI 5
1861308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define POLL_HUP 6
187655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGPOLL 6
1881308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define SYS_SECCOMP 1
189655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NSIGSYS 1
190106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define SIGEV_SIGNAL 0
191655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIGEV_NONE 1
192655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIGEV_THREAD 2
193655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIGEV_THREAD_ID 4
194106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
195655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t))
196655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
197655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIGEV_MAX_SIZE 64
198106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) / sizeof(int))
199655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct sigevent {
200d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  sigval_t sigev_value;
201d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int sigev_signo;
202106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  int sigev_notify;
203d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
204d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    int _pad[SIGEV_PAD_SIZE];
205d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    int _tid;
206106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris    struct {
207d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      void(* _function) (sigval_t);
208d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao      void * _attribute;
209d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    } _sigev_thread;
210106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  } _sigev_un;
211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} sigevent_t;
212655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define sigev_notify_function _sigev_un._sigev_thread._function
213655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
214106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define sigev_notify_thread_id _sigev_un._tid
215655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
216