1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _ASM_GENERIC_SIGINFO_H
20#define _ASM_GENERIC_SIGINFO_H
21#include <linux/compiler.h>
22#include <linux/types.h>
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24typedef union sigval {
25 int sival_int;
26 void __user *sival_ptr;
27} sigval_t;
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#ifndef __ARCH_SI_PREAMBLE_SIZE
30#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
31#endif
32#define SI_MAX_SIZE 128
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#ifndef SI_PAD_SIZE
35#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
36#endif
37#ifndef __ARCH_SI_UID_T
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define __ARCH_SI_UID_T uid_t
40#endif
41#ifndef __ARCH_SI_BAND_T
42#define __ARCH_SI_BAND_T long
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#endif
45#ifndef HAVE_ARCH_SIGINFO_T
46typedef struct siginfo {
47 int si_signo;
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 int si_errno;
50 int si_code;
51 union {
52 int _pad[SI_PAD_SIZE];
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 struct {
55 pid_t _pid;
56 __ARCH_SI_UID_T _uid;
57 } _kill;
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 struct {
60 timer_t _tid;
61 int _overrun;
62 char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 sigval_t _sigval;
65 int _sys_private;
66 } _timer;
67 struct {
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 pid_t _pid;
70 __ARCH_SI_UID_T _uid;
71 sigval_t _sigval;
72 } _rt;
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 struct {
75 pid_t _pid;
76 __ARCH_SI_UID_T _uid;
77 int _status;
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 clock_t _utime;
80 clock_t _stime;
81 } _sigchld;
82 struct {
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 void __user *_addr;
85#ifdef __ARCH_SI_TRAPNO
86 int _trapno;
87#endif
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 } _sigfault;
90 struct {
91 __ARCH_SI_BAND_T _band;
92 int _fd;
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 } _sigpoll;
95 } _sifields;
96} siginfo_t;
97#endif
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99#define si_pid _sifields._kill._pid
100#define si_uid _sifields._kill._uid
101#define si_tid _sifields._timer._tid
102#define si_overrun _sifields._timer._overrun
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104#define si_sys_private _sifields._timer._sys_private
105#define si_status _sifields._sigchld._status
106#define si_utime _sifields._sigchld._utime
107#define si_stime _sifields._sigchld._stime
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109#define si_value _sifields._rt._sigval
110#define si_int _sifields._rt._sigval.sival_int
111#define si_ptr _sifields._rt._sigval.sival_ptr
112#define si_addr _sifields._sigfault._addr
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114#ifdef __ARCH_SI_TRAPNO
115#define si_trapno _sifields._sigfault._trapno
116#endif
117#define si_band _sifields._sigpoll._band
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119#define si_fd _sifields._sigpoll._fd
120#define __SI_KILL 0
121#define __SI_TIMER 0
122#define __SI_POLL 0
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124#define __SI_FAULT 0
125#define __SI_CHLD 0
126#define __SI_RT 0
127#define __SI_MESGQ 0
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129#define __SI_CODE(T,N) (N)
130#define SI_USER 0
131#define SI_KERNEL 0x80
132#define SI_QUEUE -1
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134#define SI_TIMER __SI_CODE(__SI_TIMER,-2)
135#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3)
136#define SI_ASYNCIO -4
137#define SI_SIGIO -5
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139#define SI_TKILL -6
140#define SI_DETHREAD -7
141#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0)
142#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0)
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144#define ILL_ILLOPC (__SI_FAULT|1)
145#define ILL_ILLOPN (__SI_FAULT|2)
146#define ILL_ILLADR (__SI_FAULT|3)
147#define ILL_ILLTRP (__SI_FAULT|4)
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149#define ILL_PRVOPC (__SI_FAULT|5)
150#define ILL_PRVREG (__SI_FAULT|6)
151#define ILL_COPROC (__SI_FAULT|7)
152#define ILL_BADSTK (__SI_FAULT|8)
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154#define NSIGILL 8
155#define FPE_INTDIV (__SI_FAULT|1)
156#define FPE_INTOVF (__SI_FAULT|2)
157#define FPE_FLTDIV (__SI_FAULT|3)
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159#define FPE_FLTOVF (__SI_FAULT|4)
160#define FPE_FLTUND (__SI_FAULT|5)
161#define FPE_FLTRES (__SI_FAULT|6)
162#define FPE_FLTINV (__SI_FAULT|7)
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164#define FPE_FLTSUB (__SI_FAULT|8)
165#define NSIGFPE 8
166#define SEGV_MAPERR (__SI_FAULT|1)
167#define SEGV_ACCERR (__SI_FAULT|2)
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169#define NSIGSEGV 2
170#define BUS_ADRALN (__SI_FAULT|1)
171#define BUS_ADRERR (__SI_FAULT|2)
172#define BUS_OBJERR (__SI_FAULT|3)
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174#define NSIGBUS 3
175#define TRAP_BRKPT (__SI_FAULT|1)
176#define TRAP_TRACE (__SI_FAULT|2)
177#define NSIGTRAP 2
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179#define CLD_EXITED (__SI_CHLD|1)
180#define CLD_KILLED (__SI_CHLD|2)
181#define CLD_DUMPED (__SI_CHLD|3)
182#define CLD_TRAPPED (__SI_CHLD|4)
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184#define CLD_STOPPED (__SI_CHLD|5)
185#define CLD_CONTINUED (__SI_CHLD|6)
186#define NSIGCHLD 6
187#define POLL_IN (__SI_POLL|1)
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189#define POLL_OUT (__SI_POLL|2)
190#define POLL_MSG (__SI_POLL|3)
191#define POLL_ERR (__SI_POLL|4)
192#define POLL_PRI (__SI_POLL|5)
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194#define POLL_HUP (__SI_POLL|6)
195#define NSIGPOLL 6
196#define SIGEV_SIGNAL 0
197#define SIGEV_NONE 1
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199#define SIGEV_THREAD 2
200#define SIGEV_THREAD_ID 4
201#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
202#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t))
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204#endif
205#define SIGEV_MAX_SIZE 64
206#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE)   / sizeof(int))
207typedef struct sigevent {
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 sigval_t sigev_value;
210 int sigev_signo;
211 int sigev_notify;
212 union {
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 int _pad[SIGEV_PAD_SIZE];
215 int _tid;
216 struct {
217 void (*_function)(sigval_t);
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 void *_attribute;
220 } _sigev_thread;
221 } _sigev_un;
222} sigevent_t;
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224#define sigev_notify_function _sigev_un._sigev_thread._function
225#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
226#define sigev_notify_thread_id _sigev_un._tid
227#endif
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229