-/**
- * @brief 在当前虚拟地址空间里查找一个映射
- *
- * @param va 虚拟地址
- * @param mapping 映射相关属性
- */
-int
-vmm_lookup(uintptr_t va, v_mapping* mapping);
+#include <lunaix/mm/pagetable.h>
+#include <lunaix/mm/vmtlb.h>
+#include <lunaix/process.h>
+#include <lunaix/types.h>
+
+static inline void
+vmm_set_ptes_contig(pte_t* ptep, pte_t pte, size_t lvl_size, size_t n)
+{
+ do {
+ set_pte(ptep, pte);
+ pte_val(pte) += lvl_size;
+ ptep++;
+ } while (--n > 0);
+}
+
+static inline void
+vmm_set_ptes(pte_t* ptep, pte_t pte, size_t n)
+{
+ do {
+ set_pte(ptep, pte);
+ ptep++;
+ } while (--n > 0);
+}
+
+
+static inline void
+vmm_unset_ptes(pte_t* ptep, size_t n)
+{
+ do {
+ set_pte(ptep, null_pte);
+ ptep++;
+ } while (--n > 0);
+}
+
+pte_t
+vmm_tryptep(pte_t* ptep, size_t lvl_size);