VirtualBox

Changeset 74191 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Sep 11, 2018 10:48:11 AM (6 years ago)
Author:
vboxsync
Message:

hm_vmx:h Added bit-fields for VMX exit reason.

File:
1 edited

Legend:

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

    r74189 r74191  
    22412241#define VMX_EXIT_REASON_BASIC(a)                                ((a) & 0xffff)
    22422242#define VMX_EXIT_REASON_HAS_ENTRY_FAILED(a)                     (((a) >> 31) & 1)
     2243
     2244/** Bit fields for VM-exit reason. */
     2245/** The exit reason. */
     2246#define VMX_BF_EXIT_REASON_BASIC_SHIFT                          0
     2247#define VMX_BF_EXIT_REASON_BASIC_MASK                           UINT32_C(0x0000ffff)
     2248/** Bits 16:26 are reseved and MBZ. */
     2249#define VMX_BF_EXIT_REASON_RSVD_16_26_SHIFT                     16
     2250#define VMX_BF_EXIT_REASON_RSVD_16_26_MASK                      UINT32_C(0x07ff0000)
     2251/** Whether the VM-exit was incident to enclave mode. */
     2252#define VMX_BF_EXIT_REASON_ENCLAVE_MODE_SHIFT                   27
     2253#define VMX_BF_EXIT_REASON_ENCLAVE_MODE_MASK                    UINT32_C(0x08000000)
     2254/** Pending MTF (Monitor Trap Flag) VM-exit. */
     2255#define VMX_BF_EXIT_REASON_PENDING_MTF_SHIFT                    28
     2256#define VMX_BF_EXIT_REASON_PENDING_MTF_MASK                     UINT32_C(0x10000000)
     2257/** VM-exit from VMX root operation (only possible with SMM). */
     2258#define VMX_BF_EXIT_REASON_VMX_ROOT_MODE_SHIFT                  29
     2259#define VMX_BF_EXIT_REASON_VMX_ROOT_MODE_MASK                   UINT32_C(0x20000000)
     2260/** Bit 30 is reserved and MBZ. */
     2261#define VMX_BF_EXIT_REASON_RSVD_30_SHIFT                        30
     2262#define VMX_BF_EXIT_REASON_RSVD_30_MASK                         UINT32_C(0x40000000)
     2263/** Whether VM-entry failed (currently only happens during loading guest-state
     2264 *  or MSRs or machine check exceptions). */
     2265#define VMX_BF_EXIT_REASON_ENTRY_FAILED_SHIFT                   31
     2266#define VMX_BF_EXIT_REASON_ENTRY_FAILED_MASK                    UINT32_C(0x80000000)
     2267RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_EXIT_REASON_, UINT32_C(0), UINT32_MAX,
     2268                            (BASIC, RSVD_16_26, ENCLAVE_MODE, PENDING_MTF, VMX_ROOT_MODE, RSVD_30, ENTRY_FAILED));
    22432269/** @} */
    22442270
     
    22722298
    22732299/** Bit fields for VM-entry interruption information. */
     2300/** The VM-entry interruption vector. */
    22742301#define VMX_BF_ENTRY_INT_INFO_VECTOR_SHIFT                       0
    22752302#define VMX_BF_ENTRY_INT_INFO_VECTOR_MASK                        UINT32_C(0x000000ff)
     2303/** The VM-entry interruption type (see VMX_ENTRY_INT_INFO_TYPE_XXX). */
    22762304#define VMX_BF_ENTRY_INT_INFO_TYPE_SHIFT                         8
    22772305#define VMX_BF_ENTRY_INT_INFO_TYPE_MASK                          UINT32_C(0x00000700)
     2306/** Whether this event has an error code.   */
    22782307#define VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID_SHIFT               11
    22792308#define VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID_MASK                UINT32_C(0x00000800)
     2309/** Bits 12:30 are reserved and MBZ. */
    22802310#define VMX_BF_ENTRY_INT_INFO_RSVD_12_30_SHIFT                   12
    22812311#define VMX_BF_ENTRY_INT_INFO_RSVD_12_30_MASK                    UINT32_C(0x7ffff000)
     2312/** Whether this VM-entry interruption info is valid.  */
    22822313#define VMX_BF_ENTRY_INT_INFO_VALID_SHIFT                        31
    22832314#define VMX_BF_ENTRY_INT_INFO_VALID_MASK                         UINT32_C(0x80000000)
     
    23242355
    23252356/** Bit fields for VM-exit interruption infomration. */
     2357/** The VM-exit interruption vector. */
    23262358#define VMX_BF_EXIT_INT_INFO_VECTOR_SHIFT                       0
    23272359#define VMX_BF_EXIT_INT_INFO_VECTOR_MASK                        UINT32_C(0x000000ff)
     2360/** The VM-exit interruption type (see VMX_EXIT_INT_INFO_TYPE_XXX). */
    23282361#define VMX_BF_EXIT_INT_INFO_TYPE_SHIFT                         8
    23292362#define VMX_BF_EXIT_INT_INFO_TYPE_MASK                          UINT32_C(0x00000700)
     2363/** Whether this event has an error code. */
    23302364#define VMX_BF_EXIT_INT_INFO_ERR_CODE_VALID_SHIFT               11
    23312365#define VMX_BF_EXIT_INT_INFO_ERR_CODE_VALID_MASK                UINT32_C(0x00000800)
     2366/** Whether NMI-unblocking due to IRET is active. */
    23322367#define VMX_BF_EXIT_INT_INFO_NMI_UNBLOCK_IRET_SHIFT             12
    23332368#define VMX_BF_EXIT_INT_INFO_NMI_UNBLOCK_IRET_MASK              UINT32_C(0x00001000)
     2369/** Bits 13:30 is reserved (MBZ). */
    23342370#define VMX_BF_EXIT_INT_INFO_RSVD_13_30_SHIFT                   13
    23352371#define VMX_BF_EXIT_INT_INFO_RSVD_13_30_MASK                    UINT32_C(0x7fffe000)
     2372/** Whether this VM-exit interruption info is valid. */
    23362373#define VMX_BF_EXIT_INT_INFO_VALID_SHIFT                        31
    23372374#define VMX_BF_EXIT_INT_INFO_VALID_MASK                         UINT32_C(0x80000000)
     
    23902427
    23912428/** Bit fields for IDT-vectoring information. */
     2429/** The IDT-vectoring info vector. */
    23922430#define VMX_BF_IDT_VECTORING_INFO_VECTOR_SHIFT                  0
    23932431#define VMX_BF_IDT_VECTORING_INFO_VECTOR_MASK                   UINT32_C(0x000000ff)
     2432/** The IDT-vectoring info type (see VMX_IDT_VECTORING_INFO_TYPE_XXX). */
    23942433#define VMX_BF_IDT_VECTORING_INFO_TYPE_SHIFT                    8
    23952434#define VMX_BF_IDT_VECTORING_INFO_TYPE_MASK                     UINT32_C(0x00000700)
     2435/** Whether the event has an error code. */
    23962436#define VMX_BF_IDT_VECTORING_INFO_ERR_CODE_VALID_SHIFT          11
    23972437#define VMX_BF_IDT_VECTORING_INFO_ERR_CODE_VALID_MASK           UINT32_C(0x00000800)
     2438/** Bit 12 is undefined. */
    23982439#define VMX_BF_IDT_VECTORING_INFO_UNDEF_12_SHIFT                12
    23992440#define VMX_BF_IDT_VECTORING_INFO_UNDEF_12_MASK                 UINT32_C(0x00001000)
     2441/** Bits 13:30 is reserved (MBZ). */
    24002442#define VMX_BF_IDT_VECTORING_INFO_RSVD_13_30_SHIFT              13
    24012443#define VMX_BF_IDT_VECTORING_INFO_RSVD_13_30_MASK               UINT32_C(0x7fffe000)
     2444/** Whether this IDT-vectoring info is valid. */
    24022445#define VMX_BF_IDT_VECTORING_INFO_VALID_SHIFT                   31
    24032446#define VMX_BF_IDT_VECTORING_INFO_VALID_MASK                    UINT32_C(0x80000000)
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