Changeset 14649 in vbox for trunk/include/VBox
- Timestamp:
- Nov 26, 2008 3:01:53 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/hwacc_vmx.h
r14648 r14649 983 983 * @{ 984 984 */ 985 #define VMX_VMCS 64_CTRL_CR0_MASK 0x6000986 #define VMX_VMCS 64_CTRL_CR4_MASK 0x6002987 #define VMX_VMCS 64_CTRL_CR0_READ_SHADOW 0x6004988 #define VMX_VMCS 64_CTRL_CR4_READ_SHADOW 0x6006989 #define VMX_VMCS 64_CTRL_CR3_TARGET_VAL0 0x6008990 #define VMX_VMCS 64_CTRL_CR3_TARGET_VAL1 0x600A991 #define VMX_VMCS 64_CTRL_CR3_TARGET_VAL2 0x600C992 #define VMX_VMCS 64_CTRL_CR3_TARGET_VAL31 0x600E985 #define VMX_VMCS_CTRL_CR0_MASK 0x6000 986 #define VMX_VMCS_CTRL_CR4_MASK 0x6002 987 #define VMX_VMCS_CTRL_CR0_READ_SHADOW 0x6004 988 #define VMX_VMCS_CTRL_CR4_READ_SHADOW 0x6006 989 #define VMX_VMCS_CTRL_CR3_TARGET_VAL0 0x6008 990 #define VMX_VMCS_CTRL_CR3_TARGET_VAL1 0x600A 991 #define VMX_VMCS_CTRL_CR3_TARGET_VAL2 0x600C 992 #define VMX_VMCS_CTRL_CR3_TARGET_VAL31 0x600E 993 993 /** @} */ 994 994 … … 997 997 * @{ 998 998 */ 999 #define VMX_VMCS 64_RO_EXIT_QUALIFICATION 0x64001000 #define VMX_VMCS 64_RO_IO_RCX 0x64021001 #define VMX_VMCS 64_RO_IO_RSX 0x64041002 #define VMX_VMCS 64_RO_IO_RDI 0x64061003 #define VMX_VMCS 64_RO_IO_RIP 0x64081004 #define VMX_VMCS 64_EXIT_GUEST_LINEAR_ADDR 0x640A999 #define VMX_VMCS_RO_EXIT_QUALIFICATION 0x6400 1000 #define VMX_VMCS_RO_IO_RCX 0x6402 1001 #define VMX_VMCS_RO_IO_RSX 0x6404 1002 #define VMX_VMCS_RO_IO_RDI 0x6406 1003 #define VMX_VMCS_RO_IO_RIP 0x6408 1004 #define VMX_VMCS_EXIT_GUEST_LINEAR_ADDR 0x640A 1005 1005 /** @} */ 1006 1006 … … 1124 1124 * @{ 1125 1125 */ 1126 #define VMX_VMCS 64_GUEST_CR00x68001127 #define VMX_VMCS 64_GUEST_CR30x68021128 #define VMX_VMCS 64_GUEST_CR40x68041129 #define VMX_VMCS 64_GUEST_ES_BASE0x68061130 #define VMX_VMCS 64_GUEST_CS_BASE0x68081131 #define VMX_VMCS 64_GUEST_SS_BASE0x680A1132 #define VMX_VMCS 64_GUEST_DS_BASE0x680C1133 #define VMX_VMCS 64_GUEST_FS_BASE0x680E1134 #define VMX_VMCS 64_GUEST_GS_BASE0x68101135 #define VMX_VMCS 64_GUEST_LDTR_BASE0x68121136 #define VMX_VMCS 64_GUEST_TR_BASE0x68141137 #define VMX_VMCS 64_GUEST_GDTR_BASE0x68161138 #define VMX_VMCS 64_GUEST_IDTR_BASE0x68181139 #define VMX_VMCS 64_GUEST_DR70x681A1140 #define VMX_VMCS 64_GUEST_RSP0x681C1141 #define VMX_VMCS 64_GUEST_RIP0x681E1142 #define VMX_VMCS 64_GUEST_RFLAGS0x68201143 #define VMX_VMCS 64_GUEST_DEBUG_EXCEPTIONS0x68221144 #define VMX_VMCS 64_GUEST_SYSENTER_ESP0x6824 /**< MSR IA32_SYSENTER_ESP */1145 #define VMX_VMCS 64_GUEST_SYSENTER_EIP0x6826 /**< MSR IA32_SYSENTER_EIP */1126 #define VMX_VMCS_GUEST_CR0 0x6800 1127 #define VMX_VMCS_GUEST_CR3 0x6802 1128 #define VMX_VMCS_GUEST_CR4 0x6804 1129 #define VMX_VMCS_GUEST_ES_BASE 0x6806 1130 #define VMX_VMCS_GUEST_CS_BASE 0x6808 1131 #define VMX_VMCS_GUEST_SS_BASE 0x680A 1132 #define VMX_VMCS_GUEST_DS_BASE 0x680C 1133 #define VMX_VMCS_GUEST_FS_BASE 0x680E 1134 #define VMX_VMCS_GUEST_GS_BASE 0x6810 1135 #define VMX_VMCS_GUEST_LDTR_BASE 0x6812 1136 #define VMX_VMCS_GUEST_TR_BASE 0x6814 1137 #define VMX_VMCS_GUEST_GDTR_BASE 0x6816 1138 #define VMX_VMCS_GUEST_IDTR_BASE 0x6818 1139 #define VMX_VMCS_GUEST_DR7 0x681A 1140 #define VMX_VMCS_GUEST_RSP 0x681C 1141 #define VMX_VMCS_GUEST_RIP 0x681E 1142 #define VMX_VMCS_GUEST_RFLAGS 0x6820 1143 #define VMX_VMCS_GUEST_DEBUG_EXCEPTIONS 0x6822 1144 #define VMX_VMCS_GUEST_SYSENTER_ESP 0x6824 /**< MSR IA32_SYSENTER_ESP */ 1145 #define VMX_VMCS_GUEST_SYSENTER_EIP 0x6826 /**< MSR IA32_SYSENTER_EIP */ 1146 1146 /** @} */ 1147 1147 … … 1385 1385 * @returns VBox status code 1386 1386 * @param idxField VMCS index 1387 * @param u64Val 16, 32 or 64 bits value 1388 */ 1389 DECLASM(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val); 1390 1391 /** 1392 * Executes VMWRITE 1393 * 1394 * @returns VBox status code 1395 * @param idxField VMCS index 1387 1396 * @param u32Val 32 bits value 1388 1397 */ … … 1432 1441 #endif 1433 1442 1434 /**1435 * Executes VMWRITE1436 *1437 * @returns VBox status code1438 * @param idxField VMCS index1439 * @param u64Val 16, 32 or 64 bits value1440 */1441 #if HC_ARCH_BITS == 641442 DECLASM(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val);1443 #else1444 DECLINLINE(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val)1445 {1446 int rc;1447 1448 rc = VMXWriteVMCS32(idxField, u64Val);1449 rc |= VMXWriteVMCS32(idxField + 1, (uint32_t)(u64Val >> 32ULL));1450 AssertRC(rc);1451 return rc;1452 }1453 #endif1454 1455 1443 #if HC_ARCH_BITS == 64 1456 1444 #define VMXWriteVMCS VMXWriteVMCS64 … … 1459 1447 #endif /* HC_ARCH_BITS == 64 */ 1460 1448 1449 1450 /** 1451 * Executes VMREAD 1452 * 1453 * @returns VBox status code 1454 * @param idxField VMCS index 1455 * @param pData Ptr to store VM field value 1456 */ 1457 DECLASM(int) VMXReadVMCS64(uint32_t idxField, uint64_t *pData); 1461 1458 1462 1459 /** … … 1532 1529 1533 1530 #if HC_ARCH_BITS == 64 1534 /**1535 * Executes VMREAD1536 *1537 * @returns VBox status code1538 * @param idxField VMCS index1539 * @param pData Ptr to store VM field value1540 */1541 DECLASM(int) VMXReadVMCS64(uint32_t idxField, uint64_t *pData);1542 #else1543 DECLINLINE(int) VMXReadVMCS64(uint32_t idxField, uint64_t *pData)1544 {1545 int rc;1546 1547 uint32_t val_hi, val;1548 rc = VMXReadVMCS32(idxField, &val);1549 rc |= VMXReadVMCS32(idxField + 1, &val_hi);1550 AssertRC(rc);1551 *pData = RT_MAKE_U64(val, val_hi);1552 return rc;1553 }1554 #endif1555 1556 #if HC_ARCH_BITS == 641557 1531 # define VMXReadVMCS VMXReadVMCS64 1558 1532 #else
Note:
See TracChangeset
for help on using the changeset viewer.