search for: mmio_inst

Displaying 3 results from an estimated 3 matches for "mmio_inst".

Did you mean: mmio_insb
2005 Apr 02
1
[PATCH] VMX support for MMIO/PIO in VM8086 mode
...); - } void handle_mmio(unsigned long va, unsigned long gpa) { - unsigned long eip; - unsigned long inst_len; + unsigned long eip, eflags, cs; + unsigned long inst_len, inst_addr; struct mi_per_cpu_info *mpci_p; struct xen_regs *inst_decoder_regs; struct instruction mmio_inst; unsigned char inst[MAX_INST_LEN]; - int ret; + int vm86, ret; mpci_p = &current->arch.arch_vmx.vmx_platform.mpci; inst_decoder_regs = mpci_p->inst_decoder_regs; @@ -486,13 +534,30 @@ __vmread(GUEST_EIP, &eip); __vmread(INSTRUCTION_LEN, &inst_...
2005 Nov 03
0
[PATCH] vmx-platform-vmread.patch
...gt;eflags & X86_EFLAGS_VM; + if (vm86) + inst_addr = (regs->cs << 4) + regs->eip; + else + inst_addr = regs->eip; memset(inst, 0, MAX_INST_LEN); ret = inst_copy_from_guest(inst, inst_addr, inst_len); @@ -756,7 +746,7 @@ init_instruction(&mmio_inst); - if (vmx_decode(inst, &mmio_inst) == DECODE_failure) { + if (vmx_decode(vm86, inst, &mmio_inst) == DECODE_failure) { printf("mmio opcode: va 0x%lx, gpa 0x%lx, len %ld:", va, gpa, inst_len); for (i = 0; i < inst_len; i++) @@ -765,7 +7...
2005 Jun 30
0
[PATCH][2/10] Extend the VMX intercept mechanism to include mmio as well as portio.
..._intercept(p)){ + p->state = STATE_IORESP_READY; + vmx_io_assist(d); + return; + } evtchn_send(iopacket_port(d->domain)); vmx_wait_io(); @@ -709,6 +708,7 @@ // Send the request and waiting for return value. mpci_p->mmio_target = mmio_inst.operand[1]; send_mmio_req(gpa, &mmio_inst, value, IOREQ_READ, 0); + return; } else { // Write to MMIO if (mmio_inst.operand[0] & IMMEDIATE) { @@ -728,6 +728,7 @@ if (!strncmp((char *)mmio_inst.i_name, "stos", 4)) {...