| 123456789101112131415161718192021222324252627282930313233 |
- use crate::kernel::{block::make_device, CharDevice, CharDeviceType, Terminal, TerminalDevice};
- use alloc::sync::Arc;
- use eonix_log::ConsoleWrite;
- struct SbiConsole;
- impl ConsoleWrite for SbiConsole {
- fn write(&self, s: &str) {
- eonix_hal::bootstrap::early_console_write(s);
- }
- }
- impl TerminalDevice for SbiConsole {
- fn write(&self, data: &[u8]) {
- for &ch in data {
- eonix_hal::bootstrap::early_console_putchar(ch);
- }
- }
- fn write_direct(&self, data: &[u8]) {
- for &ch in data {
- eonix_hal::bootstrap::early_console_putchar(ch);
- }
- }
- }
- pub fn init_console() {
- eonix_log::set_console(Arc::new(SbiConsole));
- let console = Arc::new(SbiConsole);
- let terminal = Terminal::new(console.clone());
- crate::kernel::console::set_console(terminal).expect("Failed to set console");
- }
|