Displaying 3 results from an estimated 3 matches for "inst_decoder_reg".
Did you mean:
inst_decoder_regs
2005 Apr 02
1
[PATCH] VMX support for MMIO/PIO in VM8086 mode
...86,
+ (inst+1), thread_inst->op_size);
break;
-
case 0x0f:
break;
default:
@@ -425,6 +466,7 @@
struct exec_domain *d = current;
vcpu_iodata_t *vio;
ioreq_t *p;
+ int vm86;
struct mi_per_cpu_info *mpci_p;
struct xen_regs *inst_decoder_regs;
extern long evtchn_send(int lport);
@@ -432,53 +474,59 @@
mpci_p = ¤t->arch.arch_vmx.vmx_platform.mpci;
inst_decoder_regs = mpci_p->inst_decoder_regs;
+
vio = (vcpu_iodata_t *) d->arch.arch_vmx.vmx_platform.shared_page_va;
-
if (vio == NULL) {...
2005 Jun 30
0
[PATCH][2/10] Extend the VMX intercept mechanism to include mmio as well as portio.
...48 2005
+++ b/xen/arch/x86/vmx_platform.c Thu Jun 30 04:08:50 2005
@@ -606,12 +606,11 @@
if ((pvalid) && vmx_paging_enabled(current))
p->u.pdata = (void *) gva_to_gpa(p->u.data);
-#if 0
- printf("send_mmio_req: eip 0x%lx:0x%lx, dir %d, pdata_valid %d, ",
- inst_decoder_regs->cs, inst_decoder_regs->eip, p->dir, p->pdata_valid);
- printf("port_mm %d, size %lld, addr 0x%llx, value 0x%lx, count %lld\n",
- p->port_mm, p->size, p->addr, value, p->count);
-#endif
+ if (vmx_mmio_intercept(p)){
+ p->state = STATE_IORESP_READY;...
2005 Nov 03
0
[PATCH] vmx-platform-vmread.patch
...ong va, unsigned long gpa)
{
- unsigned long eip, eflags, cs;
unsigned long inst_len, inst_addr;
struct mmio_op *mmio_opp;
struct cpu_user_regs *regs;
@@ -734,18 +725,17 @@
int i, vm86, ret;
mmio_opp = ¤t->arch.arch_vmx.mmio_op;
+
regs = mmio_opp->inst_decoder_regs;
-
- __vmread(GUEST_RIP, &eip);
+ store_cpu_user_regs(regs);
+
__vmread(VM_EXIT_INSTRUCTION_LEN, &inst_len);
- __vmread(GUEST_RFLAGS, &eflags);
- vm86 = eflags & X86_EFLAGS_VM;
-
- if (vm86) {
- __vmread(GUEST_CS_SELECTOR, &cs);
- inst_addr = (...