blob: b8476e8956fd6972c030d2be68059c6deb014443 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_ASM_GENERIC_SIGINFO_H
8#define _UAPI_ASM_GENERIC_SIGINFO_H
9#include <linux/compiler.h>
10#include <linux/types.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011typedef union sigval {
Tao Baod7db5942015-01-28 10:07:51 -080012 int sival_int;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070013 void * sival_ptr;
Ben Cheng655a7c02013-10-16 16:09:24 -070014} sigval_t;
Ben Cheng655a7c02013-10-16 16:09:24 -070015#define SI_MAX_SIZE 128
Ben Cheng655a7c02013-10-16 16:09:24 -070016#ifndef __ARCH_SI_BAND_T
17#define __ARCH_SI_BAND_T long
Ben Cheng655a7c02013-10-16 16:09:24 -070018#endif
19#ifndef __ARCH_SI_CLOCK_T
20#define __ARCH_SI_CLOCK_T __kernel_clock_t
21#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070022#ifndef __ARCH_SI_ATTRIBUTES
23#define __ARCH_SI_ATTRIBUTES
24#endif
Christopher Ferris86a48372019-01-10 14:14:59 -080025union __sifields {
26 struct {
27 __kernel_pid_t _pid;
28 __kernel_uid32_t _uid;
29 } _kill;
30 struct {
31 __kernel_timer_t _tid;
32 int _overrun;
33 sigval_t _sigval;
34 int _sys_private;
35 } _timer;
36 struct {
37 __kernel_pid_t _pid;
38 __kernel_uid32_t _uid;
39 sigval_t _sigval;
40 } _rt;
41 struct {
42 __kernel_pid_t _pid;
43 __kernel_uid32_t _uid;
44 int _status;
45 __ARCH_SI_CLOCK_T _utime;
46 __ARCH_SI_CLOCK_T _stime;
47 } _sigchld;
48 struct {
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070049 void * _addr;
Christopher Ferris76a1d452018-06-27 14:12:29 -070050#ifdef __ia64__
Christopher Ferris86a48372019-01-10 14:14:59 -080051 int _imm;
52 unsigned int _flags;
53 unsigned long _isr;
Christopher Ferris76a1d452018-06-27 14:12:29 -070054#endif
55#define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
Christopher Ferris86a48372019-01-10 14:14:59 -080056 union {
Christopher Ferrisfcc3b4f2021-07-01 01:30:21 +000057 int _trapno;
Christopher Ferris86a48372019-01-10 14:14:59 -080058 short _addr_lsb;
59 struct {
60 char _dummy_bnd[__ADDR_BND_PKEY_PAD];
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070061 void * _lower;
62 void * _upper;
Christopher Ferris86a48372019-01-10 14:14:59 -080063 } _addr_bnd;
64 struct {
65 char _dummy_pkey[__ADDR_BND_PKEY_PAD];
66 __u32 _pkey;
67 } _addr_pkey;
Christopher Ferrisfcc3b4f2021-07-01 01:30:21 +000068 struct {
69 unsigned long _data;
70 __u32 _type;
Christopher Ferris80ae69d2022-08-02 16:32:21 -070071 __u32 _flags;
Christopher Ferrisfcc3b4f2021-07-01 01:30:21 +000072 } _perf;
Christopher Ferris86a48372019-01-10 14:14:59 -080073 };
74 } _sigfault;
75 struct {
76 __ARCH_SI_BAND_T _band;
77 int _fd;
78 } _sigpoll;
79 struct {
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070080 void * _call_addr;
Christopher Ferris86a48372019-01-10 14:14:59 -080081 int _syscall;
82 unsigned int _arch;
83 } _sigsys;
84};
85#ifndef __ARCH_HAS_SWAPPED_SIGINFO
86#define __SIGINFO struct { int si_signo; int si_errno; int si_code; union __sifields _sifields; \
87}
88#else
89#define __SIGINFO struct { int si_signo; int si_code; int si_errno; union __sifields _sifields; \
90}
91#endif
92typedef struct siginfo {
93 union {
94 __SIGINFO;
95 int _si_pad[SI_MAX_SIZE / sizeof(int)];
96 };
Ben Cheng655a7c02013-10-16 16:09:24 -070097} __ARCH_SI_ATTRIBUTES siginfo_t;
Ben Cheng655a7c02013-10-16 16:09:24 -070098#define si_pid _sifields._kill._pid
99#define si_uid _sifields._kill._uid
100#define si_tid _sifields._timer._tid
Ben Cheng655a7c02013-10-16 16:09:24 -0700101#define si_overrun _sifields._timer._overrun
102#define si_sys_private _sifields._timer._sys_private
103#define si_status _sifields._sigchld._status
104#define si_utime _sifields._sigchld._utime
Ben Cheng655a7c02013-10-16 16:09:24 -0700105#define si_stime _sifields._sigchld._stime
106#define si_value _sifields._rt._sigval
107#define si_int _sifields._rt._sigval.sival_int
108#define si_ptr _sifields._rt._sigval.sival_ptr
Ben Cheng655a7c02013-10-16 16:09:24 -0700109#define si_addr _sifields._sigfault._addr
Ben Cheng655a7c02013-10-16 16:09:24 -0700110#define si_trapno _sifields._sigfault._trapno
Ben Cheng655a7c02013-10-16 16:09:24 -0700111#define si_addr_lsb _sifields._sigfault._addr_lsb
Christopher Ferris05d08e92016-02-04 13:16:38 -0800112#define si_lower _sifields._sigfault._addr_bnd._lower
113#define si_upper _sifields._sigfault._addr_bnd._upper
Christopher Ferris76a1d452018-06-27 14:12:29 -0700114#define si_pkey _sifields._sigfault._addr_pkey._pkey
Christopher Ferrisfcc3b4f2021-07-01 01:30:21 +0000115#define si_perf_data _sifields._sigfault._perf._data
116#define si_perf_type _sifields._sigfault._perf._type
Christopher Ferris80ae69d2022-08-02 16:32:21 -0700117#define si_perf_flags _sifields._sigfault._perf._flags
Ben Cheng655a7c02013-10-16 16:09:24 -0700118#define si_band _sifields._sigpoll._band
119#define si_fd _sifields._sigpoll._fd
Ben Cheng655a7c02013-10-16 16:09:24 -0700120#define si_call_addr _sifields._sigsys._call_addr
121#define si_syscall _sifields._sigsys._syscall
122#define si_arch _sifields._sigsys._arch
Ben Cheng655a7c02013-10-16 16:09:24 -0700123#define SI_USER 0
124#define SI_KERNEL 0x80
Tao Baod7db5942015-01-28 10:07:51 -0800125#define SI_QUEUE - 1
Christopher Ferris1308ad32017-11-14 17:32:13 -0800126#define SI_TIMER - 2
127#define SI_MESGQ - 3
Tao Baod7db5942015-01-28 10:07:51 -0800128#define SI_ASYNCIO - 4
129#define SI_SIGIO - 5
Tao Baod7db5942015-01-28 10:07:51 -0800130#define SI_TKILL - 6
131#define SI_DETHREAD - 7
Christopher Ferris76a1d452018-06-27 14:12:29 -0700132#define SI_ASYNCNL - 60
Ben Cheng655a7c02013-10-16 16:09:24 -0700133#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0)
134#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0)
Christopher Ferris1308ad32017-11-14 17:32:13 -0800135#define ILL_ILLOPC 1
136#define ILL_ILLOPN 2
137#define ILL_ILLADR 3
138#define ILL_ILLTRP 4
139#define ILL_PRVOPC 5
140#define ILL_PRVREG 6
141#define ILL_COPROC 7
142#define ILL_BADSTK 8
Christopher Ferris76a1d452018-06-27 14:12:29 -0700143#define ILL_BADIADDR 9
144#define __ILL_BREAK 10
145#define __ILL_BNDMOD 11
146#define NSIGILL 11
Christopher Ferris1308ad32017-11-14 17:32:13 -0800147#define FPE_INTDIV 1
148#define FPE_INTOVF 2
149#define FPE_FLTDIV 3
150#define FPE_FLTOVF 4
151#define FPE_FLTUND 5
152#define FPE_FLTRES 6
153#define FPE_FLTINV 7
154#define FPE_FLTSUB 8
Christopher Ferris76a1d452018-06-27 14:12:29 -0700155#define __FPE_DECOVF 9
156#define __FPE_DECDIV 10
157#define __FPE_DECERR 11
158#define __FPE_INVASC 12
159#define __FPE_INVDEC 13
160#define FPE_FLTUNK 14
161#define FPE_CONDTRAP 15
162#define NSIGFPE 15
Christopher Ferris1308ad32017-11-14 17:32:13 -0800163#define SEGV_MAPERR 1
164#define SEGV_ACCERR 2
165#define SEGV_BNDERR 3
Christopher Ferris76a1d452018-06-27 14:12:29 -0700166#ifdef __ia64__
167#define __SEGV_PSTKOVF 4
168#else
Christopher Ferris1308ad32017-11-14 17:32:13 -0800169#define SEGV_PKUERR 4
Christopher Ferris76a1d452018-06-27 14:12:29 -0700170#endif
171#define SEGV_ACCADI 5
172#define SEGV_ADIDERR 6
173#define SEGV_ADIPERR 7
Christopher Ferris32ff3f82020-12-14 13:10:04 -0800174#define SEGV_MTEAERR 8
175#define SEGV_MTESERR 9
Christopher Ferris67d1e5e2023-10-31 13:36:37 -0700176#define SEGV_CPERR 10
177#define NSIGSEGV 10
Christopher Ferris1308ad32017-11-14 17:32:13 -0800178#define BUS_ADRALN 1
179#define BUS_ADRERR 2
180#define BUS_OBJERR 3
181#define BUS_MCEERR_AR 4
182#define BUS_MCEERR_AO 5
Ben Cheng655a7c02013-10-16 16:09:24 -0700183#define NSIGBUS 5
Christopher Ferris1308ad32017-11-14 17:32:13 -0800184#define TRAP_BRKPT 1
185#define TRAP_TRACE 2
186#define TRAP_BRANCH 3
187#define TRAP_HWBKPT 4
Christopher Ferris9ce28842018-10-25 12:11:39 -0700188#define TRAP_UNK 5
Christopher Ferrisfcc3b4f2021-07-01 01:30:21 +0000189#define TRAP_PERF 6
190#define NSIGTRAP 6
Christopher Ferris80ae69d2022-08-02 16:32:21 -0700191#define TRAP_PERF_FLAG_ASYNC (1u << 0)
Christopher Ferris1308ad32017-11-14 17:32:13 -0800192#define CLD_EXITED 1
193#define CLD_KILLED 2
194#define CLD_DUMPED 3
195#define CLD_TRAPPED 4
196#define CLD_STOPPED 5
197#define CLD_CONTINUED 6
Ben Cheng655a7c02013-10-16 16:09:24 -0700198#define NSIGCHLD 6
Christopher Ferris1308ad32017-11-14 17:32:13 -0800199#define POLL_IN 1
200#define POLL_OUT 2
201#define POLL_MSG 3
202#define POLL_ERR 4
203#define POLL_PRI 5
204#define POLL_HUP 6
Ben Cheng655a7c02013-10-16 16:09:24 -0700205#define NSIGPOLL 6
Christopher Ferris1308ad32017-11-14 17:32:13 -0800206#define SYS_SECCOMP 1
Christopher Ferris05667cd2021-02-16 16:01:34 -0800207#define SYS_USER_DISPATCH 2
208#define NSIGSYS 2
Christopher Ferris86a48372019-01-10 14:14:59 -0800209#define EMT_TAGOVF 1
210#define NSIGEMT 1
Christopher Ferris106b3a82016-08-24 12:15:38 -0700211#define SIGEV_SIGNAL 0
Ben Cheng655a7c02013-10-16 16:09:24 -0700212#define SIGEV_NONE 1
213#define SIGEV_THREAD 2
214#define SIGEV_THREAD_ID 4
Christopher Ferris106b3a82016-08-24 12:15:38 -0700215#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
Ben Cheng655a7c02013-10-16 16:09:24 -0700216#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t))
217#endif
218#define SIGEV_MAX_SIZE 64
Christopher Ferris106b3a82016-08-24 12:15:38 -0700219#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) / sizeof(int))
Ben Cheng655a7c02013-10-16 16:09:24 -0700220typedef struct sigevent {
Tao Baod7db5942015-01-28 10:07:51 -0800221 sigval_t sigev_value;
222 int sigev_signo;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700223 int sigev_notify;
Tao Baod7db5942015-01-28 10:07:51 -0800224 union {
225 int _pad[SIGEV_PAD_SIZE];
226 int _tid;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700227 struct {
Tao Baod7db5942015-01-28 10:07:51 -0800228 void(* _function) (sigval_t);
229 void * _attribute;
230 } _sigev_thread;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700231 } _sigev_un;
Ben Cheng655a7c02013-10-16 16:09:24 -0700232} sigevent_t;
233#define sigev_notify_function _sigev_un._sigev_thread._function
234#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
Christopher Ferris106b3a82016-08-24 12:15:38 -0700235#define sigev_notify_thread_id _sigev_un._tid
Ben Cheng655a7c02013-10-16 16:09:24 -0700236#endif