Kernel Loader: Difference between revisions

Structures: KInitialPageTable
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 =