X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/45e1f8b055043e54be35462852ab6649d634da7c..b632f535c4a6882bdca0317fb88cbe6e165f24eb:/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 ad1a832..4b1b311 100644 --- a/lunaix-os/kernel/mm/vmap.c +++ b/lunaix-os/kernel/mm/vmap.c @@ -2,10 +2,9 @@ #include #include -#define VMAP_START PG_MOUNT_BASE + MEM_4MB -#define VMAP_END VMS_SELF +#include -static ptr_t start = VMAP_START; +static ptr_t start = VMAP; void* vmm_vmap(ptr_t paddr, size_t size, pt_attr attr) @@ -47,7 +46,7 @@ vmm_vmap(ptr_t paddr, size_t size, pt_attr attr) if (current_addr >= VMAP_END) { wrapped = 1; examed_size = 0; - current_addr = VMAP_START; + current_addr = VMAP; } } @@ -56,7 +55,7 @@ vmm_vmap(ptr_t paddr, size_t size, pt_attr attr) done: ptr_t alloc_begin = current_addr - examed_size; for (size_t i = 0; i < size; i += PG_SIZE) { - vmm_set_mapping(VMS_SELF, alloc_begin + i, paddr + i, PG_PREM_RW, 0); + vmm_set_mapping(VMS_SELF, alloc_begin + i, paddr + i, attr, 0); pmm_ref_page(KERNEL_PID, paddr + i); } start = alloc_begin + size;