The kernel page directory is already there
This doesn't fix anything...
This commit is contained in:
parent
9070d17477
commit
08eb18307b
@ -142,6 +142,5 @@ AddressSpace AddressSpace::clone() // FIXME: Add out-of-memory checks to this fu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VMM::install_kernel_page_directory_into_address_space(result);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
@ -275,13 +275,19 @@ void VMM::install_kernel_page_directory_into_address_space(AddressSpace& space)
|
|||||||
PageTable* kernel_last_pdp = (PageTable*)kernel_pml4->entries[511].get_address();
|
PageTable* kernel_last_pdp = (PageTable*)kernel_pml4->entries[511].get_address();
|
||||||
PageTable* kernel_last_pd = (PageTable*)kernel_last_pdp->entries[511].get_address();
|
PageTable* kernel_last_pd = (PageTable*)kernel_last_pdp->entries[511].get_address();
|
||||||
|
|
||||||
PageTable* space_last_pdp = (PageTable*)PMM::request_page();
|
|
||||||
|
|
||||||
PageDirectoryEntry& space_last_pdp_pde = space_pml4->entries[511];
|
PageDirectoryEntry& space_last_pdp_pde = space_pml4->entries[511];
|
||||||
|
|
||||||
space_last_pdp_pde.present = true;
|
PageTable* space_last_pdp;
|
||||||
space_last_pdp_pde.read_write = true;
|
|
||||||
space_last_pdp_pde.set_address((uint64_t)space_last_pdp);
|
if (!space_last_pdp_pde.present)
|
||||||
|
{
|
||||||
|
space_last_pdp = (PageTable*)PMM::request_page();
|
||||||
|
|
||||||
|
space_last_pdp_pde.present = true;
|
||||||
|
space_last_pdp_pde.read_write = true;
|
||||||
|
space_last_pdp_pde.set_address((uint64_t)space_last_pdp);
|
||||||
|
}
|
||||||
|
else { space_last_pdp = (PageTable*)space_last_pdp_pde.get_address(); }
|
||||||
|
|
||||||
PageDirectoryEntry& space_last_pd_pde = space_last_pdp->entries[511];
|
PageDirectoryEntry& space_last_pd_pde = space_last_pdp->entries[511];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user