diff options
author | Keir Fraser <keir@xen.org> | 2010-12-15 14:16:03 +0000 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2010-12-15 14:16:03 +0000 |
commit | 99b2c7638276d88b45839a22a77d94c35a5472a1 (patch) | |
tree | 64225af5ea2c625b53d60891bb61f03b0ff33b08 /xen/include/xen/iommu.h | |
parent | 09150fd700874bf0362f60856d9ba70944aff5ee (diff) | |
download | xen-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.h | 4 |
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); |