Lines Matching +full:page +full:- +full:level
1 # SPDX-License-Identifier: GPL-2.0-only
5 # routines to introspect page table
18 def page_mask(level=1): argument
20 if level == 1:
23 elif level == 2:
26 elif level == 3:
29 raise Exception(f'Unknown page level: {level}')
44 return (bit_start, bit_end), data >> bit_start & ((1 << (1 + bit_end - bit_start)) - 1)
46 def entry_va(level, phys_addr, translating_va): argument
47 def start_bit(level): argument
48 if level == 5:
50 elif level == 4:
52 elif level == 3:
54 elif level == 2:
56 elif level == 1:
59 raise Exception(f'Unknown level {level}')
61 entry_offset = ((translating_va >> start_bit(level)) & 511) * 8
82 ---
83 …{'bit' : <4} {self.page_level_write_through[0]: <10} {'page level write through': <30} {self.page_…
84 …{'bit' : <4} {self.page_level_cache_disabled[0]: <10} {'page level cache disabled': <30} {self.pag…
89 def __init__(self, address, level): argument
94 if level == 1:
105 self.page_physical_address = data & PHYSICAL_ADDRESS_MASK & page_mask(level)
127 …self.page_physical_address = data & PHYSICAL_ADDRESS_MASK & page_mask(level) if page_size_bit else…
134 self.page_hierarchy_level = level
140 next_level = self.page_hierarchy_level - 1
147 level {self.page_hierarchy_level}:
149 {'page entry binary data': <30} {hex(self.page_entry_binary_data)}
150 ---
151 PAGE ENTRY IS NOT PRESENT!
154 def page_size_line(ps_bit, ps, level): argument
155 return "" if level == 1 else f"{'bit': <3} {ps_bit: <5} {'page size': <30} {ps}"
158 level {self.page_hierarchy_level}:
160 {'page entry binary data': <30} {hex(self.page_entry_binary_data)}
161 …page size': <30} {'1GB' if self.page_hierarchy_level == 3 else '2MB' if self.page_hierarchy_level …
162 {'page physical address': <30} {hex(self.page_physical_address)}
163 ---
167 …{'bit': <4} {self.page_level_write_through[0]: <10} {'page level write through': <30} {self.page_l…
168 …{'bit': <4} {self.page_level_cache_disabled[0]: <10} {'page level cache disabled': <30} {self.page…
170 …{"" if self.page_hierarchy_level == 1 else f"{'bit': <4} {self.page_size[0]: <10} {'page size': <3…
171 {'bit': <4} {self.dirty[0]: <10} {'page dirty': <30} {self.dirty[1]}
180 level {self.page_hierarchy_level}:
182 {'page entry binary data': <30} {hex(self.page_entry_binary_data)}
184 ---
188 …{'bit': <4} {self.page_level_write_through[0]: <10} {'page level write through': <30} {self.page_l…
189 …{'bit': <4} {self.page_level_cache_disabled[0]: <10} {'page level cache disabled': <30} {self.page…
191 {'bit': <4} {self.page_size[0]: <10} {'page size': <30} {self.page_size[1]}
205 super(TranslateVM, self).__init__('translate-vm', gdb.COMMAND_USER)