Changeset 87439 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Jan 26, 2021 5:51:07 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142449
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/HMInternal.h
r87431 r87439 706 706 * @param fResume Whether to use VMRESUME (true) or VMLAUNCH (false). 707 707 */ 708 typedef DECLCALLBACKTYPE(int, FNHMVMXSTARTVM,(PVMCC pVM, PVMCPUCC pVCpu, RTHCUINTfResume));708 typedef DECLCALLBACKTYPE(int, FNHMVMXSTARTVM,(PVMCC pVM, PVMCPUCC pVCpu, bool fResume)); 709 709 /** Pointer to a VMX StartVM function. */ 710 710 typedef R0PTRTYPE(FNHMVMXSTARTVM *) PFNHMVMXSTARTVM; … … 725 725 /** @name Auxiliary information. 726 726 * @{ */ 727 /** Ring-0 pointer to the hardware-assisted VMX execution function. */728 PFNHMVMXSTARTVM pfnStartVM;729 727 /** Host-physical address of the EPTP. */ 730 728 RTHCPHYS HCPhysEPTP; … … 854 852 typedef const VMXVMCSINFO *PCVMXVMCSINFO; 855 853 AssertCompileSizeAlignment(VMXVMCSINFO, 8); 856 AssertCompileMemberAlignment(VMXVMCSINFO, pfnStartVM, 8);857 854 AssertCompileMemberAlignment(VMXVMCSINFO, u32PinCtls, 4); 858 855 AssertCompileMemberAlignment(VMXVMCSINFO, u64VmcsLinkPtr, 8); … … 1001 998 /** @name Guest information. 1002 999 * @{ */ 1000 /** Ring-0 pointer to the hardware-assisted VMX execution function. */ 1001 PFNHMVMXSTARTVM pfnStartVm; 1003 1002 /** Guest VMCS information. */ 1004 1003 VMXVMCSINFO VmcsInfo; … … 1315 1314 * Prepares for and executes VMRUN (64-bit register context). 1316 1315 * 1317 * @returns VBox status code .1316 * @returns VBox status code (no informational stuff). 1318 1317 * @param pVM The cross context VM structure. (Not used.) 1319 1318 * @param pVCpu The cross context virtual CPU structure. … … 1364 1363 DECLASM(int) hmR0VMXStartVMWrapXMM(PVMCC pVM, PVMCPUCC pVCpu, RTHCUINT fResume, PFNHMVMXSTARTVM pfnStartVM); 1365 1364 # endif 1366 DECLASM(int) hmR0VMXStartVM(PVMCC pVM, PVMCPUCC pVCpu, RTHCUINT fResume); 1367 1365 1366 /** 1367 * VMX StartVM functions. 1368 * 1369 * @returns VBox status code (no informational stuff). 1370 * @param pVM Pointer to the cross context VM structure. 1371 * @param pVCpu Pointer to the cross context per-CPU structure. 1372 * @param fResume Whether to use VMRESUME (true) or VMLAUNCH (false). 1373 * 1374 * @remarks With spectre mitigations and the usual need for speed (/ micro 1375 * optimizations), we have a bunch of variations of this code depending 1376 * on a few precoditions. In release builds, the code is entirely 1377 * without conditionals. Debug builds have a couple of assertions that 1378 * shouldn't ever be triggered. 1379 * 1380 * @{ 1381 */ 1382 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_SansL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1383 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_SansL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1384 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_SansL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1385 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_SansL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1386 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_WithL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1387 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_WithL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1388 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_WithL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1389 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_WithL1dEntry_SansMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1390 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_SansL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1391 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_SansL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1392 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_SansL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1393 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_SansL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1394 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_WithL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1395 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_WithL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1396 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_WithL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1397 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_WithL1dEntry_WithMdsEntry_SansIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1398 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_SansL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1399 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_SansL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1400 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_SansL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1401 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_SansL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1402 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_WithL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1403 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_WithL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1404 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_WithL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1405 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_WithL1dEntry_SansMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1406 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_SansL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1407 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_SansL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1408 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_SansL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1409 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_SansL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1410 DECLASM(int) hmR0VmxStartVm_SansXcr0_SansIbpbEntry_WithL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1411 DECLASM(int) hmR0VmxStartVm_WithXcr0_SansIbpbEntry_WithL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1412 DECLASM(int) hmR0VmxStartVm_SansXcr0_WithIbpbEntry_WithL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1413 DECLASM(int) hmR0VmxStartVm_WithXcr0_WithIbpbEntry_WithL1dEntry_WithMdsEntry_WithIbpbExit(PVMCC pVM, PVMCPUCC pVCpu, bool fResume); 1368 1414 /** @} */ 1369 1415 1370 1416 /** @} */ 1371 1417 1418 /** @} */ 1419 1372 1420 RT_C_DECLS_END 1373 1421 -
trunk/src/VBox/VMM/include/HMInternal.mac
r87431 r87439 22 22 23 23 struc VMXVMCSINFO 24 .pfnStartVM RTR0PTR_RES 125 24 .HCPhysEPTP RTHCPHYS_RES 1 26 25 .fVmcsState resd 1 … … 113 112 114 113 struc HMCPUVMX 114 .pfnStartVm RTR0PTR_RES 1 115 115 .VmcsInfo resb VMXVMCSINFO_size 116 116 .VmcsInfoNstGst resb VMXVMCSINFO_size
Note:
See TracChangeset
for help on using the changeset viewer.