Closed ecomaikgolf closed 2 years ago
pfa.lock_page(0x0);
renderer.println("\n----\nPages\n----");
for (int i = 0; i < 20; i++) {
void *mem = pfa.request_page();
hstr((unsigned long)mem, buffer);
renderer.println(buffer);
}
This works
uint64_t kernel_size = &_kernel_end - &_kernel_end;
uint64_t kernel_pages = kernel_size / UEFIMMap::page_size;
kernel_pages
is 0
Kernel size (second value in blue) needs 3 pages, reserves 0, 1 and 2 page, so when we request page we get 3, 4...
After reserving kernel pages and then 5 pages I free kernel memory pages and re-request new ones (the ones that I freed)
Everything seems to work, closing issue