X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/ea77b9c3fc7fb9bf9d7f9604fc187c8049212a2a..87067c7f16425837971f5c1b5fd0fc5338757377:/lunaix-os/kernel/mm/vmap.c?ds=sidebyside diff --git a/lunaix-os/kernel/mm/vmap.c b/lunaix-os/kernel/mm/vmap.c index 7507b1a..ad1a832 100644 --- a/lunaix-os/kernel/mm/vmap.c +++ b/lunaix-os/kernel/mm/vmap.c @@ -3,18 +3,18 @@ #include #define VMAP_START PG_MOUNT_BASE + MEM_4MB -#define VMAP_END PD_REFERENCED +#define VMAP_END VMS_SELF -static uintptr_t start = VMAP_START; +static ptr_t start = VMAP_START; void* -vmm_vmap(uintptr_t paddr, size_t size, pt_attr attr) +vmm_vmap(ptr_t paddr, size_t size, pt_attr attr) { // next fit assert_msg((paddr & 0xfff) == 0, "vmap: bad alignment"); size = ROUNDUP(size, PG_SIZE); - uintptr_t current_addr = start; + ptr_t current_addr = start; size_t examed_size = 0, wrapped = 0; x86_page_table* pd = (x86_page_table*)L1_BASE_VADDR; @@ -54,10 +54,9 @@ vmm_vmap(uintptr_t paddr, size_t size, pt_attr attr) return NULL; done: - uintptr_t alloc_begin = current_addr - examed_size; + ptr_t alloc_begin = current_addr - examed_size; for (size_t i = 0; i < size; i += PG_SIZE) { - vmm_set_mapping( - PD_REFERENCED, alloc_begin + i, paddr + i, PG_PREM_RW, 0); + vmm_set_mapping(VMS_SELF, alloc_begin + i, paddr + i, PG_PREM_RW, 0); pmm_ref_page(KERNEL_PID, paddr + i); } start = alloc_begin + size;