Files
RedBear-OS/local/patches/relibc/P3-signalfd-header.patch
T
vasilito 9880e0a5b2 Advance redbear-full Wayland, greeter, and Qt integration
Consolidate the active desktop path around redbear-full while landing the greeter/session stack and the runtime fixes needed to keep Wayland and KWin bring-up moving forward.
2026-04-19 17:59:58 +01:00

94 lines
2.5 KiB
Diff

diff -ruN a/src/header/mod.rs b/src/header/mod.rs
--- a/src/header/mod.rs 2026-04-15 09:48:02.257700000 +0100
+++ b/src/header/mod.rs 2026-04-19 13:30:00.000000000 +0100
@@ -98,6 +98,7 @@
pub mod sys_resource;
pub mod sys_select;
+pub mod sys_signalfd;
// TODO: sys/sem.h
// TODO: sys/shm.h
pub mod sys_socket;
diff -ruN a/src/header/sys_signalfd/cbindgen.toml b/src/header/sys_signalfd/cbindgen.toml
--- a/src/header/sys_signalfd/cbindgen.toml 1970-01-01 00:00:00.000000000 +0000
+++ b/src/header/sys_signalfd/cbindgen.toml 2026-04-15 09:48:02.257754724 +0100
@@ -0,0 +1,41 @@
+sys_includes = ["signal.h", "stdint.h"]
+include_guard = "_SYS_SIGNALFD_H"
+trailer = """
+#ifndef SFD_CLOEXEC
+#define SFD_CLOEXEC 0x80000
+#endif
+
+#ifndef SFD_NONBLOCK
+#define SFD_NONBLOCK 0x800
+#endif
+
+struct signalfd_siginfo {
+ uint32_t ssi_signo;
+ int32_t ssi_errno;
+ int32_t ssi_code;
+ uint32_t ssi_pid;
+ uint32_t ssi_uid;
+ int32_t ssi_fd;
+ uint32_t ssi_tid;
+ uint32_t ssi_band;
+ uint32_t ssi_overrun;
+ uint32_t ssi_trapno;
+ int32_t ssi_status;
+ int32_t ssi_int;
+ uint64_t ssi_ptr;
+ uint64_t ssi_utime;
+ uint64_t ssi_stime;
+ uint64_t ssi_addr;
+ uint16_t ssi_addr_lsb;
+ uint16_t __pad2;
+ int32_t ssi_syscall;
+ uint64_t ssi_call_addr;
+ uint32_t ssi_arch;
+ uint8_t __pad[28];
+};
+"""
+language = "C"
+style = "Tag"
+no_includes = true
+cpp_compat = true
+[enum]
+prefix_with_name = true
+[export.rename]
+"signalfd_siginfo" = "struct signalfd_siginfo"
diff -ruN a/src/header/sys_signalfd/mod.rs b/src/header/sys_signalfd/mod.rs
--- a/src/header/sys_signalfd/mod.rs 1970-01-01 00:00:00.000000000 +0000
+++ b/src/header/sys_signalfd/mod.rs 2026-04-15 09:48:02.257778048 +0100
@@ -0,0 +1,29 @@
+//! `sys/signalfd.h` implementation.
+
+use crate::{
+ header::signal::{self, sigset_t, 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 unsafe extern "C" fn signalfd(fd: c_int, mask: *const sigset_t, masksize: usize) -> c_int {
+ unsafe { signal::signalfd(fd, mask, masksize) }
+}
+
+#[unsafe(no_mangle)]
+pub unsafe extern "C" fn signalfd4(
+ fd: c_int,
+ mask: *const sigset_t,
+ masksize: usize,
+ flags: c_int,
+) -> c_int {
+ unsafe { signal::signalfd4(fd, mask, masksize, flags) }
+}
+
+#[unsafe(no_mangle)]
+pub extern "C" fn _cbindgen_export_sys_signalfd_siginfo(siginfo: signalfd_siginfo) {
+ let _ = siginfo;
+}