1 #include <lunaix/mm/vmm.h>
4 vmm_dup_page(pid_t pid, void* pa)
6 void* new_ppg = pmm_alloc_page(pid, 0);
7 vmm_set_mapping(VMS_SELF, PG_MOUNT_3, new_ppg, PG_PREM_RW, VMAP_NULL);
8 vmm_set_mapping(VMS_SELF, PG_MOUNT_4, pa, PG_PREM_RW, VMAP_NULL);
10 asm volatile("movl %1, %%edi\n"
12 "rep movsl\n" ::"c"(1024),
15 : "memory", "%edi", "%esi");
17 vmm_del_mapping(VMS_SELF, PG_MOUNT_3);
18 vmm_del_mapping(VMS_SELF, PG_MOUNT_4);