VirtualBox

Changeset 73422 in vbox for trunk/include


Ignore:
Timestamp:
Aug 1, 2018 1:27:26 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
124045
Message:

VMM: Nested VMX: bugref:9180 bitfield macro nits.

File:
1 edited

Legend:

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

    r73406 r73422  
    21872187
    21882188
    2189 /** @name VMX_XDTR_INSINFO_XXX - VMX_EXIT_XDTR_ACCESS instruction information.
     2189/** @name VMX_BF_XXTR_INSINFO_XXX - VMX_EXIT_XDTR_ACCESS instruction information.
    21902190 * Found in VMX_VMCS32_RO_EXIT_INSTR_INFO.
    21912191 * @{
    21922192 */
    21932193/** Address calculation scaling field (powers of two). */
    2194 #define VMX_XDTR_INSINFO_SCALE_SHIFT                            0
    2195 #define VMX_XDTR_INSINFO_SCALE_MASK                             UINT32_C(0x00000003)
     2194#define VMX_BF_XDTR_INSINFO_SCALE_SHIFT                         0
     2195#define VMX_BF_XDTR_INSINFO_SCALE_MASK                          UINT32_C(0x00000003)
    21962196/** Bits 2 thru 6 are undefined. */
    2197 #define VMX_XDTR_INSINFO_UNDEF_2_6_SHIFT                        2
    2198 #define VMX_XDTR_INSINFO_UNDEF_2_6_MASK                         UINT32_C(0x0000007c)
     2197#define VMX_BF_XDTR_INSINFO_UNDEF_2_6_SHIFT                     2
     2198#define VMX_BF_XDTR_INSINFO_UNDEF_2_6_MASK                      UINT32_C(0x0000007c)
    21992199/** Address size, only 0(=16), 1(=32) and 2(=64) are defined.
    22002200 * @remarks anyone's guess why this is a 3 bit field...  */
    2201 #define VMX_XDTR_INSINFO_ADDR_SIZE_SHIFT                        7
    2202 #define VMX_XDTR_INSINFO_ADDR_SIZE_MASK                         UINT32_C(0x00000380)
     2201#define VMX_BF_XDTR_INSINFO_ADDR_SIZE_SHIFT                     7
     2202#define VMX_BF_XDTR_INSINFO_ADDR_SIZE_MASK                      UINT32_C(0x00000380)
    22032203/** Bit 10 is defined as zero. */
    2204 #define VMX_XDTR_INSINFO_ZERO_10_SHIFT                          10
    2205 #define VMX_XDTR_INSINFO_ZERO_10_MASK                           UINT32_C(0x00000400)
     2204#define VMX_BF_XDTR_INSINFO_ZERO_10_SHIFT                       10
     2205#define VMX_BF_XDTR_INSINFO_ZERO_10_MASK                        UINT32_C(0x00000400)
    22062206/** Operand size, either (1=)32-bit or (0=)16-bit, but get this, it's undefined
    22072207 * for exits from 64-bit code as the operand size there is fixed. */
    2208 #define VMX_XDTR_INSINFO_OP_SIZE_SHIFT                          11
    2209 #define VMX_XDTR_INSINFO_OP_SIZE_MASK                           UINT32_C(0x00000800)
     2208#define VMX_BF_XDTR_INSINFO_OP_SIZE_SHIFT                       11
     2209#define VMX_BF_XDTR_INSINFO_OP_SIZE_MASK                        UINT32_C(0x00000800)
    22102210/** Bits 12 thru 14 are undefined. */
    2211 #define VMX_XDTR_INSINFO_UNDEF_12_14_SHIFT                      12
    2212 #define VMX_XDTR_INSINFO_UNDEF_12_14_MASK                       UINT32_C(0x00007000)
     2211#define VMX_BF_XDTR_INSINFO_UNDEF_12_14_SHIFT                   12
     2212#define VMX_BF_XDTR_INSINFO_UNDEF_12_14_MASK                    UINT32_C(0x00007000)
    22132213/** Applicable segment register (X86_SREG_XXX values). */
    2214 #define VMX_XDTR_INSINFO_SREG_SHIFT                             15
    2215 #define VMX_XDTR_INSINFO_SREG_MASK                              UINT32_C(0x00038000)
     2214#define VMX_BF_XDTR_INSINFO_SREG_SHIFT                          15
     2215#define VMX_BF_XDTR_INSINFO_SREG_MASK                           UINT32_C(0x00038000)
    22162216/** Index register (X86_GREG_XXX values). Undefined if HAS_INDEX_REG is clear. */
    2217 #define VMX_XDTR_INSINFO_INDEX_REG_SHIFT                        18
    2218 #define VMX_XDTR_INSINFO_INDEX_REG_MASK                         UINT32_C(0x003c0000)
    2219 /** Is VMX_XDTR_INSINFO_INDEX_REG_XXX valid (=1) or not (=0). */
    2220 #define VMX_XDTR_INSINFO_HAS_INDEX_REG_SHIFT                    22
    2221 #define VMX_XDTR_INSINFO_HAS_INDEX_REG_MASK                     UINT32_C(0x00400000)
     2217#define VMX_BF_XDTR_INSINFO_INDEX_REG_SHIFT                     18
     2218#define VMX_BF_XDTR_INSINFO_INDEX_REG_MASK                      UINT32_C(0x003c0000)
     2219/** Is VMX_BF_XDTR_INSINFO_INDEX_REG_XXX valid (=1) or not (=0). */
     2220#define VMX_BF_XDTR_INSINFO_HAS_INDEX_REG_SHIFT                 22
     2221#define VMX_BF_XDTR_INSINFO_HAS_INDEX_REG_MASK                  UINT32_C(0x00400000)
    22222222/** Base register (X86_GREG_XXX values). Undefined if HAS_BASE_REG is clear. */
    2223 #define VMX_XDTR_INSINFO_BASE_REG_SHIFT                         23
    2224 #define VMX_XDTR_INSINFO_BASE_REG_MASK                          UINT32_C(0x07800000)
     2223#define VMX_BF_XDTR_INSINFO_BASE_REG_SHIFT                      23
     2224#define VMX_BF_XDTR_INSINFO_BASE_REG_MASK                       UINT32_C(0x07800000)
    22252225/** Is VMX_XDTR_INSINFO_BASE_REG_XXX valid (=1) or not (=0). */
    2226 #define VMX_XDTR_INSINFO_HAS_BASE_REG_SHIFT                     27
    2227 #define VMX_XDTR_INSINFO_HAS_BASE_REG_MASK                      UINT32_C(0x08000000)
    2228 /** The instruction identity (VMX_XDTR_INSINFO_II_XXX values) */
    2229 #define VMX_XDTR_INSINFO_INSTR_ID_SHIFT                         28
    2230 #define VMX_XDTR_INSINFO_INSTR_ID_MASK                          UINT32_C(0x30000000)
     2226#define VMX_BF_XDTR_INSINFO_HAS_BASE_REG_SHIFT                  27
     2227#define VMX_BF_XDTR_INSINFO_HAS_BASE_REG_MASK                   UINT32_C(0x08000000)
     2228/** The instruction identity (VMX_XDTR_INSINFO_II_XXX values). */
     2229#define VMX_BF_XDTR_INSINFO_INSTR_ID_SHIFT                      28
     2230#define VMX_BF_XDTR_INSINFO_INSTR_ID_MASK                       UINT32_C(0x30000000)
    22312231#define VMX_XDTR_INSINFO_II_SGDT                                0 /**< Instruction ID: SGDT */
    22322232#define VMX_XDTR_INSINFO_II_SIDT                                1 /**< Instruction ID: SIDT */
     
    22342234#define VMX_XDTR_INSINFO_II_LIDT                                3 /**< Instruction ID: LIDT */
    22352235/** Bits 30 & 31 are undefined. */
    2236 #define VMX_XDTR_INSINFO_UNDEF_30_31_SHIFT                      30
    2237 #define VMX_XDTR_INSINFO_UNDEF_30_31_MASK                       UINT32_C(0xc0000000)
    2238 RT_BF_ASSERT_COMPILE_CHECKS(VMX_XDTR_INSINFO_, UINT32_C(0), UINT32_MAX,
     2236#define VMX_BF_XDTR_INSINFO_UNDEF_30_31_SHIFT                   30
     2237#define VMX_BF_XDTR_INSINFO_UNDEF_30_31_MASK                    UINT32_C(0xc0000000)
     2238RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_XDTR_INSINFO_, UINT32_C(0), UINT32_MAX,
    22392239                            (SCALE, UNDEF_2_6, ADDR_SIZE, ZERO_10, OP_SIZE, UNDEF_12_14, SREG, INDEX_REG, HAS_INDEX_REG,
    22402240                             BASE_REG, HAS_BASE_REG, INSTR_ID, UNDEF_30_31));
     
    22422242
    22432243
    2244 /** @name VMX_YYTR_INSINFO_XXX - VMX_EXIT_TR_ACCESS instruction information.
     2244/** @name VMX_BF_YYTR_INSINFO_XXX - VMX_EXIT_TR_ACCESS instruction information.
    22452245 * Found in VMX_VMCS32_RO_EXIT_INSTR_INFO.
    2246  * This is similar to VMX_XDTR_INSINFO_XXX.
     2246 * This is similar to VMX_BF_XDTR_INSINFO_XXX.
    22472247 * @{
    22482248 */
    22492249/** Address calculation scaling field (powers of two). */
    2250 #define VMX_YYTR_INSINFO_SCALE_SHIFT                            0
    2251 #define VMX_YYTR_INSINFO_SCALE_MASK                             UINT32_C(0x00000003)
     2250#define VMX_BF_YYTR_INSINFO_SCALE_SHIFT                         0
     2251#define VMX_BF_YYTR_INSINFO_SCALE_MASK                          UINT32_C(0x00000003)
    22522252/** Bit 2 is undefined. */
    2253 #define VMX_YYTR_INSINFO_UNDEF_2_SHIFT                          2
    2254 #define VMX_YYTR_INSINFO_UNDEF_2_MASK                           UINT32_C(0x00000004)
     2253#define VMX_BF_YYTR_INSINFO_UNDEF_2_SHIFT                       2
     2254#define VMX_BF_YYTR_INSINFO_UNDEF_2_MASK                        UINT32_C(0x00000004)
    22552255/** Register operand 1. Undefined if VMX_YYTR_INSINFO_HAS_REG1 is clear. */
    2256 #define VMX_YYTR_INSINFO_REG1_SHIFT                             3
    2257 #define VMX_YYTR_INSINFO_REG1_MASK                              UINT32_C(0x00000078)
     2256#define VMX_BF_YYTR_INSINFO_REG1_SHIFT                          3
     2257#define VMX_BF_YYTR_INSINFO_REG1_MASK                           UINT32_C(0x00000078)
    22582258/** Address size, only 0(=16), 1(=32) and 2(=64) are defined.
    22592259 * @remarks anyone's guess why this is a 3 bit field...  */
    2260 #define VMX_YYTR_INSINFO_ADDR_SIZE_SHIFT                        7
    2261 #define VMX_YYTR_INSINFO_ADDR_SIZE_MASK                         UINT32_C(0x00000380)
     2260#define VMX_BF_YYTR_INSINFO_ADDR_SIZE_SHIFT                     7
     2261#define VMX_BF_YYTR_INSINFO_ADDR_SIZE_MASK                      UINT32_C(0x00000380)
    22622262/** Is VMX_YYTR_INSINFO_REG1_XXX valid (=1) or not (=0). */
    2263 #define VMX_YYTR_INSINFO_HAS_REG1_SHIFT                         10
    2264 #define VMX_YYTR_INSINFO_HAS_REG1_MASK                          UINT32_C(0x00000400)
     2263#define VMX_BF_YYTR_INSINFO_HAS_REG1_SHIFT                      10
     2264#define VMX_BF_YYTR_INSINFO_HAS_REG1_MASK                       UINT32_C(0x00000400)
    22652265/** Bits 11 thru 14 are undefined. */
    2266 #define VMX_YYTR_INSINFO_UNDEF_11_14_SHIFT                      11
    2267 #define VMX_YYTR_INSINFO_UNDEF_11_14_MASK                       UINT32_C(0x00007800)
     2266#define VMX_BF_YYTR_INSINFO_UNDEF_11_14_SHIFT                   11
     2267#define VMX_BF_YYTR_INSINFO_UNDEF_11_14_MASK                    UINT32_C(0x00007800)
    22682268/** Applicable segment register (X86_SREG_XXX values). */
    2269 #define VMX_YYTR_INSINFO_SREG_SHIFT                             15
    2270 #define VMX_YYTR_INSINFO_SREG_MASK                              UINT32_C(0x00038000)
     2269#define VMX_BF_YYTR_INSINFO_SREG_SHIFT                          15
     2270#define VMX_BF_YYTR_INSINFO_SREG_MASK                           UINT32_C(0x00038000)
    22712271/** Index register (X86_GREG_XXX values). Undefined if HAS_INDEX_REG is clear. */
    2272 #define VMX_YYTR_INSINFO_INDEX_REG_SHIFT                        18
    2273 #define VMX_YYTR_INSINFO_INDEX_REG_MASK                         UINT32_C(0x003c0000)
     2272#define VMX_BF_YYTR_INSINFO_INDEX_REG_SHIFT                     18
     2273#define VMX_BF_YYTR_INSINFO_INDEX_REG_MASK                      UINT32_C(0x003c0000)
    22742274/** Is VMX_YYTR_INSINFO_INDEX_REG_XXX valid (=1) or not (=0). */
    2275 #define VMX_YYTR_INSINFO_HAS_INDEX_REG_SHIFT                    22
    2276 #define VMX_YYTR_INSINFO_HAS_INDEX_REG_MASK                     UINT32_C(0x00400000)
     2275#define VMX_BF_YYTR_INSINFO_HAS_INDEX_REG_SHIFT                 22
     2276#define VMX_BF_YYTR_INSINFO_HAS_INDEX_REG_MASK                  UINT32_C(0x00400000)
    22772277/** Base register (X86_GREG_XXX values). Undefined if HAS_BASE_REG is clear. */
    2278 #define VMX_YYTR_INSINFO_BASE_REG_SHIFT                         23
    2279 #define VMX_YYTR_INSINFO_BASE_REG_MASK                          UINT32_C(0x07800000)
     2278#define VMX_BF_YYTR_INSINFO_BASE_REG_SHIFT                      23
     2279#define VMX_BF_YYTR_INSINFO_BASE_REG_MASK                       UINT32_C(0x07800000)
    22802280/** Is VMX_YYTR_INSINFO_BASE_REG_XXX valid (=1) or not (=0). */
    2281 #define VMX_YYTR_INSINFO_HAS_BASE_REG_SHIFT                     27
    2282 #define VMX_YYTR_INSINFO_HAS_BASE_REG_MASK                      UINT32_C(0x08000000)
     2281#define VMX_BF_YYTR_INSINFO_HAS_BASE_REG_SHIFT                  27
     2282#define VMX_BF_YYTR_INSINFO_HAS_BASE_REG_MASK                   UINT32_C(0x08000000)
    22832283/** The instruction identity (VMX_YYTR_INSINFO_II_XXX values) */
    2284 #define VMX_YYTR_INSINFO_INSTR_ID_SHIFT                         28
    2285 #define VMX_YYTR_INSINFO_INSTR_ID_MASK                          UINT32_C(0x30000000)
     2284#define VMX_BF_YYTR_INSINFO_INSTR_ID_SHIFT                      28
     2285#define VMX_BF_YYTR_INSINFO_INSTR_ID_MASK                       UINT32_C(0x30000000)
    22862286#define VMX_YYTR_INSINFO_II_SLDT                                0 /**< Instruction ID: SLDT */
    22872287#define VMX_YYTR_INSINFO_II_STR                                 1 /**< Instruction ID: STR */
     
    22892289#define VMX_YYTR_INSINFO_II_LTR                                 3 /**< Instruction ID: LTR */
    22902290/** Bits 30 & 31 are undefined. */
    2291 #define VMX_YYTR_INSINFO_UNDEF_30_31_SHIFT                      30
    2292 #define VMX_YYTR_INSINFO_UNDEF_30_31_MASK                       UINT32_C(0xc0000000)
    2293 RT_BF_ASSERT_COMPILE_CHECKS(VMX_YYTR_INSINFO_, UINT32_C(0), UINT32_MAX,
     2291#define VMX_BF_YYTR_INSINFO_UNDEF_30_31_SHIFT                   30
     2292#define VMX_BF_YYTR_INSINFO_UNDEF_30_31_MASK                    UINT32_C(0xc0000000)
     2293RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_YYTR_INSINFO_, UINT32_C(0), UINT32_MAX,
    22942294                            (SCALE, UNDEF_2, REG1, ADDR_SIZE, HAS_REG1, UNDEF_11_14, SREG, INDEX_REG, HAS_INDEX_REG,
    22952295                             BASE_REG, HAS_BASE_REG, INSTR_ID, UNDEF_30_31));
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