@staticmethod
def vaddr_width():
raise NotImplementedError()
+
+ @staticmethod
+ def pte_size():
+ raise NotImplementedError()
class PageTableHelper32(PageTableHelperBase):
@staticmethod
def translation_level(level = -1):
return [0, 1][level]
+ @staticmethod
+ def pgtable_len():
+ return (1 << 10)
+
@staticmethod
def translation_shift_bits(level):
- return [9, 0][level] + 12
+ return [10, 0][level] + 12
@staticmethod
def mapping_present(pte):
return bool(pte & 1)
@staticmethod
- def huge_page(pte):
- return bool(pte & (1 << 7))
+ def huge_page(pte, po):
+ return bool(pte & (1 << 7)) and po
@staticmethod
def protections(pte):
@staticmethod
def vaddr_width():
return 32
+
+ @staticmethod
+ def pte_size():
+ return 4
class PageTableHelper64(PageTableHelperBase):
pass
\ No newline at end of file