1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 17:58:12 +00:00

Kernel: Move create_identity_mapped_region() to MemoryManager

This had no business being in RegionTree, since RegionTree doesn't track
identity-mapped regions anyway. (We allow *any* address to be identity
mapped, not just the ones that are part of the RegionTree's range.)
This commit is contained in:
Andreas Kling 2022-04-05 12:37:11 +02:00
parent 3dbb4bc3a6
commit e0da8da657
5 changed files with 12 additions and 13 deletions

View file

@ -154,16 +154,6 @@ ErrorOr<void> RegionTree::place_specifically(Region& region, VirtualRange const&
return {};
}
ErrorOr<NonnullOwnPtr<Memory::Region>> RegionTree::create_identity_mapped_region(PhysicalAddress paddr, size_t size)
{
auto vmobject = TRY(Memory::AnonymousVMObject::try_create_for_physical_range(paddr, size));
auto region = TRY(Memory::Region::create_unplaced(move(vmobject), 0, {}, Memory::Region::Access::ReadWriteExecute));
Memory::VirtualRange range { VirtualAddress { (FlatPtr)paddr.get() }, size };
region->m_range = range;
TRY(region->map(MM.kernel_page_directory()));
return region;
}
bool RegionTree::remove(Region& region)
{
SpinlockLocker locker(m_lock);