aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/iommu.h
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2010-12-15 14:16:03 +0000
committerKeir Fraser <keir@xen.org>2010-12-15 14:16:03 +0000
commit99b2c7638276d88b45839a22a77d94c35a5472a1 (patch)
tree64225af5ea2c625b53d60891bb61f03b0ff33b08 /xen/include/xen/iommu.h
parent09150fd700874bf0362f60856d9ba70944aff5ee (diff)
downloadxen-99b2c7638276d88b45839a22a77d94c35a5472a1.tar.gz
xen-99b2c7638276d88b45839a22a77d94c35a5472a1.tar.bz2
xen-99b2c7638276d88b45839a22a77d94c35a5472a1.zip
EPT/VT-d page table sharing
Basic idea is to leverage 2MB and 1GB page size support in EPT by having VT-d using the same page tables as EPT. When EPT page table changes, flush VT-d IOTLB cache. Signed-off-by: Weidong Han <weidong.han@intel.com> Signed-off-by: Allen Kay <allen.m.kay@intel.com>
Diffstat (limited to 'xen/include/xen/iommu.h')
-rw-r--r--xen/include/xen/iommu.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 5c6fcf3d66..934ffab059 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -30,6 +30,7 @@ extern bool_t iommu_enabled;
extern bool_t force_iommu, iommu_verbose;
extern bool_t iommu_workaround_bios_bug, iommu_passthrough;
extern bool_t iommu_snoop, iommu_qinval, iommu_intremap;
+extern bool_t iommu_hap_pt_share;
extern bool_t amd_iommu_debug;
extern bool_t amd_iommu_perdev_intremap;
@@ -84,7 +85,8 @@ int iommu_get_device_group(struct domain *d, u8 bus, u8 devfn,
int iommu_map_page(struct domain *d, unsigned long gfn, unsigned long mfn,
unsigned int flags);
int iommu_unmap_page(struct domain *d, unsigned long gfn);
-
+void iommu_pte_flush(struct domain *d, u64 gfn, u64 *pte, int present);
+void iommu_set_pgd(struct domain *d);
void iommu_domain_teardown(struct domain *d);
int hvm_do_IRQ_dpci(struct domain *d, unsigned int irq);
int dpci_ioport_intercept(ioreq_t *p);