- Timestamp:
- Jul 27, 2016 3:46:22 PM (8 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r62460 r62601 229 229 return VERR_CPUM_RAISE_GP_0; 230 230 #else 231 RT_NOREF_PV(u32Reg); RT_NOREF_PV(pVCpu); 231 232 return s_aAccess[i].rcRZ; 232 233 #endif … … 1834 1835 Assert(u32Reg >= MSR_IA32_X2APIC_ID && u32Reg <= MSR_IA32_X2APIC_SELF_IPI); 1835 1836 Assert(pu64Value); 1837 RT_NOREF_PV(pDevIns); 1836 1838 1837 1839 #ifndef IN_RING3 … … 1840 1842 { /* likely */} 1841 1843 else 1842 {1843 1844 return VINF_CPUM_R3_MSR_READ; 1844 }1845 1845 #endif 1846 1846 … … 1940 1940 VMCPU_ASSERT_EMT(pVCpu); 1941 1941 Assert(u32Reg >= MSR_IA32_X2APIC_ID && u32Reg <= MSR_IA32_X2APIC_SELF_IPI); 1942 RT_NOREF_PV(pDevIns); 1942 1943 1943 1944 #ifndef IN_RING3 … … 1946 1947 { /* likely */ } 1947 1948 else 1948 {1949 1949 return VINF_CPUM_R3_MSR_WRITE; 1950 }1951 1950 #endif 1952 1951 … … 2198 2197 ASMAtomicWriteU64(&pApicCpu->uApicBaseMsr, uBaseMsr); 2199 2198 return VINF_SUCCESS; 2199 2200 2200 #else /* !IN_RING3 */ 2201 RT_NOREF_PV(pDevIns); 2202 RT_NOREF_PV(pVCpu); 2203 RT_NOREF_PV(u64BaseMsr); 2201 2204 return VINF_CPUM_R3_MSR_WRITE; 2202 2205 #endif /* IN_RING3 */ … … 2209 2212 APICBOTHCBDECL(uint64_t) apicGetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu) 2210 2213 { 2214 RT_NOREF_PV(pDevIns); 2211 2215 VMCPU_ASSERT_EMT_OR_NOT_RUNNING(pVCpu); 2212 2216 … … 2221 2225 APICBOTHCBDECL(void) apicSetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Tpr) 2222 2226 { 2227 RT_NOREF_PV(pDevIns); 2223 2228 apicSetTpr(pVCpu, u8Tpr); 2224 2229 } … … 2253 2258 APICBOTHCBDECL(uint8_t) apicGetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, bool *pfPending, uint8_t *pu8PendingIntr) 2254 2259 { 2260 RT_NOREF_PV(pDevIns); 2255 2261 VMCPU_ASSERT_EMT(pVCpu); 2256 2262 PCXAPICPAGE pXApicPage = VMCPU_TO_CXAPICPAGE(pVCpu); … … 2486 2492 APICBOTHCBDECL(int) apicGetInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t *pu8Vector, uint32_t *pu32TagSrc) 2487 2493 { 2494 RT_NOREF_PV(pDevIns); 2488 2495 VMCPU_ASSERT_EMT(pVCpu); 2489 2496 Assert(pu8Vector); -
trunk/src/VBox/VMM/VMMAll/CPUMAllMsrs.cpp
r62478 r62601 103 103 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_FixedValue(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 104 104 { 105 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); 105 106 *puValue = pRange->uValue; 106 107 return VINF_SUCCESS; … … 111 112 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IgnoreWrite(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 112 113 { 114 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 113 115 Log(("CPUM: Ignoring WRMSR %#x (%s), %#llx\n", idMsr, pRange->szName, uValue)); 114 116 return VINF_SUCCESS; … … 119 121 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_WriteOnly(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 120 122 { 123 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(puValue); 121 124 return VERR_CPUM_RAISE_GP_0; 122 125 } … … 126 129 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_ReadOnly(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 127 130 { 131 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 128 132 Assert(pRange->fWrGpMask == UINT64_MAX); 129 133 return VERR_CPUM_RAISE_GP_0; … … 142 146 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32P5McAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 143 147 { 148 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 144 149 *puValue = 0; /** @todo implement machine check injection. */ 145 150 return VINF_SUCCESS; … … 150 155 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32P5McAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 151 156 { 157 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 152 158 /** @todo implement machine check injection. */ 153 159 return VINF_SUCCESS; … … 158 164 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32P5McType(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 159 165 { 166 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 160 167 *puValue = 0; /** @todo implement machine check injection. */ 161 168 return VINF_SUCCESS; … … 166 173 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32P5McType(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 167 174 { 175 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 168 176 /** @todo implement machine check injection. */ 169 177 return VINF_SUCCESS; … … 174 182 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32TimestampCounter(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 175 183 { 184 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 176 185 *puValue = TMCpuTickGet(pVCpu); 177 186 return VINF_SUCCESS; … … 182 191 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32TimestampCounter(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 183 192 { 193 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 184 194 TMCpuTickSet(pVCpu->CTX_SUFF(pVM), pVCpu, uValue); 185 195 return VINF_SUCCESS; … … 190 200 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PlatformId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 191 201 { 202 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); 192 203 uint64_t uValue = pRange->uValue; 193 204 if (uValue & 0x1f00) … … 205 216 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32ApicBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 206 217 { 218 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 207 219 return PDMApicGetBaseMsr(pVCpu, puValue, false /* fIgnoreErrors */); 208 220 } … … 212 224 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32ApicBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 213 225 { 226 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 214 227 return PDMApicSetBaseMsr(pVCpu, uValue); 215 228 } … … 219 232 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32FeatureControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 220 233 { 234 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 221 235 *puValue = 1; /* Locked, no VT-X, no SYSENTER micromanagement. */ 222 236 return VINF_SUCCESS; … … 227 241 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32FeatureControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 228 242 { 243 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 229 244 return VERR_CPUM_RAISE_GP_0; 230 245 } … … 234 249 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32BiosSignId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 235 250 { 251 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 236 252 /** @todo fake microcode update. */ 237 253 *puValue = pRange->uValue; … … 243 259 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32BiosSignId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 244 260 { 261 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 245 262 /* Normally, zero is written to Ia32BiosSignId before reading it in order 246 263 to select the signature instead of the BBL_CR_D3 behaviour. The GP mask … … 254 271 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32BiosUpdateTrigger(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 255 272 { 273 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 256 274 /** @todo Fake bios update trigger better. The value is the address to an 257 275 * update package, I think. We should probably GP if it's invalid. */ … … 263 281 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32SmmMonitorCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 264 282 { 283 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 265 284 /** @todo SMM. */ 266 285 *puValue = 0; … … 272 291 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32SmmMonitorCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 273 292 { 293 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 274 294 /** @todo SMM. */ 275 295 return VINF_SUCCESS; … … 280 300 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PmcN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 281 301 { 302 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 282 303 /** @todo check CPUID leaf 0ah. */ 283 304 *puValue = 0; … … 289 310 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PmcN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 290 311 { 312 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 291 313 /** @todo check CPUID leaf 0ah. */ 292 314 return VINF_SUCCESS; … … 297 319 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MonitorFilterLineSize(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 298 320 { 321 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 299 322 /** @todo return 0x1000 if we try emulate mwait 100% correctly. */ 300 323 *puValue = 0x40; /** @todo Change to CPU cache line size. */ … … 306 329 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32MonitorFilterLineSize(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 307 330 { 331 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 308 332 /** @todo should remember writes, though it's supposedly something only a BIOS 309 333 * would write so, it's not extremely important. */ … … 314 338 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MPerf(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 315 339 { 340 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 316 341 /** @todo Read MPERF: Adjust against previously written MPERF value. Is TSC 317 342 * what we want? */ … … 324 349 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32MPerf(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 325 350 { 351 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 326 352 /** @todo Write MPERF: Calc adjustment. */ 327 353 return VINF_SUCCESS; … … 332 358 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32APerf(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 333 359 { 360 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 334 361 /** @todo Read APERF: Adjust against previously written MPERF value. Is TSC 335 362 * what we want? */ … … 342 369 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32APerf(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 343 370 { 371 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 344 372 /** @todo Write APERF: Calc adjustment. */ 345 373 return VINF_SUCCESS; … … 350 378 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MtrrCap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 351 379 { 380 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 381 352 382 /* This is currently a bit weird. :-) */ 353 383 uint8_t const cVariableRangeRegs = 0; … … 366 396 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MtrrPhysBaseN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 367 397 { 398 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 368 399 /** @todo Implement variable MTRR storage. */ 369 400 Assert(pRange->uValue == (idMsr - 0x200) / 2); … … 380 411 */ 381 412 Assert(pRange->uValue == (idMsr - 0x200) / 2); 413 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(uRawValue); 382 414 383 415 if ((uValue & 0xff) >= 7) … … 406 438 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MtrrPhysMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 407 439 { 440 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 408 441 /** @todo Implement variable MTRR storage. */ 409 442 Assert(pRange->uValue == (idMsr - 0x200) / 2); … … 420 453 */ 421 454 Assert(pRange->uValue == (idMsr - 0x200) / 2); 455 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(uRawValue); 422 456 423 457 uint64_t fInvPhysMask = ~(RT_BIT_64(pVCpu->CTX_SUFF(pVM)->cpum.s.GuestFeatures.cMaxPhysAddrWidth) - 1U); … … 440 474 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MtrrFixed(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 441 475 { 476 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 442 477 CPUM_MSR_ASSERT_CPUMCPU_OFFSET_RETURN(pVCpu, pRange, uint64_t, puFixedMtrr); 443 478 *puValue = *puFixedMtrr; … … 450 485 { 451 486 CPUM_MSR_ASSERT_CPUMCPU_OFFSET_RETURN(pVCpu, pRange, uint64_t, puFixedMtrr); 487 RT_NOREF_PV(idMsr); RT_NOREF_PV(uRawValue); 488 452 489 for (uint32_t cShift = 0; cShift < 63; cShift += 8) 453 490 { … … 468 505 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MtrrDefType(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 469 506 { 507 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 470 508 *puValue = pVCpu->cpum.s.GuestMsrs.msr.MtrrDefType; 471 509 return VINF_SUCCESS; … … 476 514 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32MtrrDefType(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 477 515 { 516 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 517 478 518 if ((uValue & 0xff) >= 7) 479 519 { … … 490 530 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32Pat(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 491 531 { 532 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 492 533 *puValue = pVCpu->cpum.s.Guest.msrPAT; 493 534 return VINF_SUCCESS; … … 498 539 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32Pat(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 499 540 { 541 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 500 542 pVCpu->cpum.s.Guest.msrPAT = uValue; 501 543 return VINF_SUCCESS; … … 506 548 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32SysEnterCs(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 507 549 { 550 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 508 551 *puValue = pVCpu->cpum.s.Guest.SysEnter.cs; 509 552 return VINF_SUCCESS; … … 514 557 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32SysEnterCs(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 515 558 { 559 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 560 516 561 /* Note! We used to mask this by 0xffff, but turns out real HW doesn't and 517 562 there are generally 32-bit working bits backing this register. */ … … 524 569 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32SysEnterEsp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 525 570 { 571 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 526 572 *puValue = pVCpu->cpum.s.Guest.SysEnter.esp; 527 573 return VINF_SUCCESS; … … 538 584 } 539 585 Log(("CPUM: IA32_SYSENTER_ESP not canonical! %#llx\n", uValue)); 586 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 540 587 return VERR_CPUM_RAISE_GP_0; 541 588 } … … 545 592 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32SysEnterEip(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 546 593 { 594 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 547 595 *puValue = pVCpu->cpum.s.Guest.SysEnter.eip; 548 596 return VINF_SUCCESS; … … 563 611 Log(("CPUM: IA32_SYSENTER_EIP not canonical! %#llx\n", uValue)); 564 612 #endif 613 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 565 614 return VERR_CPUM_RAISE_GP_0; 566 615 } … … 575 624 *puValue = 0; 576 625 #endif 626 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 577 627 return VINF_SUCCESS; 578 628 } … … 582 632 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32McgStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 583 633 { 634 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 584 635 /** @todo implement machine checks. */ 585 636 *puValue = 0; … … 591 642 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32McgStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 592 643 { 644 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 593 645 /** @todo implement machine checks. */ 594 646 return VINF_SUCCESS; … … 599 651 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32McgCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 600 652 { 653 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 601 654 /** @todo implement machine checks. */ 602 655 *puValue = 0; … … 608 661 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32McgCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 609 662 { 663 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 610 664 /** @todo implement machine checks. */ 611 665 return VINF_SUCCESS; … … 616 670 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32DebugCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 617 671 { 672 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 618 673 /** @todo implement IA32_DEBUGCTL. */ 619 674 *puValue = 0; … … 625 680 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32DebugCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 626 681 { 682 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 627 683 /** @todo implement IA32_DEBUGCTL. */ 628 684 return VINF_SUCCESS; … … 633 689 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32SmrrPhysBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 634 690 { 691 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 635 692 /** @todo implement intel SMM. */ 636 693 *puValue = 0; … … 642 699 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32SmrrPhysBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 643 700 { 701 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 644 702 /** @todo implement intel SMM. */ 645 703 return VERR_CPUM_RAISE_GP_0; … … 650 708 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32SmrrPhysMask(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 651 709 { 710 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 652 711 /** @todo implement intel SMM. */ 653 712 *puValue = 0; … … 659 718 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32SmrrPhysMask(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 660 719 { 720 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 661 721 /** @todo implement intel SMM. */ 662 722 return VERR_CPUM_RAISE_GP_0; … … 667 727 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PlatformDcaCap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 668 728 { 729 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 669 730 /** @todo implement intel direct cache access (DCA)?? */ 670 731 *puValue = 0; … … 676 737 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PlatformDcaCap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 677 738 { 739 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 678 740 /** @todo implement intel direct cache access (DCA)?? */ 679 741 return VINF_SUCCESS; … … 684 746 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32CpuDcaCap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 685 747 { 748 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 686 749 /** @todo implement intel direct cache access (DCA)?? */ 687 750 *puValue = 0; … … 693 756 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32Dca0Cap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 694 757 { 758 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 695 759 /** @todo implement intel direct cache access (DCA)?? */ 696 760 *puValue = 0; … … 702 766 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32Dca0Cap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 703 767 { 768 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 704 769 /** @todo implement intel direct cache access (DCA)?? */ 705 770 return VINF_SUCCESS; … … 710 775 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfEvtSelN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 711 776 { 777 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 712 778 /** @todo implement IA32_PERFEVTSEL0+. */ 713 779 *puValue = 0; … … 719 785 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfEvtSelN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 720 786 { 787 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 721 788 /** @todo implement IA32_PERFEVTSEL0+. */ 722 789 return VINF_SUCCESS; … … 727 794 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 728 795 { 796 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 729 797 uint64_t uValue = pRange->uValue; 730 798 … … 748 816 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 749 817 { 818 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 750 819 /* Pentium4 allows writing, but all bits are ignored. */ 751 820 return VINF_SUCCESS; … … 756 825 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 757 826 { 827 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 758 828 /** @todo implement IA32_PERFCTL. */ 759 829 *puValue = 0; … … 765 835 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 766 836 { 837 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 767 838 /** @todo implement IA32_PERFCTL. */ 768 839 return VINF_SUCCESS; … … 773 844 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32FixedCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 774 845 { 846 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 775 847 /** @todo implement IA32_FIXED_CTRn (fixed performance counters). */ 776 848 *puValue = 0; … … 782 854 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32FixedCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 783 855 { 856 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 784 857 /** @todo implement IA32_FIXED_CTRn (fixed performance counters). */ 785 858 return VINF_SUCCESS; … … 790 863 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfCapabilities(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 791 864 { 865 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 792 866 /** @todo implement performance counters. */ 793 867 *puValue = 0; … … 799 873 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfCapabilities(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 800 874 { 875 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 801 876 /** @todo implement performance counters. */ 802 877 return VINF_SUCCESS; … … 807 882 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32FixedCtrCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 808 883 { 884 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 809 885 /** @todo implement performance counters. */ 810 886 *puValue = 0; … … 816 892 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32FixedCtrCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 817 893 { 894 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 818 895 /** @todo implement performance counters. */ 819 896 return VINF_SUCCESS; … … 824 901 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfGlobalStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 825 902 { 903 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 826 904 /** @todo implement performance counters. */ 827 905 *puValue = 0; … … 833 911 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfGlobalStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 834 912 { 913 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 835 914 /** @todo implement performance counters. */ 836 915 return VINF_SUCCESS; … … 841 920 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfGlobalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 842 921 { 922 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 843 923 /** @todo implement performance counters. */ 844 924 *puValue = 0; … … 850 930 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfGlobalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 851 931 { 932 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 852 933 /** @todo implement performance counters. */ 853 934 return VINF_SUCCESS; … … 858 939 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PerfGlobalOvfCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 859 940 { 941 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 860 942 /** @todo implement performance counters. */ 861 943 *puValue = 0; … … 867 949 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PerfGlobalOvfCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 868 950 { 951 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 869 952 /** @todo implement performance counters. */ 870 953 return VINF_SUCCESS; … … 875 958 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32PebsEnable(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 876 959 { 960 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 877 961 /** @todo implement performance counters. */ 878 962 *puValue = 0; … … 884 968 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32PebsEnable(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 885 969 { 970 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 886 971 /** @todo implement performance counters. */ 887 972 return VINF_SUCCESS; … … 892 977 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32ClockModulation(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 893 978 { 979 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 894 980 /** @todo implement IA32_CLOCK_MODULATION. */ 895 981 *puValue = 0; … … 901 987 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32ClockModulation(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 902 988 { 989 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 903 990 /** @todo implement IA32_CLOCK_MODULATION. */ 904 991 return VINF_SUCCESS; … … 909 996 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32ThermInterrupt(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 910 997 { 998 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 911 999 /** @todo implement IA32_THERM_INTERRUPT. */ 912 1000 *puValue = 0; … … 918 1006 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32ThermInterrupt(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 919 1007 { 1008 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 920 1009 /** @todo implement IA32_THERM_STATUS. */ 921 1010 return VINF_SUCCESS; … … 926 1015 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32ThermStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 927 1016 { 1017 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 928 1018 /** @todo implement IA32_THERM_STATUS. */ 929 1019 *puValue = 0; … … 935 1025 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32ThermStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 936 1026 { 1027 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 937 1028 /** @todo implement IA32_THERM_INTERRUPT. */ 938 1029 return VINF_SUCCESS; … … 943 1034 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32Therm2Ctl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 944 1035 { 1036 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 945 1037 /** @todo implement IA32_THERM2_CTL. */ 946 1038 *puValue = 0; … … 952 1044 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32Therm2Ctl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 953 1045 { 1046 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 954 1047 /** @todo implement IA32_THERM2_CTL. */ 955 1048 return VINF_SUCCESS; … … 960 1053 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32MiscEnable(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 961 1054 { 1055 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 962 1056 *puValue = pVCpu->cpum.s.GuestMsrs.msr.MiscEnable; 963 1057 return VINF_SUCCESS; … … 968 1062 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32MiscEnable(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 969 1063 { 1064 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 970 1065 #ifdef LOG_ENABLED 971 1066 uint64_t const uOld = pVCpu->cpum.s.GuestMsrs.msr.MiscEnable; … … 990 1085 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32McCtlStatusAddrMiscN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 991 1086 { 1087 RT_NOREF_PV(pVCpu); RT_NOREF_PV(pRange); 1088 992 1089 /** @todo Implement machine check exception injection. */ 993 1090 switch (idMsr & 3) … … 1014 1111 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32McCtlStatusAddrMiscN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1015 1112 { 1113 RT_NOREF_PV(pVCpu); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1016 1114 switch (idMsr & 3) 1017 1115 { … … 1059 1157 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32McNCtl2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1060 1158 { 1159 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1061 1160 /** @todo Implement machine check exception injection. */ 1062 1161 *puValue = 0; … … 1068 1167 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32McNCtl2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1069 1168 { 1169 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1070 1170 /** @todo Implement machine check exception injection. */ 1071 1171 return VINF_SUCCESS; … … 1076 1176 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32DsArea(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1077 1177 { 1178 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1078 1179 /** @todo implement IA32_DS_AREA. */ 1079 1180 *puValue = 0; … … 1085 1186 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32DsArea(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1086 1187 { 1188 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1189 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1087 1190 return VINF_SUCCESS; 1088 1191 } … … 1092 1195 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32TscDeadline(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1093 1196 { 1197 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1094 1198 /** @todo implement TSC deadline timer. */ 1095 1199 *puValue = 0; … … 1101 1205 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32TscDeadline(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1102 1206 { 1207 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1103 1208 /** @todo implement TSC deadline timer. */ 1104 1209 return VINF_SUCCESS; … … 1109 1214 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32X2ApicN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1110 1215 { 1216 RT_NOREF_PV(pRange); 1111 1217 return PDMApicReadMsr(pVCpu, idMsr, puValue); 1112 1218 } … … 1116 1222 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32X2ApicN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1117 1223 { 1224 RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1118 1225 return PDMApicWriteMsr(pVCpu, idMsr, uValue); 1119 1226 } … … 1123 1230 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32DebugInterface(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1124 1231 { 1232 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1125 1233 /** @todo IA32_DEBUG_INTERFACE (no docs) */ 1126 1234 *puValue = 0; … … 1132 1240 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Ia32DebugInterface(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1133 1241 { 1242 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1134 1243 /** @todo IA32_DEBUG_INTERFACE (no docs) */ 1135 1244 return VINF_SUCCESS; … … 1140 1249 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1141 1250 { 1251 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1142 1252 *puValue = 0; 1143 1253 return VINF_SUCCESS; … … 1148 1258 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxPinbasedCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1149 1259 { 1260 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1150 1261 *puValue = 0; 1151 1262 return VINF_SUCCESS; … … 1156 1267 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxProcbasedCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1157 1268 { 1269 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1158 1270 *puValue = 0; 1159 1271 return VINF_SUCCESS; … … 1164 1276 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxExitCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1165 1277 { 1278 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1166 1279 *puValue = 0; 1167 1280 return VINF_SUCCESS; … … 1172 1285 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxEntryCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1173 1286 { 1287 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1174 1288 *puValue = 0; 1175 1289 return VINF_SUCCESS; … … 1180 1294 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxMisc(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1181 1295 { 1296 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1182 1297 *puValue = 0; 1183 1298 return VINF_SUCCESS; … … 1188 1303 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxCr0Fixed0(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1189 1304 { 1305 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1190 1306 *puValue = 0; 1191 1307 return VINF_SUCCESS; … … 1196 1312 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxCr0Fixed1(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1197 1313 { 1314 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1198 1315 *puValue = 0; 1199 1316 return VINF_SUCCESS; … … 1204 1321 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxCr4Fixed0(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1205 1322 { 1323 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1206 1324 *puValue = 0; 1207 1325 return VINF_SUCCESS; … … 1212 1330 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxCr4Fixed1(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1213 1331 { 1332 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1214 1333 *puValue = 0; 1215 1334 return VINF_SUCCESS; … … 1220 1339 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxVmcsEnum(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1221 1340 { 1341 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1222 1342 *puValue = 0; 1223 1343 return VINF_SUCCESS; … … 1228 1348 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxProcBasedCtls2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1229 1349 { 1350 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1230 1351 *puValue = 0; 1231 1352 return VINF_SUCCESS; … … 1236 1357 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxEptVpidCap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1237 1358 { 1359 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1238 1360 *puValue = 0; 1239 1361 return VINF_SUCCESS; … … 1244 1366 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxTruePinbasedCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1245 1367 { 1368 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1246 1369 *puValue = 0; 1247 1370 return VINF_SUCCESS; … … 1252 1375 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxTrueProcbasedCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1253 1376 { 1377 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1254 1378 *puValue = 0; 1255 1379 return VINF_SUCCESS; … … 1260 1384 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxTrueExitCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1261 1385 { 1386 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1262 1387 *puValue = 0; 1263 1388 return VINF_SUCCESS; … … 1268 1393 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxTrueEntryCtls(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1269 1394 { 1395 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1270 1396 *puValue = 0; 1271 1397 return VINF_SUCCESS; … … 1276 1402 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Ia32VmxVmFunc(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1277 1403 { 1404 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1278 1405 *puValue = 0; 1279 1406 return VINF_SUCCESS; … … 1299 1426 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64Efer(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1300 1427 { 1428 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1301 1429 *puValue = pVCpu->cpum.s.Guest.msrEFER; 1302 1430 return VINF_SUCCESS; … … 1314 1442 uint64_t fMask = 0; 1315 1443 uint64_t fIgnoreMask = MSR_K6_EFER_LMA; 1444 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1316 1445 1317 1446 /* Filter out those bits the guest is allowed to change. (e.g. LMA is read-only) */ … … 1366 1495 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64SyscallTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1367 1496 { 1497 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1368 1498 *puValue = pVCpu->cpum.s.Guest.msrSTAR; 1369 1499 return VINF_SUCCESS; … … 1374 1504 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64SyscallTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1375 1505 { 1506 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1376 1507 pVCpu->cpum.s.Guest.msrSTAR = uValue; 1377 1508 return VINF_SUCCESS; … … 1382 1513 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64LongSyscallTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1383 1514 { 1515 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1384 1516 *puValue = pVCpu->cpum.s.Guest.msrLSTAR; 1385 1517 return VINF_SUCCESS; … … 1390 1522 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64LongSyscallTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1391 1523 { 1524 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1392 1525 if (!X86_IS_CANONICAL(uValue)) 1393 1526 { … … 1403 1536 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64CompSyscallTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1404 1537 { 1538 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1405 1539 *puValue = pVCpu->cpum.s.Guest.msrCSTAR; 1406 1540 return VINF_SUCCESS; … … 1411 1545 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64CompSyscallTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1412 1546 { 1547 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1413 1548 if (!X86_IS_CANONICAL(uValue)) 1414 1549 { … … 1424 1559 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64SyscallFlagMask(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1425 1560 { 1561 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1426 1562 *puValue = pVCpu->cpum.s.Guest.msrSFMASK; 1427 1563 return VINF_SUCCESS; … … 1432 1568 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64SyscallFlagMask(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1433 1569 { 1570 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1434 1571 pVCpu->cpum.s.Guest.msrSFMASK = uValue; 1435 1572 return VINF_SUCCESS; … … 1440 1577 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64FsBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1441 1578 { 1579 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1442 1580 *puValue = pVCpu->cpum.s.Guest.fs.u64Base; 1443 1581 return VINF_SUCCESS; … … 1448 1586 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64FsBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1449 1587 { 1588 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1450 1589 pVCpu->cpum.s.Guest.fs.u64Base = uValue; 1451 1590 return VINF_SUCCESS; … … 1456 1595 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64GsBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1457 1596 { 1597 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1458 1598 *puValue = pVCpu->cpum.s.Guest.gs.u64Base; 1459 1599 return VINF_SUCCESS; … … 1463 1603 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64GsBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1464 1604 { 1605 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1465 1606 pVCpu->cpum.s.Guest.gs.u64Base = uValue; 1466 1607 return VINF_SUCCESS; … … 1472 1613 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64KernelGsBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1473 1614 { 1615 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1474 1616 *puValue = pVCpu->cpum.s.Guest.msrKERNELGSBASE; 1475 1617 return VINF_SUCCESS; … … 1479 1621 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64KernelGsBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1480 1622 { 1623 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1481 1624 pVCpu->cpum.s.Guest.msrKERNELGSBASE = uValue; 1482 1625 return VINF_SUCCESS; … … 1487 1630 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_Amd64TscAux(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1488 1631 { 1632 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1489 1633 *puValue = pVCpu->cpum.s.GuestMsrs.msr.TscAux; 1490 1634 return VINF_SUCCESS; … … 1494 1638 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_Amd64TscAux(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1495 1639 { 1640 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1496 1641 pVCpu->cpum.s.GuestMsrs.msr.TscAux = uValue; 1497 1642 return VINF_SUCCESS; … … 1508 1653 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelEblCrPowerOn(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1509 1654 { 1655 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1510 1656 /** @todo recalc clock frequency ratio? */ 1511 1657 *puValue = pRange->uValue; … … 1517 1663 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelEblCrPowerOn(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1518 1664 { 1665 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1519 1666 /** @todo Write EBL_CR_POWERON: Remember written bits. */ 1520 1667 return VINF_SUCCESS; … … 1525 1672 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7CoreThreadCount(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1526 1673 { 1674 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1675 1527 1676 /* Note! According to cpuid_set_info in XNU (10.7.0), Westmere CPU only 1528 1677 have a 4-bit core count. */ … … 1537 1686 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelP4EbcHardPowerOn(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1538 1687 { 1688 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1539 1689 /** @todo P4 hard power on config */ 1540 1690 *puValue = pRange->uValue; … … 1546 1696 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelP4EbcHardPowerOn(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1547 1697 { 1698 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1548 1699 /** @todo P4 hard power on config */ 1549 1700 return VINF_SUCCESS; … … 1554 1705 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelP4EbcSoftPowerOn(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1555 1706 { 1707 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1556 1708 /** @todo P4 soft power on config */ 1557 1709 *puValue = pRange->uValue; … … 1563 1715 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelP4EbcSoftPowerOn(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1564 1716 { 1717 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1565 1718 /** @todo P4 soft power on config */ 1566 1719 return VINF_SUCCESS; … … 1571 1724 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelP4EbcFrequencyId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1572 1725 { 1726 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1727 1573 1728 uint64_t uValue; 1574 1729 PVM pVM = pVCpu->CTX_SUFF(pVM); … … 1629 1784 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelP4EbcFrequencyId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1630 1785 { 1786 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1631 1787 /** @todo P4 bus frequency config */ 1632 1788 return VINF_SUCCESS; … … 1637 1793 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelP6FsbFrequency(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1638 1794 { 1795 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1796 1639 1797 /* Convert the scalable bus frequency to the encoding in the intel manual (for core+). */ 1640 1798 uint64_t uScalableBusHz = CPUMGetGuestScalableBusFrequency(pVCpu->CTX_SUFF(pVM)); … … 1663 1821 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelPlatformInfo(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1664 1822 { 1823 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1824 1665 1825 /* Just indicate a fixed TSC, no turbo boost, no programmable anything. */ 1666 1826 PVM pVM = pVCpu->CTX_SUFF(pVM); … … 1683 1843 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelFlexRatio(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1684 1844 { 1845 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1846 1685 1847 uint64_t uValue = pRange->uValue & ~UINT64_C(0x1ff00); 1686 1848 … … 1699 1861 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelFlexRatio(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1700 1862 { 1863 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1701 1864 /** @todo implement writing MSR_FLEX_RATIO. */ 1702 1865 return VINF_SUCCESS; … … 1707 1870 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelPkgCStConfigControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1708 1871 { 1872 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1709 1873 *puValue = pVCpu->cpum.s.GuestMsrs.msr.PkgCStateCfgCtrl; 1710 1874 return VINF_SUCCESS; … … 1715 1879 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelPkgCStConfigControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1716 1880 { 1881 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1882 1717 1883 if (pVCpu->cpum.s.GuestMsrs.msr.PkgCStateCfgCtrl & RT_BIT_64(15)) 1718 1884 { … … 1735 1901 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelPmgIoCaptureBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1736 1902 { 1903 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1737 1904 /** @todo implement I/O mwait wakeup. */ 1738 1905 *puValue = 0; … … 1744 1911 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelPmgIoCaptureBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1745 1912 { 1913 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1746 1914 /** @todo implement I/O mwait wakeup. */ 1747 1915 return VINF_SUCCESS; … … 1752 1920 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelLastBranchFromToN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1753 1921 { 1922 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1754 1923 /** @todo implement last branch records. */ 1755 1924 *puValue = 0; … … 1761 1930 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelLastBranchFromToN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1762 1931 { 1932 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1763 1933 /** @todo implement last branch records. */ 1764 1934 return VINF_SUCCESS; … … 1769 1939 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelLastBranchFromN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1770 1940 { 1941 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1771 1942 /** @todo implement last branch records. */ 1772 1943 *puValue = 0; … … 1778 1949 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelLastBranchFromN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1779 1950 { 1951 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uRawValue); 1780 1952 /** @todo implement last branch records. */ 1781 1953 /** @todo Probing indicates that bit 63 is settable on SandyBridge, at least … … 1794 1966 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelLastBranchToN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1795 1967 { 1968 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1796 1969 /** @todo implement last branch records. */ 1797 1970 *puValue = 0; … … 1803 1976 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelLastBranchToN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1804 1977 { 1978 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1805 1979 /** @todo implement last branch records. */ 1806 1980 /** @todo Probing indicates that bit 63 is settable on SandyBridge, at least … … 1819 1993 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelLastBranchTos(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1820 1994 { 1995 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1821 1996 /** @todo implement last branch records. */ 1822 1997 *puValue = 0; … … 1828 2003 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelLastBranchTos(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1829 2004 { 2005 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1830 2006 /** @todo implement last branch records. */ 1831 2007 return VINF_SUCCESS; … … 1836 2012 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelBblCrCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1837 2013 { 2014 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1838 2015 *puValue = pRange->uValue; 1839 2016 return VINF_SUCCESS; … … 1844 2021 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelBblCrCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1845 2022 { 2023 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1846 2024 return VINF_SUCCESS; 1847 2025 } … … 1851 2029 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelBblCrCtl3(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1852 2030 { 2031 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1853 2032 *puValue = pRange->uValue; 1854 2033 return VINF_SUCCESS; … … 1859 2038 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelBblCrCtl3(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1860 2039 { 2040 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1861 2041 return VINF_SUCCESS; 1862 2042 } … … 1866 2046 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7TemperatureTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1867 2047 { 2048 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1868 2049 *puValue = pRange->uValue; 1869 2050 return VINF_SUCCESS; … … 1874 2055 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7TemperatureTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1875 2056 { 2057 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1876 2058 return VINF_SUCCESS; 1877 2059 } … … 1881 2063 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7MsrOffCoreResponseN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1882 2064 { 2065 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1883 2066 /** @todo machine check. */ 1884 2067 *puValue = pRange->uValue; … … 1890 2073 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7MsrOffCoreResponseN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1891 2074 { 2075 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1892 2076 /** @todo machine check. */ 1893 2077 return VINF_SUCCESS; … … 1898 2082 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7MiscPwrMgmt(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1899 2083 { 2084 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1900 2085 *puValue = 0; 1901 2086 return VINF_SUCCESS; … … 1906 2091 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7MiscPwrMgmt(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1907 2092 { 2093 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1908 2094 return VINF_SUCCESS; 1909 2095 } … … 1913 2099 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelP6CrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1914 2100 { 2101 RT_NOREF_PV(idMsr); 1915 2102 int rc = CPUMGetGuestCRx(pVCpu, pRange->uValue, puValue); 1916 2103 AssertRC(rc); … … 1922 2109 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelP6CrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1923 2110 { 2111 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1924 2112 /* This CRx interface differs from the MOV CRx, GReg interface in that 1925 2113 #GP(0) isn't raised if unsupported bits are written to. Instead they … … 1934 2122 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCpuId1FeatureMaskEcdx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1935 2123 { 2124 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1936 2125 /** @todo implement CPUID masking. */ 1937 2126 *puValue = UINT64_MAX; … … 1943 2132 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCpuId1FeatureMaskEcdx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1944 2133 { 2134 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1945 2135 /** @todo implement CPUID masking. */ 1946 2136 return VINF_SUCCESS; … … 1951 2141 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCpuId1FeatureMaskEax(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1952 2142 { 2143 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1953 2144 /** @todo implement CPUID masking. */ 2145 *puValue = 0; 1954 2146 return VINF_SUCCESS; 1955 2147 } … … 1959 2151 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCpuId1FeatureMaskEax(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1960 2152 { 2153 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1961 2154 /** @todo implement CPUID masking. */ 1962 2155 return VINF_SUCCESS; … … 1968 2161 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCpuId80000001FeatureMaskEcdx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1969 2162 { 2163 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1970 2164 /** @todo implement CPUID masking. */ 1971 2165 *puValue = UINT64_MAX; … … 1977 2171 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCpuId80000001FeatureMaskEcdx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1978 2172 { 2173 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1979 2174 /** @todo implement CPUID masking. */ 1980 2175 return VINF_SUCCESS; … … 1986 2181 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyAesNiCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 1987 2182 { 2183 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 1988 2184 /** @todo implement AES-NI. */ 1989 2185 *puValue = 3; /* Bit 0 is lock bit, bit 1 disables AES-NI. That's what they say. */ … … 1995 2191 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyAesNiCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 1996 2192 { 2193 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 1997 2194 /** @todo implement AES-NI. */ 1998 2195 return VERR_CPUM_RAISE_GP_0; … … 2003 2200 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7TurboRatioLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2004 2201 { 2202 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2005 2203 /** @todo implement intel C states. */ 2006 2204 *puValue = pRange->uValue; … … 2012 2210 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7TurboRatioLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2013 2211 { 2212 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2014 2213 /** @todo implement intel C states. */ 2015 2214 return VINF_SUCCESS; … … 2020 2219 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7LbrSelect(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2021 2220 { 2221 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2022 2222 /** @todo implement last-branch-records. */ 2023 2223 *puValue = 0; … … 2029 2229 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7LbrSelect(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2030 2230 { 2231 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2031 2232 /** @todo implement last-branch-records. */ 2032 2233 return VINF_SUCCESS; … … 2037 2238 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyErrorControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2038 2239 { 2240 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2039 2241 /** @todo implement memory error injection (MSR_ERROR_CONTROL). */ 2040 2242 *puValue = 0; … … 2046 2248 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyErrorControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2047 2249 { 2250 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2048 2251 /** @todo implement memory error injection (MSR_ERROR_CONTROL). */ 2049 2252 return VINF_SUCCESS; … … 2054 2257 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7VirtualLegacyWireCap(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2055 2258 { 2259 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2056 2260 /** @todo implement memory VLW? */ 2057 2261 *puValue = pRange->uValue; … … 2071 2275 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7PowerCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2072 2276 { 2277 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2073 2278 /** @todo intel power management */ 2074 2279 *puValue = 0; … … 2080 2285 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7PowerCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2081 2286 { 2287 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2082 2288 /** @todo intel power management */ 2083 2289 return VINF_SUCCESS; … … 2088 2294 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyPebsNumAlt(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2089 2295 { 2296 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2090 2297 /** @todo intel performance counters. */ 2091 2298 *puValue = 0; … … 2097 2304 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyPebsNumAlt(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2098 2305 { 2306 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2099 2307 /** @todo intel performance counters. */ 2100 2308 return VINF_SUCCESS; … … 2105 2313 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7PebsLdLat(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2106 2314 { 2315 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2107 2316 /** @todo intel performance counters. */ 2108 2317 *puValue = 0; … … 2114 2323 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7PebsLdLat(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2115 2324 { 2325 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2116 2326 /** @todo intel performance counters. */ 2117 2327 return VINF_SUCCESS; … … 2122 2332 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7PkgCnResidencyN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2123 2333 { 2334 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2124 2335 /** @todo intel power management. */ 2125 2336 *puValue = 0; … … 2131 2342 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7CoreCnResidencyN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2132 2343 { 2344 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2133 2345 /** @todo intel power management. */ 2134 2346 *puValue = 0; … … 2140 2352 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyVrCurrentConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2141 2353 { 2354 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2142 2355 /** @todo Figure out what MSR_VR_CURRENT_CONFIG & MSR_VR_MISC_CONFIG are. */ 2143 2356 *puValue = 0; … … 2149 2362 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyVrCurrentConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2150 2363 { 2364 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2151 2365 /** @todo Figure out what MSR_VR_CURRENT_CONFIG & MSR_VR_MISC_CONFIG are. */ 2152 2366 return VINF_SUCCESS; … … 2157 2371 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyVrMiscConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2158 2372 { 2373 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2159 2374 /** @todo Figure out what MSR_VR_CURRENT_CONFIG & MSR_VR_MISC_CONFIG are. */ 2160 2375 *puValue = 0; … … 2166 2381 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyVrMiscConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2167 2382 { 2383 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2168 2384 /** @todo Figure out what MSR_VR_CURRENT_CONFIG & MSR_VR_MISC_CONFIG are. */ 2169 2385 return VINF_SUCCESS; … … 2174 2390 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyRaplPowerUnit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2175 2391 { 2392 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2176 2393 /** @todo intel RAPL. */ 2177 2394 *puValue = pRange->uValue; … … 2183 2400 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyRaplPowerUnit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2184 2401 { 2402 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2185 2403 /* Note! This is documented as read only and except for a Silvermont sample has 2186 2404 always been classified as read only. This is just here to make it compile. */ … … 2192 2410 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyPkgCnIrtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2193 2411 { 2412 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2194 2413 /** @todo intel power management. */ 2195 2414 *puValue = 0; … … 2201 2420 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyPkgCnIrtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2202 2421 { 2422 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2203 2423 /** @todo intel power management. */ 2204 2424 return VINF_SUCCESS; … … 2209 2429 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SandyPkgC2Residency(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2210 2430 { 2431 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2211 2432 /** @todo intel power management. */ 2212 2433 *puValue = 0; … … 2218 2439 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7SandyPkgC2Residency(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2219 2440 { 2441 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2220 2442 /* Note! This is documented as read only and except for a Silvermont sample has 2221 2443 always been classified as read only. This is just here to make it compile. */ … … 2227 2449 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPkgPowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2228 2450 { 2451 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2229 2452 /** @todo intel RAPL. */ 2230 2453 *puValue = 0; … … 2236 2459 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7RaplPkgPowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2237 2460 { 2461 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2238 2462 /** @todo intel RAPL. */ 2239 2463 return VINF_SUCCESS; … … 2244 2468 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPkgEnergyStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2245 2469 { 2470 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2246 2471 /** @todo intel power management. */ 2247 2472 *puValue = 0; … … 2253 2478 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPkgPerfStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2254 2479 { 2480 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2255 2481 /** @todo intel power management. */ 2256 2482 *puValue = 0; … … 2262 2488 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPkgPowerInfo(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2263 2489 { 2490 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2264 2491 /** @todo intel power management. */ 2265 2492 *puValue = 0; … … 2271 2498 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplDramPowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2272 2499 { 2500 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2273 2501 /** @todo intel RAPL. */ 2274 2502 *puValue = 0; … … 2280 2508 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7RaplDramPowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2281 2509 { 2510 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2282 2511 /** @todo intel RAPL. */ 2283 2512 return VINF_SUCCESS; … … 2288 2517 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplDramEnergyStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2289 2518 { 2519 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2290 2520 /** @todo intel power management. */ 2291 2521 *puValue = 0; … … 2297 2527 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplDramPerfStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2298 2528 { 2529 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2299 2530 /** @todo intel power management. */ 2300 2531 *puValue = 0; … … 2306 2537 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplDramPowerInfo(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2307 2538 { 2539 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2308 2540 /** @todo intel power management. */ 2309 2541 *puValue = 0; … … 2315 2547 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp0PowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2316 2548 { 2549 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2317 2550 /** @todo intel RAPL. */ 2318 2551 *puValue = 0; … … 2324 2557 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7RaplPp0PowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2325 2558 { 2559 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2326 2560 /** @todo intel RAPL. */ 2327 2561 return VINF_SUCCESS; … … 2332 2566 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp0EnergyStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2333 2567 { 2568 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2334 2569 /** @todo intel power management. */ 2335 2570 *puValue = 0; … … 2341 2576 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp0Policy(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2342 2577 { 2578 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2343 2579 /** @todo intel RAPL. */ 2344 2580 *puValue = 0; … … 2350 2586 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7RaplPp0Policy(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2351 2587 { 2588 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2352 2589 /** @todo intel RAPL. */ 2353 2590 return VINF_SUCCESS; … … 2358 2595 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp0PerfStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2359 2596 { 2597 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2360 2598 /** @todo intel power management. */ 2361 2599 *puValue = 0; … … 2367 2605 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp1PowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2368 2606 { 2607 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2369 2608 /** @todo intel RAPL. */ 2370 2609 *puValue = 0; … … 2376 2615 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7RaplPp1PowerLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2377 2616 { 2617 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2378 2618 /** @todo intel RAPL. */ 2379 2619 return VINF_SUCCESS; … … 2384 2624 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp1EnergyStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2385 2625 { 2626 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2386 2627 /** @todo intel power management. */ 2387 2628 *puValue = 0; … … 2393 2634 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7RaplPp1Policy(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2394 2635 { 2636 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2395 2637 /** @todo intel RAPL. */ 2396 2638 *puValue = 0; … … 2402 2644 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7RaplPp1Policy(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2403 2645 { 2646 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2404 2647 /** @todo intel RAPL. */ 2405 2648 return VINF_SUCCESS; … … 2410 2653 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7IvyConfigTdpNominal(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2411 2654 { 2655 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2412 2656 /** @todo intel power management. */ 2413 2657 *puValue = pRange->uValue; … … 2419 2663 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7IvyConfigTdpLevel1(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2420 2664 { 2665 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2421 2666 /** @todo intel power management. */ 2422 2667 *puValue = pRange->uValue; … … 2428 2673 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7IvyConfigTdpLevel2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2429 2674 { 2675 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2430 2676 /** @todo intel power management. */ 2431 2677 *puValue = pRange->uValue; … … 2437 2683 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7IvyConfigTdpControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2438 2684 { 2685 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2439 2686 /** @todo intel power management. */ 2440 2687 *puValue = 0; … … 2446 2693 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7IvyConfigTdpControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2447 2694 { 2695 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2448 2696 /** @todo intel power management. */ 2449 2697 return VINF_SUCCESS; … … 2454 2702 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7IvyTurboActivationRatio(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2455 2703 { 2704 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2456 2705 /** @todo intel power management. */ 2457 2706 *puValue = 0; … … 2463 2712 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7IvyTurboActivationRatio(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2464 2713 { 2714 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2465 2715 /** @todo intel power management. */ 2466 2716 return VINF_SUCCESS; … … 2471 2721 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncPerfGlobalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2472 2722 { 2723 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2473 2724 /** @todo uncore msrs. */ 2474 2725 *puValue = 0; … … 2480 2731 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncPerfGlobalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2481 2732 { 2733 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2482 2734 /** @todo uncore msrs. */ 2483 2735 return VINF_SUCCESS; … … 2488 2740 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncPerfGlobalStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2489 2741 { 2742 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2490 2743 /** @todo uncore msrs. */ 2491 2744 *puValue = 0; … … 2497 2750 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncPerfGlobalStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2498 2751 { 2752 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2499 2753 /** @todo uncore msrs. */ 2500 2754 return VINF_SUCCESS; … … 2505 2759 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncPerfGlobalOvfCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2506 2760 { 2761 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2507 2762 /** @todo uncore msrs. */ 2508 2763 *puValue = 0; … … 2514 2769 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncPerfGlobalOvfCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2515 2770 { 2771 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2516 2772 /** @todo uncore msrs. */ 2517 2773 return VINF_SUCCESS; … … 2522 2778 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncPerfFixedCtrCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2523 2779 { 2780 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2524 2781 /** @todo uncore msrs. */ 2525 2782 *puValue = 0; … … 2531 2788 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncPerfFixedCtrCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2532 2789 { 2790 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2533 2791 /** @todo uncore msrs. */ 2534 2792 return VINF_SUCCESS; … … 2539 2797 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncPerfFixedCtr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2540 2798 { 2799 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2541 2800 /** @todo uncore msrs. */ 2542 2801 *puValue = 0; … … 2548 2807 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncPerfFixedCtr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2549 2808 { 2809 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2550 2810 /** @todo uncore msrs. */ 2551 2811 return VINF_SUCCESS; … … 2556 2816 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncCBoxConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2557 2817 { 2818 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2558 2819 /** @todo uncore msrs. */ 2559 2820 *puValue = 0; … … 2565 2826 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncArbPerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2566 2827 { 2828 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2567 2829 /** @todo uncore msrs. */ 2568 2830 *puValue = 0; … … 2574 2836 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncArbPerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2575 2837 { 2838 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2576 2839 /** @todo uncore msrs. */ 2577 2840 return VINF_SUCCESS; … … 2582 2845 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7UncArbPerfEvtSelN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2583 2846 { 2847 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2584 2848 /** @todo uncore msrs. */ 2585 2849 *puValue = 0; … … 2591 2855 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelI7UncArbPerfEvtSelN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2592 2856 { 2857 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2593 2858 /** @todo uncore msrs. */ 2594 2859 return VINF_SUCCESS; … … 2599 2864 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelI7SmiCount(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2600 2865 { 2866 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2867 2601 2868 /* 2602 2869 * 31:0 is SMI count (read only), 63:32 reserved. … … 2611 2878 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCore2EmttmCrTablesN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2612 2879 { 2880 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2613 2881 /** @todo implement enhanced multi thread termal monitoring? */ 2614 2882 *puValue = pRange->uValue; … … 2620 2888 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCore2EmttmCrTablesN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2621 2889 { 2890 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2622 2891 /** @todo implement enhanced multi thread termal monitoring? */ 2623 2892 return VINF_SUCCESS; … … 2628 2897 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCore2SmmCStMiscInfo(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2629 2898 { 2899 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2630 2900 /** @todo SMM & C-states? */ 2631 2901 *puValue = 0; … … 2637 2907 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCore2SmmCStMiscInfo(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2638 2908 { 2909 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2639 2910 /** @todo SMM & C-states? */ 2640 2911 return VINF_SUCCESS; … … 2645 2916 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCore1ExtConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2646 2917 { 2918 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2647 2919 /** @todo Core1&2 EXT_CONFIG (whatever that is)? */ 2648 2920 *puValue = 0; … … 2654 2926 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCore1ExtConfig(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2655 2927 { 2928 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2656 2929 /** @todo Core1&2 EXT_CONFIG (whatever that is)? */ 2657 2930 return VINF_SUCCESS; … … 2662 2935 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCore1DtsCalControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2663 2936 { 2937 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2664 2938 /** @todo Core1&2(?) DTS_CAL_CTRL (whatever that is)? */ 2665 2939 *puValue = 0; … … 2671 2945 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCore1DtsCalControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2672 2946 { 2947 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2673 2948 /** @todo Core1&2(?) DTS_CAL_CTRL (whatever that is)? */ 2674 2949 return VINF_SUCCESS; … … 2679 2954 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelCore2PeciControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2680 2955 { 2956 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2681 2957 /** @todo Core2+ platform environment control interface control register? */ 2682 2958 *puValue = 0; … … 2688 2964 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_IntelCore2PeciControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2689 2965 { 2966 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2690 2967 /** @todo Core2+ platform environment control interface control register? */ 2691 2968 return VINF_SUCCESS; … … 2696 2973 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_IntelAtSilvCoreC1Recidency(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2697 2974 { 2975 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2698 2976 *puValue = 0; 2699 2977 return VINF_SUCCESS; … … 2714 2992 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_P6LastBranchFromIp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2715 2993 { 2994 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2716 2995 /* AMD seems to just record RIP, while intel claims to record RIP+CS.BASE 2717 2996 if I read the docs correctly, thus the need for separate functions. */ … … 2725 3004 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_P6LastBranchToIp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2726 3005 { 3006 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2727 3007 /** @todo implement last branch records. */ 2728 3008 *puValue = 0; … … 2734 3014 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_P6LastIntFromIp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2735 3015 { 3016 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2736 3017 /** @todo implement last exception records. */ 2737 3018 *puValue = 0; … … 2743 3024 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_P6LastIntFromIp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2744 3025 { 3026 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2745 3027 /** @todo implement last exception records. */ 2746 3028 /* Note! On many CPUs, the high bit of the 0x000001dd register is always writable, even when the result is … … 2753 3035 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_P6LastIntToIp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2754 3036 { 3037 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2755 3038 /** @todo implement last exception records. */ 2756 3039 *puValue = 0; … … 2762 3045 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_P6LastIntToIp(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2763 3046 { 3047 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2764 3048 /** @todo implement last exception records. */ 2765 3049 return VINF_SUCCESS; … … 2778 3062 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hTscRate(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2779 3063 { 3064 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2780 3065 /** @todo Implement TscRateMsr */ 2781 3066 *puValue = RT_MAKE_U64(0, 1); /* 1.0 = reset value. */ … … 2787 3072 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hTscRate(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2788 3073 { 3074 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2789 3075 /** @todo Implement TscRateMsr */ 2790 3076 return VINF_SUCCESS; … … 2795 3081 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hLwpCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2796 3082 { 3083 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2797 3084 /** @todo Implement AMD LWP? (Instructions: LWPINS, LWPVAL, LLWPCB, SLWPCB) */ 2798 3085 /* Note: Only listes in BKDG for Family 15H. */ … … 2805 3092 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hLwpCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2806 3093 { 3094 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2807 3095 /** @todo Implement AMD LWP? (Instructions: LWPINS, LWPVAL, LLWPCB, SLWPCB) */ 2808 3096 return VINF_SUCCESS; … … 2813 3101 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hLwpCbAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2814 3102 { 3103 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2815 3104 /** @todo Implement AMD LWP? (Instructions: LWPINS, LWPVAL, LLWPCB, SLWPCB) */ 2816 3105 /* Note: Only listes in BKDG for Family 15H. */ … … 2823 3112 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hLwpCbAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2824 3113 { 3114 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2825 3115 /** @todo Implement AMD LWP? (Instructions: LWPINS, LWPVAL, LLWPCB, SLWPCB) */ 2826 3116 return VINF_SUCCESS; … … 2831 3121 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hMc4MiscN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2832 3122 { 3123 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2833 3124 /** @todo machine check. */ 2834 3125 *puValue = 0; … … 2840 3131 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hMc4MiscN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2841 3132 { 3133 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2842 3134 /** @todo machine check. */ 2843 3135 return VINF_SUCCESS; … … 2848 3140 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8PerfCtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2849 3141 { 3142 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2850 3143 /** @todo AMD performance events. */ 2851 3144 *puValue = 0; … … 2857 3150 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8PerfCtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2858 3151 { 3152 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2859 3153 /** @todo AMD performance events. */ 2860 3154 return VINF_SUCCESS; … … 2865 3159 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8PerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2866 3160 { 3161 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2867 3162 /** @todo AMD performance events. */ 2868 3163 *puValue = 0; … … 2874 3169 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8PerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2875 3170 { 3171 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2876 3172 /** @todo AMD performance events. */ 2877 3173 return VINF_SUCCESS; … … 2882 3178 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SysCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2883 3179 { 3180 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2884 3181 /** @todo AMD SYS_CFG */ 2885 3182 *puValue = pRange->uValue; … … 2891 3188 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SysCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2892 3189 { 3190 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2893 3191 /** @todo AMD SYS_CFG */ 2894 3192 return VINF_SUCCESS; … … 2899 3197 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8HwCr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2900 3198 { 3199 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2901 3200 /** @todo AMD HW_CFG */ 2902 3201 *puValue = 0; … … 2908 3207 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8HwCr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2909 3208 { 3209 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2910 3210 /** @todo AMD HW_CFG */ 2911 3211 return VINF_SUCCESS; … … 2916 3216 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8IorrBaseN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2917 3217 { 3218 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2918 3219 /** @todo AMD IorrMask/IorrBase */ 2919 3220 *puValue = 0; … … 2925 3226 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8IorrBaseN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2926 3227 { 3228 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2927 3229 /** @todo AMD IorrMask/IorrBase */ 2928 3230 return VINF_SUCCESS; … … 2933 3235 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8IorrMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2934 3236 { 3237 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2935 3238 /** @todo AMD IorrMask/IorrBase */ 2936 3239 *puValue = 0; … … 2942 3245 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8IorrMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2943 3246 { 3247 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2944 3248 /** @todo AMD IorrMask/IorrBase */ 2945 3249 return VINF_SUCCESS; … … 2950 3254 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8TopOfMemN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2951 3255 { 3256 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2952 3257 *puValue = 0; 2953 3258 /** @todo return 4GB - RamHoleSize here for TOPMEM. Figure out what to return … … 2962 3267 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8TopOfMemN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2963 3268 { 3269 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2964 3270 /** @todo AMD TOPMEM and TOPMEM2/TOM2. */ 2965 3271 return VINF_SUCCESS; … … 2970 3276 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8NbCfg1(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2971 3277 { 3278 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2972 3279 /** @todo AMD NB_CFG1 */ 2973 3280 *puValue = 0; … … 2979 3286 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8NbCfg1(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2980 3287 { 3288 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2981 3289 /** @todo AMD NB_CFG1 */ 2982 3290 return VINF_SUCCESS; … … 2987 3295 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8McXcptRedir(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 2988 3296 { 3297 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 2989 3298 /** @todo machine check. */ 2990 3299 *puValue = 0; … … 2996 3305 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8McXcptRedir(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 2997 3306 { 3307 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 2998 3308 /** @todo machine check. */ 2999 3309 return VINF_SUCCESS; … … 3004 3314 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8CpuNameN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3005 3315 { 3316 RT_NOREF_PV(idMsr); 3006 3317 PCPUMCPUIDLEAF pLeaf = cpumCpuIdGetLeaf(pVCpu->CTX_SUFF(pVM), pRange->uValue / 2 + 0x80000001); 3007 3318 if (pLeaf) … … 3021 3332 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8CpuNameN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3022 3333 { 3334 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3023 3335 /** @todo Remember guest programmed CPU name. */ 3024 3336 return VINF_SUCCESS; … … 3029 3341 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8HwThermalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3030 3342 { 3343 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3031 3344 /** @todo AMD HTC. */ 3032 3345 *puValue = pRange->uValue; … … 3038 3351 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8HwThermalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3039 3352 { 3353 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3040 3354 /** @todo AMD HTC. */ 3041 3355 return VINF_SUCCESS; … … 3046 3360 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SwThermalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3047 3361 { 3362 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3048 3363 /** @todo AMD STC. */ 3049 3364 *puValue = 0; … … 3055 3370 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SwThermalCtrl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3056 3371 { 3372 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3057 3373 /** @todo AMD STC. */ 3058 3374 return VINF_SUCCESS; … … 3063 3379 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8FidVidControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3064 3380 { 3381 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3065 3382 /** @todo AMD FIDVID_CTL. */ 3066 3383 *puValue = pRange->uValue; … … 3072 3389 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8FidVidControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3073 3390 { 3391 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3074 3392 /** @todo AMD FIDVID_CTL. */ 3075 3393 return VINF_SUCCESS; … … 3080 3398 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8FidVidStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3081 3399 { 3400 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3082 3401 /** @todo AMD FIDVID_STATUS. */ 3083 3402 *puValue = pRange->uValue; … … 3089 3408 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8McCtlMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3090 3409 { 3410 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3091 3411 /** @todo AMD MC. */ 3092 3412 *puValue = 0; … … 3098 3418 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8McCtlMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3099 3419 { 3420 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3100 3421 /** @todo AMD MC. */ 3101 3422 return VINF_SUCCESS; … … 3106 3427 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmiOnIoTrapN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3107 3428 { 3429 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3108 3430 /** @todo AMD SMM/SMI and I/O trap. */ 3109 3431 *puValue = 0; … … 3115 3437 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmiOnIoTrapN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3116 3438 { 3439 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3117 3440 /** @todo AMD SMM/SMI and I/O trap. */ 3118 3441 return VINF_SUCCESS; … … 3123 3446 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmiOnIoTrapCtlSts(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3124 3447 { 3448 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3125 3449 /** @todo AMD SMM/SMI and I/O trap. */ 3126 3450 *puValue = 0; … … 3132 3456 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmiOnIoTrapCtlSts(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3133 3457 { 3458 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3134 3459 /** @todo AMD SMM/SMI and I/O trap. */ 3135 3460 return VINF_SUCCESS; … … 3140 3465 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8IntPendingMessage(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3141 3466 { 3467 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3142 3468 /** @todo Interrupt pending message. */ 3143 3469 *puValue = 0; … … 3149 3475 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8IntPendingMessage(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3150 3476 { 3477 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3151 3478 /** @todo Interrupt pending message. */ 3152 3479 return VINF_SUCCESS; … … 3157 3484 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmiTriggerIoCycle(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3158 3485 { 3486 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3159 3487 /** @todo AMD SMM/SMI and trigger I/O cycle. */ 3160 3488 *puValue = 0; … … 3166 3494 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmiTriggerIoCycle(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3167 3495 { 3496 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3168 3497 /** @todo AMD SMM/SMI and trigger I/O cycle. */ 3169 3498 return VINF_SUCCESS; … … 3174 3503 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hMmioCfgBaseAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3175 3504 { 3505 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3176 3506 /** @todo AMD MMIO Configuration base address. */ 3177 3507 *puValue = 0; … … 3183 3513 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hMmioCfgBaseAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3184 3514 { 3515 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3185 3516 /** @todo AMD MMIO Configuration base address. */ 3186 3517 return VINF_SUCCESS; … … 3191 3522 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hTrapCtlMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3192 3523 { 3524 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3193 3525 /** @todo AMD 0xc0010059. */ 3194 3526 *puValue = 0; … … 3200 3532 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hTrapCtlMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3201 3533 { 3534 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3202 3535 /** @todo AMD 0xc0010059. */ 3203 3536 return VINF_SUCCESS; … … 3208 3541 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hPStateCurLimit(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3209 3542 { 3543 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3210 3544 /** @todo AMD P-states. */ 3211 3545 *puValue = pRange->uValue; … … 3217 3551 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hPStateControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3218 3552 { 3553 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3219 3554 /** @todo AMD P-states. */ 3220 3555 *puValue = pRange->uValue; … … 3226 3561 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hPStateControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3227 3562 { 3563 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3228 3564 /** @todo AMD P-states. */ 3229 3565 return VINF_SUCCESS; … … 3234 3570 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hPStateStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3235 3571 { 3572 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3236 3573 /** @todo AMD P-states. */ 3237 3574 *puValue = pRange->uValue; … … 3243 3580 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hPStateStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3244 3581 { 3582 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3245 3583 /** @todo AMD P-states. */ 3246 3584 return VINF_SUCCESS; … … 3251 3589 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hPStateN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3252 3590 { 3591 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3253 3592 /** @todo AMD P-states. */ 3254 3593 *puValue = pRange->uValue; … … 3260 3599 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hPStateN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3261 3600 { 3601 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3262 3602 /** @todo AMD P-states. */ 3263 3603 return VINF_SUCCESS; … … 3268 3608 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hCofVidControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3269 3609 { 3610 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3270 3611 /** @todo AMD P-states. */ 3271 3612 *puValue = pRange->uValue; … … 3277 3618 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hCofVidControl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3278 3619 { 3620 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3279 3621 /** @todo AMD P-states. */ 3280 3622 return VINF_SUCCESS; … … 3285 3627 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hCofVidStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3286 3628 { 3629 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3287 3630 /** @todo AMD P-states. */ 3288 3631 *puValue = pRange->uValue; … … 3294 3637 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hCofVidStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3295 3638 { 3639 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3296 3640 /* Note! Writing 0 seems to not GP, not sure if it does anything to the value... */ 3297 3641 /** @todo AMD P-states. */ … … 3303 3647 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hCStateIoBaseAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3304 3648 { 3649 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3305 3650 /** @todo AMD C-states. */ 3306 3651 *puValue = 0; … … 3312 3657 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hCStateIoBaseAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3313 3658 { 3659 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3314 3660 /** @todo AMD C-states. */ 3315 3661 return VINF_SUCCESS; … … 3320 3666 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hCpuWatchdogTimer(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3321 3667 { 3668 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3322 3669 /** @todo AMD machine checks. */ 3323 3670 *puValue = 0; … … 3329 3676 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hCpuWatchdogTimer(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3330 3677 { 3678 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3331 3679 /** @todo AMD machine checks. */ 3332 3680 return VINF_SUCCESS; … … 3337 3685 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmmBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3338 3686 { 3687 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3339 3688 /** @todo AMD SMM. */ 3340 3689 *puValue = 0; … … 3346 3695 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmmBase(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3347 3696 { 3697 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3348 3698 /** @todo AMD SMM. */ 3349 3699 return VINF_SUCCESS; … … 3354 3704 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmmAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3355 3705 { 3706 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3356 3707 /** @todo AMD SMM. */ 3357 3708 *puValue = 0; … … 3363 3714 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmmAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3364 3715 { 3716 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3365 3717 /** @todo AMD SMM. */ 3366 3718 return VINF_SUCCESS; … … 3372 3724 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmmMask(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3373 3725 { 3726 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3374 3727 /** @todo AMD SMM. */ 3375 3728 *puValue = 0; … … 3381 3734 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmmMask(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3382 3735 { 3736 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3383 3737 /** @todo AMD SMM. */ 3384 3738 return VINF_SUCCESS; … … 3389 3743 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8VmCr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3390 3744 { 3745 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3391 3746 /** @todo AMD SVM. */ 3392 3747 *puValue = 0; … … 3398 3753 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8VmCr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3399 3754 { 3755 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3400 3756 /** @todo AMD SVM. */ 3401 3757 return VINF_SUCCESS; … … 3406 3762 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8IgnNe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3407 3763 { 3764 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3408 3765 /** @todo AMD IGNNE\# control. */ 3409 3766 *puValue = 0; … … 3415 3772 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8IgnNe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3416 3773 { 3774 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3417 3775 /** @todo AMD IGNNE\# control. */ 3418 3776 return VINF_SUCCESS; … … 3423 3781 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8SmmCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3424 3782 { 3783 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3425 3784 /** @todo AMD SMM. */ 3426 3785 *puValue = 0; … … 3432 3791 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8SmmCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3433 3792 { 3793 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3434 3794 /** @todo AMD SMM. */ 3435 3795 return VINF_SUCCESS; … … 3440 3800 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8VmHSavePa(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3441 3801 { 3802 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3442 3803 /** @todo AMD SVM. */ 3443 3804 *puValue = 0; … … 3449 3810 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8VmHSavePa(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3450 3811 { 3812 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3451 3813 /** @todo AMD SVM. */ 3452 3814 return VINF_SUCCESS; … … 3457 3819 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hVmLockKey(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3458 3820 { 3821 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3459 3822 /** @todo AMD SVM. */ 3460 3823 *puValue = 0; /* RAZ */ … … 3466 3829 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hVmLockKey(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3467 3830 { 3831 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3468 3832 /** @todo AMD SVM. */ 3469 3833 return VINF_SUCCESS; … … 3474 3838 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hSmmLockKey(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3475 3839 { 3840 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3476 3841 /** @todo AMD SMM. */ 3477 3842 *puValue = 0; /* RAZ */ … … 3483 3848 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hSmmLockKey(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3484 3849 { 3850 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3485 3851 /** @todo AMD SMM. */ 3486 3852 return VINF_SUCCESS; … … 3491 3857 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hLocalSmiStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3492 3858 { 3859 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3493 3860 /** @todo AMD SMM/SMI. */ 3494 3861 *puValue = 0; … … 3500 3867 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hLocalSmiStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3501 3868 { 3869 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3502 3870 /** @todo AMD SMM/SMI. */ 3503 3871 return VINF_SUCCESS; … … 3508 3876 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hOsVisWrkIdLength(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3509 3877 { 3878 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); 3510 3879 /** @todo AMD OS visible workaround. */ 3511 3880 *puValue = pRange->uValue; … … 3517 3886 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hOsVisWrkIdLength(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3518 3887 { 3888 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3519 3889 /** @todo AMD OS visible workaround. */ 3520 3890 return VINF_SUCCESS; … … 3525 3895 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hOsVisWrkStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3526 3896 { 3897 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3527 3898 /** @todo AMD OS visible workaround. */ 3528 3899 *puValue = 0; … … 3534 3905 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hOsVisWrkStatus(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3535 3906 { 3907 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3536 3908 /** @todo AMD OS visible workaround. */ 3537 3909 return VINF_SUCCESS; … … 3542 3914 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam16hL2IPerfCtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3543 3915 { 3916 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3544 3917 /** @todo AMD L2I performance counters. */ 3545 3918 *puValue = 0; … … 3551 3924 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam16hL2IPerfCtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3552 3925 { 3926 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3553 3927 /** @todo AMD L2I performance counters. */ 3554 3928 return VINF_SUCCESS; … … 3559 3933 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam16hL2IPerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3560 3934 { 3935 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3561 3936 /** @todo AMD L2I performance counters. */ 3562 3937 *puValue = 0; … … 3568 3943 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam16hL2IPerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3569 3944 { 3945 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3570 3946 /** @todo AMD L2I performance counters. */ 3571 3947 return VINF_SUCCESS; … … 3576 3952 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hNorthbridgePerfCtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3577 3953 { 3954 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3578 3955 /** @todo AMD Northbridge performance counters. */ 3579 3956 *puValue = 0; … … 3585 3962 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hNorthbridgePerfCtlN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3586 3963 { 3964 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3587 3965 /** @todo AMD Northbridge performance counters. */ 3588 3966 return VINF_SUCCESS; … … 3593 3971 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hNorthbridgePerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3594 3972 { 3973 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3595 3974 /** @todo AMD Northbridge performance counters. */ 3596 3975 *puValue = 0; … … 3602 3981 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hNorthbridgePerfCtrN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3603 3982 { 3983 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3604 3984 /** @todo AMD Northbridge performance counters. */ 3605 3985 return VINF_SUCCESS; … … 3610 3990 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7MicrocodeCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3611 3991 { 3992 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3612 3993 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3613 3994 * cpus. Need to be explored and verify K7 presence. */ … … 3621 4002 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7MicrocodeCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3622 4003 { 4004 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3623 4005 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3624 4006 * cpus. Need to be explored and verify K7 presence. */ … … 3631 4013 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7ClusterIdMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3632 4014 { 4015 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3633 4016 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3634 4017 * cpus. Need to be explored and verify K7 presence. */ … … 3643 4026 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7ClusterIdMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3644 4027 { 4028 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3645 4029 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3646 4030 * cpus. Need to be explored and verify K7 presence. */ … … 3654 4038 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8CpuIdCtlStd07hEbax(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3655 4039 { 4040 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3656 4041 bool fIgnored; 3657 4042 PCPUMCPUIDLEAF pLeaf = cpumCpuIdGetLeafEx(pVCpu->CTX_SUFF(pVM), 0x00000007, 0, &fIgnored); … … 3667 4052 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8CpuIdCtlStd07hEbax(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3668 4053 { 4054 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3669 4055 /** @todo Changing CPUID leaf 7/0. */ 3670 4056 return VINF_SUCCESS; … … 3675 4061 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8CpuIdCtlStd06hEcx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3676 4062 { 4063 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3677 4064 PCPUMCPUIDLEAF pLeaf = cpumCpuIdGetLeaf(pVCpu->CTX_SUFF(pVM), 0x00000006); 3678 4065 if (pLeaf) … … 3687 4074 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8CpuIdCtlStd06hEcx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3688 4075 { 4076 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3689 4077 /** @todo Changing CPUID leaf 6. */ 3690 4078 return VINF_SUCCESS; … … 3695 4083 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8CpuIdCtlStd01hEdcx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3696 4084 { 4085 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3697 4086 PCPUMCPUIDLEAF pLeaf = cpumCpuIdGetLeaf(pVCpu->CTX_SUFF(pVM), 0x00000001); 3698 4087 if (pLeaf) … … 3707 4096 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8CpuIdCtlStd01hEdcx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3708 4097 { 4098 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3709 4099 /** @todo Changing CPUID leaf 0x80000001. */ 3710 4100 return VINF_SUCCESS; … … 3715 4105 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8CpuIdCtlExt01hEdcx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3716 4106 { 4107 RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3717 4108 PCPUMCPUIDLEAF pLeaf = cpumCpuIdGetLeaf(pVCpu->CTX_SUFF(pVM), 0x80000001); 3718 4109 if (pLeaf) … … 3727 4118 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8CpuIdCtlExt01hEdcx(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3728 4119 { 4120 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3729 4121 /** @todo Changing CPUID leaf 0x80000001. */ 3730 4122 return VINF_SUCCESS; … … 3735 4127 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK8PatchLevel(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3736 4128 { 4129 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3737 4130 /** @todo Fake AMD microcode patching. */ 3738 4131 *puValue = pRange->uValue; … … 3744 4137 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK8PatchLoader(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3745 4138 { 4139 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3746 4140 /** @todo Fake AMD microcode patching. */ 3747 4141 return VINF_SUCCESS; … … 3752 4146 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7DebugStatusMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3753 4147 { 4148 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3754 4149 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3755 4150 * cpus. Need to be explored and verify K7 presence. */ … … 3763 4158 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7DebugStatusMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3764 4159 { 4160 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3765 4161 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3766 4162 * cpus. Need to be explored and verify K7 presence. */ … … 3773 4169 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7BHTraceBaseMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3774 4170 { 4171 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3775 4172 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3776 4173 * cpus. Need to be explored and verify K7 presence. */ … … 3784 4181 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7BHTraceBaseMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3785 4182 { 4183 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3786 4184 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3787 4185 * cpus. Need to be explored and verify K7 presence. */ … … 3794 4192 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7BHTracePtrMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3795 4193 { 4194 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3796 4195 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3797 4196 * cpus. Need to be explored and verify K7 presence. */ … … 3805 4204 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7BHTracePtrMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3806 4205 { 4206 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3807 4207 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3808 4208 * cpus. Need to be explored and verify K7 presence. */ … … 3815 4215 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7BHTraceLimitMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3816 4216 { 4217 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3817 4218 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3818 4219 * cpus. Need to be explored and verify K7 presence. */ … … 3826 4227 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7BHTraceLimitMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3827 4228 { 4229 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3828 4230 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3829 4231 * cpus. Need to be explored and verify K7 presence. */ … … 3836 4238 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7HardwareDebugToolCfgMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3837 4239 { 4240 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3838 4241 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3839 4242 * cpus. Need to be explored and verify K7 presence. */ … … 3847 4250 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7HardwareDebugToolCfgMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3848 4251 { 4252 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3849 4253 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3850 4254 * cpus. Need to be explored and verify K7 presence. */ … … 3857 4261 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7FastFlushCountMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3858 4262 { 4263 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3859 4264 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3860 4265 * cpus. Need to be explored and verify K7 presence. */ … … 3868 4273 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7FastFlushCountMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3869 4274 { 4275 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3870 4276 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3871 4277 * cpus. Need to be explored and verify K7 presence. */ … … 3878 4284 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7NodeId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3879 4285 { 4286 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3880 4287 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3881 4288 * cpus. Need to be explored and verify K7 presence. */ … … 3889 4296 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7NodeId(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3890 4297 { 4298 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3891 4299 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3892 4300 * cpus. Need to be explored and verify K7 presence. */ … … 3899 4307 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7DrXAddrMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3900 4308 { 4309 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3901 4310 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3902 4311 * cpus. Need to be explored and verify K7 presence. */ … … 3910 4319 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7DrXAddrMaskN(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3911 4320 { 4321 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3912 4322 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3913 4323 * cpus. Need to be explored and verify K7 presence. */ … … 3920 4330 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7Dr0DataMatchMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3921 4331 { 4332 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3922 4333 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3923 4334 * cpus. Need to be explored and verify K7 presence. */ … … 3931 4342 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7Dr0DataMatchMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3932 4343 { 4344 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3933 4345 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3934 4346 * cpus. Need to be explored and verify K7 presence. */ … … 3941 4353 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7Dr0DataMaskMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3942 4354 { 4355 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3943 4356 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3944 4357 * cpus. Need to be explored and verify K7 presence. */ … … 3952 4365 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7Dr0DataMaskMaybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3953 4366 { 4367 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3954 4368 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3955 4369 * cpus. Need to be explored and verify K7 presence. */ … … 3962 4376 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7LoadStoreCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3963 4377 { 4378 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3964 4379 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3965 4380 * cpus. Need to be explored and verify K7 presence. */ … … 3973 4388 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7LoadStoreCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3974 4389 { 4390 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3975 4391 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3976 4392 * cpus. Need to be explored and verify K7 presence. */ … … 3983 4399 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7InstrCacheCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 3984 4400 { 4401 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 3985 4402 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3986 4403 * cpus. Need to be explored and verify K7 presence. */ … … 3994 4411 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7InstrCacheCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 3995 4412 { 4413 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 3996 4414 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 3997 4415 * cpus. Need to be explored and verify K7 presence. */ … … 4004 4422 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7DataCacheCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4005 4423 { 4424 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4006 4425 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 4007 4426 * cpus. Need to be explored and verify K7 presence. */ … … 4015 4434 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7DataCacheCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4016 4435 { 4436 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4017 4437 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 4018 4438 * cpus. Need to be explored and verify K7 presence. */ … … 4025 4445 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7BusUnitCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4026 4446 { 4447 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4027 4448 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 4028 4449 * cpus. Need to be explored and verify K7 presence. */ … … 4036 4457 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7BusUnitCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4037 4458 { 4459 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4038 4460 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 4039 4461 * cpus. Need to be explored and verify K7 presence. */ … … 4046 4468 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdK7DebugCtl2Maybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4047 4469 { 4470 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4048 4471 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 4049 4472 * cpus. Need to be explored and verify K7 presence. */ … … 4057 4480 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdK7DebugCtl2Maybe(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4058 4481 { 4482 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4059 4483 /** @todo Allegedly requiring edi=0x9c5a203a when execuing rdmsr/wrmsr on older 4060 4484 * cpus. Need to be explored and verify K7 presence. */ … … 4067 4491 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hFpuCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4068 4492 { 4493 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4069 4494 /** @todo AMD FPU config. */ 4070 4495 *puValue = 0; … … 4076 4501 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hFpuCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4077 4502 { 4503 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4078 4504 /** @todo AMD FPU config. */ 4079 4505 return VINF_SUCCESS; … … 4084 4510 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hDecoderCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4085 4511 { 4512 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4086 4513 /** @todo AMD decoder config. */ 4087 4514 *puValue = 0; … … 4093 4520 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hDecoderCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4094 4521 { 4522 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4095 4523 /** @todo AMD decoder config. */ 4096 4524 return VINF_SUCCESS; … … 4101 4529 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hBusUnitCfg2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4102 4530 { 4531 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4103 4532 /* Note! 10h and 16h */ 4104 4533 /** @todo AMD bus unit config. */ … … 4111 4540 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hBusUnitCfg2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4112 4541 { 4542 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4113 4543 /* Note! 10h and 16h */ 4114 4544 /** @todo AMD bus unit config. */ … … 4120 4550 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hCombUnitCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4121 4551 { 4552 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4122 4553 /** @todo AMD unit config. */ 4123 4554 *puValue = 0; … … 4129 4560 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hCombUnitCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4130 4561 { 4562 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4131 4563 /** @todo AMD unit config. */ 4132 4564 return VINF_SUCCESS; … … 4137 4569 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hCombUnitCfg2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4138 4570 { 4571 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4139 4572 /** @todo AMD unit config 2. */ 4140 4573 *puValue = 0; … … 4146 4579 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hCombUnitCfg2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4147 4580 { 4581 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4148 4582 /** @todo AMD unit config 2. */ 4149 4583 return VINF_SUCCESS; … … 4154 4588 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hCombUnitCfg3(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4155 4589 { 4590 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4156 4591 /** @todo AMD combined unit config 3. */ 4157 4592 *puValue = 0; … … 4163 4598 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hCombUnitCfg3(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4164 4599 { 4600 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4165 4601 /** @todo AMD combined unit config 3. */ 4166 4602 return VINF_SUCCESS; … … 4171 4607 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hExecUnitCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4172 4608 { 4609 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4173 4610 /** @todo AMD execution unit config. */ 4174 4611 *puValue = 0; … … 4180 4617 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hExecUnitCfg(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4181 4618 { 4619 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4182 4620 /** @todo AMD execution unit config. */ 4183 4621 return VINF_SUCCESS; … … 4188 4626 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam15hLoadStoreCfg2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4189 4627 { 4628 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4190 4629 /** @todo AMD load-store config 2. */ 4191 4630 *puValue = 0; … … 4197 4636 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam15hLoadStoreCfg2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4198 4637 { 4638 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4199 4639 /** @todo AMD load-store config 2. */ 4200 4640 return VINF_SUCCESS; … … 4205 4645 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsFetchCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4206 4646 { 4647 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4207 4648 /** @todo AMD IBS. */ 4208 4649 *puValue = 0; … … 4214 4655 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsFetchCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4215 4656 { 4657 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4216 4658 /** @todo AMD IBS. */ 4217 4659 return VINF_SUCCESS; … … 4222 4664 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsFetchLinAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4223 4665 { 4666 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4224 4667 /** @todo AMD IBS. */ 4225 4668 *puValue = 0; … … 4231 4674 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsFetchLinAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4232 4675 { 4676 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4233 4677 /** @todo AMD IBS. */ 4234 4678 return VINF_SUCCESS; … … 4239 4683 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsFetchPhysAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4240 4684 { 4685 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4241 4686 /** @todo AMD IBS. */ 4242 4687 *puValue = 0; … … 4248 4693 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsFetchPhysAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4249 4694 { 4695 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4250 4696 /** @todo AMD IBS. */ 4251 4697 return VINF_SUCCESS; … … 4256 4702 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsOpExecCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4257 4703 { 4704 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4258 4705 /** @todo AMD IBS. */ 4259 4706 *puValue = 0; … … 4265 4712 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsOpExecCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4266 4713 { 4714 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4267 4715 /** @todo AMD IBS. */ 4268 4716 return VINF_SUCCESS; … … 4273 4721 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsOpRip(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4274 4722 { 4723 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4275 4724 /** @todo AMD IBS. */ 4276 4725 *puValue = 0; … … 4282 4731 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsOpRip(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4283 4732 { 4733 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4284 4734 /** @todo AMD IBS. */ 4285 4735 if (!X86_IS_CANONICAL(uValue)) … … 4295 4745 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsOpData(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4296 4746 { 4747 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4297 4748 /** @todo AMD IBS. */ 4298 4749 *puValue = 0; … … 4304 4755 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsOpData(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4305 4756 { 4757 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4306 4758 /** @todo AMD IBS. */ 4307 4759 return VINF_SUCCESS; … … 4312 4764 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsOpData2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4313 4765 { 4766 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4314 4767 /** @todo AMD IBS. */ 4315 4768 *puValue = 0; … … 4321 4774 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsOpData2(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4322 4775 { 4776 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4323 4777 /** @todo AMD IBS. */ 4324 4778 return VINF_SUCCESS; … … 4329 4783 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsOpData3(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4330 4784 { 4785 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4331 4786 /** @todo AMD IBS. */ 4332 4787 *puValue = 0; … … 4338 4793 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsOpData3(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4339 4794 { 4795 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4340 4796 /** @todo AMD IBS. */ 4341 4797 return VINF_SUCCESS; … … 4346 4802 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsDcLinAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4347 4803 { 4804 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4348 4805 /** @todo AMD IBS. */ 4349 4806 *puValue = 0; … … 4355 4812 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsDcLinAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4356 4813 { 4814 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4357 4815 /** @todo AMD IBS. */ 4358 4816 if (!X86_IS_CANONICAL(uValue)) … … 4368 4826 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsDcPhysAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4369 4827 { 4828 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4370 4829 /** @todo AMD IBS. */ 4371 4830 *puValue = 0; … … 4377 4836 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsDcPhysAddr(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4378 4837 { 4838 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4379 4839 /** @todo AMD IBS. */ 4380 4840 return VINF_SUCCESS; … … 4385 4845 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam10hIbsCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4386 4846 { 4847 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4387 4848 /** @todo AMD IBS. */ 4388 4849 *puValue = 0; … … 4394 4855 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam10hIbsCtl(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4395 4856 { 4857 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4396 4858 /** @todo AMD IBS. */ 4397 4859 return VINF_SUCCESS; … … 4402 4864 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrRd_AmdFam14hIbsBrTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t *puValue) 4403 4865 { 4866 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); 4404 4867 /** @todo AMD IBS. */ 4405 4868 *puValue = 0; … … 4411 4874 static DECLCALLBACK(VBOXSTRICTRC) cpumMsrWr_AmdFam14hIbsBrTarget(PVMCPU pVCpu, uint32_t idMsr, PCCPUMMSRRANGE pRange, uint64_t uValue, uint64_t uRawValue) 4412 4875 { 4876 RT_NOREF_PV(pVCpu); RT_NOREF_PV(idMsr); RT_NOREF_PV(pRange); RT_NOREF_PV(uValue); RT_NOREF_PV(uRawValue); 4413 4877 /** @todo AMD IBS. */ 4414 4878 if (!X86_IS_CANONICAL(uValue)) -
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r62478 r62601 1522 1522 { 1523 1523 PVM pVM = pVCpu->CTX_SUFF(pVM); 1524 #ifndef IN_RING0 1525 RT_NOREF_PV(iGstReg); 1526 #endif 1524 1527 1525 1528 /* -
trunk/src/VBox/VMM/VMMAll/CSAMAll.cpp
r62478 r62601 64 64 Assert(enmAccessType == PGMACCESSTYPE_WRITE); NOREF(enmAccessType); 65 65 Assert(VMCPU_IS_EMT(pVCpu)); 66 RT_NOREF_PV(pvUser); 67 RT_NOREF_PV(enmOrigin); 66 68 67 69 /* -
trunk/src/VBox/VMM/VMMAll/EMAll.cpp
r62478 r62601 1124 1124 { 1125 1125 #ifdef VBOX_WITH_RAW_RING1 1126 NOREF(pvFault); NOREF(pcbSize); 1126 NOREF(pvFault); NOREF(pcbSize); NOREF(pDis); 1127 1127 if (EMIsRawRing1Enabled(pVM)) 1128 1128 { -
trunk/src/VBox/VMM/VMMAll/GIMAllHv.cpp
r62540 r62601 150 150 151 151 #ifndef IN_RING3 152 RT_NOREF_PV(pVCpu); 153 RT_NOREF_PV(pCtx); 152 154 return VINF_GIM_R3_HYPERCALL; 153 155 #else -
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r62478 r62601 1446 1446 VMM_INT_DECL(void) IEMTlbInvalidateAllPhysicalAllCpus(PVM pVM) 1447 1447 { 1448 1448 RT_NOREF_PV(pVM); 1449 1449 } 1450 1450 … … 3410 3410 * Loads a segment selector during a task switch in V8086 mode. 3411 3411 * 3412 * @param pVCpu The cross context virtual CPU structure of the calling thread.3413 3412 * @param pSReg Pointer to the segment register. 3414 3413 * @param uSel The selector value to load. 3415 3414 */ 3416 IEM_STATIC void iemHlpLoadSelectorInV86Mode(P VMCPU pVCpu, PCPUMSELREG pSReg, uint16_t uSel)3415 IEM_STATIC void iemHlpLoadSelectorInV86Mode(PCPUMSELREG pSReg, uint16_t uSel) 3417 3416 { 3418 3417 /* See Intel spec. 26.3.1.2 "Checks on Guest Segment Registers". */ … … 4045 4044 { 4046 4045 pVCpu->iem.s.uCpl = 3; 4047 iemHlpLoadSelectorInV86Mode( pVCpu,&pCtx->es, uNewES);4048 iemHlpLoadSelectorInV86Mode( pVCpu,&pCtx->cs, uNewCS);4049 iemHlpLoadSelectorInV86Mode( pVCpu,&pCtx->ss, uNewSS);4050 iemHlpLoadSelectorInV86Mode( pVCpu,&pCtx->ds, uNewDS);4051 iemHlpLoadSelectorInV86Mode( pVCpu,&pCtx->fs, uNewFS);4052 iemHlpLoadSelectorInV86Mode( pVCpu,&pCtx->gs, uNewGS);4046 iemHlpLoadSelectorInV86Mode(&pCtx->es, uNewES); 4047 iemHlpLoadSelectorInV86Mode(&pCtx->cs, uNewCS); 4048 iemHlpLoadSelectorInV86Mode(&pCtx->ss, uNewSS); 4049 iemHlpLoadSelectorInV86Mode(&pCtx->ds, uNewDS); 4050 iemHlpLoadSelectorInV86Mode(&pCtx->fs, uNewFS); 4051 iemHlpLoadSelectorInV86Mode(&pCtx->gs, uNewGS); 4053 4052 4054 4053 /* quick fix: fake DescSS. */ /** @todo fix the code further down? */ … … 5621 5620 FNIEMOP_DEF(a_Name) \ 5622 5621 { \ 5622 RT_NOREF_PV(pVCpu); \ 5623 5623 IEMOP_BITCH_ABOUT_STUB(); \ 5624 5624 return VERR_IEM_INSTR_NOT_IMPLEMENTED; \ … … 5630 5630 FNIEMOP_DEF_1(a_Name, a_Type0, a_Name0) \ 5631 5631 { \ 5632 RT_NOREF_PV(pVCpu); \ 5633 RT_NOREF_PV(a_Name0); \ 5632 5634 IEMOP_BITCH_ABOUT_STUB(); \ 5633 NOREF(a_Name0); \5634 5635 return VERR_IEM_INSTR_NOT_IMPLEMENTED; \ 5635 5636 } \ … … 5649 5650 FNIEMOP_DEF_1(a_Name, a_Type0, a_Name0) \ 5650 5651 { \ 5651 NOREF(a_Name0); \ 5652 RT_NOREF_PV(pVCpu); \ 5653 RT_NOREF_PV(a_Name0); \ 5652 5654 Log(("Unsupported instruction %Rfn\n", __FUNCTION__)); \ 5653 5655 return IEMOP_RAISE_INVALID_OPCODE(); \ … … 6602 6604 * exception prevents it. 6603 6605 * 6604 * @param pVCpu The cross context virtual CPU structure of the calling thread.6605 6606 * @param pResult The FPU operation result to push. 6606 6607 * @param pFpuCtx The FPU context. 6607 6608 */ 6608 IEM_STATIC void iemFpuMaybePushResult(P VMCPU pVCpu, PIEMFPURESULT pResult, PX86FXSTATE pFpuCtx)6609 IEM_STATIC void iemFpuMaybePushResult(PIEMFPURESULT pResult, PX86FXSTATE pFpuCtx) 6609 6610 { 6610 6611 /* Update FSW and bail if there are pending exceptions afterwards. */ … … 6718 6719 PX86FXSTATE pFpuCtx = &pCtx->CTX_SUFF(pXState)->x87; 6719 6720 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 6720 iemFpuMaybePushResult(p VCpu, pResult, pFpuCtx);6721 iemFpuMaybePushResult(pResult, pFpuCtx); 6721 6722 } 6722 6723 … … 6737 6738 iemFpuUpdateDP(pVCpu, pCtx, pFpuCtx, iEffSeg, GCPtrEff); 6738 6739 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 6739 iemFpuMaybePushResult(p VCpu, pResult, pFpuCtx);6740 iemFpuMaybePushResult(pResult, pFpuCtx); 6740 6741 } 6741 6742 … … 7027 7028 * @param iStReg The stack register being accessed. 7028 7029 */ 7029 IEM_STATIC void iemFpuStackUnderflowOnly(P VMCPU pVCpu, PX86FXSTATE pFpuCtx, uint8_t iStReg)7030 IEM_STATIC void iemFpuStackUnderflowOnly(PX86FXSTATE pFpuCtx, uint8_t iStReg) 7030 7031 { 7031 7032 Assert(iStReg < 8 || iStReg == UINT8_MAX); … … 7063 7064 PX86FXSTATE pFpuCtx = &pCtx->CTX_SUFF(pXState)->x87; 7064 7065 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 7065 iemFpuStackUnderflowOnly(p VCpu, pFpuCtx, iStReg);7066 iemFpuStackUnderflowOnly(pFpuCtx, iStReg); 7066 7067 } 7067 7068 … … 7074 7075 iemFpuUpdateDP(pVCpu, pCtx, pFpuCtx, iEffSeg, GCPtrEff); 7075 7076 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 7076 iemFpuStackUnderflowOnly(p VCpu, pFpuCtx, iStReg);7077 iemFpuStackUnderflowOnly(pFpuCtx, iStReg); 7077 7078 } 7078 7079 … … 7083 7084 PX86FXSTATE pFpuCtx = &pCtx->CTX_SUFF(pXState)->x87; 7084 7085 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 7085 iemFpuStackUnderflowOnly(p VCpu, pFpuCtx, iStReg);7086 iemFpuStackUnderflowOnly(pFpuCtx, iStReg); 7086 7087 iemFpuMaybePopOne(pFpuCtx); 7087 7088 } … … 7095 7096 iemFpuUpdateDP(pVCpu, pCtx, pFpuCtx, iEffSeg, GCPtrEff); 7096 7097 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 7097 iemFpuStackUnderflowOnly(p VCpu, pFpuCtx, iStReg);7098 iemFpuStackUnderflowOnly(pFpuCtx, iStReg); 7098 7099 iemFpuMaybePopOne(pFpuCtx); 7099 7100 } … … 7105 7106 PX86FXSTATE pFpuCtx = &pCtx->CTX_SUFF(pXState)->x87; 7106 7107 iemFpuUpdateOpcodeAndIpWorker(pVCpu, pCtx, pFpuCtx); 7107 iemFpuStackUnderflowOnly(p VCpu, pFpuCtx, UINT8_MAX);7108 iemFpuStackUnderflowOnly(pFpuCtx, UINT8_MAX); 7108 7109 iemFpuMaybePopOne(pFpuCtx); 7109 7110 iemFpuMaybePopOne(pFpuCtx); … … 11457 11458 11458 11459 /** The instruction requires a Pentium (586) or later. */ 11459 #if IEM_CFG_TARGET_CPU >= IEMTARGETCPU_ 58611460 #if IEM_CFG_TARGET_CPU >= IEMTARGETCPU_PENTIUM 11460 11461 # define IEMOP_HLP_MIN_586() do { } while (0) 11461 11462 #else 11462 # define IEMOP_HLP_MIN_586() IEMOP_HLP_MIN_CPU(IEMTARGETCPU_ 586, true)11463 # define IEMOP_HLP_MIN_586() IEMOP_HLP_MIN_CPU(IEMTARGETCPU_PENTIUM, true) 11463 11464 #endif 11464 11465 11465 11466 /** The instruction requires a PentiumPro (686) or later. */ 11466 #if IEM_CFG_TARGET_CPU >= IEMTARGETCPU_ 68611467 #if IEM_CFG_TARGET_CPU >= IEMTARGETCPU_PPRO 11467 11468 # define IEMOP_HLP_MIN_686() do { } while (0) 11468 11469 #else 11469 # define IEMOP_HLP_MIN_686() IEMOP_HLP_MIN_CPU(IEMTARGETCPU_ 686, true)11470 # define IEMOP_HLP_MIN_686() IEMOP_HLP_MIN_CPU(IEMTARGETCPU_PPRO, true) 11470 11471 #endif 11471 11472 … … 13543 13544 LogFlow(("IEMExecOne: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x\n", 13544 13545 pCtx->cs.Sel, pCtx->rip, pCtx->ss.Sel, pCtx->rsp, pCtx->eflags.u)); 13546 RT_NOREF_PV(pVCpu); RT_NOREF_PV(pCtx); RT_NOREF_PV(fSameCtx); 13545 13547 } 13546 13548 #endif … … 14257 14259 VMM_INT_DECL(int) IEMBreakpointSet(PVM pVM, RTGCPTR GCPtrBp) 14258 14260 { 14261 RT_NOREF_PV(pVM); RT_NOREF_PV(GCPtrBp); 14259 14262 return VERR_NOT_IMPLEMENTED; 14260 14263 } … … 14263 14266 VMM_INT_DECL(int) IEMBreakpointClear(PVM pVM, RTGCPTR GCPtrBp) 14264 14267 { 14268 RT_NOREF_PV(pVM); RT_NOREF_PV(GCPtrBp); 14265 14269 return VERR_NOT_IMPLEMENTED; 14266 14270 } -
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r62413 r62601 832 832 *puDst = uResult; 833 833 /* EFLAGS are not modified. */ 834 RT_NOREF_PV(pfEFlags); 834 835 } 835 836 … … 1214 1215 { 1215 1216 /* Note! Skylake leaves all flags alone. */ 1217 RT_NOREF_PV(pfEFlags); 1218 1216 1219 if ( u64Divisor != 0 1217 1220 && *pu64RDX < u64Divisor) … … 1249 1252 { 1250 1253 /* Note! Skylake leaves all flags alone. */ 1254 RT_NOREF_PV(pfEFlags); 1255 1251 1256 if (u64Divisor != 0) 1252 1257 { -
trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h
r62478 r62601 945 945 Assert( pDesc->Legacy.Gate.u4Type == X86_SEL_TYPE_SYS_286_TSS_AVAIL 946 946 || pDesc->Legacy.Gate.u4Type == X86_SEL_TYPE_SYS_386_TSS_AVAIL); 947 RT_NOREF_PV(enmEffOpSize); 947 948 948 949 if ( pDesc->Legacy.Gate.u2Dpl < pVCpu->iem.s.uCpl … … 986 987 #else 987 988 Assert(enmBranch == IEMBRANCH_JUMP || enmBranch == IEMBRANCH_CALL); 989 RT_NOREF_PV(enmEffOpSize); 988 990 989 991 if ( pDesc->Legacy.Gate.u2Dpl < pVCpu->iem.s.uCpl … … 1055 1057 IEM_RETURN_ASPECT_NOT_IMPLEMENTED(); 1056 1058 #else 1059 RT_NOREF_PV(enmEffOpSize); 1060 1057 1061 /* NB: Far jumps can only do intra-privilege transfers. Far calls support 1058 1062 * inter-privilege calls and are much more complex. … … 2971 2975 uint32_t, uNewFlags, uint64_t, uNewRsp) 2972 2976 { 2977 RT_NOREF_PV(cbInstr); 2978 2973 2979 /* 2974 2980 * Pop the V8086 specific frame bits off the stack. … … 3032 3038 IEM_RETURN_ASPECT_NOT_IMPLEMENTED(); 3033 3039 #else 3040 RT_NOREF_PV(enmEffOpSize); 3041 3034 3042 /* 3035 3043 * Read the segment selector in the link-field of the current TSS. … … 3904 3912 3905 3913 { 3914 RT_NOREF_PV(cbInstr); 3906 3915 PCPUMCTX pCtx = IEM_GET_CTX(pVCpu); 3907 3916 … … 4426 4435 * @param pu16Dst Pointer to the destination register. 4427 4436 * @param uSel The selector to load details for. 4428 * @param pEFlags Pointer to the eflags register.4429 4437 * @param fIsLar true = LAR, false = LSL. 4430 4438 */ 4431 IEM_CIMPL_DEF_ 4(iemCImpl_LarLsl_u64, uint64_t *, pu64Dst, uint16_t, uSel, uint32_t *, pEFlags, bool, fIsLar)4439 IEM_CIMPL_DEF_3(iemCImpl_LarLsl_u64, uint64_t *, pu64Dst, uint16_t, uSel, bool, fIsLar) 4432 4440 { 4433 4441 Assert(!IEM_IS_REAL_OR_V86_MODE(pVCpu)); … … 4533 4541 * @param pu16Dst Pointer to the destination register. 4534 4542 * @param u16Sel The selector to load details for. 4535 * @param pEFlags Pointer to the eflags register.4536 4543 * @param fIsLar true = LAR, false = LSL. 4537 4544 */ 4538 IEM_CIMPL_DEF_ 4(iemCImpl_LarLsl_u16, uint16_t *, pu16Dst, uint16_t, uSel, uint32_t *, pEFlags, bool, fIsLar)4545 IEM_CIMPL_DEF_3(iemCImpl_LarLsl_u16, uint16_t *, pu16Dst, uint16_t, uSel, bool, fIsLar) 4539 4546 { 4540 4547 uint64_t u64TmpDst = *pu16Dst; 4541 IEM_CIMPL_CALL_ 4(iemCImpl_LarLsl_u64, &u64TmpDst, uSel, pEFlags, fIsLar);4542 *pu16Dst = (uint16_t)u64TmpDst;4548 IEM_CIMPL_CALL_3(iemCImpl_LarLsl_u64, &u64TmpDst, uSel, fIsLar); 4549 *pu16Dst = u64TmpDst; 4543 4550 return VINF_SUCCESS; 4544 4551 } -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
r62478 r62601 543 543 FNIEMOPRM_DEF(iemOp_InvalidWithRM) 544 544 { 545 RT_NOREF_PV(bRm); 545 546 IEMOP_MNEMONIC("InvalidWithRM"); 546 547 return IEMOP_RAISE_INVALID_OPCODE(); … … 1212 1213 case IEMMODE_16BIT: 1213 1214 { 1214 IEM_MC_BEGIN( 4, 0);1215 IEM_MC_BEGIN(3, 0); 1215 1216 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 1216 1217 IEM_MC_ARG(uint16_t, u16Sel, 1); 1217 IEM_MC_ARG(uint32_t *, pEFlags, 2); 1218 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 3); 1218 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 2); 1219 1219 1220 1220 IEM_MC_REF_GREG_U16(pu16Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 1221 1221 IEM_MC_FETCH_GREG_U16(u16Sel, (bRm & X86_MODRM_RM_MASK) | pVCpu->iem.s.uRexB); 1222 IEM_MC_REF_EFLAGS(pEFlags); 1223 IEM_MC_CALL_CIMPL_4(iemCImpl_LarLsl_u16, pu16Dst, u16Sel, pEFlags, fIsLarArg); 1222 IEM_MC_CALL_CIMPL_3(iemCImpl_LarLsl_u16, pu16Dst, u16Sel, fIsLarArg); 1224 1223 1225 1224 IEM_MC_END(); … … 1230 1229 case IEMMODE_64BIT: 1231 1230 { 1232 IEM_MC_BEGIN( 4, 0);1231 IEM_MC_BEGIN(3, 0); 1233 1232 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 1234 1233 IEM_MC_ARG(uint16_t, u16Sel, 1); 1235 IEM_MC_ARG(uint32_t *, pEFlags, 2); 1236 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 3); 1234 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 2); 1237 1235 1238 1236 IEM_MC_REF_GREG_U64(pu64Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 1239 1237 IEM_MC_FETCH_GREG_U16(u16Sel, (bRm & X86_MODRM_RM_MASK) | pVCpu->iem.s.uRexB); 1240 IEM_MC_REF_EFLAGS(pEFlags); 1241 IEM_MC_CALL_CIMPL_4(iemCImpl_LarLsl_u64, pu64Dst, u16Sel, pEFlags, fIsLarArg); 1238 IEM_MC_CALL_CIMPL_3(iemCImpl_LarLsl_u64, pu64Dst, u16Sel, fIsLarArg); 1242 1239 1243 1240 IEM_MC_END(); … … 1254 1251 case IEMMODE_16BIT: 1255 1252 { 1256 IEM_MC_BEGIN( 4, 1);1253 IEM_MC_BEGIN(3, 1); 1257 1254 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 1258 1255 IEM_MC_ARG(uint16_t, u16Sel, 1); 1259 IEM_MC_ARG(uint32_t *, pEFlags, 2); 1260 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 3); 1256 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 2); 1261 1257 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1262 1258 … … 1266 1262 IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1267 1263 IEM_MC_REF_GREG_U16(pu16Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 1268 IEM_MC_REF_EFLAGS(pEFlags); 1269 IEM_MC_CALL_CIMPL_4(iemCImpl_LarLsl_u16, pu16Dst, u16Sel, pEFlags, fIsLarArg); 1264 IEM_MC_CALL_CIMPL_3(iemCImpl_LarLsl_u16, pu16Dst, u16Sel, fIsLarArg); 1270 1265 1271 1266 IEM_MC_END(); … … 1276 1271 case IEMMODE_64BIT: 1277 1272 { 1278 IEM_MC_BEGIN( 4, 1);1273 IEM_MC_BEGIN(3, 1); 1279 1274 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 1280 1275 IEM_MC_ARG(uint16_t, u16Sel, 1); 1281 IEM_MC_ARG(uint32_t *, pEFlags, 2); 1282 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 3); 1276 IEM_MC_ARG_CONST(bool, fIsLarArg, fIsLar, 2); 1283 1277 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1284 1278 … … 1289 1283 IEM_MC_FETCH_MEM_U16(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1290 1284 IEM_MC_REF_GREG_U64(pu64Dst, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 1291 IEM_MC_REF_EFLAGS(pEFlags); 1292 IEM_MC_CALL_CIMPL_4(iemCImpl_LarLsl_u64, pu64Dst, u16Sel, pEFlags, fIsLarArg); 1285 IEM_MC_CALL_CIMPL_3(iemCImpl_LarLsl_u64, pu64Dst, u16Sel, fIsLarArg); 1293 1286 1294 1287 IEM_MC_END(); … … 5438 5431 FNIEMOP_DEF_1(iemOp_Grp15_lfence, uint8_t, bRm) 5439 5432 { 5433 RT_NOREF_PV(bRm); 5440 5434 IEMOP_MNEMONIC("lfence"); 5441 5435 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 5457 5451 FNIEMOP_DEF_1(iemOp_Grp15_mfence, uint8_t, bRm) 5458 5452 { 5453 RT_NOREF_PV(bRm); 5459 5454 IEMOP_MNEMONIC("mfence"); 5460 5455 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 5476 5471 FNIEMOP_DEF_1(iemOp_Grp15_sfence, uint8_t, bRm) 5477 5472 { 5473 RT_NOREF_PV(bRm); 5478 5474 IEMOP_MNEMONIC("sfence"); 5479 5475 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); -
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r62478 r62601 68 68 memcpy(pVCpu->iom.s.PendingMmioWrite.abValue, pvBuf, cbBuf); 69 69 VMCPU_FF_SET(pVCpu, VMCPU_FF_IOM); 70 RT_NOREF_PV(pRange); 70 71 return VINF_IOM_R3_MMIO_COMMIT_WRITE; 71 72 } -
trunk/src/VBox/VMM/VMMAll/PATMAll.cpp
r62478 r62601 63 63 #else 64 64 /* RC: Go handle this in ring-3. */ 65 RT_NOREF_PV(pVCpu); 65 66 return VINF_PATM_CHECK_PATCH_PAGE; 66 67 #endif -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r62478 r62601 1599 1599 DECLINLINE(void) PGM_BTH_NAME(SyncHandlerPte)(PVM pVM, PCPGMPAGE pPage, uint64_t fPteSrc, PSHWPTE pPteDst) 1600 1600 { 1601 NOREF(pVM); 1601 NOREF(pVM); RT_NOREF_PV(fPteSrc); 1602 1602 1603 /** @todo r=bird: Are we actually handling dirty and access bits for pages with access handlers correctly? No. 1603 1604 * Update: \#PF should deal with this before or after calling the handlers. It has all the info to do the job efficiently. */ -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r62478 r62601 181 181 NOREF(pVCpu); 182 182 183 LogFlow(("pgmPoolMonitorChainChanging: %RGv phys=%RGp cbWrite=%d\n", (RTGCPTR)(CTXTYPE(RTGCPTR, uintptr_t, RTGCPTR))pvAddress, GCPhysFault, cbWrite)); 183 LogFlow(("pgmPoolMonitorChainChanging: %RGv phys=%RGp cbWrite=%d\n", 184 (RTGCPTR)(CTXTYPE(RTGCPTR, uintptr_t, RTGCPTR))(uintptr_t)pvAddress, GCPhysFault, cbWrite)); 184 185 185 186 for (;;) -
trunk/src/VBox/VMM/VMMAll/SELMAll.cpp
r62478 r62601 586 586 { 587 587 Assert(!HMIsEnabled(pVCpu->CTX_SUFF(pVM))); 588 RT_NOREF_PV(pCtx); 588 589 589 590 /* -
trunk/src/VBox/VMM/VMMAll/VMMAll.cpp
r62478 r62601 460 460 if (HMIsEnabled(pVCpu->CTX_SUFF(pVM))) 461 461 HMHypercallsEnable(pVCpu); 462 #else 463 RT_NOREF_PV(pVCpu); 462 464 #endif 463 465 } … … 475 477 if (HMIsEnabled(pVCpu->CTX_SUFF(pVM))) 476 478 HMHypercallsDisable(pVCpu); 477 #endif 478 } 479 479 #else 480 RT_NOREF_PV(pVCpu); 481 #endif 482 } 483 -
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r62478 r62601 272 272 static void hmR0SvmSetMsrPermission(PVMCPU pVCpu, unsigned uMsr, SVMMSREXITREAD enmRead, SVMMSREXITWRITE enmWrite); 273 273 static void hmR0SvmPendingEventToTrpmTrap(PVMCPU pVCpu); 274 static void hmR0SvmLeave(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx);274 static void hmR0SvmLeave(PVMCPU pVCpu); 275 275 276 276 /** @name \#VMEXIT handlers. … … 1759 1759 VMCPU_ASSERT_EMT(pVCpu); 1760 1760 1761 PVM pVM = pVCpu->CTX_SUFF(pVM);1762 PCPUMCTX pCtx = CPUMQueryGuestCtxPtr(pVCpu);1763 1764 1761 /* No longjmps (log-flush, locks) in this fragile context. */ 1765 1762 VMMRZCallRing3Disable(pVCpu); … … 1767 1764 if (!pVCpu->hm.s.fLeaveDone) 1768 1765 { 1769 hmR0SvmLeave(pV M, pVCpu, pCtx);1766 hmR0SvmLeave(pVCpu); 1770 1767 pVCpu->hm.s.fLeaveDone = true; 1771 1768 } … … 2080 2077 * (longjmp, preemption, voluntary exits to ring-3) from AMD-V. 2081 2078 * 2082 * @param pVM The cross context VM structure.2083 2079 * @param pVCpu The cross context virtual CPU structure. 2084 * @param pCtx Pointer to the guest-CPU context.2085 2080 * 2086 2081 * @remarks No-long-jmp zone!!! 2087 2082 */ 2088 static void hmR0SvmLeave(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx)2083 static void hmR0SvmLeave(PVMCPU pVCpu) 2089 2084 { 2090 2085 Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD)); … … 2132 2127 * 2133 2128 * @returns VBox status code. 2134 * @param pVM The cross context VM structure.2135 2129 * @param pVCpu The cross context virtual CPU structure. 2136 * @param pCtx Pointer to the guest-CPU context. 2137 */ 2138 static int hmR0SvmLeaveSession(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx) 2130 */ 2131 static int hmR0SvmLeaveSession(PVMCPU pVCpu) 2139 2132 { 2140 2133 HM_DISABLE_PREEMPT(); … … 2146 2139 if (!pVCpu->hm.s.fLeaveDone) 2147 2140 { 2148 hmR0SvmLeave(pV M, pVCpu, pCtx);2141 hmR0SvmLeave(pVCpu); 2149 2142 pVCpu->hm.s.fLeaveDone = true; 2150 2143 } … … 2171 2164 * 2172 2165 * @returns VBox status code. 2173 * @param pVM The cross context VM structure.2174 2166 * @param pVCpu The cross context virtual CPU structure. 2175 * @param pCtx Pointer to the guest-CPU context.2176 2167 * 2177 2168 * @remarks No-long-jmp zone!!! 2178 2169 */ 2179 static int hmR0SvmLongJmpToRing3(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx)2180 { 2181 return hmR0SvmLeaveSession(pV M, pVCpu, pCtx);2170 static int hmR0SvmLongJmpToRing3(PVMCPU pVCpu) 2171 { 2172 return hmR0SvmLeaveSession(pVCpu); 2182 2173 } 2183 2174 … … 2232 2223 2233 2224 Log4(("hmR0SvmCallRing3Callback->hmR0SvmLongJmpToRing3\n")); 2234 int rc = hmR0SvmLongJmpToRing3(pVCpu ->CTX_SUFF(pVM), pVCpu, (PCPUMCTX)pvUser);2225 int rc = hmR0SvmLongJmpToRing3(pVCpu); 2235 2226 AssertRCReturn(rc, rc); 2236 2227 … … 2277 2268 2278 2269 /* Sync. the necessary state for going back to ring-3. */ 2279 hmR0SvmLeaveSession(pV M, pVCpu, pCtx);2270 hmR0SvmLeaveSession(pVCpu); 2280 2271 STAM_COUNTER_DEC(&pVCpu->hm.s.StatSwitchLongJmpToR3); 2281 2272 -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r62478 r62601 7096 7096 * 7097 7097 * @returns VBox status code. 7098 * @param pVM The cross context VM structure.7099 7098 * @param pVCpu The cross context virtual CPU structure. 7100 7099 * @param pMixedCtx Pointer to the guest-CPU context. The data may … … 7105 7104 * @remarks No-long-jmp zone!!! 7106 7105 */ 7107 static int hmR0VmxLeave(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx, bool fSaveGuestState)7106 static int hmR0VmxLeave(PVMCPU pVCpu, PCPUMCTX pMixedCtx, bool fSaveGuestState) 7108 7107 { 7109 7108 Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD)); … … 7212 7211 * 7213 7212 * @returns VBox status code. 7214 * @param pVM The cross context VM structure.7215 7213 * @param pVCpu The cross context virtual CPU structure. 7216 7214 * @param pMixedCtx Pointer to the guest-CPU context. The data may be … … 7220 7218 * @remarks No-long-jmp zone!!! 7221 7219 */ 7222 DECLINLINE(int) hmR0VmxLeaveSession(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx)7220 DECLINLINE(int) hmR0VmxLeaveSession(PVMCPU pVCpu, PCPUMCTX pMixedCtx) 7223 7221 { 7224 7222 HM_DISABLE_PREEMPT(); … … 7231 7229 if (!pVCpu->hm.s.fLeaveDone) 7232 7230 { 7233 int rc2 = hmR0VmxLeave(pV M, pVCpu, pMixedCtx, true /* fSaveGuestState */);7231 int rc2 = hmR0VmxLeave(pVCpu, pMixedCtx, true /* fSaveGuestState */); 7234 7232 AssertRCReturnStmt(rc2, HM_RESTORE_PREEMPT(), rc2); 7235 7233 pVCpu->hm.s.fLeaveDone = true; … … 7260 7258 * 7261 7259 * @returns VBox status code. 7262 * @param pVM The cross context VM structure.7263 7260 * @param pVCpu The cross context virtual CPU structure. 7264 7261 * @param pMixedCtx Pointer to the guest-CPU context. The data may be … … 7268 7265 * @remarks No-long-jmp zone!!! 7269 7266 */ 7270 DECLINLINE(int) hmR0VmxLongJmpToRing3(PVM pVM, PVMCPU pVCpu, PCPUMCTX pMixedCtx)7271 { 7272 return hmR0VmxLeaveSession(pV M, pVCpu, pMixedCtx);7267 DECLINLINE(int) hmR0VmxLongJmpToRing3(PVMCPU pVCpu, PCPUMCTX pMixedCtx) 7268 { 7269 return hmR0VmxLeaveSession(pVCpu, pMixedCtx); 7273 7270 } 7274 7271 … … 7328 7325 7329 7326 /* Save guest state and restore host state bits. */ 7330 int rc = hmR0VmxLeaveSession(pV M, pVCpu, pMixedCtx);7327 int rc = hmR0VmxLeaveSession(pVCpu, pMixedCtx); 7331 7328 AssertRCReturn(rc, rc); 7332 7329 STAM_COUNTER_DEC(&pVCpu->hm.s.StatSwitchLongJmpToR3); … … 7430 7427 enmOperation)); 7431 7428 7432 int rc = hmR0VmxLongJmpToRing3(pVCpu ->CTX_SUFF(pVM), pVCpu, (PCPUMCTX)pvUser);7429 int rc = hmR0VmxLongJmpToRing3(pVCpu, (PCPUMCTX)pvUser); 7433 7430 AssertRCReturn(rc, rc); 7434 7431 … … 8210 8207 VMCPU_ASSERT_EMT(pVCpu); 8211 8208 8212 PVM pVM = pVCpu->CTX_SUFF(pVM);8213 8209 PCPUMCTX pMixedCtx = CPUMQueryGuestCtxPtr(pVCpu); 8214 8210 … … 8224 8220 /* Do -not- save guest-state here as we might already be in the middle of saving it (esp. bad if we are 8225 8221 holding the PGM lock while saving the guest state (see hmR0VmxSaveGuestControlRegs()). */ 8226 hmR0VmxLeave(pV M, pVCpu, pMixedCtx, false /* fSaveGuestState */);8222 hmR0VmxLeave(pVCpu, pMixedCtx, false /* fSaveGuestState */); 8227 8223 pVCpu->hm.s.fLeaveDone = true; 8228 8224 } … … 13028 13024 static int hmR0VmxExitXcptAC(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient) 13029 13025 { 13026 RT_NOREF_PV(pMixedCtx); 13030 13027 HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS(); 13031 13028 … … 13485 13482 static int hmR0VmxExitXcptGeneric(PVMCPU pVCpu, PCPUMCTX pMixedCtx, PVMXTRANSIENT pVmxTransient) 13486 13483 { 13484 RT_NOREF_PV(pMixedCtx); 13487 13485 HMVMX_VALIDATE_EXIT_XCPT_HANDLER_PARAMS(); 13488 13486 #ifndef HMVMX_ALWAYS_TRAP_ALL_XCPTS -
trunk/src/VBox/VMM/VMMRC/CSAMRC.cpp
r62478 r62601 61 61 PPATMGCSTATE pPATMGCState; 62 62 bool fPatchCode = PATMIsPatchGCAddr(pVM, pRegFrame->eip); 63 NOREF(uErrorCode); 63 RT_NOREF_PV(uErrorCode); 64 RT_NOREF_PV(pvUser); 65 64 66 65 67 Assert(pVM->csam.s.cDirtyPages < CSAM_MAX_DIRTY_PAGES); -
trunk/src/VBox/VMM/VMMRC/IOMRC.cpp
r62478 r62601 140 140 * @retval VINF_EM_RESCHEDULE_REM The exception was dispatched and cannot be executed in raw-mode. (TRPMRaiseXcptErr) 141 141 * 142 * @param pVM The cross context VM structure. 143 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 144 * @param pRegFrame Pointer to CPUMCTXCORE guest registers structure. 145 * @param pCpu Disassembler CPU state. 146 */ 147 static VBOXSTRICTRC iomRCInterpretINS(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu) 142 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 143 * @param pCpu Disassembler CPU state. 144 */ 145 static VBOXSTRICTRC iomRCInterpretINS(PVMCPU pVCpu, PDISCPUSTATE pCpu) 148 146 { 149 147 uint8_t cbValue = pCpu->pCurInstr->uOpcode == OP_INSB ? 1 … … 174 172 * @retval VINF_EM_RESCHEDULE_REM The exception was dispatched and cannot be executed in raw-mode. (TRPMRaiseXcptErr) 175 173 * 176 * @param pVM The cross context VM structure. 177 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 178 * @param pRegFrame Pointer to CPUMCTXCORE guest registers structure. 179 * @param pCpu Disassembler CPU state. 180 */ 181 static VBOXSTRICTRC iomRCInterpretOUTS(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, PDISCPUSTATE pCpu) 174 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 175 * @param pCpu Disassembler CPU state. 176 */ 177 static VBOXSTRICTRC iomRCInterpretOUTS(PVMCPU pVCpu, PDISCPUSTATE pCpu) 182 178 { 183 179 uint8_t cbValue = pCpu->pCurInstr->uOpcode == OP_OUTSB ? 1 … … 229 225 case OP_INSB: 230 226 case OP_INSWD: 231 return iomRCInterpretINS(pV M, pVCpu, pRegFrame, pCpu);227 return iomRCInterpretINS(pVCpu, pCpu); 232 228 233 229 case OP_OUTSB: 234 230 case OP_OUTSWD: 235 return iomRCInterpretOUTS(pV M, pVCpu, pRegFrame, pCpu);231 return iomRCInterpretOUTS(pVCpu, pCpu); 236 232 237 233 /* -
trunk/src/VBox/VMM/VMMRC/VMMRC.cpp
r62478 r62601 368 368 AssertPtrReturn(paResults, VERR_INVALID_POINTER); 369 369 ASMIntEnable(); /* Run with interrupts enabled, so we can query more MSRs in one block. */ 370 RT_NOREF_PV(pVM); 370 371 371 372 for (uint32_t i = 0; i < cMsrs; i++, uMsr++) … … 403 404 AssertPtrReturn(puValueAfter, VERR_INVALID_POINTER); 404 405 ASMIntDisable(); 406 RT_NOREF_PV(pVM); 405 407 406 408 int rc = VINF_SUCCESS; -
trunk/src/VBox/VMM/include/SELMInline.h
r62478 r62601 247 247 || pSReg->Attr.n.u2Dpl != pShwDesc->Gen.u2Dpl - pShwDesc->Gen.u1Available) 248 248 { 249 Log(("selmIsSRegStale32: Attributes changed (%#x -> %#x) \n", pSReg->Attr.u, X86DESC_GET_HID_ATTR(pShwDesc)));249 Log(("selmIsSRegStale32: Attributes changed (%#x -> %#x) for %u\n", pSReg->Attr.u, X86DESC_GET_HID_ATTR(pShwDesc), iSReg)); 250 250 return true; 251 251 } … … 253 253 if (pSReg->u64Base != X86DESC_BASE(pShwDesc)) 254 254 { 255 Log(("selmIsSRegStale32: base changed (%#llx -> %#x) \n", pSReg->u64Base, X86DESC_BASE(pShwDesc)));255 Log(("selmIsSRegStale32: base changed (%#llx -> %#x) for %u\n", pSReg->u64Base, X86DESC_BASE(pShwDesc), iSReg)); 256 256 return true; 257 257 } … … 259 259 if (pSReg->u32Limit != X86DESC_LIMIT_G(pShwDesc)) 260 260 { 261 Log(("selmIsSRegStale32: limit changed (%#x -> %#x) \n", pSReg->u32Limit, X86DESC_LIMIT_G(pShwDesc)));261 Log(("selmIsSRegStale32: limit changed (%#x -> %#x) for %u\n", pSReg->u32Limit, X86DESC_LIMIT_G(pShwDesc), iSReg)); 262 262 return true; 263 263 } 264 264 265 RT_NOREF_PV(iSReg); 265 266 return false; 266 267 }
Note:
See TracChangeset
for help on using the changeset viewer.