1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:17:35 +00:00

Kernel: Teach Region how to remap itself

Now remapping (i.e flushing kernel metadata to the CPU page tables)
is done by simply calling Region::remap().
This commit is contained in:
Andreas Kling 2019-11-03 20:59:54 +01:00
parent 3dce0f23f4
commit 4bf1a72d21
7 changed files with 15 additions and 19 deletions

View file

@ -75,7 +75,7 @@ NonnullOwnPtr<Region> Region::clone()
#endif
// Set up a COW region. The parent (this) region becomes COW as well!
ensure_cow_map().fill(true);
MM.remap_region(current->process().page_directory(), *this);
remap();
auto clone_region = Region::create_user_accessible(m_range, m_vmobject->clone(), m_offset_in_vmo, m_name, m_access);
clone_region->ensure_cow_map();
return clone_region;
@ -220,3 +220,9 @@ void Region::map(PageDirectory& page_directory)
{
MM.map_region_at_address(page_directory, *this, vaddr());
}
void Region::remap()
{
ASSERT(m_page_directory);
MM.map_region_at_address(*m_page_directory, *this, vaddr());
}