diff --git a/kernel/build_and_emulate b/kernel/build_and_emulate index 6495e49..bcf3a3e 100755 --- a/kernel/build_and_emulate +++ b/kernel/build_and_emulate @@ -5,8 +5,14 @@ set -e DIR="${BASH_SOURCE%/*}" if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi +if [[ $# -lt 1 ]]; then + echo "[INFO] Building all targets; no target argument provided" +fi + . $DIR/build $! if [[ $# -ge 1 ]]; then . $DIR/emulate $! +else + echo "[WARN] Not emulating; no target argument provided" fi \ No newline at end of file diff --git a/kernel/src/kernel/boot.rs b/kernel/src/kernel/boot.rs index d39fdef..5bc0810 100644 --- a/kernel/src/kernel/boot.rs +++ b/kernel/src/kernel/boot.rs @@ -37,9 +37,9 @@ impl MemoryType { crate::arch::output::sdebugsnp("Hardware specific "); crate::arch::output::sdebugbnp(&crate::u32_as_u8_slice(*val)); if *allocatable { - crate::arch::output::sdebugsnp(" allocatable"); + crate::arch::output::sdebugsnp(", allocatable"); } else { - crate::arch::output::sdebugsnp(" unallocatable"); + crate::arch::output::sdebugsnp(", unallocatable"); } }, diff --git a/kernel/src/kernel/display.rs b/kernel/src/kernel/display.rs index edc1d41..b3e7028 100644 --- a/kernel/src/kernel/display.rs +++ b/kernel/src/kernel/display.rs @@ -1,5 +1,7 @@ //! Types, constants and traits for displaying text. Mostly implemented in arch/. +use core::fmt::Write; + /// A type used for color in the functions of [TextDisplay]. /// /// Type alias for (u8, bool). Boolean argument is whether to @@ -67,4 +69,24 @@ impl dyn TextDisplay + '_ { } Ok((x, y)) } +} + +pub struct NoneTextDisplay {} + +impl TextDisplay for NoneTextDisplay { + fn get_size(&self) -> (u32, u32) { + (1,1) + } + fn write_char(&self, _: (u32, u32), _: u8, _: Color) -> Result<(), crate::Error<'static>> { + Ok(()) + } +} + +impl Write for NoneTextDisplay { + fn write_char(&mut self, _: char) -> core::fmt::Result { + Ok(()) + } + fn write_str(&mut self, _: &str) -> core::fmt::Result { + Ok(()) + } } \ No newline at end of file diff --git a/kernel/src/kernel/indep_boot_entry.rs b/kernel/src/kernel/indep_boot_entry.rs index cb939ec..67bd6f4 100644 --- a/kernel/src/kernel/indep_boot_entry.rs +++ b/kernel/src/kernel/indep_boot_entry.rs @@ -5,7 +5,7 @@ use core::alloc::{Allocator, Layout}; -use crate::{display::COLOR_DEFAULT, output::*}; +use crate::{display::{NoneTextDisplay, COLOR_DEFAULT}, output::*}; use aphrodite_proc_macros::*; @@ -17,9 +17,9 @@ fn indep_boot_entry( display: Option<&dyn crate::display::TextDisplay>, #[allow(non_snake_case)] BI: &crate::boot::BootInfo, ) -> ! { - crate::arch::output::sdebugsln("Entrypoint called"); + crate::arch::output::sdebugsln("IndepBootEntry called"); - let display = display.unwrap(); + let display = display.unwrap_or(&NoneTextDisplay {}); display.clear_screen(COLOR_DEFAULT); sreset();