Supports serial input

This commit is contained in:
guillaume didier 2019-11-18 11:11:43 +01:00
parent bfeafc9892
commit 48559cec17

View File

@ -8,13 +8,11 @@
#![reexport_test_harness_main = "test_main"] #![reexport_test_harness_main = "test_main"]
extern crate alloc; extern crate alloc;
#[cfg(test)]
use polling_serial::serial_print;
use alloc::boxed::Box; use alloc::boxed::Box;
use bootloader::{entry_point, BootInfo}; use bootloader::{entry_point, BootInfo};
use core::panic::PanicInfo; use core::panic::PanicInfo;
use dendrobates_tinctoreus_azureus::allocator; use dendrobates_tinctoreus_azureus::allocator;
use polling_serial::serial_print;
use polling_serial::serial_println; use polling_serial::serial_println;
use vga_buffer; // required for custom panic handler use vga_buffer; // required for custom panic handler
use vga_buffer::println; use vga_buffer::println;
@ -86,6 +84,12 @@ fn kernel_main(boot_info: &'static BootInfo) -> ! {
let x = Box::new(41); let x = Box::new(41);
serial_print!("Input a character: ");
let c = { polling_serial::SERIAL1.lock().read() };
serial_println!("\nYoutyped '{:x}'", c);
serial_println!("Preparing nasty fault..."); serial_println!("Preparing nasty fault...");
unsafe { unsafe {
*(0xdead_beef as *mut u64) = 42; *(0xdead_beef as *mut u64) = 42;