/freebsd-11-stable/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 | 59 vmm_mmio_alloc(struct vmspace *vmspace, vm_paddr_t gpa, size_t len, argument 86 error = vm_map_find(&vmspace->vm_map, obj, 0, &gpa, len, 0, 111 vmm_mmio_free(struct vmspace *vmspace, vm_paddr_t gpa, size_t len) argument 114 vm_map_remove(&vmspace->vm_map, gpa, gpa + len);
|
H A D | vmm_lapic.h | 40 int lapic_mmio_read(void *vm, int cpu, uint64_t gpa, 42 int lapic_mmio_write(void *vm, int cpu, uint64_t gpa,
|
H A D | vmm.c | 128 vm_paddr_t gpa; member in struct:mem_map 587 vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) argument 591 if ((obj = vmm_mmio_alloc(vm->vmspace, gpa, len, hpa)) == NULL) 598 vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len) argument 601 vmm_mmio_free(vm->vmspace, gpa, len); 606 * Return 'true' if 'gpa' is allocated in the guest address space. 612 vm_mem_allocated(struct vm *vm, int vcpuid, vm_paddr_t gpa) argument 626 if (mm->len != 0 && gpa >= mm->gpa && gpa < m 701 vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, size_t len, int prot, int flags) argument 767 vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, vm_ooffset_t *segoff, size_t *len, int *prot, int *flags) argument 848 vm_paddr_t gpa, hpa; local 948 vm_gpa_hold(struct vm *vm, int vcpuid, vm_paddr_t gpa, size_t len, int reqprot, void **cookie) argument 1425 uint64_t gla, gpa, cs_base; local 2544 uint64_t gpa; local [all...] |
H A D | vmm_lapic.c | 198 lapic_mmio_write(void *vm, int cpu, uint64_t gpa, uint64_t wval, int size, argument 205 off = gpa - DEFAULT_APIC_BASE; 220 lapic_mmio_read(void *vm, int cpu, uint64_t gpa, uint64_t *rval, int size, argument 227 off = gpa - DEFAULT_APIC_BASE;
|
H A D | vmm_instruction_emul.c | 494 emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, argument 515 error = memwrite(vm, vcpuid, gpa, byte, size, arg); 528 error = memwrite(vm, vcpuid, gpa, val, size, arg); 538 error = memread(vm, vcpuid, gpa, &val, size, arg); 549 error = memread(vm, vcpuid, gpa, &val, size, arg); 562 error = memread(vm, vcpuid, gpa, &val, size, arg); 578 error = memwrite(vm, vcpuid, gpa, val, size, arg); 588 error = memwrite(vm, vcpuid, gpa, vie->immediate, size, arg); 598 error = memwrite(vm, vcpuid, gpa, val, size, arg); 608 emulate_movx(void *vm, int vcpuid, uint64_t gpa, struc argument 750 emulate_movs(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 932 emulate_stos(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 994 emulate_and(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1082 emulate_or(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1170 emulate_cmp(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1262 emulate_test(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1311 emulate_add(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1367 emulate_sub(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *arg) argument 1567 emulate_group1(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) argument 1595 emulate_bittest(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) argument 1637 emulate_twob_group15(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) argument 1668 vmm_emulate_instruction(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, struct vm_guest_paging *paging, mem_region_read_t memread, mem_region_write_t memwrite, void *memarg) argument 1955 vm_gla2gpa(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *guest_fault) argument [all...] |
H A D | vmm_dev.c | 178 vm_paddr_t gpa, maxaddr; local 198 gpa = uio->uio_offset; 199 off = gpa & PAGE_MASK; 210 hpa = vm_gpa_hold(sc->vm, lastcpu, gpa, c, 213 if (uio->uio_rw == UIO_READ && gpa < maxaddr) 442 pptmmio->func, pptmmio->gpa, pptmmio->len, 520 error = vm_mmap_getnext(sc->vm, &mm->gpa, &mm->segid, 525 error = vm_mmap_memseg(sc->vm, mm->gpa, mm->segid, mm->segoff, 581 gpapte->gpa, gpapte->pte, &gpapte->ptenum); 593 gg->prot, &gg->gpa, 684 vm_paddr_t gpa; local [all...] |
/freebsd-11-stable/sys/amd64/vmm/io/ |
H A D | vhpet.h | 38 int vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, 40 int vhpet_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *val,
|
H A D | vioapic.h | 43 int vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, 45 int vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa,
|
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); 40 bool ppt_is_mmio(struct vm *vm, vm_paddr_t gpa);
|
H A D | iommu.c | 98 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) argument 102 return ((*ops->create_mapping)(domain, gpa, hpa, len)); 108 IOMMU_REMOVE_MAPPING(void *domain, vm_paddr_t gpa, uint64_t len) argument 112 return ((*ops->remove_mapping)(domain, gpa, len)); 285 iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, size_t len) argument 292 mapped = IOMMU_CREATE_MAPPING(dom, gpa, hpa, remaining); 293 gpa += mapped; 300 iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len) argument 307 unmapped = IOMMU_REMOVE_MAPPING(dom, gpa, remaining); 308 gpa [all...] |
H A D | ppt.c | 80 vm_paddr_t gpa; member in struct:pptseg 227 (void)vm_unmap_mmio(vm, seg->gpa, seg->len); 341 ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) argument 355 if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) 446 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) 460 error = vm_map_mmio(vm, gpa, len, hpa); 462 seg->gpa 445 ppt_map_mmio(struct vm *vm, int bus, int slot, int func, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) argument [all...] |
H A D | vioapic.c | 376 vioapic_mmio_rw(struct vioapic *vioapic, int vcpuid, uint64_t gpa, argument 381 offset = gpa - VIOAPIC_BASE; 414 vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *rval, argument 421 error = vioapic_mmio_rw(vioapic, vcpuid, gpa, rval, size, true); 426 vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t wval, argument 433 error = vioapic_mmio_rw(vioapic, vcpuid, gpa, &wval, size, false);
|
/freebsd-11-stable/sys/amd64/include/ |
H A D | vmm_instruction_emul.h | 37 typedef int (*mem_region_read_t)(void *vm, int cpuid, uint64_t gpa, 40 typedef int (*mem_region_write_t)(void *vm, int cpuid, uint64_t gpa, 47 * containing 'gpa'. 'mrarg' is an opaque argument that is passed into the 54 int vmm_emulate_instruction(void *vm, int cpuid, 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);
|
H A D | vmm_dev.h | 38 vm_paddr_t gpa; member in struct:vm_memmap 121 vm_paddr_t gpa; member in struct:vm_pptdev_mmio 170 uint64_t gpa; /* in */ member in struct:vm_gpa_pte 189 uint64_t gpa; member in struct:vm_gla2gpa
|
H A D | vmm.h | 196 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off, 200 int vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa); 201 int vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len); 210 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, 215 void *vm_gpa_hold(struct vm *, int vcpuid, vm_paddr_t gpa, size_t len, 218 bool vm_mem_allocated(struct vm *vm, int vcpuid, vm_paddr_t gpa); 385 uint64_t gpa; member in struct:vm_copyinfo 601 uint64_t gpa; member in struct:vm_exit::__anon4079::__anon4080 605 uint64_t gpa; member in struct:vm_exit::__anon4079::__anon4081
|
/freebsd-11-stable/sys/amd64/vmm/amd/ |
H A D | amdv.c | 84 amd_iommu_create_mapping(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, argument 93 amd_iommu_remove_mapping(void *domain, vm_paddr_t gpa, uint64_t len) argument
|
/freebsd-11-stable/sys/dev/hyperv/netvsc/ |
H A D | hn_nvs.h | 81 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, int gpa_cnt) 90 return (hn_nvs_send_sglist(chan, gpa, gpa_cnt, 101 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, 80 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-11-stable/usr.sbin/bhyve/ |
H A D | bootrom.c | 55 vm_paddr_t gpa; local 95 gpa = (1ULL << 32) - sbuf.st_size; 96 if (vm_mmap_memseg(ctx, gpa, VM_BOOTROM, 0, sbuf.st_size, prot) != 0)
|
H A D | mem.c | 143 mem_read(void *ctx, int vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) argument 148 error = (*mr->handler)(ctx, vcpu, MEM_F_READ, gpa, size, 154 mem_write(void *ctx, int vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) argument 159 error = (*mr->handler)(ctx, vcpu, MEM_F_WRITE, gpa, size,
|
H A D | mptbl.c | 104 mpt_build_mpfp(mpfps_t mpfp, vm_paddr_t gpa) argument 109 mpfp->pap = gpa + sizeof(*mpfp);
|
/freebsd-11-stable/sys/amd64/vmm/intel/ |
H A D | vtd.c | 440 vtd_update_mapping(void *arg, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len, argument 451 KASSERT(gpa + len > gpa, ("%s: invalid gpa range %#lx/%#lx", __func__, 452 gpa, len)); 453 KASSERT(gpa + len <= dom->maxaddr, ("%s: gpa range %#lx/%#lx beyond " 454 "domain maxaddr %#lx", __func__, gpa, len, dom->maxaddr)); 456 if (gpa & PAGE_MASK) 457 panic("vtd_create_mapping: unaligned gpa 529 vtd_create_mapping(void *arg, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) argument 536 vtd_remove_mapping(void *arg, vm_paddr_t gpa, uint64_t len) argument [all...] |
/freebsd-11-stable/lib/libvmmapi/ |
H A D | vmmapi.c | 196 * Map segment 'segid' starting at 'off' into guest address range [gpa,gpa+len). 199 vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid, vm_ooffset_t off, argument 205 memmap.gpa = gpa; 219 error = vm_mmap_getnext(ctx, &gpa, &segid, &off, &len, &prot, &flags); 220 if (error == 0 && gpa == memmap.gpa) { 235 vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, argument 242 memmap.gpa 335 setup_memory_segment(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char *base) argument 361 vm_paddr_t gpa; local 873 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 1146 vm_get_gpa_pmap(struct vmctx *ctx, uint64_t gpa, uint64_t *pte, int *num) argument 1179 vm_gla2gpa(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *fault) argument 1209 uint64_t gpa; local [all...] |
H A D | vmmapi.h | 83 * that starts at an address >= *gpa. 87 int vm_mmap_getnext(struct vmctx *ctx, vm_paddr_t *gpa, int *segid, 99 * at [gpa,gpa+len) with protection 'prot'. 101 int vm_mmap_memseg(struct vmctx *ctx, vm_paddr_t gpa, int segid, 111 int vm_get_gpa_pmap(struct vmctx *, uint64_t gpa, uint64_t *pte, int *num); 113 uint64_t gla, int prot, uint64_t *gpa, int *fault); 156 vm_paddr_t gpa, size_t len, vm_paddr_t hpa);
|