/freebsd/usr.sbin/bhyve/ |
H A D | bootrom.c | 75 uint64_t gpa; member 90 offset = addr - var.gpa; in bootrom_var_mem_handler() 138 vm_paddr_t gpa; in bootrom_alloc() local 164 if (gpa < gpa_allocbot) { in bootrom_alloc() 169 gpa = gpa_allocbot; in bootrom_alloc() 176 segoff = gpa - gpa_base; in bootrom_alloc() 184 gpa_alloctop = gpa - 1; in bootrom_alloc() 186 gpa_allocbot = gpa + len; in bootrom_alloc() 190 *gpa_out = gpa; in bootrom_alloc() 296 gpa_alloctop = var.gpa - 1; in bootrom_loadrom() [all …]
|
H A D | gdb.c | 109 uint64_t gpa; member 948 if (bp->gpa == gpa) in find_breakpoint() 959 uint64_t gpa; in gdb_cpu_breakpoint() local 1089 uint64_t gpa, gva, val; in gdb_read_mem() local 1150 gpa++; in gdb_read_mem() 1175 gpa += bytes; in gdb_read_mem() 1203 uint64_t gpa, gva, val; in gdb_write_mem() local 1268 gpa++; in gdb_write_mem() 1293 gpa += bytes; in gdb_write_mem() 1354 uint64_t gpa; in update_sw_breakpoint() local [all …]
|
H A D | mem.c | 141 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 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.c | 798 if (mm->len != 0 && gpa >= mm->gpa && gpa < mm->gpa + mm->len) in vm_mem_allocated() 934 map->gpa = gpa; in vm_mmap_memseg() 951 if (m->gpa == gpa && m->len == len && in vm_munmap_memseg() 971 if (mm->len == 0 || mm->gpa < *gpa) in vm_mmap_getnext() 973 if (mmnext == NULL || mm->gpa < mmnext->gpa) in vm_mmap_getnext() 978 *gpa = mmnext->gpa; in vm_mmap_getnext() 1060 for (gpa = mm->gpa; gpa < mm->gpa + mm->len; gpa += PAGE_SIZE) { in vm_iommu_map() 1107 for (gpa = mm->gpa; gpa < mm->gpa + mm->len; gpa += PAGE_SIZE) { in vm_iommu_unmap() 1174 if (gpa >= mm->gpa && gpa < mm->gpa + mm->len) { in _vm_gpa_hold() 1641 gpa = vme->u.inst_emul.gpa; in vm_handle_inst_emul() [all …]
|
H A D | vmm_instruction_emul.c | 1665 error = emulate_or(vcpu, gpa, vie, in emulate_group1() 1669 error = emulate_and(vcpu, gpa, vie, in emulate_group1() 1673 error = emulate_cmp(vcpu, gpa, vie, in emulate_group1() 1783 error = emulate_cmp(vcpu, gpa, vie, in vmm_emulate_instruction() 1787 error = emulate_mov(vcpu, gpa, vie, in vmm_emulate_instruction() 1792 error = emulate_movx(vcpu, gpa, vie, in vmm_emulate_instruction() 1804 error = emulate_and(vcpu, gpa, vie, in vmm_emulate_instruction() 1808 error = emulate_or(vcpu, gpa, vie, in vmm_emulate_instruction() 1812 error = emulate_sub(vcpu, gpa, vie, in vmm_emulate_instruction() 2098 *gpa = gla; in _vm_gla2gpa() [all …]
|
H A D | vmm_mem.c | 56 vmm_mmio_alloc(struct vmspace *vmspace, vm_paddr_t gpa, size_t len, in vmm_mmio_alloc() argument 83 error = vm_map_find(&vmspace->vm_map, obj, 0, &gpa, len, 0, in vmm_mmio_alloc() 108 vmm_mmio_free(struct vmspace *vmspace, vm_paddr_t gpa, size_t len) in vmm_mmio_free() argument 111 vm_map_remove(&vmspace->vm_map, gpa, gpa + len); in vmm_mmio_free()
|
H A D | vmm_dev.c | 260 vm_paddr_t gpa, maxaddr; in vmmdev_rw() local 280 gpa = uio->uio_offset; in vmmdev_rw() 281 off = gpa & PAGE_MASK; in vmmdev_rw() 796 if (kernemu->gpa >= DEFAULT_APIC_BASE && kernemu->gpa < DEFAULT_APIC_BASE + PAGE_SIZE) { in vmmdev_ioctl() 799 } else if (kernemu->gpa >= VIOAPIC_BASE && kernemu->gpa < VIOAPIC_BASE + VIOAPIC_SIZE) { in vmmdev_ioctl() 802 } else if (kernemu->gpa >= VHPET_BASE && kernemu->gpa < VHPET_BASE + VHPET_SIZE) { in vmmdev_ioctl() 814 error = mread(vcpu, kernemu->gpa, in vmmdev_ioctl() 1108 vm_paddr_t gpa; in vmmdev_mmap_single() local 1134 gpa = 0; in vmmdev_mmap_single() 1142 if (first >= gpa && last <= gpa + len) in vmmdev_mmap_single() [all …]
|
H A D | vmm_lapic.c | 189 lapic_mmio_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, in lapic_mmio_write() argument 196 off = gpa - DEFAULT_APIC_BASE; in lapic_mmio_write() 211 lapic_mmio_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, in lapic_mmio_read() argument 218 off = gpa - DEFAULT_APIC_BASE; in lapic_mmio_read()
|
/freebsd/lib/libvmmapi/ |
H A D | vmmapi.c | 236 memmap.gpa = gpa; in vm_mmap_memseg() 251 if (error == 0 && gpa == memmap.gpa) { in vm_mmap_memseg() 282 munmap.gpa = gpa; in vm_munmap_memseg() 297 memmap.gpa = *gpa; in vm_mmap_getnext() 300 *gpa = memmap.gpa; in vm_mmap_getnext() 406 ptr = mmap(base + gpa, len, PROT_RW, flags, ctx->fd, gpa); in setup_memory_segment() 417 vm_paddr_t gpa; in vm_setup_memory() local 460 gpa = 0; in vm_setup_memory() 809 gpapte.gpa = gpa; in vm_get_gpa_pmap() 837 *gpa = gg.gpa; in vm_gla2gpa() [all …]
|
H A D | ppt.c | 67 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) in vm_map_pptdev_mmio() argument 75 pptmmio.gpa = gpa; in vm_map_pptdev_mmio() 84 vm_paddr_t gpa, size_t len) in vm_unmap_pptdev_mmio() argument 92 pptmmio.gpa = gpa; in vm_unmap_pptdev_mmio()
|
H A D | vmmapi.h | 95 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); 132 int vm_get_gpa_pmap(struct vmctx *, uint64_t gpa, uint64_t *pte, int *num); 134 uint64_t gla, int prot, uint64_t *gpa, int *fault); 138 uint64_t *gpa, int *fault); 189 vm_paddr_t gpa, bool write, int size, uint64_t *value); 200 vm_paddr_t gpa, size_t len, vm_paddr_t hpa); 202 vm_paddr_t gpa, size_t len);
|
/freebsd/sys/amd64/vmm/io/ |
H A D | iommu.c | 96 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 D | ppt.c | 77 vm_paddr_t gpa; member 232 (void)vm_unmap_mmio(vm, seg->gpa, seg->len); in ppt_unmap_all_mmio() 346 ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) in ppt_is_mmio() argument 360 if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) in ppt_is_mmio() 458 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) in ppt_map_mmio() argument 465 hpa % PAGE_SIZE != 0 || gpa + len < gpa || hpa + len < hpa) in ppt_map_mmio() 478 error = vm_map_mmio(vm, gpa, len, hpa); in ppt_map_mmio() 480 seg->gpa = gpa; in ppt_map_mmio() 491 vm_paddr_t gpa, size_t len) in ppt_unmap_mmio() argument 503 if (seg->gpa == gpa && seg->len == len) { in ppt_unmap_mmio() [all …]
|
H A D | iommu.h | 38 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 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/arm64/vmm/ |
H A D | vmm.c | 98 uint64_t gpa; member 107 vm_paddr_t gpa; member 651 if (mm->len != 0 && gpa >= mm->gpa && gpa < mm->gpa + mm->len) in vm_mem_allocated() 778 vm_map_remove(&vm->vmspace->vm_map, gpa, gpa + len); in vm_mmap_memseg() 784 map->gpa = gpa; in vm_mmap_memseg() 801 if (m->gpa == gpa && m->len == len) { in vm_munmap_memseg() 820 if (mm->len == 0 || mm->gpa < *gpa) in vm_mmap_getnext() 822 if (mmnext == NULL || mm->gpa < mmnext->gpa) in vm_mmap_getnext() 827 *gpa = mmnext->gpa; in vm_mmap_getnext() 1524 if (sysmem_mapping(vm, mm) && gpa >= mm->gpa && in _vm_gpa_hold() [all …]
|
H A D | vmm_instruction_emul.c | 55 vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in vmm_emulate_instruction() argument 63 error = memread(vcpu, gpa, &val, vie->access_size, memarg); in vmm_emulate_instruction() 74 error = memwrite(vcpu, gpa, val, vie->access_size, memarg); in vmm_emulate_instruction()
|
H A D | vmm_dev.c | 204 vm_paddr_t gpa, maxaddr; in vmmdev_rw() local 224 gpa = uio->uio_offset; in vmmdev_rw() 225 off = gpa & PAGE_MASK; in vmmdev_rw() 238 if (uio->uio_rw == UIO_READ && gpa < maxaddr) in vmmdev_rw() 543 error = vm_munmap_memseg(sc->vm, mu->gpa, mu->len); in vmmdev_ioctl() 622 gg->prot, &gg->gpa, &gg->fault); in vmmdev_ioctl() 710 vm_paddr_t gpa; in vmmdev_mmap_single() local 736 gpa = 0; in vmmdev_mmap_single() 744 if (first >= gpa && last <= gpa + len) in vmmdev_mmap_single() 747 gpa += len; in vmmdev_mmap_single() [all …]
|
/freebsd/usr.sbin/bhyve/amd64/ |
H A D | pci_gvt-d.c | 140 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() 234 opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len, in gvt_d_setup_opregion() 236 if (opregion->gpa == 0) { in gvt_d_setup_opregion() 243 opregion->gva = vm_map_gpa(pi->pi_vmctx, opregion->gpa, opregion->len); in gvt_d_setup_opregion() 248 if (opregion->gpa != opregion->hpa) { in gvt_d_setup_opregion() 259 pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa); in gvt_d_setup_opregion()
|
/freebsd/sys/amd64/vmm/intel/ |
H A D | vtd.c | 526 KASSERT(gpa + len > gpa, ("%s: invalid gpa range %#lx/%#lx", __func__, in vtd_update_mapping() 527 gpa, len)); 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() 586 panic("gpa 0x%lx and ptpshift %d mismatch", gpa, ptpshift); in vtd_update_mapping() 611 vtd_remove_mapping(void *arg, vm_paddr_t gpa, uint64_t len) in vtd_remove_mapping() argument [all …]
|
/freebsd/sys/amd64/include/ |
H A D | vmm_instruction_emul.h | 37 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 D | vmm.h | 243 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off, 245 int vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len); 248 int vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa); 249 int vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len); 258 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, 263 void *vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len, 265 void *vm_gpa_hold_global(struct vm *vm, vm_paddr_t gpa, size_t len, 268 bool vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa); 457 uint64_t gpa; member 700 uint64_t gpa; member [all …]
|
/freebsd/sys/arm64/include/ |
H A D | vmm.h | 142 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off, 144 int vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len); 153 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, 158 void *vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len, 160 void *vm_gpa_hold_global(struct vm *vm, vm_paddr_t gpa, size_t len, 163 bool vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa); 166 uint64_t gla, int prot, uint64_t *gpa, int *is_fault); 259 uint64_t gpa; member 337 uint64_t gpa; member 341 uint64_t gpa; member
|
H A D | vmm_instruction_emul.h | 33 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa, 35 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa, 55 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie,
|