Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/vmm.c
Show First 20 Lines • Show All 792 Lines • ▼ Show 20 Lines | vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, | ||||
map->segoff = first; | map->segoff = first; | ||||
map->segid = segid; | map->segid = segid; | ||||
map->prot = prot; | map->prot = prot; | ||||
map->flags = flags; | map->flags = flags; | ||||
return (0); | return (0); | ||||
} | } | ||||
int | int | ||||
vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len) | |||||
{ | |||||
struct mem_map *m; | |||||
int i; | |||||
for (i = 0; i < VM_MAX_MEMMAPS; i++) { | |||||
m = &vm->mem_maps[i]; | |||||
if (m->gpa == gpa && m->len == len && | |||||
(m->flags & VM_MEMMAP_F_IOMMU) == 0) { | |||||
vm_free_memmap(vm, i); | |||||
return (0); | |||||
} | |||||
} | |||||
return (EINVAL); | |||||
} | |||||
int | |||||
vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, | vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, | ||||
vm_ooffset_t *segoff, size_t *len, int *prot, int *flags) | vm_ooffset_t *segoff, size_t *len, int *prot, int *flags) | ||||
{ | { | ||||
struct mem_map *mm, *mmnext; | struct mem_map *mm, *mmnext; | ||||
int i; | int i; | ||||
mmnext = NULL; | mmnext = NULL; | ||||
for (i = 0; i < VM_MAX_MEMMAPS; i++) { | for (i = 0; i < VM_MAX_MEMMAPS; i++) { | ||||
▲ Show 20 Lines • Show All 2,126 Lines • Show Last 20 Lines |