xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/signalfd.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  *  include/linux/signalfd.h
4*f80ad8b4SAndroid Build Coastguard Worker  *
5*f80ad8b4SAndroid Build Coastguard Worker  *  Copyright (C) 2007  Davide Libenzi <[email protected]>
6*f80ad8b4SAndroid Build Coastguard Worker  *
7*f80ad8b4SAndroid Build Coastguard Worker  */
8*f80ad8b4SAndroid Build Coastguard Worker 
9*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_SIGNALFD_H
10*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_SIGNALFD_H
11*f80ad8b4SAndroid Build Coastguard Worker 
12*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
13*f80ad8b4SAndroid Build Coastguard Worker /* For O_CLOEXEC and O_NONBLOCK */
14*f80ad8b4SAndroid Build Coastguard Worker #include <linux/fcntl.h>
15*f80ad8b4SAndroid Build Coastguard Worker 
16*f80ad8b4SAndroid Build Coastguard Worker /* Flags for signalfd4.  */
17*f80ad8b4SAndroid Build Coastguard Worker #define SFD_CLOEXEC O_CLOEXEC
18*f80ad8b4SAndroid Build Coastguard Worker #define SFD_NONBLOCK O_NONBLOCK
19*f80ad8b4SAndroid Build Coastguard Worker 
20*f80ad8b4SAndroid Build Coastguard Worker struct signalfd_siginfo {
21*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_signo;
22*f80ad8b4SAndroid Build Coastguard Worker 	__s32 ssi_errno;
23*f80ad8b4SAndroid Build Coastguard Worker 	__s32 ssi_code;
24*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_pid;
25*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_uid;
26*f80ad8b4SAndroid Build Coastguard Worker 	__s32 ssi_fd;
27*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_tid;
28*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_band;
29*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_overrun;
30*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_trapno;
31*f80ad8b4SAndroid Build Coastguard Worker 	__s32 ssi_status;
32*f80ad8b4SAndroid Build Coastguard Worker 	__s32 ssi_int;
33*f80ad8b4SAndroid Build Coastguard Worker 	__u64 ssi_ptr;
34*f80ad8b4SAndroid Build Coastguard Worker 	__u64 ssi_utime;
35*f80ad8b4SAndroid Build Coastguard Worker 	__u64 ssi_stime;
36*f80ad8b4SAndroid Build Coastguard Worker 	__u64 ssi_addr;
37*f80ad8b4SAndroid Build Coastguard Worker 	__u16 ssi_addr_lsb;
38*f80ad8b4SAndroid Build Coastguard Worker 	__u16 __pad2;
39*f80ad8b4SAndroid Build Coastguard Worker 	__s32 ssi_syscall;
40*f80ad8b4SAndroid Build Coastguard Worker 	__u64 ssi_call_addr;
41*f80ad8b4SAndroid Build Coastguard Worker 	__u32 ssi_arch;
42*f80ad8b4SAndroid Build Coastguard Worker 
43*f80ad8b4SAndroid Build Coastguard Worker 	/*
44*f80ad8b4SAndroid Build Coastguard Worker 	 * Pad strcture to 128 bytes. Remember to update the
45*f80ad8b4SAndroid Build Coastguard Worker 	 * pad size when you add new members. We use a fixed
46*f80ad8b4SAndroid Build Coastguard Worker 	 * size structure to avoid compatibility problems with
47*f80ad8b4SAndroid Build Coastguard Worker 	 * future versions, and we leave extra space for additional
48*f80ad8b4SAndroid Build Coastguard Worker 	 * members. We use fixed size members because this strcture
49*f80ad8b4SAndroid Build Coastguard Worker 	 * comes out of a read(2) and we really don't want to have
50*f80ad8b4SAndroid Build Coastguard Worker 	 * a compat on read(2).
51*f80ad8b4SAndroid Build Coastguard Worker 	 */
52*f80ad8b4SAndroid Build Coastguard Worker 	__u8 __pad[28];
53*f80ad8b4SAndroid Build Coastguard Worker };
54*f80ad8b4SAndroid Build Coastguard Worker 
55*f80ad8b4SAndroid Build Coastguard Worker 
56*f80ad8b4SAndroid Build Coastguard Worker 
57*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_SIGNALFD_H */
58