1 #include <lunaix/mm/pagetable.h>
2 #include <lunaix/mm/page.h>
5 dup_leaflet(struct leaflet* leaflet)
8 struct leaflet* new_leaflet;
10 new_leaflet = alloc_leaflet(leaflet_order(leaflet));
12 src_va = leaflet_mount(leaflet);
13 dest_va = vmap(new_leaflet, KERNEL_DATA);
15 memcpy((void*)dest_va, (void*)src_va, PAGE_SIZE);
17 leaflet_unmount(leaflet);
18 vunmap(dest_va, new_leaflet);
24 pmm_arch_init_remap(struct pmem* memory, struct boot_handoff* bctx)
26 unsigned long plist_len;
28 plist_len = leaf_count(bctx->mem.size) * sizeof(struct ppage);
30 for (int i = 0; i < bctx->mem.mmap_len; i++) {