VMM -- get_page should include flags

This commit is contained in:
Thomas Lovén 2017-12-27 22:26:06 +01:00
parent 57482136ae
commit cd7ed38a40
2 changed files with 4 additions and 5 deletions

View File

@ -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;
} }

View File

@ -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)
{ {