aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/intercept.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-09-19 09:12:06 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-09-19 09:12:06 +0100
commitfbe487b996b51a958844877888ed95cec36d05bc (patch)
tree3aa0b1e98502a1cd77f7062dd1e28ea019f313e7 /xen/arch/x86/hvm/intercept.c
parent7b3cb5e541601bc0d41bc92b53451bbed11a35a8 (diff)
downloadxen-fbe487b996b51a958844877888ed95cec36d05bc.tar.gz
xen-fbe487b996b51a958844877888ed95cec36d05bc.tar.bz2
xen-fbe487b996b51a958844877888ed95cec36d05bc.zip
PCI passthru: VT-d I/O hooks.
Signed-off-by: Allen Kay <allen.m.kay@intel.com> Signed-off-by: Guy Zana <guy@neocleus.com>
Diffstat (limited to 'xen/arch/x86/hvm/intercept.c')
-rw-r--r--xen/arch/x86/hvm/intercept.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
index e9712ce791..7dadea6d47 100644
--- a/xen/arch/x86/hvm/intercept.c
+++ b/xen/arch/x86/hvm/intercept.c
@@ -29,6 +29,7 @@
#include <asm/current.h>
#include <io_ports.h>
#include <xen/event.h>
+#include <asm/iommu.h>
extern struct hvm_mmio_handler hpet_mmio_handler;
@@ -243,6 +244,9 @@ int hvm_io_intercept(ioreq_t *p, int type)
int i;
unsigned long addr, size;
+ if ( (type == HVM_PORTIO) && (dpci_ioport_intercept(p)) )
+ return 1;
+
for (i = 0; i < handler->num_slot; i++) {
if( type != handler->hdl_list[i].type)
continue;