VirtualBox

Changeset 72560 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jun 15, 2018 11:00:02 AM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123054
Message:

EM,HM: Replaced HM exit history with the EM one. VT-x now reads TSC on every exit even when VMX_VMCS_CTRL_PROC_EXEC_RDTSC_EXIT is set. VT-x needed an API for updating the PC as RIP and CS are fetched from the VMCB. bugref:9044

File:
1 edited

Legend:

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

    r72559 r72560  
    215215 *
    216216 * @{  */
    217 #define EMEXIT_F_TYPE_MASK  UINT32_C(0x0fff)    /**< The exit type mask. */
    218 #define EMEXIT_F_KIND_EM    UINT32_C(0x0000)    /**< EMEXITTYPE */
    219 #define EMEXIT_F_KIND_VMX   UINT32_C(0x1000)    /**< VT-x exit codes. */
    220 #define EMEXIT_F_KIND_SVM   UINT32_C(0x2000)    /**< SVM exit codes. */
    221 #define EMEXIT_F_KIND_NEM   UINT32_C(0x3000)    /**< NEMEXITTYPE */
    222 #define EMEXIT_F_KIND_XCPT  UINT32_C(0x4000)    /**< Exception numbers (raw-mode). */
    223 #define EMEXIT_F_KIND_MASK  UINT32_C(0x7000)
    224 #define EMEXIT_F_CS_EIP     UINT32_C(0x8000)
     217#define EMEXIT_F_TYPE_MASK      UINT32_C(0x00000fff)    /**< The exit type mask. */
     218#define EMEXIT_F_KIND_EM        UINT32_C(0x00000000)    /**< EMEXITTYPE */
     219#define EMEXIT_F_KIND_VMX       UINT32_C(0x00001000)    /**< VT-x exit codes. */
     220#define EMEXIT_F_KIND_SVM       UINT32_C(0x00002000)    /**< SVM exit codes. */
     221#define EMEXIT_F_KIND_NEM       UINT32_C(0x00003000)    /**< NEMEXITTYPE */
     222#define EMEXIT_F_KIND_XCPT      UINT32_C(0x00004000)    /**< Exception numbers (raw-mode). */
     223#define EMEXIT_F_KIND_MASK      UINT32_C(0x00007000)
     224#define EMEXIT_F_CS_EIP         UINT32_C(0x00008000)    /**< The PC is EIP in the low dword and CS in the high. */
     225#define EMEXIT_F_UNFLATTENED_PC UINT32_C(0x00010000)    /**< The PC hasn't had CS.BASE added to it. */
    225226/** Combines flags and exit type into EMHistoryAddExit() input. */
    226227#define EMEXIT_MAKE_FLAGS_AND_TYPE(a_fFlags, a_uType)   ((a_fFlags) | (uint32_t)(a_uType))
     
    239240VMMRC_INT_DECL(void)            EMRCHistoryAddExitNoTs(PVMCPU pVCpu, uint32_t uFlagsAndType, uint16_t uCs, uint32_t uEip);
    240241#endif
     242#ifdef IN_RING0
     243VMMR0_INT_DECL(void)            EMR0HistoryUpdatePC(PVMCPU pVCpu, uint64_t uFlatPC, bool fFlattened);
     244#endif
     245
    241246
    242247/** @name Deprecated interpretation related APIs (use IEM).
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