b9874d0941
Add redbear-usb-storage-check in-guest binary that validates USB mass storage read and write I/O: discovers /scheme/disk/ devices, writes a test pattern to sector 2048, reads it back, verifies match, restores original content. Updates test-usb-storage-qemu.sh with write-proof verification step. Includes all accumulated Red Bear OS work: kernel patches, relibc patches, driver infrastructure, DRM/GPU, KDE recipes, firmware, validation tooling, build system hardening, and documentation.
33 lines
1.3 KiB
Diff
33 lines
1.3 KiB
Diff
--- a/init/src/main.rs
|
|
+++ b/init/src/main.rs
|
|
@@ -157,13 +157,17 @@
|
|
for entry in entries {
|
|
+ status_ok(&format!("RB_LOAD {}", entry.display()));
|
|
scheduler.schedule_start_and_report_errors(
|
|
&mut unit_store,
|
|
UnitId(entry.file_name().unwrap().to_str().unwrap().to_owned()),
|
|
);
|
|
}
|
|
+ status_ok(&format!("RB_STORE {} units", unit_store.units.len()));
|
|
};
|
|
|
|
scheduler.step(&mut unit_store, &mut init_config);
|
|
+ status_ok("RB_STEP_DONE");
|
|
|
|
libredox::call::setrens(0, 0).expect("init: failed to enter null namespace");
|
|
|
|
--- a/init/src/scheduler.rs
|
|
+++ b/init/src/scheduler.rs
|
|
@@ -64,9 +64,11 @@
|
|
JobKind::Start => {
|
|
let unit = unit_store.unit_mut(&job.unit);
|
|
+ status_ok(&format!("RB_RUN {}", unit.id.0));
|
|
|
|
for dep in &unit.info.requires_weak {
|
|
for pending_job in &self.pending {
|
|
if &pending_job.unit == dep {
|
|
+ status_ok(&format!("RB_DEFER {} (dep {} pending)", unit.id.0, dep.0));
|
|
self.pending.push_back(job);
|
|
continue 'a';
|
|
}
|