1 #pragma once
2 
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 #include <fcntl.h>
8 #include <stdint.h>
9 
10 #define __NEED_sigset_t
11 
12 #include <bits/alltypes.h>
13 
14 #define SFD_CLOEXEC O_CLOEXEC
15 #define SFD_NONBLOCK O_NONBLOCK
16 
17 int signalfd(int, const sigset_t*, int);
18 
19 struct signalfd_siginfo {
20     uint32_t ssi_signo;
21     int32_t ssi_errno;
22     int32_t ssi_code;
23     uint32_t ssi_pid;
24     uint32_t ssi_uid;
25     int32_t ssi_fd;
26     uint32_t ssi_tid;
27     uint32_t ssi_band;
28     uint32_t ssi_overrun;
29     uint32_t ssi_trapno;
30     int32_t ssi_status;
31     int32_t ssi_int;
32     uint64_t ssi_ptr;
33     uint64_t ssi_utime;
34     uint64_t ssi_stime;
35     uint64_t ssi_addr;
36     uint16_t ssi_addr_lsb;
37     uint8_t pad[128 - 12 * 4 - 4 * 8 - 2];
38 };
39 
40 #ifdef __cplusplus
41 }
42 #endif
43