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