Home
last modified time | relevance | path

Searched refs:gpa (Results 1 – 25 of 69) sorted by relevance

123

/freebsd/sys/dev/vmm/
H A Dvmm_mem.c136 vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa) in vm_mem_allocated() argument
151 if (mm->len != 0 && gpa >= mm->gpa && gpa < mm->gpa + mm->len) in vm_mem_allocated()
232 vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, in vm_mmap_memseg() argument
260 if ((gpa | first | last) & PAGE_MASK) in vm_mmap_memseg()
275 error = vm_map_find(&vmspace->vm_map, seg->object, first, &gpa, in vm_mmap_memseg()
283 error = vm_map_wire(&vmspace->vm_map, gpa, gpa + len, in vm_mmap_memseg()
286 vm_map_remove(&vmspace->vm_map, gpa, gpa + len); in vm_mmap_memseg()
292 map->gpa = gpa; in vm_mmap_memseg()
302 vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len) in vm_munmap_memseg() argument
315 if (m->gpa == gpa && m->len == len) { in vm_munmap_memseg()
[all …]
H A Dvmm_mem.h26 vm_paddr_t gpa; member
55 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off,
57 int vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len);
66 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid,
72 void *vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len,
74 void *vm_gpa_hold_global(struct vm *vm, vm_paddr_t gpa, size_t len,
77 bool vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa);
80 uint64_t gla, int prot, uint64_t *gpa, int *is_fault);
H A Dvmm_dev.c186 vm_paddr_t gpa, maxaddr; in vmmdev_rw() local
203 gpa = uio->uio_offset; in vmmdev_rw()
204 off = gpa & PAGE_MASK; in vmmdev_rw()
215 hpa = vm_gpa_hold_global(sc->vm, gpa, c, prot, &cookie); in vmmdev_rw()
217 if (uio->uio_rw == UIO_READ && gpa < maxaddr) in vmmdev_rw()
482 error = vm_mmap_getnext(sc->vm, &mm->gpa, &mm->segid, in vmmdev_ioctl()
490 error = vm_mmap_memseg(sc->vm, mm->gpa, mm->segid, mm->segoff, in vmmdev_ioctl()
498 error = vm_munmap_memseg(sc->vm, mu->gpa, mu->len); in vmmdev_ioctl()
688 vm_paddr_t gpa; in vmmdev_mmap_single() local
710 gpa = 0; in vmmdev_mmap_single()
[all …]
/freebsd/usr.sbin/bhyve/
H A Dbootrom.c75 uint64_t gpa; member
90 offset = addr - var.gpa; in bootrom_var_mem_handler()
138 vm_paddr_t gpa; in bootrom_alloc() local
163 gpa = (gpa_alloctop - len) + 1; in bootrom_alloc()
164 if (gpa < gpa_allocbot) { in bootrom_alloc()
169 gpa = gpa_allocbot; in bootrom_alloc()
170 if (gpa > (gpa_alloctop - len) + 1) { in bootrom_alloc()
176 segoff = gpa - gpa_base; in bootrom_alloc()
177 if (vm_mmap_memseg(ctx, gpa, VM_BOOTROM, segoff, len, prot) != 0) { in bootrom_alloc()
184 gpa_alloctop = gpa - 1; in bootrom_alloc()
[all …]
H A Dgdb.c126 uint64_t gpa; member
1087 find_breakpoint(uint64_t gpa) in find_breakpoint() argument
1092 if (bp->gpa == gpa) in find_breakpoint()
1103 uint64_t gpa; in gdb_cpu_breakpoint() local
1112 error = guest_vaddr2paddr(vcpu, guest_pc(vmexit), &gpa); in gdb_cpu_breakpoint()
1114 bp = find_breakpoint(gpa); in gdb_cpu_breakpoint()
1134 bp = find_breakpoint(gpa); in gdb_cpu_breakpoint()
1243 uint64_t gpa, gva, val; in gdb_read_mem() local
1270 error = guest_vaddr2paddr(vcpus[cur_vcpu], gva, &gpa); in gdb_read_mem()
1287 todo = getpagesize() - gpa % getpagesize(); in gdb_read_mem()
[all …]
H A Dmem.c141 typedef int (mem_cb_t)(struct vcpu *vcpu, uint64_t gpa, struct mem_range *mr,
145 mem_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) in mem_read() argument
150 error = (*mr->handler)(vcpu, MEM_F_READ, gpa, size, rval, mr->arg1, in mem_read()
156 mem_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) in mem_write() argument
161 error = (*mr->handler)(vcpu, MEM_F_WRITE, gpa, size, &wval, mr->arg1, in mem_write()
268 read_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size) in read_mem() argument
275 return (access_memory(vcpu, gpa, rw_mem_cb, &rma)); in read_mem()
279 write_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size) in write_mem() argument
286 return (access_memory(vcpu, gpa, rw_mem_cb, &rma)); in write_mem()
H A Dbasl.c193 uint64_t gpa; in basl_finish_patch_checksums() local
220 gpa = BHYVE_ACPI_BASE + table->off + checksum->start; in basl_finish_patch_checksums()
221 if ((gpa < BHYVE_ACPI_BASE) || in basl_finish_patch_checksums()
222 (gpa < BHYVE_ACPI_BASE + table->off)) { in basl_finish_patch_checksums()
228 gva = vm_map_gpa(table->ctx, gpa, len); in basl_finish_patch_checksums()
231 __func__, gpa, gpa + len); in basl_finish_patch_checksums()
279 uint64_t gpa, val; in basl_finish_patch_pointers() local
306 gpa = BHYVE_ACPI_BASE + table->off; in basl_finish_patch_pointers()
307 if (gpa < BHYVE_ACPI_BASE) { in basl_finish_patch_pointers()
313 gva = vm_map_gpa(table->ctx, gpa, table->len); in basl_finish_patch_pointers()
[all …]
/freebsd/sys/amd64/vmm/
H A Dvmm_instruction_emul.c516 emulate_mov(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_mov() argument
537 error = memwrite(vcpu, gpa, byte, size, arg); in emulate_mov()
550 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
560 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
571 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
584 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov()
600 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
610 error = memwrite(vcpu, gpa, vie->immediate, size, arg); in emulate_mov()
620 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov()
630 emulate_movx(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_movx() argument
[all …]
H A Dvmm_mem_machdep.c49 vmm_mmio_alloc(struct vmspace *vmspace, vm_paddr_t gpa, size_t len, in vmm_mmio_alloc() argument
76 error = vm_map_find(&vmspace->vm_map, obj, 0, &gpa, len, 0, in vmm_mmio_alloc()
101 vmm_mmio_free(struct vmspace *vmspace, vm_paddr_t gpa, size_t len) in vmm_mmio_free() argument
104 vm_map_remove(&vmspace->vm_map, gpa, gpa + len); in vmm_mmio_free()
H A Dvmm.c730 vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) in vm_map_mmio() argument
734 if ((obj = vmm_mmio_alloc(vm->vmspace, gpa, len, hpa)) == NULL) in vm_map_mmio()
741 vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len) in vm_unmap_mmio() argument
744 vmm_mmio_free(vm->vmspace, gpa, len); in vm_unmap_mmio()
751 vm_paddr_t gpa, hpa; in vm_iommu_map() local
764 mm->gpa, mm->len, mm->flags)); in vm_iommu_map()
769 for (gpa = mm->gpa; gpa < mm->gpa + mm->len; gpa += PAGE_SIZE) { in vm_iommu_map()
770 hpa = pmap_extract(vmspace_pmap(vm->vmspace), gpa); in vm_iommu_map()
786 vm, (uintmax_t)gpa, (uintmax_t)hpa)); in vm_iommu_map()
788 iommu_create_mapping(vm->iommu, gpa, hpa, PAGE_SIZE); in vm_iommu_map()
[all …]
H A Dvmm_dev_machdep.c306 pptmmio->func, pptmmio->gpa, pptmmio->len, in vmmdev_machdep_ioctl()
312 pptmmio->func, pptmmio->gpa, pptmmio->len); in vmmdev_machdep_ioctl()
374 if (kernemu->gpa >= DEFAULT_APIC_BASE && in vmmdev_machdep_ioctl()
375 kernemu->gpa < DEFAULT_APIC_BASE + PAGE_SIZE) { in vmmdev_machdep_ioctl()
378 } else if (kernemu->gpa >= VIOAPIC_BASE && in vmmdev_machdep_ioctl()
379 kernemu->gpa < VIOAPIC_BASE + VIOAPIC_SIZE) { in vmmdev_machdep_ioctl()
382 } else if (kernemu->gpa >= VHPET_BASE && in vmmdev_machdep_ioctl()
383 kernemu->gpa < VHPET_BASE + VHPET_SIZE) { in vmmdev_machdep_ioctl()
392 error = mwrite(vcpu, kernemu->gpa, in vmmdev_machdep_ioctl()
395 error = mread(vcpu, kernemu->gpa, in vmmdev_machdep_ioctl()
[all …]
H A Dvmm_lapic.c190 lapic_mmio_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, in lapic_mmio_write() argument
197 off = gpa - DEFAULT_APIC_BASE; in lapic_mmio_write()
212 lapic_mmio_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, in lapic_mmio_read() argument
219 off = gpa - DEFAULT_APIC_BASE; in lapic_mmio_read()
/freebsd/lib/libvmmapi/
H A Dvmmapi.c284 vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid, vm_ooffset_t off, in vm_mmap_memseg() argument
290 memmap.gpa = gpa; in vm_mmap_memseg()
304 error = vm_mmap_getnext(ctx, &gpa, &segid, &off, &len, &prot, &flags); in vm_mmap_memseg()
305 if (error == 0 && gpa == memmap.gpa) { in vm_mmap_memseg()
331 vm_munmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, size_t len) in vm_munmap_memseg() argument
336 munmap.gpa = gpa; in vm_munmap_memseg()
344 vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, in vm_mmap_getnext() argument
351 memmap.gpa = *gpa; in vm_mmap_getnext()
354 *gpa = memmap.gpa; in vm_mmap_getnext()
445 setup_memory_segment(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char *base) in setup_memory_segment() argument
[all …]
H A Dvmmapi.h95 int vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid,
113 int vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid,
116 int vm_munmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, size_t len);
135 int vm_get_gpa_pmap(struct vmctx *, uint64_t gpa, uint64_t *pte, int *num);
137 uint64_t gla, int prot, uint64_t *gpa, int *fault);
141 uint64_t *gpa, int *fault);
197 vm_paddr_t gpa, bool write, int size, uint64_t *value);
208 vm_paddr_t gpa, size_t len, vm_paddr_t hpa);
210 vm_paddr_t gpa, size_t len);
/freebsd/sys/amd64/vmm/io/
H A Diommu.c96 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) in IOMMU_CREATE_MAPPING() argument
100 return ((*ops->create_mapping)(domain, gpa, hpa, len)); in IOMMU_CREATE_MAPPING()
106 IOMMU_REMOVE_MAPPING(void *domain, vm_paddr_t gpa, uint64_t len) in IOMMU_REMOVE_MAPPING() argument
110 return ((*ops->remove_mapping)(domain, gpa, len)); in IOMMU_REMOVE_MAPPING()
284 iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, size_t len) in iommu_create_mapping() argument
291 mapped = IOMMU_CREATE_MAPPING(dom, gpa, hpa, remaining); in iommu_create_mapping()
292 gpa += mapped; in iommu_create_mapping()
299 iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len) in iommu_remove_mapping() argument
306 unmapped = IOMMU_REMOVE_MAPPING(dom, gpa, remaining); in iommu_remove_mapping()
307 gpa += unmapped; in iommu_remove_mapping()
H A Dppt.c77 vm_paddr_t gpa; member
235 (void)vm_unmap_mmio(vm, seg->gpa, seg->len); in ppt_unmap_all_mmio()
349 ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) in ppt_is_mmio() argument
363 if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) in ppt_is_mmio()
485 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) in ppt_map_mmio() argument
491 if (len % PAGE_SIZE != 0 || len == 0 || gpa % PAGE_SIZE != 0 || in ppt_map_mmio()
492 hpa % PAGE_SIZE != 0 || gpa + len < gpa || hpa + len < hpa) in ppt_map_mmio()
505 error = vm_map_mmio(vm, gpa, len, hpa); in ppt_map_mmio()
507 seg->gpa = gpa; in ppt_map_mmio()
518 vm_paddr_t gpa, size_t len) in ppt_unmap_mmio() argument
[all …]
H A Diommu.h38 typedef uint64_t (*iommu_create_mapping_t)(void *domain, vm_paddr_t gpa,
40 typedef uint64_t (*iommu_remove_mapping_t)(void *domain, vm_paddr_t gpa,
68 void iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa,
70 void iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len);
H A Dppt.h34 vm_paddr_t gpa, size_t len, vm_paddr_t hpa);
36 vm_paddr_t gpa, size_t len);
43 bool ppt_is_mmio(struct vm *vm, vm_paddr_t gpa);
/freebsd/usr.sbin/bhyve/amd64/
H A Dpci_gvt-d.c140 gsm->gpa = gvt_d_alloc_mmio_memory(gsm->hpa, gsm->len, in gvt_d_setup_gsm()
142 if (gsm->gpa == 0) { in gvt_d_setup_gsm()
149 if (gsm->gpa != gsm->hpa) { in gvt_d_setup_gsm()
174 gsm->gpa | (bdsm & (PCIM_BDSM_GSM_ALIGNMENT - 1))); in gvt_d_setup_gsm()
241 opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len, in gvt_d_setup_opregion()
243 if (opregion->gpa == 0) { in gvt_d_setup_opregion()
250 opregion->gva = vm_map_gpa(pi->pi_vmctx, opregion->gpa, opregion->len); in gvt_d_setup_opregion()
255 if (opregion->gpa != opregion->hpa) { in gvt_d_setup_opregion()
266 pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa); in gvt_d_setup_opregion()
/freebsd/sys/amd64/vmm/intel/
H A Dvtd.c515 vtd_update_mapping(void *arg, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len, in vtd_update_mapping() argument
526 KASSERT(gpa + len > gpa, ("%s: invalid gpa range %#lx/%#lx", __func__, in vtd_update_mapping()
527 gpa, len)); in vtd_update_mapping()
528 KASSERT(gpa + len <= dom->maxaddr, ("%s: gpa range %#lx/%#lx beyond " in vtd_update_mapping()
529 "domain maxaddr %#lx", __func__, gpa, len, dom->maxaddr)); in vtd_update_mapping()
531 if (gpa & PAGE_MASK) in vtd_update_mapping()
532 panic("vtd_create_mapping: unaligned gpa 0x%0lx", gpa); in vtd_update_mapping()
552 (gpa & (spsize - 1)) == 0 && in vtd_update_mapping()
564 ptpindex = (gpa >> ptpshift) & 0x1FF; in vtd_update_mapping()
585 if ((gpa & ((1UL << ptpshift) - 1)) != 0) in vtd_update_mapping()
[all …]
/freebsd/sys/amd64/include/
H A Dvmm_instruction_emul.h37 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa,
40 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa,
54 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie,
96 uint64_t gla, int prot, uint64_t *gpa, int *is_fault);
103 uint64_t gla, int prot, uint64_t *gpa, int *is_fault);
H A Dvmm_dev.h36 vm_paddr_t gpa; member
47 vm_paddr_t gpa; member
133 vm_paddr_t gpa; member
183 uint64_t gpa; /* in */ member
202 uint64_t gpa; member
244 uint64_t gpa; member
/freebsd/sys/riscv/include/
H A Dvmm_instruction_emul.h35 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa,
37 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa,
57 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie,
/freebsd/sys/riscv/vmm/
H A Dvmm_instruction_emul.c60 vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in vmm_emulate_instruction() argument
68 error = memread(vcpu, gpa, &val, vie->access_size, memarg); in vmm_emulate_instruction()
81 error = memwrite(vcpu, gpa, val, vie->access_size, memarg); in vmm_emulate_instruction()
/freebsd/sys/dev/hyperv/netvsc/
H A Dhn_nvs.h79 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, int gpa_cnt) in hn_nvs_send_rndis_sglist() argument
88 return (hn_nvs_send_sglist(chan, gpa, gpa_cnt, in hn_nvs_send_rndis_sglist()
99 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa,

123