Ran cargo fmt, clippy fixes, suppressed some warns
I will start working on stack traces tonight and tomorrow. We need to be able to 'unwind' by finding calling functions.
This commit is contained in:
@@ -2,20 +2,19 @@ pub mod allocation;
|
||||
pub mod mapping;
|
||||
pub mod units;
|
||||
|
||||
use spin::{Mutex, Once};
|
||||
use x86_64::{
|
||||
registers::control::Cr3, structures::paging::{FrameAllocator, OffsetPageTable, PageTable}
|
||||
,
|
||||
VirtAddr,
|
||||
};
|
||||
use allocation::page_alloc::FoundryOSFrameAllocator;
|
||||
use spin::{Mutex, Once};
|
||||
use units::MemoryUnits::*;
|
||||
use x86_64::{
|
||||
VirtAddr,
|
||||
registers::control::Cr3,
|
||||
structures::paging::{OffsetPageTable, PageTable},
|
||||
};
|
||||
|
||||
pub const STACK_VIRTUAL_SPACE: usize = 0x5555_5555_0000; // start address of the memory space where we store allocated stacks
|
||||
pub const HEAP_VIRTUAL_SPACE: usize = 0x4444_4444_0000; // start address of heap allocated memory
|
||||
pub const HEAP_SIZE: usize = MiB(1).to_bytes();
|
||||
|
||||
|
||||
pub static FRAME_ALLOCATOR: Once<Mutex<FoundryOSFrameAllocator>> = Once::new();
|
||||
pub static OFFSET_PAGE_TABLE: Once<Mutex<OffsetPageTable>> = Once::new();
|
||||
/// Returns a mutable reference to the current level 4 page table.
|
||||
@@ -25,7 +24,9 @@ pub static OFFSET_PAGE_TABLE: Once<Mutex<OffsetPageTable>> = Once::new();
|
||||
/// The caller must ensure that the level 4 page table is not modified
|
||||
/// simultaneously. The caller must also ensure that the physical memory offset
|
||||
/// is correct, to ensure that the correct virtual address is constructed.
|
||||
unsafe fn active_l4_table(physical_memory_offset: VirtAddr) -> &'static mut PageTable {
|
||||
unsafe fn active_l4_table(
|
||||
physical_memory_offset: VirtAddr,
|
||||
) -> &'static mut PageTable {
|
||||
let (level_4_frame, _) = Cr3::read();
|
||||
|
||||
let phys_addr = level_4_frame.start_address();
|
||||
@@ -54,8 +55,8 @@ unsafe fn active_l4_table(physical_memory_offset: VirtAddr) -> &'static mut Page
|
||||
pub fn init_page_table(physical_memory_offset: VirtAddr) {
|
||||
unsafe {
|
||||
let l4_table = active_l4_table(physical_memory_offset);
|
||||
let offset_table = OffsetPageTable::new(l4_table, physical_memory_offset);
|
||||
let offset_table =
|
||||
OffsetPageTable::new(l4_table, physical_memory_offset);
|
||||
OFFSET_PAGE_TABLE.call_once(|| Mutex::new(offset_table));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user