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