Skip to content

Commit 06172c6

Browse files
committed
Adjust to new x86_64 version
1 parent 6b980c8 commit 06172c6

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/page_table.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub(crate) fn map_kernel(kernel_start: PhysAddr, segments: &FixedVec<ProgramHead
1515
// create a stack
1616
// TODO create a stack range dynamically (based on where the kernel is loaded)
1717
let stack_start = VirtAddr::new(0x57AC_0000_0000);
18-
let stack_size = 1 * 1024 * 1024;
18+
let stack_size: u64 = 1 * 1024 * 1024;
1919
let stack_end = stack_start + stack_size;
2020

2121
let page_size = usize_from(PAGE_SIZE);
@@ -93,15 +93,15 @@ pub(crate) fn map_segment(segment: &ProgramHeader64, kernel_start: PhysAddr, p4:
9393
pub(crate) fn map_page(page: Page, phys_frame: PhysFrame, flags: PageTableFlags,
9494
p4: &mut PageTable, frame_allocator: &mut FrameAllocator)
9595
{
96-
fn as_page_table_ptr(addr: PhysAddr) -> *mut PageTable {
97-
usize_from(addr.as_u64()) as *const PageTable as *mut PageTable
96+
fn as_page_table_ptr(frame: &PhysFrame) -> *mut PageTable {
97+
usize_from(frame.start_address().as_u64()) as *const PageTable as *mut PageTable
9898
}
9999

100100
fn create_and_link_page_table(frame_allocator: &mut FrameAllocator,
101101
parent_table_entry: &mut PageTableEntry) -> &'static mut PageTable
102102
{
103103
let table_frame = frame_allocator.allocate_frame();
104-
let page_table = unsafe { &mut *as_page_table_ptr(table_frame.start_address()) };
104+
let page_table = unsafe { &mut *as_page_table_ptr(&table_frame) };
105105
page_table.zero();
106106
parent_table_entry.set(table_frame, PageTableFlags::PRESENT | PageTableFlags::WRITABLE);
107107
page_table
@@ -110,8 +110,8 @@ pub(crate) fn map_page(page: Page, phys_frame: PhysFrame, flags: PageTableFlags,
110110
fn get_or_create_next_page_table(frame_allocator: &mut FrameAllocator,
111111
page_table_entry: &mut PageTableEntry) -> &'static mut PageTable
112112
{
113-
match page_table_entry.points_to() {
114-
Some(addr) => unsafe { &mut *as_page_table_ptr(addr) },
113+
match page_table_entry.frame() {
114+
Some(frame) => unsafe { &mut *as_page_table_ptr(&frame) },
115115
None => create_and_link_page_table(frame_allocator, page_table_entry)
116116
}
117117
}

0 commit comments

Comments
 (0)