1#pragma once
2
3#ifdef __cplusplus
4extern "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
17int signalfd(int, const sigset_t*, int);
18
19struct 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