aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-03-26 19:00:57 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-03-26 19:00:57 +0000
commite42bc32ad5453faa9afe99628b4fad5f1bcc59e7 (patch)
tree81cf2376d54733e68743dfff1e8386e46c341b3d /xen/include/asm-x86
parent0f085d76ff55638b68e68bd189fd858d24566211 (diff)
downloadxen-e42bc32ad5453faa9afe99628b4fad5f1bcc59e7.tar.gz
xen-e42bc32ad5453faa9afe99628b4fad5f1bcc59e7.tar.bz2
xen-e42bc32ad5453faa9afe99628b4fad5f1bcc59e7.zip
x86_emulate: Clean up HVM emulated I/O handling.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/asm-x86')
-rw-r--r--xen/include/asm-x86/hvm/io.h5
-rw-r--r--xen/include/asm-x86/hvm/vcpu.h12
2 files changed, 9 insertions, 8 deletions
diff --git a/xen/include/asm-x86/hvm/io.h b/xen/include/asm-x86/hvm/io.h
index 8164742e01..8fd631d8cf 100644
--- a/xen/include/asm-x86/hvm/io.h
+++ b/xen/include/asm-x86/hvm/io.h
@@ -96,11 +96,6 @@ static inline int register_buffered_io_handler(
return register_io_handler(d, addr, size, action, HVM_BUFFERED_IO);
}
-void send_mmio_req(unsigned char type, paddr_t gpa,
- unsigned long count, int size, paddr_t value,
- int dir, int df, int value_is_ptr);
-void send_pio_req(unsigned long port, unsigned long count, int size,
- paddr_t value, int dir, int df, int value_is_ptr);
void send_timeoffset_req(unsigned long timeoff);
void send_invalidate_req(void);
int handle_mmio(void);
diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/include/asm-x86/hvm/vcpu.h
index 7439434b85..0c76551575 100644
--- a/xen/include/asm-x86/hvm/vcpu.h
+++ b/xen/include/asm-x86/hvm/vcpu.h
@@ -29,6 +29,14 @@
#define HVM_VCPU_INIT_SIPI_SIPI_STATE_NORM 0
#define HVM_VCPU_INIT_SIPI_SIPI_STATE_WAIT_SIPI 1
+enum hvm_io_state {
+ HVMIO_none = 0,
+ HVMIO_dispatched,
+ HVMIO_awaiting_completion,
+ HVMIO_handle_mmio_awaiting_completion,
+ HVMIO_completed
+};
+
struct hvm_vcpu {
/* Guest control-register and EFER values, just as the guest sees them. */
unsigned long guest_cr[5];
@@ -70,9 +78,7 @@ struct hvm_vcpu {
u8 cache_mode;
/* I/O request in flight to device model. */
- bool_t mmio_in_progress;
- bool_t io_in_progress;
- bool_t io_completed;
+ enum hvm_io_state io_state;
unsigned long io_data;
};