Changeset 74191 in vbox for trunk/include/VBox
- Timestamp:
- Sep 11, 2018 10:48:11 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_vmx.h
r74189 r74191 2241 2241 #define VMX_EXIT_REASON_BASIC(a) ((a) & 0xffff) 2242 2242 #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) 2267 RT_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)); 2243 2269 /** @} */ 2244 2270 … … 2272 2298 2273 2299 /** Bit fields for VM-entry interruption information. */ 2300 /** The VM-entry interruption vector. */ 2274 2301 #define VMX_BF_ENTRY_INT_INFO_VECTOR_SHIFT 0 2275 2302 #define VMX_BF_ENTRY_INT_INFO_VECTOR_MASK UINT32_C(0x000000ff) 2303 /** The VM-entry interruption type (see VMX_ENTRY_INT_INFO_TYPE_XXX). */ 2276 2304 #define VMX_BF_ENTRY_INT_INFO_TYPE_SHIFT 8 2277 2305 #define VMX_BF_ENTRY_INT_INFO_TYPE_MASK UINT32_C(0x00000700) 2306 /** Whether this event has an error code. */ 2278 2307 #define VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID_SHIFT 11 2279 2308 #define VMX_BF_ENTRY_INT_INFO_ERR_CODE_VALID_MASK UINT32_C(0x00000800) 2309 /** Bits 12:30 are reserved and MBZ. */ 2280 2310 #define VMX_BF_ENTRY_INT_INFO_RSVD_12_30_SHIFT 12 2281 2311 #define VMX_BF_ENTRY_INT_INFO_RSVD_12_30_MASK UINT32_C(0x7ffff000) 2312 /** Whether this VM-entry interruption info is valid. */ 2282 2313 #define VMX_BF_ENTRY_INT_INFO_VALID_SHIFT 31 2283 2314 #define VMX_BF_ENTRY_INT_INFO_VALID_MASK UINT32_C(0x80000000) … … 2324 2355 2325 2356 /** Bit fields for VM-exit interruption infomration. */ 2357 /** The VM-exit interruption vector. */ 2326 2358 #define VMX_BF_EXIT_INT_INFO_VECTOR_SHIFT 0 2327 2359 #define VMX_BF_EXIT_INT_INFO_VECTOR_MASK UINT32_C(0x000000ff) 2360 /** The VM-exit interruption type (see VMX_EXIT_INT_INFO_TYPE_XXX). */ 2328 2361 #define VMX_BF_EXIT_INT_INFO_TYPE_SHIFT 8 2329 2362 #define VMX_BF_EXIT_INT_INFO_TYPE_MASK UINT32_C(0x00000700) 2363 /** Whether this event has an error code. */ 2330 2364 #define VMX_BF_EXIT_INT_INFO_ERR_CODE_VALID_SHIFT 11 2331 2365 #define VMX_BF_EXIT_INT_INFO_ERR_CODE_VALID_MASK UINT32_C(0x00000800) 2366 /** Whether NMI-unblocking due to IRET is active. */ 2332 2367 #define VMX_BF_EXIT_INT_INFO_NMI_UNBLOCK_IRET_SHIFT 12 2333 2368 #define VMX_BF_EXIT_INT_INFO_NMI_UNBLOCK_IRET_MASK UINT32_C(0x00001000) 2369 /** Bits 13:30 is reserved (MBZ). */ 2334 2370 #define VMX_BF_EXIT_INT_INFO_RSVD_13_30_SHIFT 13 2335 2371 #define VMX_BF_EXIT_INT_INFO_RSVD_13_30_MASK UINT32_C(0x7fffe000) 2372 /** Whether this VM-exit interruption info is valid. */ 2336 2373 #define VMX_BF_EXIT_INT_INFO_VALID_SHIFT 31 2337 2374 #define VMX_BF_EXIT_INT_INFO_VALID_MASK UINT32_C(0x80000000) … … 2390 2427 2391 2428 /** Bit fields for IDT-vectoring information. */ 2429 /** The IDT-vectoring info vector. */ 2392 2430 #define VMX_BF_IDT_VECTORING_INFO_VECTOR_SHIFT 0 2393 2431 #define VMX_BF_IDT_VECTORING_INFO_VECTOR_MASK UINT32_C(0x000000ff) 2432 /** The IDT-vectoring info type (see VMX_IDT_VECTORING_INFO_TYPE_XXX). */ 2394 2433 #define VMX_BF_IDT_VECTORING_INFO_TYPE_SHIFT 8 2395 2434 #define VMX_BF_IDT_VECTORING_INFO_TYPE_MASK UINT32_C(0x00000700) 2435 /** Whether the event has an error code. */ 2396 2436 #define VMX_BF_IDT_VECTORING_INFO_ERR_CODE_VALID_SHIFT 11 2397 2437 #define VMX_BF_IDT_VECTORING_INFO_ERR_CODE_VALID_MASK UINT32_C(0x00000800) 2438 /** Bit 12 is undefined. */ 2398 2439 #define VMX_BF_IDT_VECTORING_INFO_UNDEF_12_SHIFT 12 2399 2440 #define VMX_BF_IDT_VECTORING_INFO_UNDEF_12_MASK UINT32_C(0x00001000) 2441 /** Bits 13:30 is reserved (MBZ). */ 2400 2442 #define VMX_BF_IDT_VECTORING_INFO_RSVD_13_30_SHIFT 13 2401 2443 #define VMX_BF_IDT_VECTORING_INFO_RSVD_13_30_MASK UINT32_C(0x7fffe000) 2444 /** Whether this IDT-vectoring info is valid. */ 2402 2445 #define VMX_BF_IDT_VECTORING_INFO_VALID_SHIFT 31 2403 2446 #define VMX_BF_IDT_VECTORING_INFO_VALID_MASK UINT32_C(0x80000000)
Note:
See TracChangeset
for help on using the changeset viewer.