From 8b810a009f8d29ba61a3c377fdeac06a3bbb151d Mon Sep 17 00:00:00 2001 From: NatrixAeria Date: Thu, 15 Apr 2021 00:05:07 +0200 Subject: Fix most warnings and tidy up --- kernel/src/io/panic_screen.rs | 27 ++++++++++----------------- kernel/src/io/vga_text.rs | 13 ++++++------- 2 files changed, 16 insertions(+), 24 deletions(-) (limited to 'kernel/src/io') diff --git a/kernel/src/io/panic_screen.rs b/kernel/src/io/panic_screen.rs index ce2c118..7b81676 100644 --- a/kernel/src/io/panic_screen.rs +++ b/kernel/src/io/panic_screen.rs @@ -1,11 +1,10 @@ -use core::fmt::Write; -use crate::io::vga_text::{OStream, CharState, Color}; +use crate::io::vga_text::{CharState, Color, OStream}; const PANIC_SCREEN_MESSAGE_BUFFER_SIZE: usize = 2048; struct TextBuffer<'a> { dst: &'a mut [u8], - len: usize + len: usize, } impl<'a> TextBuffer<'a> { @@ -23,7 +22,7 @@ impl<'a> core::fmt::Write for TextBuffer<'a> { Err(core::fmt::Error) } else { let s = s.as_bytes(); - (&mut self.dst[self.len..self.len+s.len()]).clone_from_slice(s); + (&mut self.dst[self.len..self.len + s.len()]).clone_from_slice(s); Ok(self.len += s.len()) } } @@ -31,27 +30,21 @@ impl<'a> core::fmt::Write for TextBuffer<'a> { pub fn show(args: Option<&core::fmt::Arguments>) { let mut stderr = OStream::new(); - stderr.set_state(CharState::from_colors( - Color::LightRed, - Color::Red, - )); + stderr.set_state(CharState::from_colors(Color::LightRed, Color::Red)); stderr.clear(); stderr.print(b"uff-os"); stderr.set_row(10); - stderr.set_state(CharState::from_colors( - Color::White, - Color::Red, - )); + stderr.set_state(CharState::from_colors(Color::White, Color::Red)); stderr.print_centered(b""); stderr.set_row(14); - stderr.set_state(CharState::from_colors( - Color::Cyan, - Color::Red, - )); + stderr.set_state(CharState::from_colors(Color::Cyan, Color::Red)); stderr.set_centered(true); let buffer: &mut [u8] = &mut [b' '; PANIC_SCREEN_MESSAGE_BUFFER_SIZE]; let mut tbuffer = TextBuffer::new(buffer); - let _ = core::fmt::write(&mut tbuffer, *args.unwrap_or(&format_args!("no panic information obtainable"))); + let _ = core::fmt::write( + &mut tbuffer, + *args.unwrap_or(&format_args!("no panic information obtainable")), + ); stderr.print(tbuffer.get()); stderr.set_centered(false); } diff --git a/kernel/src/io/vga_text.rs b/kernel/src/io/vga_text.rs index 277db73..72c4d85 100644 --- a/kernel/src/io/vga_text.rs +++ b/kernel/src/io/vga_text.rs @@ -23,7 +23,7 @@ pub const WIDTH: usize = 80; pub const HEIGHT: usize = 25; #[derive(Clone, Copy)] -#[repr(C)] +#[repr(C, packed)] pub struct CharState(pub u8); impl CharState { @@ -40,9 +40,8 @@ impl CharState { } } -#[no_mangle] #[derive(Clone, Copy)] -#[repr(C)] +#[repr(C, packed)] pub struct VgaChar { pub byte: u8, pub state: CharState, @@ -58,7 +57,7 @@ pub struct OStream { pos: (usize, usize), cursor: *mut VgaChar, state: CharState, - centered_mode: bool + centered_mode: bool, } impl OStream { @@ -158,10 +157,10 @@ impl OStream { } pub fn print_centered(&mut self, s: &[u8]) { - let mut line_start = 0; - let mut line_len = 0; for line in s.split(|&c| c == b'\n') { - if line.is_empty() { self.new_line() } + if line.is_empty() { + self.new_line() + } for chunk in line.chunks(WIDTH) { self.set_col((WIDTH - chunk.len()) >> 1); self.put_bytes(chunk); -- cgit v1.2.3-54-g00ecf