VirtualBox

Changeset 70260 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Dec 21, 2017 7:57:01 AM (7 years ago)
Author:
vboxsync
Message:

VMM: SVM VMCB struct logical adjustments for new SVM feature bits (SEV, SEV-ES).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_svm.h

    r70259 r70260  
    445445/** @} */
    446446
    447 /** @name SVMVMCB.ctrl.u64NestedPaging
    448  * @{
    449  */
    450 #define SVM_NESTED_PAGING_ENABLE              RT_BIT_64(0)
    451 /** @} */
    452 
    453447/** @name SVMVMCB.ctrl.u64IntShadow
    454448 * @{
     
    638632    SVMIOIOTYPE_IN  = SVM_IOIO_READ
    639633} SVMIOIOTYPE;
    640 
    641 /**
    642  * SVM nested paging structure.
    643  */
    644 typedef union
    645 {
    646     struct
    647     {
    648         uint32_t    u1NestedPaging      : 1;             /**< enabled/disabled */
    649     } n;
    650     uint64_t    u;
    651 } SVMNPCTRL;
    652634
    653635/**
     
    728710    SVMEVENT    ExitIntInfo;
    729711    /** Offset 0x90 - Nested Paging. */
    730     SVMNPCTRL   NestedPaging;
     712    union
     713    {
     714        uint32_t    u1NestedPaging   :  1;
     715        uint32_t    u1EnableSev      :  1;
     716        uint32_t    u1EnableSevEs    :  1;
     717        uint32_t    u28Reserved0     : 28;
     718        uint64_t    u64NpSevCtrl;
     719    } RT_UNION_NM(np);
    731720    /** Offset 0x98 - AVIC APIC BAR.  */
    732721    SVMAVIC     AvicBar;
     
    763752typedef const SVMVMCBCTRL *PCSVMVMCBCTRL;
    764753AssertCompileSize(SVMVMCBCTRL, 0x100);
    765 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdCRx,       0x00);
    766 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrCRx,       0x02);
    767 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdDRx,       0x04);
    768 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrDRx,       0x06);
    769 AssertCompileMemberOffset(SVMVMCBCTRL, u32InterceptXcpt,        0x08);
    770 AssertCompileMemberOffset(SVMVMCBCTRL, u64InterceptCtrl,        0x0c);
    771 AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved,              0x14);
    772 AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterThreshold, 0x3c);
    773 AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterCount,     0x3e);
    774 AssertCompileMemberOffset(SVMVMCBCTRL, u64IOPMPhysAddr,         0x40);
    775 AssertCompileMemberOffset(SVMVMCBCTRL, u64MSRPMPhysAddr,        0x48);
    776 AssertCompileMemberOffset(SVMVMCBCTRL, u64TSCOffset,            0x50);
    777 AssertCompileMemberOffset(SVMVMCBCTRL, TLBCtrl,                 0x58);
    778 AssertCompileMemberOffset(SVMVMCBCTRL, IntCtrl,                 0x60);
    779 AssertCompileMemberOffset(SVMVMCBCTRL, u64IntShadow,            0x68);
    780 AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitCode,             0x70);
    781 AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo1,            0x78);
    782 AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo2,            0x80);
    783 AssertCompileMemberOffset(SVMVMCBCTRL, ExitIntInfo,             0x88);
    784 AssertCompileMemberOffset(SVMVMCBCTRL, NestedPaging,            0x90);
    785 AssertCompileMemberOffset(SVMVMCBCTRL, AvicBar,                 0x98);
    786 AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved2,             0xa0);
    787 AssertCompileMemberOffset(SVMVMCBCTRL, EventInject,             0xa8);
    788 AssertCompileMemberOffset(SVMVMCBCTRL, u64NestedPagingCR3,      0xb0);
    789 AssertCompileMemberOffset(SVMVMCBCTRL, u64LBRVirt,              0xb8);
    790 AssertCompileMemberOffset(SVMVMCBCTRL, u32VmcbCleanBits,        0xc0);
    791 AssertCompileMemberOffset(SVMVMCBCTRL, u64NextRIP,              0xc8);
    792 AssertCompileMemberOffset(SVMVMCBCTRL, cbInstrFetched,          0xd0);
    793 AssertCompileMemberOffset(SVMVMCBCTRL, abInstr,                 0xd1);
    794 AssertCompileMemberOffset(SVMVMCBCTRL, AvicBackingPagePtr,      0xe0);
    795 AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved3,             0xe8);
    796 AssertCompileMemberOffset(SVMVMCBCTRL, AvicLogicalTablePtr,     0xf0);
    797 AssertCompileMemberOffset(SVMVMCBCTRL, AvicPhysicalTablePtr,    0xf8);
     754AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdCRx,             0x00);
     755AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrCRx,             0x02);
     756AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdDRx,             0x04);
     757AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrDRx,             0x06);
     758AssertCompileMemberOffset(SVMVMCBCTRL, u32InterceptXcpt,              0x08);
     759AssertCompileMemberOffset(SVMVMCBCTRL, u64InterceptCtrl,              0x0c);
     760AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved,                    0x14);
     761AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterThreshold,       0x3c);
     762AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterCount,           0x3e);
     763AssertCompileMemberOffset(SVMVMCBCTRL, u64IOPMPhysAddr,               0x40);
     764AssertCompileMemberOffset(SVMVMCBCTRL, u64MSRPMPhysAddr,              0x48);
     765AssertCompileMemberOffset(SVMVMCBCTRL, u64TSCOffset,                  0x50);
     766AssertCompileMemberOffset(SVMVMCBCTRL, TLBCtrl,                       0x58);
     767AssertCompileMemberOffset(SVMVMCBCTRL, IntCtrl,                       0x60);
     768AssertCompileMemberOffset(SVMVMCBCTRL, u64IntShadow,                  0x68);
     769AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitCode,                   0x70);
     770AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo1,                  0x78);
     771AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo2,                  0x80);
     772AssertCompileMemberOffset(SVMVMCBCTRL, ExitIntInfo,                   0x88);
     773AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(np.) u64NpSevCtrl, 0x90);
     774AssertCompileMemberOffset(SVMVMCBCTRL, AvicBar,                       0x98);
     775AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved2,                   0xa0);
     776AssertCompileMemberOffset(SVMVMCBCTRL, EventInject,                   0xa8);
     777AssertCompileMemberOffset(SVMVMCBCTRL, u64NestedPagingCR3,            0xb0);
     778AssertCompileMemberOffset(SVMVMCBCTRL, u64LBRVirt,                    0xb8);
     779AssertCompileMemberOffset(SVMVMCBCTRL, u32VmcbCleanBits,              0xc0);
     780AssertCompileMemberOffset(SVMVMCBCTRL, u64NextRIP,                    0xc8);
     781AssertCompileMemberOffset(SVMVMCBCTRL, cbInstrFetched,                0xd0);
     782AssertCompileMemberOffset(SVMVMCBCTRL, abInstr,                       0xd1);
     783AssertCompileMemberOffset(SVMVMCBCTRL, AvicBackingPagePtr,            0xe0);
     784AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved3,                   0xe8);
     785AssertCompileMemberOffset(SVMVMCBCTRL, AvicLogicalTablePtr,           0xf0);
     786AssertCompileMemberOffset(SVMVMCBCTRL, AvicPhysicalTablePtr,          0xf8);
    798787
    799788/**
     
    1000989    SVMTLBCTRL          TLBCtrl;
    1001990    /** Cache of the nested-paging control. */
    1002     SVMNPCTRL           NestedPagingCtrl;
     991    uint32_t            u1NestedPaging :  1;
     992    uint32_t            u31Reserved0   : 31;
     993    uint32_t            u32Reserved1;
    1003994    /** @} */
    1004995
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