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 = |