761e0d9de7
The literal task 'build ALL KDE packages' cannot be 100% completed because 12 packages require upstream dependencies not available on Redox: - kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine - kwin real build (1): Qt6::Sensors port needed - breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues - plasma extras (3): transitive blockers What WAS completed: - Cookbook topological sort fix (root cause — all deps now correct order) - kf6-attica recipe (183 files, 2.4MB pkgar) - 12 I2C/GPIO/UCSI daemons archived as durable patches - Source archival system (make sources) - Config + all docs synced, no contradictions
61 lines
1.7 KiB
Diff
61 lines
1.7 KiB
Diff
diff --git a/src/header/threads/cbindgen.toml b/src/header/threads/cbindgen.toml
|
|
new file mode 100644
|
|
index 0000000..3f90606
|
|
--- /dev/null
|
|
+++ b/src/header/threads/cbindgen.toml
|
|
@@ -0,0 +1,17 @@
|
|
+sys_includes = ["stddef.h", "pthread.h", "time.h"]
|
|
+include_guard = "_RELIBC_THREADS_H"
|
|
+language = "C"
|
|
+style = "Type"
|
|
+no_includes = true
|
|
+cpp_compat = true
|
|
+
|
|
+[export]
|
|
+include = [
|
|
+ "thrd_t",
|
|
+ "mtx_t",
|
|
+ "cnd_t",
|
|
+ "thrd_start_t",
|
|
+]
|
|
+
|
|
+[enum]
|
|
+prefix_with_name = true
|
|
diff --git a/src/header/threads/mod.rs b/src/header/threads/mod.rs
|
|
new file mode 100644
|
|
index 0000000..9ab9496
|
|
--- /dev/null
|
|
+++ b/src/header/threads/mod.rs
|
|
@@ -0,0 +1,31 @@
|
|
+//! `threads.h` implementation — C11 threads type definitions and constants.
|
|
+//!
|
|
+//! Full C11 threads API (thrd_create, mtx_lock, cnd_wait, etc.) requires
|
|
+//! a deeper pthread integration layer; this module provides the type
|
|
+//! definitions and constants for C11 header compatibility.
|
|
+
|
|
+use crate::platform::types::c_int;
|
|
+
|
|
+pub type thrd_start_t = Option<unsafe extern "C" fn(*mut core::ffi::c_void) -> c_int>;
|
|
+
|
|
+pub const thrd_success: c_int = 0;
|
|
+pub const thrd_nomem: c_int = -1;
|
|
+pub const thrd_timedout: c_int = -2;
|
|
+pub const thrd_busy: c_int = -3;
|
|
+pub const thrd_error: c_int = -4;
|
|
+
|
|
+pub const mtx_plain: c_int = 0;
|
|
+pub const mtx_timed: c_int = 1;
|
|
+
|
|
+// Opaque types; sizes match relibc's pthread backing types
|
|
+// (pthread_t = *mut c_void = 8 bytes, pthread_mutex_t = 12 bytes,
|
|
+// pthread_cond_t = 8 bytes)
|
|
+#[repr(C)]
|
|
+pub struct thrd_t { _priv: *mut core::ffi::c_void }
|
|
+#[repr(C)]
|
|
+pub struct mtx_t { _priv: [u8; 12] }
|
|
+#[repr(C)]
|
|
+pub struct cnd_t { _priv: [u8; 8] }
|
|
+
|
|
+#[unsafe(no_mangle)]
|
|
+pub unsafe extern "C" fn thrd_yield() {}
|