Remove PageTable.opIndex and .opIndexAssign, use .entry
This commit is contained in:
1 parent
476ae7d6fd
commit
707d42bec4
3 files changed
+25
-36
No files matched your search
+11
-7
@@ -257,9 +257,11 @@ private void map4k(ulong source_page, ulong dest_page, PageTable * pt_base)
|
||||
PageTable * pt = pt_base;
|
||||
for (size_t level = 0; level < 4u; level++)
|
||||
{
|
||||
if ((*pt)[source_page, level].present)
|
||||
PageTableEntry * ppte = pt.entry(source_page, level);
|
||||
PageTableEntry pte = *ppte;
|
||||
if (pte.present)
|
||||
{
|
||||
pt = (*pt)[source_page, level].follow();
|
||||
pt = pte.follow();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -274,7 +276,7 @@ private void map4k(ulong source_page, ulong dest_page, PageTable * pt_base)
|
||||
{
|
||||
addr = dest_page;
|
||||
}
|
||||
(*pt)[source_page, level] = PageTableEntry(addr, PT_WRITABLE | PT_PRESENT);
|
||||
*ppte = PageTableEntry(addr, PT_WRITABLE | PT_PRESENT);
|
||||
pt = next_pt;
|
||||
}
|
||||
}
|
||||
@@ -311,9 +313,11 @@ private void map2m(ulong source_page, ulong dest_page, PageTable * pt_base)
|
||||
PageTable * pt = pt_base;
|
||||
for (size_t level = 0; level < 3u; level++)
|
||||
{
|
||||
if ((*pt)[source_page, level].present)
|
||||
PageTableEntry * ppte = pt.entry(source_page, level);
|
||||
PageTableEntry pte = *ppte;
|
||||
if (pte.present)
|
||||
{
|
||||
pt = (*pt)[source_page, level].follow();
|
||||
pt = pte.follow();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -321,11 +325,11 @@ private void map2m(ulong source_page, ulong dest_page, PageTable * pt_base)
|
||||
if (level < 2u)
|
||||
{
|
||||
next_pt = new_page_table();
|
||||
(*pt)[source_page, level] = PageTableEntry(next_pt, PT_WRITABLE | PT_PRESENT);
|
||||
*ppte = PageTableEntry(next_pt, PT_WRITABLE | PT_PRESENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
(*pt)[source_page, level] = PageTableEntry(dest_page, PT_HUGE_PAGE | PT_WRITABLE | PT_PRESENT);
|
||||
*ppte = PageTableEntry(dest_page, PT_HUGE_PAGE | PT_WRITABLE | PT_PRESENT);
|
||||
}
|
||||
pt = next_pt;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user