Lines Matching defs:memmap
107 int acrn_vm_memseg_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
111 if (memmap->type == ACRN_MEMMAP_RAM)
112 return acrn_vm_ram_map(vm, memmap);
114 if (memmap->type != ACRN_MEMMAP_MMIO) {
116 "Invalid memmap type: %u\n", memmap->type);
120 ret = acrn_mm_region_add(vm, memmap->user_vm_pa,
121 memmap->service_vm_pa, memmap->len,
122 ACRN_MEM_TYPE_UC, memmap->attr);
130 int acrn_vm_memseg_unmap(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
134 if (memmap->type != ACRN_MEMMAP_MMIO) {
136 "Invalid memmap type: %u\n", memmap->type);
140 ret = acrn_mm_region_del(vm, memmap->user_vm_pa, memmap->len);
151 * @memmap: Info of the EPT mapping
155 int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
168 if (!vm || !memmap)
172 vma = vma_lookup(current->mm, memmap->vma_base);
174 if ((memmap->vma_base + memmap->len) > vma->vm_end) {
179 ret = follow_pfn(vma, memmap->vma_base, &pfn);
183 "Failed to lookup PFN at VMA:%pK.\n", (void *)memmap->vma_base);
187 return acrn_mm_region_add(vm, memmap->user_vm_pa,
188 PFN_PHYS(pfn), memmap->len,
189 ACRN_MEM_TYPE_WB, memmap->attr);
194 nr_pages = memmap->len >> PAGE_SHIFT;
200 pinned = pin_user_pages_fast(memmap->vma_base,
224 region_mapping->size = memmap->len;
226 region_mapping->user_vm_pa = memmap->user_vm_pa;
259 user_vm_pa = memmap->user_vm_pa;
273 (memmap->attr & ACRN_MEM_ACCESS_RIGHT_MASK);
292 remap_vaddr, (void *)memmap->user_vm_pa, memmap->len);