1 #include <lunaix/mm/vmm.h>
3 void* vmm_dup_page(pid_t pid, void* pa) {
4 void* new_ppg = pmm_alloc_page(pid, 0);
5 vmm_fmap_page(pid, PG_MOUNT_3, new_ppg, PG_PREM_RW);
6 vmm_fmap_page(pid, PG_MOUNT_4, pa, PG_PREM_RW);
12 :: "c"(1024), "r"(PG_MOUNT_3), "r"(PG_MOUNT_4)
13 : "memory", "%edi", "%esi");
15 vmm_unset_mapping(PG_MOUNT_3);
16 vmm_unset_mapping(PG_MOUNT_4);