diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2007-11-25 11:43:53 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2007-11-25 11:43:53 +0000 |
commit | a2b5673b0018f0184b4833f65a453538cf84f6f5 (patch) | |
tree | 3db44cdf515f059f4c2ddfe28a0137ff8a840d6c /xen/include/asm-x86 | |
parent | 727f3fd5fa194bb03e9e478b2fd1760f38a43546 (diff) | |
download | xen-a2b5673b0018f0184b4833f65a453538cf84f6f5.tar.gz xen-a2b5673b0018f0184b4833f65a453538cf84f6f5.tar.bz2 xen-a2b5673b0018f0184b4833f65a453538cf84f6f5.zip |
vmx realmode: Plumb through I/O port accesses in emulated realmode.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/asm-x86')
-rw-r--r-- | xen/include/asm-x86/hvm/vcpu.h | 3 | ||||
-rw-r--r-- | xen/include/asm-x86/hvm/vmx/vmcs.h | 4 | ||||
-rw-r--r-- | xen/include/asm-x86/hvm/vmx/vmx.h | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/include/asm-x86/hvm/vcpu.h index 5d653f0ff9..f6c55dba12 100644 --- a/xen/include/asm-x86/hvm/vcpu.h +++ b/xen/include/asm-x86/hvm/vcpu.h @@ -59,6 +59,9 @@ struct hvm_vcpu { bool_t flag_dr_dirty; bool_t debug_state_latch; + /* Callback function for I/O completion. */ + int (*io_complete)(void); + union { struct arch_vmx_struct vmx; struct arch_svm_struct svm; diff --git a/xen/include/asm-x86/hvm/vmx/vmcs.h b/xen/include/asm-x86/hvm/vmx/vmcs.h index 0654264b46..68d1819d32 100644 --- a/xen/include/asm-x86/hvm/vmx/vmcs.h +++ b/xen/include/asm-x86/hvm/vmx/vmcs.h @@ -92,6 +92,10 @@ struct arch_vmx_struct { unsigned long vmxassist_enabled:1; unsigned long irqbase_mode:1; unsigned char pm_irqbase[2]; +#else + bool_t real_mode_io_in_progress; + bool_t real_mode_io_completed; + unsigned long real_mode_io_data; #endif }; diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vmx/vmx.h index f6846a1d30..4787226cd3 100644 --- a/xen/include/asm-x86/hvm/vmx/vmx.h +++ b/xen/include/asm-x86/hvm/vmx/vmx.h @@ -34,6 +34,7 @@ void vmx_do_resume(struct vcpu *); void set_guest_time(struct vcpu *v, u64 gtime); void vmx_vlapic_msr_changed(struct vcpu *v); int vmx_realmode(struct cpu_user_regs *regs); +int vmx_realmode_io_complete(void); /* * Exit Reasons |