NoneTextDisplay and some other stuff
This commit is contained in:
parent
bda3e93314
commit
296135901b
4 changed files with 33 additions and 5 deletions
|
@ -5,8 +5,14 @@ set -e
|
||||||
DIR="${BASH_SOURCE%/*}"
|
DIR="${BASH_SOURCE%/*}"
|
||||||
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi
|
||||||
|
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo "[INFO] Building all targets; no target argument provided"
|
||||||
|
fi
|
||||||
|
|
||||||
. $DIR/build $!
|
. $DIR/build $!
|
||||||
|
|
||||||
if [[ $# -ge 1 ]]; then
|
if [[ $# -ge 1 ]]; then
|
||||||
. $DIR/emulate $!
|
. $DIR/emulate $!
|
||||||
|
else
|
||||||
|
echo "[WARN] Not emulating; no target argument provided"
|
||||||
fi
|
fi
|
|
@ -37,9 +37,9 @@ impl MemoryType {
|
||||||
crate::arch::output::sdebugsnp("Hardware specific ");
|
crate::arch::output::sdebugsnp("Hardware specific ");
|
||||||
crate::arch::output::sdebugbnp(&crate::u32_as_u8_slice(*val));
|
crate::arch::output::sdebugbnp(&crate::u32_as_u8_slice(*val));
|
||||||
if *allocatable {
|
if *allocatable {
|
||||||
crate::arch::output::sdebugsnp(" allocatable");
|
crate::arch::output::sdebugsnp(", allocatable");
|
||||||
} else {
|
} else {
|
||||||
crate::arch::output::sdebugsnp(" unallocatable");
|
crate::arch::output::sdebugsnp(", unallocatable");
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
//! Types, constants and traits for displaying text. Mostly implemented in arch/.
|
//! 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].
|
/// A type used for color in the functions of [TextDisplay].
|
||||||
///
|
///
|
||||||
/// Type alias for (u8, bool). Boolean argument is whether to
|
/// Type alias for (u8, bool). Boolean argument is whether to
|
||||||
|
@ -67,4 +69,24 @@ impl dyn TextDisplay + '_ {
|
||||||
}
|
}
|
||||||
Ok((x, y))
|
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(())
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
use core::alloc::{Allocator, Layout};
|
use core::alloc::{Allocator, Layout};
|
||||||
|
|
||||||
use crate::{display::COLOR_DEFAULT, output::*};
|
use crate::{display::{NoneTextDisplay, COLOR_DEFAULT}, output::*};
|
||||||
|
|
||||||
use aphrodite_proc_macros::*;
|
use aphrodite_proc_macros::*;
|
||||||
|
|
||||||
|
@ -17,9 +17,9 @@ fn indep_boot_entry(
|
||||||
display: Option<&dyn crate::display::TextDisplay>,
|
display: Option<&dyn crate::display::TextDisplay>,
|
||||||
#[allow(non_snake_case)] BI: &crate::boot::BootInfo,
|
#[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);
|
display.clear_screen(COLOR_DEFAULT);
|
||||||
sreset();
|
sreset();
|
||||||
|
|
Loading…
Add table
Reference in a new issue