cee25393d8
- Fix P15-8-init-cycle-detection.patch: replace visiting+error with seen+silent-skip to eliminate 11 false-positive 'dependency cycle detected' errors on shared deps - Fix P0-daemon-fix-init-notify-unwrap.patch: remove eprintln! for missing INIT_NOTIFY (expected for oneshot_async services, ~7 daemons affected) - Fix driver-manager hotplug loop: add PERMANENTLY_SKIPPED static set shared between hotplug handler and DriverConfig::probe() to stop infinite re-probing of Fatal/NotSupported/deferred-exhausted device+driver pairs (e.g. ided) - Fix driver-manager log_timeline: suppress repeated EPIPE/ENOENT errors with AtomicI32 dedup and AtomicBool one-shot guards for boot timeline JSON - Add driver-manager SIGTERM handler, ACPI bus registration, --status mode, driver reap loop, graceful shutdown, and reduced deferred retries (30→3)
23 lines
725 B
Diff
23 lines
725 B
Diff
--- a/src/header/stdlib/mod.rs
|
|
+++ b/src/header/stdlib/mod.rs
|
|
@@ -1703,3 +1703,19 @@
|
|
|
|
result as c_int
|
|
}
|
|
+
|
|
+/// See <https://pubs.opengroup.org/onlinepubs/9799919799/functions/getloadavg.html>.
|
|
+/// Redox does not track load averages; returns -1.
|
|
+#[unsafe(no_mangle)]
|
|
+pub unsafe extern "C" fn getloadavg(loadavg: *mut c_double, nelem: c_int) -> c_int {
|
|
+ if loadavg.is_null() || nelem <= 0 {
|
|
+ return -1;
|
|
+ }
|
|
+ // Fill available slots with 0.0 but still return -1 to indicate
|
|
+ // load average is not available. This matches the POSIX convention
|
|
+ // where -1 means the load average is unobtainable.
|
|
+ for i in 0..nelem {
|
|
+ unsafe { *loadavg.add(i as usize) = 0.0; }
|
|
+ }
|
|
+ -1
|
|
+}
|