8acc73d774
Phase 1 (Runtime Substrate): 4 check binaries, --probe, POSIX tests Phase 2 (Wayland Compositor): bounded scaffold, zero warnings Phase 3 (KWin Session): preflight checker (KWin stub, gated on Qt6Quick) Phase 4 (KDE Plasma): 18 KF6 enabled, preflight checker Phase 5 (Hardware GPU): DRM/firmware/Mesa preflight checker Build: zero warnings, all scripts syntax-clean. Oracle-verified.
36 lines
888 B
Rust
36 lines
888 B
Rust
use redox_scheme::Socket;
|
|
|
|
use scheme::ZeroScheme;
|
|
use scheme_utils::Blocking;
|
|
|
|
mod scheme;
|
|
|
|
enum Ty {
|
|
Null,
|
|
Zero,
|
|
}
|
|
|
|
fn main() {
|
|
daemon::SchemeDaemon::new(daemon);
|
|
}
|
|
|
|
fn daemon(daemon: daemon::SchemeDaemon) -> ! {
|
|
let ty = match &*std::env::args().nth(1).unwrap() {
|
|
"null" => Ty::Null,
|
|
"zero" => Ty::Zero,
|
|
_ => panic!("needs to be called with either null or zero as argument"),
|
|
};
|
|
|
|
let socket = Socket::create().expect("zerod: failed to create zero scheme");
|
|
let mut zero_scheme = ZeroScheme(ty);
|
|
let zero_handler = Blocking::new(&socket, 16);
|
|
|
|
let _ = daemon.ready_sync_scheme(&socket, &mut zero_scheme);
|
|
|
|
libredox::call::setrens(0, 0).expect("zerod: failed to enter null namespace");
|
|
|
|
zero_handler
|
|
.process_requests_blocking(zero_scheme)
|
|
.expect("zerod: failed to process events from zero scheme");
|
|
}
|