/freebsd-11.0-release/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_instruction_emul.c | 403 emulate_mov(void *vm, int vcpuid, uint64_t gpa, struct vie *vie, argument 424 error = memwrite(vm, vcpuid, gpa, byte, size, arg); 437 error = memwrite(vm, vcpuid, gpa, val, size, arg); 447 error = memread(vm, vcpuid, gpa, &val, size, arg); 458 error = memread(vm, vcpuid, gpa, &val, size, arg); 471 error = memread(vm, vcpuid, gpa, &val, size, arg); 487 error = memwrite(vm, vcpuid, gpa, val, size, arg); 497 error = memwrite(vm, vcpuid, gpa, vie->immediate, size, arg); 507 error = memwrite(vm, vcpuid, gpa, val, size, arg); 517 emulate_movx(void *vm, int vcpuid, uint64_t gpa, struc argument 659 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 841 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 903 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 991 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 1053 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 1145 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 1345 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 1373 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 1415 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 1690 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.c | 127 vm_paddr_t gpa; member in struct:mem_map 545 vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa) argument 549 if ((obj = vmm_mmio_alloc(vm->vmspace, gpa, len, hpa)) == NULL) 556 vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len) argument 559 vmm_mmio_free(vm->vmspace, gpa, len); 564 * Return 'true' if 'gpa' is allocated in the guest address space. 570 vm_mem_allocated(struct vm *vm, int vcpuid, vm_paddr_t gpa) argument 584 if (mm->len != 0 && gpa >= mm->gpa && gpa < m 659 vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t first, size_t len, int prot, int flags) argument 725 vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, vm_ooffset_t *segoff, size_t *len, int *prot, int *flags) argument 806 vm_paddr_t gpa, hpa; local 904 vm_gpa_hold(struct vm *vm, int vcpuid, vm_paddr_t gpa, size_t len, int reqprot, void **cookie) argument 1381 uint64_t gla, gpa, cs_base; local 2498 uint64_t gpa; local [all...] |
H A D | vmm_lapic.c | 204 lapic_mmio_write(void *vm, int cpu, uint64_t gpa, uint64_t wval, int size, argument 211 off = gpa - DEFAULT_APIC_BASE; 226 lapic_mmio_read(void *vm, int cpu, uint64_t gpa, uint64_t *rval, int size, argument 233 off = gpa - DEFAULT_APIC_BASE;
|
H A D | vmm_dev.c | 174 vm_paddr_t gpa; local 191 gpa = uio->uio_offset; 192 off = gpa & PAGE_MASK; 203 hpa = vm_gpa_hold(sc->vm, VM_MAXCPU - 1, gpa, c, prot, &cookie); 433 pptmmio->func, pptmmio->gpa, pptmmio->len, 511 error = vm_mmap_getnext(sc->vm, &mm->gpa, &mm->segid, 516 error = vm_mmap_memseg(sc->vm, mm->gpa, mm->segid, mm->segoff, 572 gpapte->gpa, gpapte->pte, &gpapte->ptenum); 584 gg->prot, &gg->gpa, &gg->fault); 664 vm_paddr_t gpa; local [all...] |
/freebsd-11.0-release/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, 69 void iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, 71 void iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len);
|
H A D | iommu.c | 92 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) argument 96 return ((*ops->create_mapping)(domain, gpa, hpa, len)); 102 IOMMU_REMOVE_MAPPING(void *domain, vm_paddr_t gpa, uint64_t len) argument 106 return ((*ops->remove_mapping)(domain, gpa, len)); 231 iommu_create_mapping(void *dom, vm_paddr_t gpa, vm_paddr_t hpa, size_t len) argument 238 mapped = IOMMU_CREATE_MAPPING(dom, gpa, hpa, remaining); 239 gpa += mapped; 246 iommu_remove_mapping(void *dom, vm_paddr_t gpa, size_t len) argument 253 unmapped = IOMMU_REMOVE_MAPPING(dom, gpa, remaining); 254 gpa [all...] |
H A D | ppt.h | 34 vm_paddr_t gpa, size_t len, vm_paddr_t hpa); 40 boolean_t ppt_is_mmio(struct vm *vm, vm_paddr_t gpa);
|
H A D | ppt.c | 80 vm_paddr_t gpa; member in struct:pptseg 222 (void)vm_unmap_mmio(vm, seg->gpa, seg->len); 329 ppt_is_mmio(struct vm *vm, vm_paddr_t gpa) argument 343 if (gpa >= seg->gpa && gpa < seg->gpa + seg->len) 416 vm_paddr_t gpa, size_t len, vm_paddr_t hpa) 430 error = vm_map_mmio(vm, gpa, len, hpa); 432 seg->gpa 415 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);
|
H A D | vhpet.c | 470 vhpet_mmio_write(void *vm, int vcpuid, uint64_t gpa, uint64_t val, int size, argument 480 offset = gpa - VHPET_BASE; 620 vhpet_mmio_read(void *vm, int vcpuid, uint64_t gpa, uint64_t *rval, int size, argument 628 offset = gpa - VHPET_BASE;
|
/freebsd-11.0-release/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 | 181 int vm_mmap_memseg(struct vm *vm, vm_paddr_t gpa, int segid, vm_ooffset_t off, 185 int vm_map_mmio(struct vm *vm, vm_paddr_t gpa, size_t len, vm_paddr_t hpa); 186 int vm_unmap_mmio(struct vm *vm, vm_paddr_t gpa, size_t len); 195 int vm_mmap_getnext(struct vm *vm, vm_paddr_t *gpa, int *segid, 199 void *vm_gpa_hold(struct vm *, int vcpuid, vm_paddr_t gpa, size_t len, 202 bool vm_mem_allocated(struct vm *vm, int vcpuid, vm_paddr_t gpa); 369 uint64_t gpa; member in struct:vm_copyinfo 584 uint64_t gpa; member in struct:vm_exit::__anon7108::__anon7109 588 uint64_t gpa; member in struct:vm_exit::__anon7108::__anon7110
|
/freebsd-11.0-release/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.0-release/usr.sbin/bhyve/ |
H A D | bootrom.c | 53 vm_paddr_t gpa; local 93 gpa = (1ULL << 32) - sbuf.st_size; 94 if (vm_mmap_memseg(ctx, gpa, VM_BOOTROM, 0, sbuf.st_size, prot) != 0)
|
H A D | mem.c | 138 mem_read(void *ctx, int vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) argument 143 error = (*mr->handler)(ctx, vcpu, MEM_F_READ, gpa, size, 149 mem_write(void *ctx, int vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) argument 154 error = (*mr->handler)(ctx, vcpu, MEM_F_WRITE, gpa, size,
|
H A D | mptbl.c | 102 mpt_build_mpfp(mpfps_t mpfp, vm_paddr_t gpa) argument 107 mpfp->pap = gpa + sizeof(*mpfp);
|
/freebsd-11.0-release/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.0-release/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 874 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 1147 vm_get_gpa_pmap(struct vmctx *ctx, uint64_t gpa, uint64_t *pte, int *num) argument 1180 vm_gla2gpa(struct vmctx *ctx, int vcpu, struct vm_guest_paging *paging, uint64_t gla, int prot, uint64_t *gpa, int *fault) argument 1210 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, 110 int vm_get_gpa_pmap(struct vmctx *, uint64_t gpa, uint64_t *pte, int *num); 112 uint64_t gla, int prot, uint64_t *gpa, int *fault); 155 vm_paddr_t gpa, size_t len, vm_paddr_t hpa);
|