Files
RedBear-OS/local/patches/relibc/P3-signalfd-header.patch
T

50 lines
1.3 KiB
Diff

diff --git a/src/header/mod.rs b/src/header/mod.rs
diff --git a/src/header/sys_signalfd/cbindgen.toml b/src/header/sys_signalfd/cbindgen.toml
new file mode 100644
--- /dev/null
+++ b/src/header/sys_signalfd/cbindgen.toml
@@ -0,0 +1,24 @@
+sys_includes = ["signal.h", "stdint.h", "stddef.h"]
+include_guard = "_SYS_SIGNALFD_H"
+trailer = """
+#ifndef SFD_CLOEXEC
+#define SFD_CLOEXEC 0x80000
+#endif
+
+#ifndef SFD_NONBLOCK
+#define SFD_NONBLOCK 0x800
+#endif
+
+int signalfd(int fd, const sigset_t *mask, size_t masksize);
+int signalfd4(int fd, const sigset_t *mask, size_t masksize, int flags);
+"""
+language = "C"
+style = "Tag"
+no_includes = true
+cpp_compat = true
+
+[enum]
+prefix_with_name = true
+
+[export.rename]
+"signalfd_siginfo" = "struct signalfd_siginfo"
diff --git a/src/header/sys_signalfd/mod.rs b/src/header/sys_signalfd/mod.rs
new file mode 100644
--- /dev/null
+++ b/src/header/sys_signalfd/mod.rs
@@ -0,0 +1,14 @@
+//! `sys/signalfd.h` implementation.
+
+use crate::{
+ header::signal::{self, signalfd_siginfo},
+ platform::types::c_int,
+};
+
+pub const SFD_CLOEXEC: c_int = signal::SFD_CLOEXEC;
+pub const SFD_NONBLOCK: c_int = signal::SFD_NONBLOCK;
+
+#[unsafe(no_mangle)]
+pub extern "C" fn _cbindgen_export_sys_signalfd_siginfo(siginfo: signalfd_siginfo) {
+ let _ = siginfo;
+}