aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Host/linux/Signalfd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Host/linux/Signalfd.h')
-rw-r--r--include/lldb/Host/linux/Signalfd.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/include/lldb/Host/linux/Signalfd.h b/include/lldb/Host/linux/Signalfd.h
new file mode 100644
index 000000000000..cf50e87097fb
--- /dev/null
+++ b/include/lldb/Host/linux/Signalfd.h
@@ -0,0 +1,54 @@
+//===-- Signalfd.h ----------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// This file defines signalfd functions & structures
+
+#ifndef liblldb_Host_linux_Signalfd_h_
+#define liblldb_Host_linux_Signalfd_h_
+
+#ifdef __ANDROID_NDK__
+#include <android/api-level.h>
+#endif
+
+#if defined(__ANDROID_API__) && __ANDROID_API__ < 21
+
+#include <linux/types.h>
+#include <linux/fcntl.h>
+
+#define SFD_CLOEXEC O_CLOEXEC
+#define SFD_NONBLOCK O_NONBLOCK
+
+struct signalfd_siginfo {
+ __u32 ssi_signo;
+ __s32 ssi_errno;
+ __s32 ssi_code;
+ __u32 ssi_pid;
+ __u32 ssi_uid;
+ __s32 ssi_fd;
+ __u32 ssi_tid;
+ __u32 ssi_band;
+ __u32 ssi_overrun;
+ __u32 ssi_trapno;
+ __s32 ssi_status;
+ __s32 ssi_int;
+ __u64 ssi_ptr;
+ __u64 ssi_utime;
+ __u64 ssi_stime;
+ __u64 ssi_addr;
+ __u16 ssi_addr_lsb;
+ __u8 __pad[46];
+};
+
+int signalfd (int fd, const sigset_t *mask, int flags);
+
+#else
+#include <sys/signalfd.h>
+#endif
+
+#endif // liblldb_Host_linux_Signalfd_h_