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