diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-02-22 18:32:41 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-02-22 18:32:41 +0000 |
commit | 2ea2f369eb3aae4a9bfaa86ce51c31a5258ee20f (patch) | |
tree | 6a872eaf316eb132693dcefac373fd7a9fd668b4 /xen/include/asm-x86/x86_emulate.h | |
parent | 15adfd0426ab8db33c0a26022b8440b836cc1cd4 (diff) | |
download | xen-2ea2f369eb3aae4a9bfaa86ce51c31a5258ee20f.tar.gz xen-2ea2f369eb3aae4a9bfaa86ce51c31a5258ee20f.tar.bz2 xen-2ea2f369eb3aae4a9bfaa86ce51c31a5258ee20f.zip |
hvm: More emulation changes: push some of the realmode or HVM-emulate
specific stuff into core x86_emulate().
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/asm-x86/x86_emulate.h')
-rw-r--r-- | xen/include/asm-x86/x86_emulate.h | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/xen/include/asm-x86/x86_emulate.h b/xen/include/asm-x86/x86_emulate.h index e42d2aa54f..4ffdac75f3 100644 --- a/xen/include/asm-x86/x86_emulate.h +++ b/xen/include/asm-x86/x86_emulate.h @@ -318,11 +318,6 @@ struct x86_emulate_ops uint64_t val, struct x86_emulate_ctxt *ctxt); - /* write_rflags: Modify privileged bits in RFLAGS. */ - int (*write_rflags)( - unsigned long val, - struct x86_emulate_ctxt *ctxt); - /* wbinvd: Write-back and invalidate cache contents. */ int (*wbinvd)( struct x86_emulate_ctxt *ctxt); @@ -335,14 +330,10 @@ struct x86_emulate_ops unsigned int *edx, struct x86_emulate_ctxt *ctxt); - /* hlt: Emulate HLT. */ - int (*hlt)( - struct x86_emulate_ctxt *ctxt); - /* inject_hw_exception */ int (*inject_hw_exception)( uint8_t vector, - uint16_t error_code, + int32_t error_code, struct x86_emulate_ctxt *ctxt); /* inject_sw_interrupt */ @@ -376,7 +367,17 @@ struct x86_emulate_ctxt unsigned int sp_size; /* Set this if writes may have side effects. */ - int force_writeback; + uint8_t force_writeback; + + /* Retirement state, set by the emulator (valid only on X86EMUL_OKAY). */ + union { + struct { + uint8_t hlt:1; /* Instruction HLTed. */ + uint8_t mov_ss:1; /* Instruction sets MOV-SS irq shadow. */ + uint8_t sti:1; /* Instruction sets STI irq shadow. */ + } flags; + uint8_t byte; + } retire; }; /* |