summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/kvm_emulate.h
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-11-22 16:53:21 +0100
committerAvi Kivity <avi@redhat.com>2011-01-12 10:29:53 +0100
commitda9cb575b1127f84984b8ad6d973dcc05ac036dd (patch)
treee0269a888731c630c9b64693b21d24b2821da362 /arch/x86/include/asm/kvm_emulate.h
parentKVM: MMU: delay flush all tlbs on sync_page path (diff)
downloadlinux-da9cb575b1127f84984b8ad6d973dcc05ac036dd.tar.xz
linux-da9cb575b1127f84984b8ad6d973dcc05ac036dd.zip
KVM: x86 emulator: introduce struct x86_exception to communicate faults
Introduce a structure that can contain an exception to be passed back to main kvm code. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/kvm_emulate.h')
-rw-r--r--arch/x86/include/asm/kvm_emulate.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
index b48c133c95ab..b7c11270ae8f 100644
--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -15,6 +15,12 @@
struct x86_emulate_ctxt;
+struct x86_exception {
+ u8 vector;
+ bool error_code_valid;
+ u16 error_code;
+};
+
/*
* x86_emulate_ops:
*
@@ -229,9 +235,8 @@ struct x86_emulate_ctxt {
bool perm_ok; /* do not check permissions if true */
- int exception; /* exception that happens during emulation or -1 */
- u32 error_code; /* error code for exception */
- bool error_code_valid;
+ bool have_exception;
+ struct x86_exception exception;
/* decode cache */
struct decode_cache decode;