| /freebsd/sys/dev/vmm/ |
| H A D | vmm_mem.c | 153 vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa) in vm_mem_allocated() argument 168 if (mm->len != 0 && gpa >= mm->gpa && gpa < mm->gpa + mm->len) in vm_mem_allocated() 259 vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, in vm_mmap_memseg() argument 283 if (first + len < first || gpa + len < gpa) in vm_mmap_memseg() 289 if ((gpa | first | last) & PAGE_MASK) in vm_mmap_memseg() 305 error = vm_map_insert(vmmap, seg->object, first, gpa, gpa + len, in vm_mmap_memseg() 313 error = vm_map_wire(vmmap, gpa, gpa + len, in vm_mmap_memseg() 316 vm_map_remove(vmmap, gpa, gpa + len); in vm_mmap_memseg() 322 map->gpa = gpa; in vm_mmap_memseg() 332 vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len) in vm_munmap_memseg() argument [all …]
|
| H A D | vmm_mem.h | 51 vm_paddr_t gpa; member 80 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off, 82 int vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len); 92 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, 98 void *vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len, 100 void *vm_gpa_hold_global(struct vm *vm, vm_paddr_t gpa, size_t len, 103 bool vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa); 106 uint64_t gla, int prot, uint64_t *gpa, int *is_fault);
|
| /freebsd/usr.sbin/bhyve/ |
| H A D | bootrom.c | 76 uint64_t gpa; member 91 offset = addr - var.gpa; in bootrom_var_mem_handler() 139 vm_paddr_t gpa; in bootrom_alloc() local 164 gpa = (gpa_alloctop - len) + 1; in bootrom_alloc() 165 if (gpa < gpa_allocbot) { in bootrom_alloc() 170 gpa = gpa_allocbot; in bootrom_alloc() 171 if (gpa > (gpa_alloctop - len) + 1) { in bootrom_alloc() 177 segoff = gpa - gpa_base; in bootrom_alloc() 178 if (vm_mmap_memseg(ctx, gpa, VM_BOOTROM, segoff, len, prot) != 0) { in bootrom_alloc() 185 gpa_alloctop = gpa - 1; in bootrom_alloc() [all …]
|
| H A D | gdb.c | 126 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 D | mem.c | 142 typedef int (mem_cb_t)(struct vcpu *vcpu, uint64_t gpa, struct mem_range *mr, 146 mem_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) in mem_read() argument 151 error = (*mr->handler)(vcpu, MEM_F_READ, gpa, size, rval, mr->arg1, in mem_read() 157 mem_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) in mem_write() argument 162 error = (*mr->handler)(vcpu, MEM_F_WRITE, gpa, size, &wval, mr->arg1, in mem_write() 280 read_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size) in read_mem() argument 287 return (access_memory(vcpu, gpa, rw_mem_cb, &rma)); in read_mem() 291 write_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size) in write_mem() argument 298 return (access_memory(vcpu, gpa, rw_mem_cb, &rma)); in write_mem()
|
| H A D | basl.c | 193 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 D | vmm_mem_machdep.c | 50 vmm_mmio_alloc(struct vmspace *vmspace, vm_paddr_t gpa, size_t len, in vmm_mmio_alloc() argument 57 if (gpa + len < gpa || hpa + len < hpa || (gpa & PAGE_MASK) != 0 || in vmm_mmio_alloc() 83 error = vm_map_insert(&vmspace->vm_map, obj, 0, gpa, gpa + len, in vmm_mmio_alloc() 110 vmm_mmio_free(struct vmspace *vmspace, vm_paddr_t gpa, size_t len) in vmm_mmio_free() argument 113 vm_map_remove(&vmspace->vm_map, gpa, gpa + len); in vmm_mmio_free()
|
| H A D | vmm_instruction_emul.c | 502 emulate_mov(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_mov() argument 523 error = memwrite(vcpu, gpa, byte, size, arg); in emulate_mov() 536 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov() 546 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov() 557 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov() 570 error = memread(vcpu, gpa, &val, size, arg); in emulate_mov() 586 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov() 596 error = memwrite(vcpu, gpa, vie->immediate, size, arg); in emulate_mov() 606 error = memwrite(vcpu, gpa, val, size, arg); in emulate_mov() 616 emulate_movx(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_movx() argument [all …]
|
| H A D | vmm.c | 454 vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) in vm_map_mmio() argument 456 return (vmm_mmio_alloc(vm_vmspace(vm), gpa, len, hpa)); in vm_map_mmio() 460 vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len) in vm_unmap_mmio() argument 463 vmm_mmio_free(vm_vmspace(vm), gpa, len); in vm_unmap_mmio() 471 vm_paddr_t gpa, hpa; in vm_iommu_map() local 485 mm->gpa, mm->len, mm->flags)); in vm_iommu_map() 490 for (gpa = mm->gpa; gpa < mm->gpa + mm->len; gpa += PAGE_SIZE) { in vm_iommu_map() 491 hpa = pmap_extract(pmap, gpa); in vm_iommu_map() 507 vm, (uintmax_t)gpa, (uintmax_t)hpa)); in vm_iommu_map() 509 iommu_create_mapping(vm->iommu, gpa, hpa, PAGE_SIZE); in vm_iommu_map() [all …]
|
| H A D | vmm_dev_machdep.c | 292 pptmmio->func, pptmmio->gpa, pptmmio->len, pptmmio->hpa); in vmmdev_machdep_ioctl() 300 pptmmio->func, pptmmio->gpa, pptmmio->len); in vmmdev_machdep_ioctl() 391 if (kernemu->gpa >= DEFAULT_APIC_BASE && in vmmdev_machdep_ioctl() 392 kernemu->gpa < DEFAULT_APIC_BASE + PAGE_SIZE) { in vmmdev_machdep_ioctl() 395 } else if (kernemu->gpa >= VIOAPIC_BASE && in vmmdev_machdep_ioctl() 396 kernemu->gpa < VIOAPIC_BASE + VIOAPIC_SIZE) { in vmmdev_machdep_ioctl() 399 } else if (kernemu->gpa >= VHPET_BASE && in vmmdev_machdep_ioctl() 400 kernemu->gpa < VHPET_BASE + VHPET_SIZE) { in vmmdev_machdep_ioctl() 409 error = mwrite(vcpu, kernemu->gpa, in vmmdev_machdep_ioctl() 412 error = mread(vcpu, kernemu->gpa, in vmmdev_machdep_ioctl() [all …]
|
| H A D | vmm_lapic.c | 196 lapic_mmio_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, in lapic_mmio_write() argument 203 off = gpa - DEFAULT_APIC_BASE; in lapic_mmio_write() 218 lapic_mmio_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, in lapic_mmio_read() argument 225 off = gpa - DEFAULT_APIC_BASE; in lapic_mmio_read()
|
| /freebsd/lib/libvmmapi/ |
| H A D | vmmapi.c | 291 vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid, vm_ooffset_t off, in vm_mmap_memseg() argument 297 memmap.gpa = gpa; in vm_mmap_memseg() 311 error = vm_mmap_getnext(ctx, &gpa, &segid, &off, &len, &prot, &flags); in vm_mmap_memseg() 312 if (error == 0 && gpa == memmap.gpa) { in vm_mmap_memseg() 338 vm_munmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, size_t len) in vm_munmap_memseg() argument 343 munmap.gpa = gpa; in vm_munmap_memseg() 351 vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, in vm_mmap_getnext() argument 358 memmap.gpa = *gpa; in vm_mmap_getnext() 361 *gpa = memmap.gpa; in vm_mmap_getnext() 460 map_memory_segment(struct vmctx *ctx, int segid, vm_paddr_t gpa, size_t len, in map_memory_segment() argument [all …]
|
| H A D | vmmapi.h | 91 int vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, 109 int vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid, 112 int vm_munmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, size_t len); 134 int vm_get_gpa_pmap(struct vmctx *, uint64_t gpa, uint64_t *pte, int *num); 136 uint64_t gla, int prot, uint64_t *gpa, int *fault); 140 uint64_t *gpa, int *fault); 196 vm_paddr_t gpa, bool write, int size, uint64_t *value); 207 vm_paddr_t gpa, size_t len, vm_paddr_t hpa); 209 vm_paddr_t gpa, size_t len);
|
| /freebsd/usr.sbin/bhyve/amd64/ |
| H A D | pci_gvt-d.c | 307 gsm->gpa = gvt_d_alloc_mmio_memory(gsm->hpa, gsm->len, in gvt_d_setup_gsm() 309 if (gsm->gpa == 0) { in gvt_d_setup_gsm() 316 if (gsm->gpa != gsm->hpa) { in gvt_d_setup_gsm() 346 return (igd_ops->set_bdsm(pi, gsm->gpa)); in gvt_d_setup_gsm() 373 vbt->gpa = gvt_d_alloc_mmio_memory(vbt->hpa, vbt->len, in gvt_d_setup_vbt() 375 if (vbt->gpa == 0) { in gvt_d_setup_vbt() 383 vbt->gva = vm_map_gpa(pi->pi_vmctx, vbt->gpa, vbt->len); in gvt_d_setup_vbt() 390 if (vbt->gpa != vbt->hpa) { in gvt_d_setup_vbt() 405 *vbt_gpa = vbt->gpa; in gvt_d_setup_vbt() 507 opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len, in gvt_d_setup_opregion() [all …]
|
| /freebsd/sys/amd64/vmm/io/ |
| H A D | iommu.c | 98 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, in IOMMU_CREATE_MAPPING() argument 103 return ((*ops->create_mapping)(domain, gpa, hpa, len, res_len)); in IOMMU_CREATE_MAPPING() 108 IOMMU_REMOVE_MAPPING(void *domain, vm_paddr_t gpa, uint64_t len, in IOMMU_REMOVE_MAPPING() argument 113 return ((*ops->remove_mapping)(domain, gpa, len, res_len)); in IOMMU_REMOVE_MAPPING() 303 iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, size_t len) in iommu_create_mapping() argument 308 for (remaining = len; remaining > 0; gpa += mapped, hpa += mapped, in iommu_create_mapping() 310 error = IOMMU_CREATE_MAPPING(dom, gpa, hpa, remaining, in iommu_create_mapping() 321 iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len) in iommu_remove_mapping() argument 326 for (remaining = len; remaining > 0; gpa += unmapped, in iommu_remove_mapping() 328 error = IOMMU_REMOVE_MAPPING(dom, gpa, remaining, &unmapped); in iommu_remove_mapping()
|
| H A D | ppt.c | 85 vm_paddr_t gpa; member 263 (void)vm_unmap_mmio(vm, seg->gpa, seg->len); in ppt_unmap_all_mmio() 370 ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) in ppt_is_mmio() argument 384 if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) in ppt_is_mmio() 516 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) in ppt_map_mmio() argument 522 if (len % PAGE_SIZE != 0 || len == 0 || gpa % PAGE_SIZE != 0 || in ppt_map_mmio() 523 hpa % PAGE_SIZE != 0 || gpa + len < gpa || hpa + len < hpa) in ppt_map_mmio() 540 error = vm_map_mmio(vm, gpa, len, hpa); in ppt_map_mmio() 542 seg->gpa = gpa; in ppt_map_mmio() 555 vm_paddr_t gpa, size_t len) in ppt_unmap_mmio() argument [all …]
|
| H A D | iommu.h | 38 typedef int (*iommu_create_mapping_t)(void *domain, vm_paddr_t gpa, 40 typedef int (*iommu_remove_mapping_t)(void *domain, vm_paddr_t gpa, 68 int iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, 70 int iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len);
|
| H A D | ppt.h | 34 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/sys/amd64/vmm/intel/ |
| H A D | vtd.c | 517 vtd_update_mapping(void *arg, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len, in vtd_update_mapping() argument 528 KASSERT(gpa + len > gpa, ("%s: invalid gpa range %#lx/%#lx", __func__, in vtd_update_mapping() 529 gpa, len)); in vtd_update_mapping() 530 KASSERT(gpa + len <= dom->maxaddr, ("%s: gpa range %#lx/%#lx beyond " in vtd_update_mapping() 531 "domain maxaddr %#lx", __func__, gpa, len, dom->maxaddr)); in vtd_update_mapping() 533 if (gpa & PAGE_MASK) in vtd_update_mapping() 534 panic("vtd_create_mapping: unaligned gpa 0x%0lx", gpa); in vtd_update_mapping() 554 (gpa & (spsize - 1)) == 0 && in vtd_update_mapping() 566 ptpindex = (gpa >> ptpshift) & 0x1FF; in vtd_update_mapping() 587 if ((gpa & ((1UL << ptpshift) - 1)) != 0) in vtd_update_mapping() [all …]
|
| /freebsd/sys/amd64/include/ |
| H A D | vmm_instruction_emul.h | 62 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa, 65 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa, 79 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, 121 uint64_t gla, int prot, uint64_t *gpa, int *is_fault); 128 uint64_t gla, int prot, uint64_t *gpa, int *is_fault);
|
| H A D | vmm_dev.h | 40 vm_paddr_t gpa; member 51 vm_paddr_t gpa; member 140 vm_paddr_t gpa; member 190 uint64_t gpa; /* in */ member 209 uint64_t gpa; member 251 uint64_t gpa; member
|
| /freebsd/sys/arm64/include/ |
| H A D | vmm_instruction_emul.h | 41 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa, 43 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa, 63 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie,
|
| /freebsd/sys/riscv/include/ |
| H A D | vmm_instruction_emul.h | 41 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa, 43 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa, 63 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie,
|
| /freebsd/sys/riscv/vmm/ |
| H A D | vmm_instruction_emul.c | 60 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 D | hn_nvs.h | 79 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,
|