VirtualBox

Changeset 87304 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jan 19, 2021 6:12:19 AM (4 years ago)
Author:
vboxsync
Message:

AMD IOMMU: bugref:9654 Add IRTE_GVA_T if we need to implement interrupt virtualization when guest APIC is enabled.

File:
1 edited

Legend:

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

    r86253 r87304  
    694694 *  interrupt message. See AMD IOMMU spec. 2.2.5 "Interrupt Remapping Tables". */
    695695#define IOMMU_MSI_DATA_IRTE_OFFSET_MASK     UINT32_C(0x000007ff)
     696
     697/**
     698 * Interrupt Remapping Table Entry (IRTE) - Guest Virtual APIC Enabled.
     699 * In accordance with the AMD spec.
     700 */
     701typedef union
     702{
     703    struct
     704    {
     705        uint32_t    u1RemapEnable : 1;          /**< Bit  0       - RemapEn: Remap Enable. */
     706        uint32_t    u1SuppressIoPf : 1;         /**< Bit  1       - SupIOPF: Supress I/O Page Fault. */
     707        uint32_t    u1GALogIntr : 1;            /**< Bit  2       - GALogIntr: Guest APIC Log Interrupt. */
     708        uint32_t    u3Rsvd : 3;                 /**< Bits 5:3     - Reserved. */
     709        uint32_t    u1IsRunning : 1;            /**< Bit  6       - IsRun: Hint whether the guest is running. */
     710        uint32_t    u1GuestMode : 1;            /**< Bit  7       - GuestMode. */
     711        uint32_t    u8Dest : 8;                 /**< Bits 15:8    - Destination. */
     712        uint32_t    u8Rsvd0 : 8;                /**< Bits 31:16   - Reserved. */
     713        uint32_t    u32GATag : 32;              /**< Bits 63:31   - GATag: Tag used when writing to GA log. */
     714        uint32_t    u8Vector : 8;               /**< Bits 71:64   - Vector: Interrupt vector. */
     715        uint32_t    u4Reserved : 4;             /**< Bits 75:72   - Reserved or ignored depending on RemapEn. */
     716        uint32_t    u20GATableRootPtrLo : 20;   /**< Bits 95:76   - Bits [31:12] of Guest vAPIC Table Root Pointer. */
     717        uint32_t    u20GATableRootPtrHi : 20;   /**< Bits 115:76  - Bits [51:32] of Guest vAPIC Table Root Pointer. */
     718        uint32_t    u12Rsvd : 12;               /**< Bits 127:116 - Reserved. */
     719    } n;
     720    /** The 64-bit unsigned integer view. */
     721    uint64_t        u64[2];
     722} IRTE_GVA_T;
     723AssertCompileSize(IRTE_GVA_T, 16);
     724/** Pointer to an IRTE_GVA_T struct. */
     725typedef IRTE_GVA_T *PIRTE_GVA_T;
     726/** Pointer to a const IRTE_GVA_T struct. */
     727typedef IRTE_GVA_T const *PCIRTE_GVA_T;
    696728
    697729/**
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