Kernel Loader: Difference between revisions

No edit summary
Line 29: Line 29:
     uintptr_t kernel_relocation_offset = KernelLdr_LoadKernel(kernel_base, kernel_map, ini_base);
     uintptr_t kernel_relocation_offset = KernelLdr_LoadKernel(kernel_base, kernel_map, ini_base);
      
      
     // dtor called for static page allocator.
     // finalize called for static page allocator.
     g_InitialPageAllocator.~KInitialPageAllocator();
     g_InitialPageAllocator.Finalize();
      
      
     // Jumps back to the kernel code that called KernelLdr_Main.
     // Jumps back to the kernel code that called KernelLdr_Main.
Line 136: Line 136:
</pre>
</pre>


== KInitialPageAllocator::~KInitialPageAllocator ==
== KInitialPageAllocator::Initialize ==
This just clears the allocator's next address.
This sets the allocator's next address (function inferred as it is (presumably) inlined and next_address is (presumably) private).


<pre>
<pre>
     this->next_address = 0;
     this->next_address = address;
</pre>
</pre>


== KInitialPageAllocator::Initialize ==
== KInitialPageAllocator::Finalize ==
This sets the allocator's next address (function inferred as it is (presumably) inlined and next_address is (presumably) private).
This just clears the allocator's next address.


<pre>
<pre>
     this->next_address = address;
     this->next_address = 0;
</pre>
</pre>