Changeset 48543 in vbox for trunk/include/VBox/vmm
- Timestamp:
- Sep 19, 2013 4:02:26 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 89090
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_vmx.h
r48216 r48543 1077 1077 */ 1078 1078 /** VMCS revision identifier used by the processor. */ 1079 #define MSR_IA32_VMX_BASIC_INFO_VMCS_ID(a) ( a& 0x7FFFFFFF)1079 #define MSR_IA32_VMX_BASIC_INFO_VMCS_ID(a) ((a) & 0x7FFFFFFF) 1080 1080 /** Size of the VMCS. */ 1081 1081 #define MSR_IA32_VMX_BASIC_INFO_VMCS_SIZE(a) (((a) >> 32) & 0xFFF) … … 1469 1469 * @{ 1470 1470 */ 1471 #define VMX_EXIT_REASON_BASIC(a) ( a& 0xffff)1471 #define VMX_EXIT_REASON_BASIC(a) ((a) & 0xffff) 1472 1472 /** @} */ 1473 1473 … … 1475 1475 * @{ 1476 1476 */ 1477 #define VMX_ENTRY_INTERRUPTION_INFO_VALID(a) ( a& RT_BIT(31))1477 #define VMX_ENTRY_INTERRUPTION_INFO_VALID(a) ((a) & RT_BIT(31)) 1478 1478 #define VMX_ENTRY_INTERRUPTION_INFO_TYPE_SHIFT 8 1479 1479 #define VMX_ENTRY_INTERRUPTION_INFO_TYPE(a) ((a >> VMX_ENTRY_INTERRUPTION_INFO_TYPE_SHIFT) & 7) … … 1484 1484 * @{ 1485 1485 */ 1486 #define VMX_EXIT_INTERRUPTION_INFO_VECTOR(a) ( a& 0xff)1486 #define VMX_EXIT_INTERRUPTION_INFO_VECTOR(a) ((a) & 0xff) 1487 1487 #define VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT 8 1488 #define VMX_EXIT_INTERRUPTION_INFO_TYPE(a) (( a>> VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT) & 7)1488 #define VMX_EXIT_INTERRUPTION_INFO_TYPE(a) (((a) >> VMX_EXIT_INTERRUPTION_INFO_TYPE_SHIFT) & 7) 1489 1489 #define VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID RT_BIT(11) 1490 #define VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(a) ( a& VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID)1491 #define VMX_EXIT_INTERRUPTION_INFO_NMI_UNBLOCK(a) ( a& RT_BIT(12))1490 #define VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(a) ((a) & VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_VALID) 1491 #define VMX_EXIT_INTERRUPTION_INFO_NMI_UNBLOCK(a) ((a) & RT_BIT(12)) 1492 1492 #ifdef VBOX_WITH_OLD_VTX_CODE 1493 1493 # define VMX_EXIT_INTERRUPTION_INFO_VALID_SHIFT 31 1494 1494 #endif 1495 1495 #define VMX_EXIT_INTERRUPTION_INFO_VALID RT_BIT(31) 1496 #define VMX_EXIT_INTERRUPTION_INFO_IS_VALID(a) ( a& RT_BIT(31))1496 #define VMX_EXIT_INTERRUPTION_INFO_IS_VALID(a) ((a) & RT_BIT(31)) 1497 1497 /** Construct an irq event injection value from the exit interruption info value (same except that bit 12 is reserved). */ 1498 #define VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(a) ( a& ~RT_BIT(12))1498 #define VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(a) ((a) & ~RT_BIT(12)) 1499 1499 /** @} */ 1500 1500 … … 1513 1513 * @{ 1514 1514 */ 1515 #define VMX_IDT_VECTORING_INFO_VECTOR(a) ( a& 0xff)1515 #define VMX_IDT_VECTORING_INFO_VECTOR(a) ((a) & 0xff) 1516 1516 #define VMX_IDT_VECTORING_INFO_TYPE_SHIFT 8 1517 #define VMX_IDT_VECTORING_INFO_TYPE(a) (( a>> VMX_IDT_VECTORING_INFO_TYPE_SHIFT) & 7)1517 #define VMX_IDT_VECTORING_INFO_TYPE(a) (((a) >> VMX_IDT_VECTORING_INFO_TYPE_SHIFT) & 7) 1518 1518 #define VMX_IDT_VECTORING_INFO_ERROR_CODE_VALID RT_BIT(11) 1519 #define VMX_IDT_VECTORING_INFO_ERROR_CODE_IS_VALID(a) ( a& VMX_IDT_VECTORING_INFO_ERROR_CODE_VALID)1520 #define VMX_IDT_VECTORING_INFO_VALID(a) ( a& RT_BIT(31))1521 #define VMX_ENTRY_INTR_INFO_FROM_EXIT_IDT_INFO(a) ( a& ~RT_BIT(12))1519 #define VMX_IDT_VECTORING_INFO_ERROR_CODE_IS_VALID(a) ((a) & VMX_IDT_VECTORING_INFO_ERROR_CODE_VALID) 1520 #define VMX_IDT_VECTORING_INFO_VALID(a) ((a) & RT_BIT(31)) 1521 #define VMX_ENTRY_INTR_INFO_FROM_EXIT_IDT_INFO(a) ((a) & ~RT_BIT(12)) 1522 1522 /** @} */ 1523 1523 … … 1622 1622 */ 1623 1623 /** 0-2: Debug register number */ 1624 #define VMX_EXIT_QUALIFICATION_DRX_REGISTER(a) ( a& 7)1624 #define VMX_EXIT_QUALIFICATION_DRX_REGISTER(a) ((a) & 7) 1625 1625 /** 3: Reserved; cleared to 0. */ 1626 #define VMX_EXIT_QUALIFICATION_DRX_RES1(a) (( a>> 3) & 1)1626 #define VMX_EXIT_QUALIFICATION_DRX_RES1(a) (((a) >> 3) & 1) 1627 1627 /** 4: Direction of move (0 = write, 1 = read) */ 1628 #define VMX_EXIT_QUALIFICATION_DRX_DIRECTION(a) (( a>> 4) & 1)1628 #define VMX_EXIT_QUALIFICATION_DRX_DIRECTION(a) (((a) >> 4) & 1) 1629 1629 /** 5-7: Reserved; cleared to 0. */ 1630 #define VMX_EXIT_QUALIFICATION_DRX_RES2(a) (( a>> 5) & 7)1630 #define VMX_EXIT_QUALIFICATION_DRX_RES2(a) (((a) >> 5) & 7) 1631 1631 /** 8-11: General purpose register number. */ 1632 #define VMX_EXIT_QUALIFICATION_DRX_GENREG(a) (( a>> 8) & 0xF)1632 #define VMX_EXIT_QUALIFICATION_DRX_GENREG(a) (((a) >> 8) & 0xF) 1633 1633 /** Rest: reserved. */ 1634 1634 /** @} */ … … 1647 1647 */ 1648 1648 /** 0-3: Control register number (0 for CLTS & LMSW) */ 1649 #define VMX_EXIT_QUALIFICATION_CRX_REGISTER(a) ( a& 0xF)1649 #define VMX_EXIT_QUALIFICATION_CRX_REGISTER(a) ((a) & 0xF) 1650 1650 /** 4-5: Access type. */ 1651 #define VMX_EXIT_QUALIFICATION_CRX_ACCESS(a) (( a>> 4) & 3)1651 #define VMX_EXIT_QUALIFICATION_CRX_ACCESS(a) (((a) >> 4) & 3) 1652 1652 /** 6: LMSW operand type */ 1653 #define VMX_EXIT_QUALIFICATION_CRX_LMSW_OP(a) (( a>> 6) & 1)1653 #define VMX_EXIT_QUALIFICATION_CRX_LMSW_OP(a) (((a) >> 6) & 1) 1654 1654 /** 7: Reserved; cleared to 0. */ 1655 #define VMX_EXIT_QUALIFICATION_CRX_RES1(a) (( a>> 7) & 1)1655 #define VMX_EXIT_QUALIFICATION_CRX_RES1(a) (((a) >> 7) & 1) 1656 1656 /** 8-11: General purpose register number (0 for CLTS & LMSW). */ 1657 #define VMX_EXIT_QUALIFICATION_CRX_GENREG(a) (( a>> 8) & 0xF)1657 #define VMX_EXIT_QUALIFICATION_CRX_GENREG(a) (((a) >> 8) & 0xF) 1658 1658 /** 12-15: Reserved; cleared to 0. */ 1659 #define VMX_EXIT_QUALIFICATION_CRX_RES2(a) (( a>> 12) & 0xF)1659 #define VMX_EXIT_QUALIFICATION_CRX_RES2(a) (((a) >> 12) & 0xF) 1660 1660 /** 16-31: LMSW source data (else 0). */ 1661 #define VMX_EXIT_QUALIFICATION_CRX_LMSW_DATA(a) (( a>> 16) & 0xFFFF)1661 #define VMX_EXIT_QUALIFICATION_CRX_LMSW_DATA(a) (((a) >> 16) & 0xFFFF) 1662 1662 /** Rest: reserved. */ 1663 1663 /** @} */ … … 1675 1675 * @{ 1676 1676 */ 1677 #define VMX_EXIT_QUALIFICATION_TASK_SWITCH_SELECTOR(a) ( a& 0xffff)1678 #define VMX_EXIT_QUALIFICATION_TASK_SWITCH_TYPE(a) (( a >> 30)& 0x3)1677 #define VMX_EXIT_QUALIFICATION_TASK_SWITCH_SELECTOR(a) ((a) & 0xffff) 1678 #define VMX_EXIT_QUALIFICATION_TASK_SWITCH_TYPE(a) (((a) >> 30) & 0x3) 1679 1679 /** Task switch caused by a call instruction. */ 1680 1680 #define VMX_EXIT_QUALIFICATION_TASK_SWITCH_TYPE_CALL 0
Note:
See TracChangeset
for help on using the changeset viewer.