mirror of
https://github.com/panpaul/tiny_os
synced 2024-09-20 09:45:19 +08:00
chore: adjust max_width
This commit is contained in:
parent
f41664e7cd
commit
beb792d426
@ -14,8 +14,7 @@ impl ConsoleDevice for EarlyConsole {
|
||||
fn try_read(&mut self) -> Option<u8> {
|
||||
let mut buf = [0u8; 1];
|
||||
let ret = sbi_rt::console_read(sbi_rt::Physical::new(1, buf.as_mut_ptr() as _, 0));
|
||||
ret.ok()
|
||||
.and_then(|len| if len == 0 { None } else { Some(buf[0]) })
|
||||
ret.ok().and_then(|len| if len == 0 { None } else { Some(buf[0]) })
|
||||
}
|
||||
|
||||
fn write(&mut self, ch: u8) {
|
||||
|
@ -37,16 +37,16 @@ pub const PAGE_LAYOUT: Layout = unsafe { Layout::from_size_align_unchecked(PAGE_
|
||||
|
||||
#[inline(always)]
|
||||
pub fn zero_bss() {
|
||||
fn clear_range<T: Clone>(bgn: *mut T, end: *mut T) {
|
||||
unsafe {
|
||||
core::slice::from_raw_parts_mut(bgn, end.offset_from(bgn) as usize)
|
||||
.fill(core::mem::zeroed())
|
||||
}
|
||||
fn clear_range(bgn: *mut u8, end: *mut u8) {
|
||||
unsafe { core::slice::from_raw_parts_mut(bgn, end.offset_from(bgn) as usize).fill(core::mem::zeroed()) }
|
||||
}
|
||||
|
||||
unsafe {
|
||||
clear_range(BOOT_STACK_END.as_mut_ptr(), BSS_END.as_mut_ptr());
|
||||
clear_range(TBSS_START.as_mut_ptr(), TBSS_END.as_mut_ptr());
|
||||
clear_range(
|
||||
BOOT_STACK_END.as_phys_addr().as_mut_ptr(),
|
||||
BSS_END.as_phys_addr().as_mut_ptr(),
|
||||
);
|
||||
clear_range(TBSS_START.as_phys_addr().as_mut_ptr(), TBSS_END.as_phys_addr().as_mut_ptr());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,11 +32,7 @@ extern "C" fn kernel_trap_handler(tf: &mut TrapContext) {
|
||||
|
||||
fn trap_handler(_tf: &mut TrapContext, _from_kernel: bool) {
|
||||
let scause = riscv::register::scause::read();
|
||||
trace!(
|
||||
"[Interrupt] cpu@{} scause: {:?}",
|
||||
get_hart_id(),
|
||||
scause.cause()
|
||||
);
|
||||
trace!("[Interrupt] cpu@{} scause: {:?}", get_hart_id(), scause.cause());
|
||||
match scause.cause() {
|
||||
T::Interrupt(I::SupervisorTimer) => {
|
||||
// TODO: refactor this
|
||||
|
@ -34,8 +34,7 @@ impl From<PTEFlags> for MapAttr {
|
||||
if flags.contains(PTEFlags::USER_ACCESSIBLE) {
|
||||
attr.insert(Self::USER_ACCESSIBLE);
|
||||
}
|
||||
if flags.contains(PTEFlags::VALID)
|
||||
&& !flags.contains(PTEFlags::READABLE | PTEFlags::WRITABLE | PTEFlags::EXECUTABLE)
|
||||
if flags.contains(PTEFlags::VALID) && !flags.contains(PTEFlags::READABLE | PTEFlags::WRITABLE | PTEFlags::EXECUTABLE)
|
||||
{
|
||||
attr.insert(Self::PAGE_TABLE);
|
||||
}
|
||||
|
@ -57,13 +57,7 @@ impl TableOps for Table {
|
||||
&mut *ptr
|
||||
}
|
||||
|
||||
fn map(
|
||||
&mut self,
|
||||
from: VirtAddr,
|
||||
to: PhysAddr,
|
||||
attr: MapAttr,
|
||||
level: TableLevel,
|
||||
) -> PageResult {
|
||||
fn map(&mut self, from: VirtAddr, to: PhysAddr, attr: MapAttr, level: TableLevel) -> PageResult {
|
||||
assert!(from.is_aligned(PAGE_SIZE));
|
||||
assert!(to.is_aligned(PAGE_SIZE));
|
||||
assert!(level.is_aligned(from));
|
||||
@ -124,12 +118,7 @@ impl TableOps for Table {
|
||||
}
|
||||
|
||||
impl Table {
|
||||
fn debug_walk(
|
||||
&self,
|
||||
f: &mut core::fmt::Formatter,
|
||||
base: VirtAddr,
|
||||
level: TableLevel,
|
||||
) -> core::fmt::Result {
|
||||
fn debug_walk(&self, f: &mut core::fmt::Formatter, base: VirtAddr, level: TableLevel) -> core::fmt::Result {
|
||||
macro_rules! print_one {
|
||||
($($arg:tt)*) => {
|
||||
for _ in level.to_usize().unwrap()..Self::MAX_PAGE_SIZE.to_usize().unwrap() {
|
||||
|
@ -56,8 +56,7 @@ pub trait VirtAddrPaging {
|
||||
|
||||
fn to_vpn(&self, level: TableLevel) -> usize
|
||||
where Self: AddressOps {
|
||||
self.as_usize() >> (Self::PG_OFFSET + Self::VPN_BITS * level.to_usize().unwrap())
|
||||
& Self::VPN_MASK
|
||||
self.as_usize() >> (Self::PG_OFFSET + Self::VPN_BITS * level.to_usize().unwrap()) & Self::VPN_MASK
|
||||
}
|
||||
|
||||
fn merge_vpn(&self, vpn: usize, size: TableLevel) -> VirtAddr
|
||||
|
@ -54,11 +54,7 @@ pub extern "C" fn rust_main(hart_id: usize, fdt_addr: usize, allocator: &mut Ram
|
||||
|
||||
fn setup_console(fdt: &fdt::Fdt) {
|
||||
// NOTE: ignore stdin: both stdin and stdout will go through stdout device
|
||||
match fdt
|
||||
.chosen()
|
||||
.stdout()
|
||||
.and_then(|stdout| ConsoleDriver::new(stdout))
|
||||
{
|
||||
match fdt.chosen().stdout().and_then(|stdout| ConsoleDriver::new(stdout)) {
|
||||
None => warn!("No stdout device found or no compatible drivers found, falling back to platform default"),
|
||||
Some(driver) => set_console(driver),
|
||||
}
|
||||
|
@ -99,8 +99,7 @@ pub trait ConsoleDevice {
|
||||
}
|
||||
}
|
||||
|
||||
pub static CONSOLE: Mutex<ConsoleDriver> =
|
||||
Mutex::new(ConsoleDriver::SilenceConsole(SilenceConsole));
|
||||
pub static CONSOLE: Mutex<ConsoleDriver> = Mutex::new(ConsoleDriver::SilenceConsole(SilenceConsole));
|
||||
|
||||
pub fn set_console(driver: ConsoleDriver) {
|
||||
*CONSOLE.lock() = driver;
|
||||
@ -114,9 +113,6 @@ mod tests {
|
||||
#[test_case]
|
||||
fn print_with_console() {
|
||||
CONSOLE.lock().write(b'A');
|
||||
CONSOLE
|
||||
.lock()
|
||||
.write_fmt(format_args!("B {}\n", 0x42))
|
||||
.unwrap();
|
||||
CONSOLE.lock().write_fmt(format_args!("B {}\n", 0x42)).unwrap();
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
unstable_features = true
|
||||
edition = "2021"
|
||||
|
||||
max_width = 125
|
||||
|
||||
blank_lines_lower_bound = 0
|
||||
enum_discrim_align_threshold = 20
|
||||
struct_field_align_threshold = 20
|
||||
|
Loading…
Reference in New Issue
Block a user