Changes

739 bytes added ,  05:43, 31 August 2019
no edit summary
Line 274: Line 274:  
     }
 
     }
 
</pre>
 
</pre>
 +
 +
== KInitialPageTable::Initialize ==
 +
 +
Signature is like KInitialPageTable::Initialize(KInitialPageAllocator *allocator);
 +
 +
NOTE: This function is inferred (as it sets presumably private members).
 +
 +
<pre>
 +
void KInitialPageTable::Initialize(KInitialPageAllocator *allocator) {
 +
    this->l1_table_ptr = allocator->Allocate();
 +
    memset(this->l1_table_ptr, 0, 0x1000);
 +
    this->num_l1_table_entries = 0x200;
 +
}
 +
</pre>
 +
 +
== KInitialPageTable::Map ==
 +
 +
Signature is like KInitialPageTable::Map(uintptr_t virtual_address, size_t size, uintptr_t physical_address, const uint64_t *attribute, InitialPageAllocator *allocator);
 +
 +
This is just standard aarch64 page table mapping code. New L2/L3 pages are allocated via allocator->Allocate() when needed.
    
= Structures =
 
= Structures =