diff xen/include/xen/iommu.h @ 19800:78962f85c562

IOMMU: Add two generic functions to vendor neutral interface

Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 19 08:41:50 2009 +0100 (2009-06-19)
parents 4fb8a6c993e2
line diff
     1.1 --- a/xen/include/xen/iommu.h	Thu Jun 18 15:32:48 2009 +0100
     1.2 +++ b/xen/include/xen/iommu.h	Fri Jun 19 08:41:50 2009 +0100
     1.3 @@ -107,10 +107,14 @@ struct iommu_ops {
     1.4      int (*get_device_group_id)(u8 bus, u8 devfn);
     1.5      void (*update_ire_from_apic)(unsigned int apic, unsigned int reg, unsigned int value);
     1.6      void (*update_ire_from_msi)(struct msi_desc *msi_desc, struct msi_msg *msg);
     1.7 +    void (*read_msi_from_ire)(struct msi_desc *msi_desc, struct msi_msg *msg);
     1.8 +    unsigned int (*read_apic_from_ire)(unsigned int apic, unsigned int reg);
     1.9  };
    1.11  void iommu_update_ire_from_apic(unsigned int apic, unsigned int reg, unsigned int value);
    1.12  void iommu_update_ire_from_msi(struct msi_desc *msi_desc, struct msi_msg *msg);
    1.13 +void iommu_read_msi_from_ire(struct msi_desc *msi_desc, struct msi_msg *msg);
    1.14 +unsigned int iommu_read_apic_from_ire(unsigned int apic, unsigned int reg);
    1.16  void iommu_suspend(void);
    1.17  void iommu_resume(void);