((ptr_t)(ptep) & __p) == __p; \
})
-pte_t
-vmm_alloc_page(pte_t* ptep, pte_t pte);
+extern pte_t
+alloc_kpage_at(pte_t* ptep, pte_t pte, int order);
/**
* @brief Try page walk to the pte pointed by ptep and
}
pte = pte_setprot(pte, prot);
- return !pte_isnull(vmm_alloc_page(ptep, pte));
+ return !pte_isnull(alloc_kpage_at(ptep, pte, 0));
}
/**
}
static inline ptr_t
-va_align(ptr_t va) {
+page_aligned(ptr_t va) {
return va & ~PAGE_MASK;
}
static inline ptr_t
-va_alignup(ptr_t va) {
+page_upaligned(ptr_t va) {
return (va + PAGE_MASK) & ~PAGE_MASK;
}
+static inline ptr_t
+napot_aligned(ptr_t va, size_t napot_sz) {
+ return va & ~(napot_sz - 1);
+}
+
+static inline ptr_t
+napot_upaligned(ptr_t va, size_t napot_sz) {
+ return (va + napot_sz - 1) & ~(napot_sz - 1);
+}
+
static inline pte_t*
mkptep_va(ptr_t vm_mnt, ptr_t vaddr)
{
return level == _PTW_LEVEL - 1;
}
+static inline ptr_t
+va_mntpoint(ptr_t va)
+{
+ return _VM_OF(va);
+}
+
+static inline ptr_t
+va_actual(ptr_t va)
+{
+ return page_addr(_VM_OF(va) ^ va);
+}
+
#endif /* __LUNAIX_PAGETABLE_H */