mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 22:37:49 +00:00
Recursive map the P4 table
This commit is contained in:
@@ -42,6 +42,11 @@ start:
|
|||||||
jmp gdt64.code:long_mode_start
|
jmp gdt64.code:long_mode_start
|
||||||
|
|
||||||
setup_page_tables:
|
setup_page_tables:
|
||||||
|
; recursive map P4
|
||||||
|
mov eax, p4_table
|
||||||
|
or eax, 0b11 ; present + writable
|
||||||
|
mov [p4_table + 511 * 8], eax
|
||||||
|
|
||||||
; map first P4 entry to P3 table
|
; map first P4 entry to P3 table
|
||||||
mov eax, p3_table
|
mov eax, p3_table
|
||||||
or eax, 0b11 ; present + writable
|
or eax, 0b11 ; present + writable
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ use memory::paging::entry::*;
|
|||||||
use memory::paging::ENTRY_COUNT;
|
use memory::paging::ENTRY_COUNT;
|
||||||
use core::ops::{Index, IndexMut};
|
use core::ops::{Index, IndexMut};
|
||||||
|
|
||||||
|
pub const P4: *mut Table = 0xffffffff_fffff000 as *mut _;
|
||||||
|
|
||||||
pub struct Table {
|
pub struct Table {
|
||||||
entries: [Entry; ENTRY_COUNT],
|
entries: [Entry; ENTRY_COUNT],
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user