Kernel: Add vaddr->paddr getter to VirtualRange
This commit is contained in:
parent
0f936fc163
commit
00015285ab
|
@ -26,6 +26,16 @@ namespace Kernel
|
||||||
size_t size() const { return m_size; }
|
size_t size() const { return m_size; }
|
||||||
PageTable::flags_t flags() const { return m_flags; }
|
PageTable::flags_t flags() const { return m_flags; }
|
||||||
|
|
||||||
|
paddr_t paddr_of(vaddr_t vaddr) const
|
||||||
|
{
|
||||||
|
ASSERT(vaddr % PAGE_SIZE == 0);
|
||||||
|
const size_t index = (vaddr - m_vaddr) / PAGE_SIZE;
|
||||||
|
ASSERT(index < m_paddrs.size());
|
||||||
|
const paddr_t paddr = m_paddrs[index];
|
||||||
|
ASSERT(paddr);
|
||||||
|
return paddr;
|
||||||
|
}
|
||||||
|
|
||||||
bool contains(vaddr_t address) const { return vaddr() <= address && address < vaddr() + size(); }
|
bool contains(vaddr_t address) const { return vaddr() <= address && address < vaddr() + size(); }
|
||||||
|
|
||||||
BAN::ErrorOr<void> allocate_page_for_demand_paging(vaddr_t address);
|
BAN::ErrorOr<void> allocate_page_for_demand_paging(vaddr_t address);
|
||||||
|
|
Loading…
Reference in New Issue