+static inline ptr_t
+va_mntpoint(ptr_t va)
+{
+ return __vaddr(_VM_OF(va));
+}
+
+static inline unsigned int
+va_level_index(ptr_t va, size_t lvl_size)
+{
+ return (va / lvl_size) & _PAGE_LEVEL_MASK;
+}
+
+static inline bool
+lntep_implie(pte_t* ptep, ptr_t addr, size_t lvl_size)
+{
+ return ptep_va(ptep, lvl_size) == __vaddr(addr);
+}
+
+static inline bool
+is_ptep(ptr_t addr)
+{
+ ptr_t mnt = va_mntpoint(addr);
+ return mnt == VMS_MOUNT_1 || mnt == VMS_SELF;
+}
+
+static inline bool
+vmnt_packed(pte_t* ptep)
+{
+ return is_ptep(__ptr(ptep));
+}
+
+static inline bool
+active_vms(ptr_t vmnt)
+{
+ return vmnt == VMS_SELF;
+}
+
+static inline bool
+lntep_implie_vmnts(pte_t* ptep, size_t lvl_size)
+{
+ return lntep_implie(ptep, VMS_SELF, lvl_size) ||
+ lntep_implie(ptep, VMS_MOUNT_1, lvl_size);
+}
+
+
+static inline int
+ptep_count_level(pte_t* ptep)
+{
+ int i = 0;
+ ptr_t addr = (ptr_t)ptep;
+
+ if (!is_ptep(addr << (LEVEL_SHIFT * i++)))
+ return MAX_LEVEL - i;
+
+#if LnT_ENABLED(1)
+ if (!is_ptep(addr << (LEVEL_SHIFT * i++)))
+ return MAX_LEVEL - i;
+#endif
+
+#if LnT_ENABLED(2)
+ if (!is_ptep(addr << (LEVEL_SHIFT * i++)))
+ return MAX_LEVEL - i;
+#endif
+
+#if LnT_ENABLED(3)
+ if (!is_ptep(addr << (LEVEL_SHIFT * i++)))
+ return MAX_LEVEL - i;
+#endif
+
+ return 0;
+}
+