VirtualBox

Changeset 87786 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Feb 18, 2021 11:31:38 AM (4 years ago)
Author:
vboxsync
Message:

AMD IOMMU: bugref:9654 Implemented an interrupt remap cache.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/iommu-amd.h

    r87732 r87786  
    579579/** Gets the interrupt table length (in bytes) given the DTE pointer. */
    580580#define IOMMU_GET_INTR_TAB_LEN(a_pDte)          (IOMMU_GET_INTR_TAB_ENTRIES(a_pDte) * sizeof(IRTE_T))
     581/** Mask of interrupt control bits. */
     582#define IOMMU_DTE_INTR_CTRL_MASK                0x3
     583/** Gets the interrupt control bits given the DTE pointer. */
     584#define IOMMU_GET_INTR_CTRL(a_pDte)             (((a_pDte)->au64[2] >> 60) & IOMMU_DTE_INTR_CTRL_MASK)
    581585
    582586/**
     
    694698 *  interrupt message. See AMD IOMMU spec. 2.2.5 "Interrupt Remapping Tables". */
    695699#define IOMMU_MSI_DATA_IRTE_OFFSET_MASK     UINT32_C(0x000007ff)
     700/** Gets the IRTE offset from the originating MSI interrupt message. */
     701#define IOMMU_GET_IRTE_OFF(a_u32MsiData)    (((a_u32MsiData) & IOMMU_MSI_DATA_IRTE_OFFSET_MASK) * sizeof(IRTE_T));
    696702
    697703/**
     
    882888} CMD_INV_INTR_TABLE_T;
    883889AssertCompileSize(CMD_INV_INTR_TABLE_T, 16);
     890/** Pointer to a invalidate interrupt table command. */
     891typedef CMD_INV_INTR_TABLE_T *PCMD_INV_INTR_TABLE_T;
     892/** Pointer to a const invalidate interrupt table command. */
     893typedef CMD_INV_INTR_TABLE_T const *PCCMD_INV_INTR_TABLE_T;
     894#define IOMMU_CMD_INV_INTR_TABLE_QWORD_0_VALID_MASK         UINT64_C(0xf00000000000ffff)
     895#define IOMMU_CMD_INV_INTR_TABLE_QWORD_1_VALID_MASK         UINT64_C(0x0000000000000000)
    884896
    885897/**
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette