/freebsd-current/sys/amd64/vmm/ |
H A D | vmm_mem.h | 36 struct vm_object *vmm_mmio_alloc(struct vmspace *, vm_paddr_t gpa, size_t len, 38 void vmm_mmio_free(struct vmspace *, vm_paddr_t gpa, size_t size);
|
H A D | vmm_mem.c | 56 vmm_mmio_alloc(struct vmspace *vmspace, vm_paddr_t gpa, size_t len, argument 83 error = vm_map_find(&vmspace->vm_map, obj, 0, &gpa, len, 0, 108 vmm_mmio_free(struct vmspace *vmspace, vm_paddr_t gpa, size_t len) argument 111 vm_map_remove(&vmspace->vm_map, gpa, gpa + len);
|
H A D | vmm_lapic.h | 39 int lapic_mmio_read(struct vcpu *vcpu, uint64_t gpa, 41 int lapic_mmio_write(struct vcpu *vcpu, uint64_t gpa,
|
H A D | vmm.c | 141 vm_paddr_t gpa; member in struct:mem_map 758 vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) argument 762 if ((obj = vmm_mmio_alloc(vm->vmspace, gpa, len, hpa)) == NULL) 769 vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len) argument 772 vmm_mmio_free(vm->vmspace, gpa, len); 777 * Return 'true' if 'gpa' is allocated in the guest address space. 783 vm_mem_allocated(struct vcpu *vcpu, vm_paddr_t gpa) argument 798 if (mm->len != 0 && gpa >= mm->gpa && gpa < m 877 vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, size_t len, int prot, int flags) argument 944 vm_munmap_memseg(struct vm *vm, vm_paddr_t gpa, size_t len) argument 962 vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, vm_ooffset_t *segoff, size_t *len, int *prot, int *flags) argument 1042 vm_paddr_t gpa, hpa; local 1089 vm_paddr_t gpa; local 1160 _vm_gpa_hold(struct vm *vm, vm_paddr_t gpa, size_t len, int reqprot, void **cookie) argument 1191 vm_gpa_hold(struct vcpu *vcpu, vm_paddr_t gpa, size_t len, int reqprot, void **cookie) argument 1207 vm_gpa_hold_global(struct vm *vm, vm_paddr_t gpa, size_t len, int reqprot, void **cookie) argument 1628 uint64_t gla, gpa, cs_base; local 2782 uint64_t gpa; local [all...] |
H A D | vmm_instruction_emul.c | 508 emulate_mov(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, argument 529 error = memwrite(vcpu, gpa, byte, size, arg); 542 error = memwrite(vcpu, gpa, val, size, arg); 552 error = memread(vcpu, gpa, &val, size, arg); 563 error = memread(vcpu, gpa, &val, size, arg); 576 error = memread(vcpu, gpa, &val, size, arg); 592 error = memwrite(vcpu, gpa, val, size, arg); 602 error = memwrite(vcpu, gpa, vie->immediate, size, arg); 612 error = memwrite(vcpu, gpa, val, size, arg); 622 emulate_movx(struct vcpu *vcpu, uint64_t gpa, struc argument 763 emulate_movs(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 945 emulate_stos(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging __unused, mem_region_read_t memread __unused, mem_region_write_t memwrite, void *arg) argument 1007 emulate_and(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1095 emulate_or(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1183 emulate_cmp(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *arg) argument 1275 emulate_test(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *arg) argument 1324 emulate_bextr(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *arg) argument 1401 emulate_add(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *arg) argument 1457 emulate_sub(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *arg) argument 1657 emulate_group1(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging __unused, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) argument 1685 emulate_bittest(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *memarg) argument 1728 emulate_twob_group15(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite __unused, void *memarg) argument 1760 vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) argument 2065 _vm_gla2gpa(struct vcpu *vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *guest_fault, bool check_only) argument 2266 vm_gla2gpa(struct vcpu *vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *guest_fault) argument 2275 vm_gla2gpa_nofault(struct vcpu *vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *guest_fault) argument [all...] |
/freebsd-current/sys/amd64/vmm/io/ |
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);
|
H A D | vhpet.h | 41 int vhpet_mmio_write(struct vcpu *vcpu, uint64_t gpa, uint64_t val, 43 int vhpet_mmio_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *val,
|
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 | vioapic.h | 46 int vioapic_mmio_write(struct vcpu *vcpu, uint64_t gpa, 48 int vioapic_mmio_read(struct vcpu *vcpu, uint64_t gpa,
|
H A D | iommu.c | 96 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) argument 100 return ((*ops->create_mapping)(domain, gpa, hpa, len)); 106 IOMMU_REMOVE_MAPPING(void *domain, vm_paddr_t gpa, uint64_t len) argument 110 return ((*ops->remove_mapping)(domain, gpa, len)); 284 iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, size_t len) argument 291 mapped = IOMMU_CREATE_MAPPING(dom, gpa, hpa, remaining); 292 gpa += mapped; 299 iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len) argument 306 unmapped = IOMMU_REMOVE_MAPPING(dom, gpa, remaining); 307 gpa [all...] |
H A D | ppt.c | 77 vm_paddr_t gpa; member in struct:pptseg 232 (void)vm_unmap_mmio(vm, seg->gpa, seg->len); 346 ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) argument 360 if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) 458 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) 464 if (len % PAGE_SIZE != 0 || len == 0 || gpa % PAGE_SIZE != 0 || 465 hpa % PAGE_SIZE != 0 || gpa 457 ppt_map_mmio(struct vm *vm, int bus, int slot, int func, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) argument 490 ppt_unmap_mmio(struct vm *vm, int bus, int slot, int func, vm_paddr_t gpa, size_t len) argument [all...] |
/freebsd-current/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, 47 * containing 'gpa'. 'mrarg' is an opaque argument that is passed into the 54 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, 91 * 0 0 'gpa' contains result of the translation 96 uint64_t gla, int prot, uint64_t *gpa, int *is_fault); 103 uint64_t gla, int prot, uint64_t *gpa, int *is_fault);
|
/freebsd-current/usr.sbin/bhyve/ |
H A D | bootrom.c | 75 uint64_t gpa; member in struct:bootrom_var_state 90 offset = addr - var.gpa; 138 vm_paddr_t gpa; local 163 gpa = (gpa_alloctop - len) + 1; 164 if (gpa < gpa_allocbot) { 169 gpa = gpa_allocbot; 170 if (gpa > (gpa_alloctop - len) + 1) { 176 segoff = gpa - gpa_base; 177 if (vm_mmap_memseg(ctx, gpa, VM_BOOTROM, segoff, len, prot) != 0) { 184 gpa_alloctop = gpa [all...] |
H A D | mem.h | 57 int read_mem(struct vcpu *vpu, uint64_t gpa, uint64_t *rval, int size); 61 int write_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size);
|
H A D | gdb.c | 109 uint64_t gpa; member in struct:breakpoint 943 find_breakpoint(uint64_t gpa) argument 948 if (bp->gpa == gpa) 959 uint64_t gpa; local 968 error = guest_vaddr2paddr(vcpu, guest_pc(vmexit), &gpa); 970 bp = find_breakpoint(gpa); 990 bp = find_breakpoint(gpa); 1089 uint64_t gpa, gva, val; local 1116 error = guest_vaddr2paddr(vcpus[cur_vcpu], gva, &gpa); 1203 uint64_t gpa, gva, val; local 1354 uint64_t gpa; 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) argument 150 error = (*mr->handler)(vcpu, MEM_F_READ, gpa, size, rval, mr->arg1, 156 mem_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) argument 161 error = (*mr->handler)(vcpu, MEM_F_WRITE, gpa, size, &wval, mr->arg1, 268 read_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size) argument 275 return (access_memory(vcpu, gpa, rw_mem_cb, &rma)); 279 write_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size) argument 286 return (access_memory(vcpu, gpa, rw_mem_cb, &rma));
|
/freebsd-current/sys/amd64/vmm/amd/ |
H A D | amdv.c | 81 amd_iommu_create_mapping(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, argument 90 amd_iommu_remove_mapping(void *domain, vm_paddr_t gpa, uint64_t len) argument
|
/freebsd-current/sys/arm64/include/ |
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, 48 * containing 'gpa'. 'mrarg' is an opaque argument that is passed into the 55 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie,
|
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 in struct:vm_copyinfo 337 uint64_t gpa; member in struct:vm_exit::__anon62::__anon65 341 uint64_t gpa; member in struct:vm_exit::__anon62::__anon66 [all...] |
/freebsd-current/lib/libvmmapi/ |
H A D | ppt.c | 67 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) 75 pptmmio.gpa = gpa; 84 vm_paddr_t gpa, size_t len) 92 pptmmio.gpa = gpa; 66 vm_map_pptdev_mmio(struct vmctx *ctx, int bus, int slot, int func, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) argument 83 vm_unmap_pptdev_mmio(struct vmctx *ctx, int bus, int slot, int func, vm_paddr_t gpa, size_t len) argument
|
H A D | vmmapi.c | 227 * Map segment 'segid' starting at 'off' into guest address range [gpa,gpa+len). 230 vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid, vm_ooffset_t off, argument 236 memmap.gpa = gpa; 250 error = vm_mmap_getnext(ctx, &gpa, &segid, &off, &len, &prot, &flags); 251 if (error == 0 && gpa == memmap.gpa) { 277 vm_munmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, size_t len) argument 282 munmap.gpa 290 vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, vm_ooffset_t *segoff, size_t *len, int *prot, int *flags) argument 391 setup_memory_segment(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char *base) argument 417 vm_paddr_t gpa; local 803 vm_get_gpa_pmap(struct vmctx *ctx, uint64_t gpa, uint64_t *pte, int *num) argument 823 vm_gla2gpa(struct vcpu *vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *fault) argument 844 vm_gla2gpa_nofault(struct vcpu *vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *fault) argument 874 uint64_t gpa, off; local [all...] |
H A D | vmmapi.h | 91 * that starts at an address >= *gpa. 95 int vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, 111 * at [gpa,gpa+len) with protection 'prot'. 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, boo [all...] |
/freebsd-current/sys/dev/hyperv/netvsc/ |
H A D | hn_nvs.h | 79 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, int gpa_cnt) 88 return (hn_nvs_send_sglist(chan, gpa, gpa_cnt, 99 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, 78 hn_nvs_send_rndis_sglist(struct vmbus_channel *chan, uint32_t rndis_mtype, struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, int gpa_cnt) argument
|
/freebsd-current/sys/arm64/vmm/ |
H A D | vmm_instruction_emul.c | 55 vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, argument 63 error = memread(vcpu, gpa, &val, vie->access_size, memarg); 74 error = memwrite(vcpu, gpa, val, vie->access_size, memarg);
|
/freebsd-current/usr.sbin/bhyve/amd64/ |
H A D | pci_gvt-d.c | 140 gsm->gpa = gvt_d_alloc_mmio_memory(gsm->hpa, gsm->len, 142 if (gsm->gpa == 0) { 149 if (gsm->gpa != gsm->hpa) { 174 gsm->gpa | (bdsm & (PCIM_BDSM_GSM_ALIGNMENT - 1))); 234 opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len, 236 if (opregion->gpa == 0) { 243 opregion->gva = vm_map_gpa(pi->pi_vmctx, opregion->gpa, opregion->len); 248 if (opregion->gpa != opregion->hpa) { 259 pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa);
|