VirtualBox

Changeset 55129 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Apr 8, 2015 11:31:47 AM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99427
Message:

VMM/GIM: Allow dynamic enabling of #UD traps and per-VCPU hypercalls.

Location:
trunk/src/VBox/VMM/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/GIMKvmInternal.h

    r55118 r55129  
    261261VMM_INT_DECL(VBOXSTRICTRC)      gimKvmReadMsr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue);
    262262VMM_INT_DECL(VBOXSTRICTRC)      gimKvmWriteMsr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uRawValue);
    263 VMM_INT_DECL(bool)              gimKvmShouldTrapXcptUD(PVM pVM);
     263VMM_INT_DECL(bool)              gimKvmShouldTrapXcptUD(PVMCPU pVCpu);
    264264VMM_INT_DECL(int)               gimKvmXcptUD(PVMCPU pVCpu, PCPUMCTX pCtx, PDISCPUSTATE pDis);
    265265
  • trunk/src/VBox/VMM/include/HMInternal.h

    r55118 r55129  
    164164#define HM_CHANGED_GUEST_EFER_MSR                RT_BIT(16)
    165165#define HM_CHANGED_GUEST_LAZY_MSRS               RT_BIT(17)     /* Shared */
     166#define HM_CHANGED_GUEST_XCPT_INTERCEPTS         RT_BIT(18)
    166167/* VT-x specific state. */
    167 #define HM_CHANGED_VMX_GUEST_AUTO_MSRS           RT_BIT(18)
    168 #define HM_CHANGED_VMX_GUEST_ACTIVITY_STATE      RT_BIT(19)
    169 #define HM_CHANGED_VMX_GUEST_APIC_STATE          RT_BIT(20)
    170 #define HM_CHANGED_VMX_ENTRY_CTLS                RT_BIT(21)
    171 #define HM_CHANGED_VMX_EXIT_CTLS                 RT_BIT(22)
     168#define HM_CHANGED_VMX_GUEST_AUTO_MSRS           RT_BIT(19)
     169#define HM_CHANGED_VMX_GUEST_ACTIVITY_STATE      RT_BIT(20)
     170#define HM_CHANGED_VMX_GUEST_APIC_STATE          RT_BIT(21)
     171#define HM_CHANGED_VMX_ENTRY_CTLS                RT_BIT(22)
     172#define HM_CHANGED_VMX_EXIT_CTLS                 RT_BIT(23)
    172173/* AMD-V specific state. */
    173 #define HM_CHANGED_SVM_GUEST_APIC_STATE          RT_BIT(18)
    174 #define HM_CHANGED_SVM_RESERVED1                 RT_BIT(19)
    175 #define HM_CHANGED_SVM_RESERVED2                 RT_BIT(20)
    176 #define HM_CHANGED_SVM_RESERVED3                 RT_BIT(21)
    177 #define HM_CHANGED_SVM_RESERVED4                 RT_BIT(22)
     174#define HM_CHANGED_SVM_GUEST_APIC_STATE          RT_BIT(19)
     175#define HM_CHANGED_SVM_RESERVED1                 RT_BIT(20)
     176#define HM_CHANGED_SVM_RESERVED2                 RT_BIT(21)
     177#define HM_CHANGED_SVM_RESERVED3                 RT_BIT(22)
     178#define HM_CHANGED_SVM_RESERVED4                 RT_BIT(23)
    178179
    179180#define HM_CHANGED_ALL_GUEST                     (  HM_CHANGED_GUEST_CR0                \
     
    195196                                                  | HM_CHANGED_GUEST_EFER_MSR           \
    196197                                                  | HM_CHANGED_GUEST_LAZY_MSRS          \
     198                                                  | HM_CHANGED_GUEST_XCPT_INTERCEPTS    \
    197199                                                  | HM_CHANGED_VMX_GUEST_AUTO_MSRS      \
    198200                                                  | HM_CHANGED_VMX_GUEST_ACTIVITY_STATE \
     
    201203                                                  | HM_CHANGED_VMX_EXIT_CTLS)
    202204
    203 #define HM_CHANGED_HOST_CONTEXT                  RT_BIT(23)
     205#define HM_CHANGED_HOST_CONTEXT                  RT_BIT(24)
    204206
    205207/* Bits shared between host and guest. */
     
    343345    /** Set when TPR patching is active. */
    344346    bool                        fTPRPatchingActive;
    345     /** Whether #UD needs to be intercepted (required by certain GIM providers). */
    346     bool                        fGIMTrapXcptUD;
    347     /** Whether paravirt. hypercalls are enabled. */
    348     bool                        fHypercallsEnabled;
    349     bool                        u8Alignment[1];
     347    bool                        u8Alignment[3];
    350348
    351349    /** Host kernel flags that HM might need to know (SUPKERNELFEATURES_XXX). */
     
    584582    /** Whether to preload the guest-FPU state to avoid #NM VM-exit overhead. */
    585583    bool                        fPreloadGuestFpu;
     584
     585    /** Whether #UD needs to be intercepted (required by certain GIM providers). */
     586    bool                        fGIMTrapXcptUD;
     587    /** Whether paravirt. hypercalls are enabled. */
     588    bool                        fHypercallsEnabled;
     589    uint8_t                     u8Alignment0[6];
    586590
    587591    /** World switch exit counter. */
Note: See TracChangeset for help on using the changeset viewer.

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