base: revert oneshot_async service types, fix local fork deps, migrate remote to RedBear-OS

- Revert initfs/rootfs service types from oneshot_async to blocking
  Scheme/Notify/Oneshot to fix init ordering races.
- Add /scheme/pci retry loop in pcid-spawner.
- Bump redox_event to 0.4.8; use local paths for redox-ioctl and redox-rt.
- Regenerate Cargo.lock / bootstrap/Cargo.lock with only local forks.
- Update submodule origin from redbear-os-base.git to RedBear-OS.git
  branch submodule/base per single-repo policy.
This commit is contained in:
Red Bear OS
2026-07-05 22:25:00 +03:00
parent 4bfb878b55
commit e653ef10d6
36 changed files with 371 additions and 210 deletions
+22 -1
View File
@@ -1,11 +1,30 @@
use std::fs;
use std::process::Command;
use std::thread;
use std::time::Duration;
use anyhow::{anyhow, Context, Result};
use pcid_interface::config::Config;
use pcid_interface::PciFunctionHandle;
fn wait_for_pci_scheme() -> Result<()> {
let mut last_err = None;
for i in 0..40 {
match fs::read_dir("/scheme/pci") {
Ok(_) => return Ok(()),
Err(err) => {
last_err = Some(err);
if i == 0 {
log::debug!("pcid-spawner: waiting for /scheme/pci to become available");
}
thread::sleep(Duration::from_millis(50));
}
}
}
Err(last_err.unwrap().into())
}
fn main() -> Result<()> {
let mut args = pico_args::Arguments::from_env();
let initfs = args.contains("--initfs");
@@ -31,6 +50,8 @@ fn main() -> Result<()> {
let config: Config = toml::from_str(&config_data)?;
wait_for_pci_scheme().context("/scheme/pci is not available")?;
for entry in fs::read_dir("/scheme/pci")? {
let entry = entry.context("failed to get entry")?;
let device_path = entry.path();
@@ -94,7 +115,7 @@ fn main() -> Result<()> {
#[allow(deprecated, reason = "we can't yet move this to init")]
daemon::Daemon::spawn(command);
syscall::close(channel_fd as usize).unwrap();
libredox::call::close(channel_fd as usize).unwrap();
}
Ok(())