VirtualBox

Changeset 74303 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Sep 17, 2018 9:33:58 AM (6 years ago)
Author:
vboxsync
Message:

VMM/CPUM, IEM: Nested VMX: bugref:9180 vmlaunch/vmresume bits.

Location:
trunk/include/VBox/vmm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpum.mac

    r72643 r74303  
    280280    alignb 8
    281281    .hwvirt.svm.HCPhysVmcb             RTHCPHYS_RES  1
     282    .hwvirt.uInhibitRip                resq          1
    282283    .hwvirt.fLocalForcedActions        resd          1
    283284    .hwvirt.fGif                       resb          1
  • trunk/include/VBox/vmm/cpumctx.h

    r74287 r74303  
    618618        } CPUM_UNION_NM(s);
    619619
    620         /** 0x3f0 - A subset of force flags that are preserved while running the nested-guest. */
     620        /** 0x3f0 - Saved guest's interrupt-inhibited RIP (if any) - Intel only. */
     621        uint64_t                uInhibitRip;
     622        /** 0x3f8 - A subset of guest force flags that are saved while running the
     623         *  nested-guest. */
    621624        uint32_t                fLocalForcedActions;
    622         /** 0x3f4 - Global interrupt flag (always true on nested VMX). */
     625        /** 0x3fc - Global interrupt flag - AMD only (always true on Intel). */
    623626        bool                    fGif;
    624         /** 0x3f5 - Padding. */
    625         uint8_t                 abPadding1[11];
     627        /** 0x3fd - Padding. */
     628        uint8_t                 abPadding1[3];
    626629    } hwvirt;
    627630    /** @} */
     
    687690AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvIoBitmapR3,           0x3e0);
    688691AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.HCPhysVmcb,             0x3e8);
    689 AssertCompileMemberOffset(CPUMCTX, hwvirt.fLocalForcedActions, 0x3f0);
     692AssertCompileMemberOffset(CPUMCTX, hwvirt.uInhibitRip,         0x3f0);
     693AssertCompileMemberOffset(CPUMCTX, hwvirt.fLocalForcedActions, 0x3f8);
     694AssertCompileMemberOffset(CPUMCTX, hwvirt.fGif,                0x3fc);
    690695AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pVmcbR0,       8);
    691696AssertCompileMemberAlignment(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) svm.pvMsrBitmapR0, 8);
  • trunk/include/VBox/vmm/hm_vmx.h

    r74287 r74303  
    24402440#define VMX_IDT_VECTORING_INFO_IS_VALID(a)                      (((a) >> 31) & 1)
    24412441
     2442/** Construct an IDT-vectoring information field from an VM-entry interruption
     2443 *  information field (same except that bit 12 is reserved). */
     2444#define VMX_EXIT_IDT_INFO_FROM_ENTRY_INT_INFO(a)                ((a) & ~RT_BIT(12))
     2445
    24422446/** Bit fields for IDT-vectoring information. */
    24432447/** The IDT-vectoring info vector. */
     
    27952799/** @name Format of Pending-Debug-Exceptions.
    27962800 * Bits 4-11, 13, 15 and 17-63 are reserved.
     2801 * Similar to DR6 except bit 12 (breakpoint enabled) and bit 16 (RTM) are both
     2802 * possibly valid here but not in DR6.
    27972803 * @{
    27982804 */
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