Kernel: Add VERY HACKY MAP_FIXED fix

This definitely will break stuff but I don't think anything depends on
this (except maybe dynamic loader)

This WILL get fixed soon (I hope :D)
This commit is contained in:
Bananymous 2025-08-21 03:09:16 +03:00
parent 350ae90bb6
commit 2f3fd6867d
1 changed files with 11 additions and 0 deletions

View File

@ -2177,6 +2177,17 @@ namespace Kernel
vaddr_t base_addr = reinterpret_cast<vaddr_t>(args.addr); vaddr_t base_addr = reinterpret_cast<vaddr_t>(args.addr);
address_range.start = BAN::Math::div_round_up<vaddr_t>(base_addr, PAGE_SIZE) * PAGE_SIZE; address_range.start = BAN::Math::div_round_up<vaddr_t>(base_addr, PAGE_SIZE) * PAGE_SIZE;
address_range.end = BAN::Math::div_round_up<vaddr_t>(base_addr + args.len, PAGE_SIZE) * PAGE_SIZE; address_range.end = BAN::Math::div_round_up<vaddr_t>(base_addr + args.len, PAGE_SIZE) * PAGE_SIZE;
for (size_t i = 0; i < m_mapped_regions.size(); i++)
{
if (!m_mapped_regions[i]->overlaps(base_addr, args.len))
continue;
if (!m_mapped_regions[i]->contains_fully(base_addr, args.len))
derrorln("VERY BROKEN MAP_FIXED UNMAP");
m_mapped_regions[i]->wait_not_pinned();
m_mapped_regions.remove(i--);
}
} }
if (args.flags & MAP_ANONYMOUS) if (args.flags & MAP_ANONYMOUS)