X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/74926d2db1d9f3228acdfca03013a8ba0ac1d8c0..f09e806d5032150564df39a2f7b1192c4d84cf15:/lunaix-os/includes/lunaix/mm/mmap.h?ds=sidebyside diff --git a/lunaix-os/includes/lunaix/mm/mmap.h b/lunaix-os/includes/lunaix/mm/mmap.h index 6429225..44ae469 100644 --- a/lunaix-os/includes/lunaix/mm/mmap.h +++ b/lunaix-os/includes/lunaix/mm/mmap.h @@ -7,24 +7,33 @@ struct mmap_param { - ptr_t vms_mnt; - vm_regions_t* regions; - off_t offset; - size_t length; - u32_t proct; - u32_t flags; - u32_t type; + ptr_t vms_mnt; // vm mount point + struct proc_mm* pvms; // process vm + off_t offset; // mapped file offset + size_t mlen; // mapped memory length + size_t flen; // mapped file length + u32_t proct; // protections + u32_t flags; // other options + u32_t type; // region type }; +int +mem_adjust_inplace(vm_regions_t* regions, + struct mm_region* region, + ptr_t newend); + int mem_map(void** addr_out, struct mm_region** created, - void* addr, + ptr_t addr, struct v_file* file, struct mmap_param* param); int -mem_unmap(ptr_t mnt, vm_regions_t* regions, void* addr, size_t length); +mem_unmap(ptr_t mnt, vm_regions_t* regions, ptr_t addr, size_t length); + +void +mem_unmap_region(ptr_t mnt, struct mm_region* region); void mem_sync_pages(ptr_t mnt,