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