Lines Matching full:table
45 from identity-mapped physical addresses after we program this table
51 we must know a priori the physical address of each table. The linker
92 # Page table entry flags
110 # to get table from back of list.
142 """Translate page table flags into string"""
184 """Represents a particular table in a set of page tables, at any level"""
191 """Return a bytearray representation of this table"""
209 the appropriate index in the table for it"""
220 """Struct packing letter code for table entries. Either I for
226 """Number of entries in the table. Varies by table type and paging
231 """Get the index of the entry in this table that corresponds to the
236 """Indicate whether an entry is present in this table for the provided
245 If this is a leaf table, this is the physical address mapping. If not,
246 this is the physical address of the next level table"""
252 """For the table entry corresponding to the provided virtual address,
253 set the corresponding physical entry in the table. Unsupported flags
256 If this is a leaf table, this is the physical address mapping. If not,
257 this is the physical address of the next level table"""
268 """"For the table entry corresponding to the provided virtual address,
281 # Specific supported table types
291 """Page directory pointer table for IA-32e"""
299 """Page directory pointer table for PAE"""
318 """Page table for 32-bit"""
327 """Page table for either PAE or IA-32e"""
347 # Database of page table pages. Maps physical memory address to
348 # MMUTable objects, excluding the top-level table which is tracked
350 # the top-level table is tracked separately.
363 the toplevel table class, and the last entry always being
364 some kind of leaf page table class (Pt or PtXd)"""
375 table = self.toplevel
381 # Create child table if needed
382 if table.has_entry(virt_addr):
386 table = self.tables[table.lookup(virt_addr)]
403 def new_child_table(self, table, virt_addr, depth): argument
404 """Create a new child table"""
410 table.map(virt_addr, new_table_addr, INT_FLAGS)
417 table = self.toplevel
423 # Create child table if needed
424 if not table.has_entry(virt_addr):
425 table = self.new_child_table(table, virt_addr, depth)
427 table = self.tables[table.lookup(virt_addr)]
429 # Set up entry in leaf page table
431 table.map(virt_addr, phys_addr, flags)
434 """Reserve page table space with already aligned virt_base and size"""
440 # How much memory is covered by leaf page table
451 """Reserve page table space with virt_base and size alignment"""
452 # How much memory is covered by leaf page table
479 # Never map the NULL page at page table level.
516 The bounds of the region will be looked up in the symbol table
550 table = self.toplevel
552 table = self.tables[table.lookup(addr)]
553 table.set_perms(addr, flags)
569 # We always have the top-level table be last. This is because
638 raise LookupError("Could not find symbol table")
718 # Reserve space in page table, and map the region
812 # physical pages. So simply identity map them to create the page table
915 # Warn if reserved page table is not of correct size
931 error(("Reserved space for page table is too %s."