VMM -- get_page should include flags
This commit is contained in:
parent
57482136ae
commit
cd7ed38a40
@ -31,9 +31,8 @@ uintptr_t vmm_get_page(void *P4, uintptr_t addr)
|
|||||||
&& P4e(P4, addr).present
|
&& P4e(P4, addr).present
|
||||||
&& P3e(P4, addr).present
|
&& P3e(P4, addr).present
|
||||||
&& P2e(P4, addr).present
|
&& P2e(P4, addr).present
|
||||||
&& P1e(P4, addr).present
|
|
||||||
)
|
)
|
||||||
return MASK_FLAGS(P1e(P4, addr).value);
|
return P1e(P4, addr).value;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ TEST(get_page_returns_correct_address)
|
|||||||
|
|
||||||
uintptr_t ret = vmm_get_page(p4, 0);
|
uintptr_t ret = vmm_get_page(p4, 0);
|
||||||
|
|
||||||
ASSERT_EQ_PTR(ret, 0x1234567890ABC000);
|
ASSERT_EQ_PTR(ret, 0x1234567890ABC000 | PAGE_PRESENT);
|
||||||
}
|
}
|
||||||
TEST(get_page_ignores_flags)
|
TEST(get_page_ignores_flags)
|
||||||
{
|
{
|
||||||
@ -45,7 +45,7 @@ TEST(get_page_ignores_flags)
|
|||||||
|
|
||||||
uintptr_t ret = vmm_get_page(p4, 0);
|
uintptr_t ret = vmm_get_page(p4, 0);
|
||||||
|
|
||||||
ASSERT_EQ_PTR(ret, 0x1234567890ABC000);
|
ASSERT_EQ_PTR(ret, 0x1234567890ABC000 | PAGE_PRESENT);
|
||||||
}
|
}
|
||||||
TEST(get_page_works_for_different_address)
|
TEST(get_page_works_for_different_address)
|
||||||
{
|
{
|
||||||
@ -59,7 +59,7 @@ TEST(get_page_works_for_different_address)
|
|||||||
|
|
||||||
uintptr_t ret = vmm_get_page(p4, (1UL<<39)+(2UL<<30)+(3UL<<21)+(4UL<<12));
|
uintptr_t ret = vmm_get_page(p4, (1UL<<39)+(2UL<<30)+(3UL<<21)+(4UL<<12));
|
||||||
|
|
||||||
ASSERT_EQ_PTR(ret, 0x34567890ABCDE000);
|
ASSERT_EQ_PTR(ret, 0x34567890ABCDE000 | PAGE_PRESENT);
|
||||||
}
|
}
|
||||||
TEST(get_page_fails_if_PTE_not_present)
|
TEST(get_page_fails_if_PTE_not_present)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user