/illumos-gate/usr/src/cmd/bhyve/amd64/ |
H A D | vmexit.c | 103 struct vm_mmio *mmio = &entry->u.mmio; in vmentry_mmio_read() local 108 mmio->bytes = bytes; in vmentry_mmio_read() 109 mmio->read = 1; in vmentry_mmio_read() 110 mmio->gpa = gpa; in vmentry_mmio_read() 111 mmio->data = data; in vmentry_mmio_read() 118 struct vm_mmio *mmio = &entry->u.mmio; in vmentry_mmio_write() local 123 mmio->bytes = bytes; in vmentry_mmio_write() 124 mmio->read = 0; in vmentry_mmio_write() 125 mmio->gpa = gpa; in vmentry_mmio_write() 126 mmio->data = 0; in vmentry_mmio_write() [all …]
|
/illumos-gate/usr/src/test/bhyve-tests/tests/inst_emul/ |
H A D | imul.c | 40 if (vexit->u.mmio.read == 0) { in handle_test_mmio() 45 if (vexit->u.mmio.gpa < MMIO_TEST_BASE || in handle_test_mmio() 46 vexit->u.mmio.gpa >= MMIO_TEST_END) { in handle_test_mmio() 57 const uint16_t addr = vexit->u.mmio.gpa; in handle_test_mmio() 59 switch (vexit->u.mmio.bytes) { in handle_test_mmio()
|
/illumos-gate/usr/src/cmd/bhyve/common/ |
H A D | mem.c | 240 struct vm_mmio *mmio; in emulate_mem_cb() local 243 mmio = arg; in emulate_mem_cb() 245 if (mmio->read != 0) { in emulate_mem_cb() 246 err = mem_read(vcpu, paddr, &mmio->data, mmio->bytes, mr); in emulate_mem_cb() 248 err = mem_write(vcpu, paddr, mmio->data, mmio->bytes, mr); in emulate_mem_cb() 255 emulate_mem(struct vcpu *vcpu, struct vm_mmio *mmio) in emulate_mem() argument 257 return (access_memory(vcpu, mmio->gpa, emulate_mem_cb, mmio)); in emulate_mem()
|
H A D | mem.h | 55 int emulate_mem(struct vcpu *vcpu, struct vm_mmio *mmio);
|
/illumos-gate/usr/src/test/bhyve-tests/tests/common/ |
H A D | in_guest.c | 225 vexit->u.mmio.bytes, in test_fail_vmexit() 226 vexit->u.mmio.read == 0 ? "write" : "read", in test_fail_vmexit() 227 vexit->u.mmio.gpa, in test_fail_vmexit() 228 vexit->u.mmio.data); in test_fail_vmexit() 632 bcopy(&vexit->u.mmio, &ventry->u.mmio, sizeof (struct vm_mmio)); in ventry_fulfill_mmio() 633 if (ventry->u.mmio.read != 0) { in ventry_fulfill_mmio() 634 ventry->u.mmio.data = data; in ventry_fulfill_mmio() 667 if (vexit->u.mmio.gpa != addr || in vexit_match_mmio() 668 vexit->u.mmio.bytes != len || in vexit_match_mmio() 669 (vexit->u.mmio.read != 0) != is_read) { in vexit_match_mmio() [all …]
|
/illumos-gate/usr/src/uts/intel/io/amd8111s/ |
H A D | amd8111s_hw.c | 306 unsigned long mmio = pLayerPointers->pMdl->Mem_Address; in mdlReadMib() local 308 WRITE_REG16(pLayerPointers, mmio + MIB_ADDR, MIB_RD_CMD | MIB_COUNTER); in mdlReadMib() 310 status = READ_REG16(pLayerPointers, mmio + MIB_ADDR); in mdlReadMib() 313 data = READ_REG32(pLayerPointers, mmio + MIB_DATA); in mdlReadMib() 323 unsigned long mmio = pLayerPointers->pMdl->Mem_Address; in mdlReadPHY() local 327 status = READ_REG16(pLayerPointers, mmio + PHY_ACCESS); in mdlReadPHY() 337 WRITE_REG32(pLayerPointers, mmio + PHY_ACCESS, data); in mdlReadPHY() 339 status = READ_REG16(pLayerPointers, mmio + PHY_ACCESS); in mdlReadPHY() 374 unsigned long mmio = pLayerPointers->pMdl->Mem_Address; in mdlWritePHY() local 378 status = READ_REG16(pLayerPointers, mmio + PHY_ACCESS); in mdlWritePHY() [all …]
|
/illumos-gate/usr/src/uts/intel/sys/ |
H A D | vmm.h | 316 struct vm_mmio mmio; member 416 struct vm_mmio mmio; member
|
/illumos-gate/usr/src/uts/intel/io/vmm/io/ |
H A D | ppt.c | 106 struct pptseg mmio[MAX_MMIOSEGS]; member 920 seg = &ppt->mmio[i]; in ppt_unmap_all_mmio() 1031 struct pptseg *seg = &ppt->mmio[i]; in ppt_is_mmio() 1205 struct pptseg *seg = &ppt->mmio[i]; in ppt_map_mmio() 1239 struct pptseg *seg = &ppt->mmio[i]; in ppt_unmap_mmio()
|
/illumos-gate/usr/src/uts/common/io/ |
H A D | mem.c | 285 mmio(struct uio *uio, enum uio_rw rw, pfn_t pfn, off_t pageoff, int allowio, in mmio() function 393 error = mmio(uio, rw, v, in mmrw() 435 error = mmio(uio, rw, v, uio->uio_loffset & PAGEOFFSET, in mmrw()
|
/illumos-gate/usr/src/uts/intel/io/vmm/ |
H A D | vmm_instruction_emul.c | 2674 vme->u.mmio.gpa = vie->mmio_req_read.gpa; in vie_exitinfo() 2675 vme->u.mmio.data = 0; in vie_exitinfo() 2676 vme->u.mmio.bytes = vie->mmio_req_read.bytes; in vie_exitinfo() 2677 vme->u.mmio.read = 1; in vie_exitinfo() 2679 vme->u.mmio.gpa = vie->mmio_req_write.gpa; in vie_exitinfo() 2680 vme->u.mmio.data = vie->mmio_req_write.data & in vie_exitinfo() 2682 vme->u.mmio.bytes = vie->mmio_req_write.bytes; in vie_exitinfo() 2683 vme->u.mmio.read = 0; in vie_exitinfo()
|
H A D | vmm.c | 2393 err = vie_fulfill_mmio(vie, &entry->u.mmio); in vm_entry_actions()
|
/illumos-gate/usr/src/cmd/bhyvectl/ |
H A D | bhyvectl.c | 188 vmexit->u.mmio.read ? "READ" : "WRITE"); in dump_vm_run_exitcode() 189 printf("\tbytes\t\t%d\n", vmexit->u.mmio.bytes); in dump_vm_run_exitcode() 190 printf("\tgpa\t\t0x%08x\n", vmexit->u.mmio.gpa); in dump_vm_run_exitcode() 191 printf("\tdata\t\t0x%08x\n", vmexit->u.mmio.data); in dump_vm_run_exitcode()
|