Changeset 61608 in vbox
- Timestamp:
- Jun 9, 2016 10:14:25 AM (9 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r61582 r61608 1777 1777 */ 1778 1778 VMCPU_ASSERT_EMT(pVCpu); 1779 Assert(u32Reg >= MSR_IA32_X2APIC_ START && u32Reg <= MSR_IA32_X2APIC_END);1779 Assert(u32Reg >= MSR_IA32_X2APIC_ID && u32Reg <= MSR_IA32_X2APIC_SELF_IPI); 1780 1780 Assert(pu64Value); 1781 1781 … … 1884 1884 */ 1885 1885 VMCPU_ASSERT_EMT(pVCpu); 1886 Assert(u32Reg >= MSR_IA32_X2APIC_ START && u32Reg <= MSR_IA32_X2APIC_END);1886 Assert(u32Reg >= MSR_IA32_X2APIC_ID && u32Reg <= MSR_IA32_X2APIC_SELF_IPI); 1887 1887 1888 1888 #ifndef IN_RING3 -
trunk/src/VBox/VMM/VMMR3/APIC.cpp
r61586 r61608 48 48 #define APIC_SAVED_STATE_VERSION_ANCIENT 1 49 49 50 #ifdef VBOX_WITH_STATISTICS 51 # define X2APIC_MSRRANGE(a_uFirst, a_uLast, a_szName) \ 52 { (a_uFirst), (a_uLast), kCpumMsrRdFn_Ia32X2ApicN, kCpumMsrWrFn_Ia32X2ApicN, 0, 0, 0, 0, 0, a_szName, { 0 }, { 0 }, { 0 }, { 0 } } 53 #else 54 # define X2APIC_MSRRANGE(a_uFirst, a_uLast, a_szName) \ 55 { (a_uFirst), (a_uLast), kCpumMsrRdFn_Ia32X2ApicN, kCpumMsrWrFn_Ia32X2ApicN, 0, 0, 0, 0, 0, a_szName } 56 #endif 57 50 58 51 59 /********************************************************************************************************************************* 52 60 * Global Variables * 53 61 *********************************************************************************************************************************/ 62 /** 63 * Array of MSR ranges supported by the x2APIC. 64 */ 65 static CPUMMSRRANGE const g_aMsrRanges_x2Apic[] = 66 { 67 X2APIC_MSRRANGE(MSR_IA32_X2APIC_ID, MSR_IA32_X2APIC_VERSION, "x2APIC range 0"), 68 X2APIC_MSRRANGE(MSR_IA32_X2APIC_VERSION, MSR_IA32_X2APIC_TPR, "x2APIC range 1"), 69 X2APIC_MSRRANGE(MSR_IA32_X2APIC_TPR, MSR_IA32_X2APIC_TPR, "x2APIC range 2"), 70 X2APIC_MSRRANGE(MSR_IA32_X2APIC_PPR, MSR_IA32_X2APIC_EOI, "x2APIC range 3"), 71 X2APIC_MSRRANGE(MSR_IA32_X2APIC_LDR, MSR_IA32_X2APIC_LDR, "x2APIC range 4"), 72 X2APIC_MSRRANGE(MSR_IA32_X2APIC_SVR, MSR_IA32_X2APIC_SVR, "x2APIC range 5"), 73 X2APIC_MSRRANGE(MSR_IA32_X2APIC_ISR0, MSR_IA32_X2APIC_ISR7, "x2APIC range 7"), 74 X2APIC_MSRRANGE(MSR_IA32_X2APIC_TMR0, MSR_IA32_X2APIC_TMR7, "x2APIC range 8"), 75 X2APIC_MSRRANGE(MSR_IA32_X2APIC_IRR0, MSR_IA32_X2APIC_IRR7, "x2APIC range 8"), 76 X2APIC_MSRRANGE(MSR_IA32_X2APIC_ESR, MSR_IA32_X2APIC_ESR, "x2APIC range 9"), 77 X2APIC_MSRRANGE(MSR_IA32_X2APIC_LVT_CMCI, MSR_IA32_X2APIC_ICR, "x2APIC range 10"), 78 X2APIC_MSRRANGE(MSR_IA32_X2APIC_LVT_TIMER, MSR_IA32_X2APIC_TIMER_CCR, "x2APIC range 11"), 79 X2APIC_MSRRANGE(MSR_IA32_X2APIC_TIMER_DCR, MSR_IA32_X2APIC_SELF_IPI, "x2APIC range 12") 80 }; 81 #undef X2APIC_MSRRANGE 82 54 83 /** Saved state field descriptors for XAPICPAGE. */ 55 84 static const SSMFIELD g_aXApicPageFields[] = … … 1647 1676 1648 1677 case APICMODE_X2APIC: 1678 { 1649 1679 pApic->enmOriginalMode = enmOriginalMode; 1650 1680 CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_X2APIC); 1681 1682 /* Insert all MSR ranges of the x2APIC. */ 1683 LogRel(("APIC: Registering x2APIC MSR ranges\n")); 1684 for (size_t i = 0; i < RT_ELEMENTS(g_aMsrRanges_x2Apic); i++) 1685 { 1686 rc = CPUMR3MsrRangesInsert(pVM, &g_aMsrRanges_x2Apic[i]); 1687 AssertLogRelRCReturn(rc, rc); 1688 } 1651 1689 break; 1690 } 1652 1691 1653 1692 case APICMODE_XAPIC:
Note:
See TracChangeset
for help on using the changeset viewer.