Files
RedBear-OS/logd/src/main.rs
T
bjorn3 8f319d4081 logd: Improve implementation of kernel log copying
I hadn't meant to upstream it yet. I accidentally added it in a commit
touching the netstack. In any case this commit integrates the kernel log
copying directly into LogScheme.

The kernel log copying is meant to show the kernel log on the fbbootlogd
rendered bootlog. Even once the kernel graphical debug has been disabled
or if it never got enabled due to the bootloader not presenting a
framebuffer.
2025-07-12 17:14:12 +02:00

41 lines
1.1 KiB
Rust

use redox_scheme::{RequestKind, SignalBehavior, Socket};
use std::process;
use crate::scheme::LogScheme;
mod scheme;
fn daemon(daemon: redox_daemon::Daemon) -> ! {
let socket = Socket::create("log").expect("logd: failed to create log scheme");
eprintln!("logd: ready for logging on log:");
daemon.ready().expect("logd: failed to notify parent");
let mut scheme = LogScheme::new();
while let Some(request) = socket
.next_request(SignalBehavior::Restart)
.expect("logd: failed to read events from log scheme")
{
let request = match request.kind() {
RequestKind::Call(call) => call,
RequestKind::OnClose { id } => {
scheme.on_close(id);
continue;
}
_ => continue,
};
let response = request.handle_sync(&mut scheme);
socket
.write_responses(&[response], SignalBehavior::Restart)
.expect("logd: failed to write responses to log scheme");
}
process::exit(0);
}
fn main() {
redox_daemon::Daemon::new(daemon).expect("logd: failed to daemonize");
}