VirtualBox

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


Ignore:
Timestamp:
Dec 21, 2017 8:32:29 AM (7 years ago)
Author:
vboxsync
Message:

VMM/HM: SVM VMCB struct logical adjustments for new SVM features (Virtualized VMSAVE/VMLOAD).

File:
1 edited

Legend:

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

    r70260 r70262  
    451451/** @} */
    452452
    453 /** @name SVMVMCB.u64LbrVirt
    454  * @{
    455  */
    456 #define SVM_LBR_VIRT_ENABLE                   RT_BIT_64(0)
    457 /** @} */
    458 
    459453/** @name SVMINTCTRL.u3Type
    460454 * @{
     
    712706    union
    713707    {
    714         uint32_t    u1NestedPaging   :  1;
    715         uint32_t    u1EnableSev      :  1;
    716         uint32_t    u1EnableSevEs    :  1;
    717         uint32_t    u28Reserved0     : 28;
     708        uint32_t    u1NestedPaging :  1;
     709        uint32_t    u1Sev          :  1;
     710        uint32_t    u1SevEs        :  1;
     711        uint32_t    u28Reserved0   : 28;
    718712        uint64_t    u64NpSevCtrl;
    719713    } RT_UNION_NM(np);
     
    727721    uint64_t    u64NestedPagingCR3;
    728722    /** Offset 0xb8 - LBR Virtualization. */
    729     uint64_t    u64LBRVirt;
     723    union
     724    {
     725        uint32_t    u1LbrVirt          :  1;
     726        uint32_t    u1VirtVmsaveVmload :  1;
     727        uint32_t    u29Reserved0       : 29;
     728        uint64_t    u64LbrVirtCtrl;
     729    } RT_UNION_NM(lbrvirt);
    730730    /** Offset 0xc0 - VMCB Clean Bits. */
    731731    uint32_t    u32VmcbCleanBits;
     
    752752typedef const SVMVMCBCTRL *PCSVMVMCBCTRL;
    753753AssertCompileSize(SVMVMCBCTRL, 0x100);
    754 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdCRx,             0x00);
    755 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrCRx,             0x02);
    756 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdDRx,             0x04);
    757 AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrDRx,             0x06);
    758 AssertCompileMemberOffset(SVMVMCBCTRL, u32InterceptXcpt,              0x08);
    759 AssertCompileMemberOffset(SVMVMCBCTRL, u64InterceptCtrl,              0x0c);
    760 AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved,                    0x14);
    761 AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterThreshold,       0x3c);
    762 AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterCount,           0x3e);
    763 AssertCompileMemberOffset(SVMVMCBCTRL, u64IOPMPhysAddr,               0x40);
    764 AssertCompileMemberOffset(SVMVMCBCTRL, u64MSRPMPhysAddr,              0x48);
    765 AssertCompileMemberOffset(SVMVMCBCTRL, u64TSCOffset,                  0x50);
    766 AssertCompileMemberOffset(SVMVMCBCTRL, TLBCtrl,                       0x58);
    767 AssertCompileMemberOffset(SVMVMCBCTRL, IntCtrl,                       0x60);
    768 AssertCompileMemberOffset(SVMVMCBCTRL, u64IntShadow,                  0x68);
    769 AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitCode,                   0x70);
    770 AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo1,                  0x78);
    771 AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo2,                  0x80);
    772 AssertCompileMemberOffset(SVMVMCBCTRL, ExitIntInfo,                   0x88);
    773 AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(np.) u64NpSevCtrl, 0x90);
    774 AssertCompileMemberOffset(SVMVMCBCTRL, AvicBar,                       0x98);
    775 AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved2,                   0xa0);
    776 AssertCompileMemberOffset(SVMVMCBCTRL, EventInject,                   0xa8);
    777 AssertCompileMemberOffset(SVMVMCBCTRL, u64NestedPagingCR3,            0xb0);
    778 AssertCompileMemberOffset(SVMVMCBCTRL, u64LBRVirt,                    0xb8);
    779 AssertCompileMemberOffset(SVMVMCBCTRL, u32VmcbCleanBits,              0xc0);
    780 AssertCompileMemberOffset(SVMVMCBCTRL, u64NextRIP,                    0xc8);
    781 AssertCompileMemberOffset(SVMVMCBCTRL, cbInstrFetched,                0xd0);
    782 AssertCompileMemberOffset(SVMVMCBCTRL, abInstr,                       0xd1);
    783 AssertCompileMemberOffset(SVMVMCBCTRL, AvicBackingPagePtr,            0xe0);
    784 AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved3,                   0xe8);
    785 AssertCompileMemberOffset(SVMVMCBCTRL, AvicLogicalTablePtr,           0xf0);
    786 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, RT_UNION_NM(lbrvirt.) u64LbrVirtCtrl, 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);
    787787
    788788/**
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