- Timestamp:
- May 19, 2014 11:00:11 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 93753
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r51283 r51285 330 330 typedef CPUMUKNOWNCPUID *PCPUMUKNOWNCPUID; 331 331 332 333 /** 334 * MSR read functions. 335 */ 336 typedef enum CPUMMSRRDFN 337 { 338 /** Invalid zero value. */ 339 kCpumMsrRdFn_Invalid = 0, 340 /** Return the CPUMMSRRANGE::uValue. */ 341 kCpumMsrRdFn_FixedValue, 342 /** Alias to the MSR range starting at the MSR given by 343 * CPUMMSRRANGE::uValue. Must be used in pair with 344 * kCpumMsrWrFn_MsrAlias. */ 345 kCpumMsrRdFn_MsrAlias, 346 /** Write only register, GP all read attempts. */ 347 kCpumMsrRdFn_WriteOnly, 348 349 kCpumMsrRdFn_Ia32P5McAddr, 350 kCpumMsrRdFn_Ia32P5McType, 351 kCpumMsrRdFn_Ia32TimestampCounter, 352 kCpumMsrRdFn_Ia32PlatformId, /**< Takes real CPU value for reference. */ 353 kCpumMsrRdFn_Ia32ApicBase, 354 kCpumMsrRdFn_Ia32FeatureControl, 355 kCpumMsrRdFn_Ia32BiosSignId, /**< Range value returned. */ 356 kCpumMsrRdFn_Ia32SmmMonitorCtl, 357 kCpumMsrRdFn_Ia32PmcN, 358 kCpumMsrRdFn_Ia32MonitorFilterLineSize, 359 kCpumMsrRdFn_Ia32MPerf, 360 kCpumMsrRdFn_Ia32APerf, 361 kCpumMsrRdFn_Ia32MtrrCap, /**< Takes real CPU value for reference. */ 362 kCpumMsrRdFn_Ia32MtrrPhysBaseN, /**< Takes register number. */ 363 kCpumMsrRdFn_Ia32MtrrPhysMaskN, /**< Takes register number. */ 364 kCpumMsrRdFn_Ia32MtrrFixed, /**< Takes CPUMCPU offset. */ 365 kCpumMsrRdFn_Ia32MtrrDefType, 366 kCpumMsrRdFn_Ia32Pat, 367 kCpumMsrRdFn_Ia32SysEnterCs, 368 kCpumMsrRdFn_Ia32SysEnterEsp, 369 kCpumMsrRdFn_Ia32SysEnterEip, 370 kCpumMsrRdFn_Ia32McgCap, 371 kCpumMsrRdFn_Ia32McgStatus, 372 kCpumMsrRdFn_Ia32McgCtl, 373 kCpumMsrRdFn_Ia32DebugCtl, 374 kCpumMsrRdFn_Ia32SmrrPhysBase, 375 kCpumMsrRdFn_Ia32SmrrPhysMask, 376 kCpumMsrRdFn_Ia32PlatformDcaCap, 377 kCpumMsrRdFn_Ia32CpuDcaCap, 378 kCpumMsrRdFn_Ia32Dca0Cap, 379 kCpumMsrRdFn_Ia32PerfEvtSelN, /**< Range value indicates the register number. */ 380 kCpumMsrRdFn_Ia32PerfStatus, /**< Range value returned. */ 381 kCpumMsrRdFn_Ia32PerfCtl, /**< Range value returned. */ 382 kCpumMsrRdFn_Ia32FixedCtrN, /**< Takes register number of start of range. */ 383 kCpumMsrRdFn_Ia32PerfCapabilities, /**< Takes reference value. */ 384 kCpumMsrRdFn_Ia32FixedCtrCtrl, 385 kCpumMsrRdFn_Ia32PerfGlobalStatus, /**< Takes reference value. */ 386 kCpumMsrRdFn_Ia32PerfGlobalCtrl, 387 kCpumMsrRdFn_Ia32PerfGlobalOvfCtrl, 388 kCpumMsrRdFn_Ia32PebsEnable, 389 kCpumMsrRdFn_Ia32ClockModulation, /**< Range value returned. */ 390 kCpumMsrRdFn_Ia32ThermInterrupt, /**< Range value returned. */ 391 kCpumMsrRdFn_Ia32ThermStatus, /**< Range value returned. */ 392 kCpumMsrRdFn_Ia32Therm2Ctl, /**< Range value returned. */ 393 kCpumMsrRdFn_Ia32MiscEnable, /**< Range value returned. */ 394 kCpumMsrRdFn_Ia32McCtlStatusAddrMiscN, /**< Takes bank number. */ 395 kCpumMsrRdFn_Ia32McNCtl2, /**< Takes register number of start of range. */ 396 kCpumMsrRdFn_Ia32DsArea, 397 kCpumMsrRdFn_Ia32TscDeadline, 398 kCpumMsrRdFn_Ia32X2ApicN, 399 kCpumMsrRdFn_Ia32DebugInterface, 400 kCpumMsrRdFn_Ia32VmxBase, /**< Takes real value as reference. */ 401 kCpumMsrRdFn_Ia32VmxPinbasedCtls, /**< Takes real value as reference. */ 402 kCpumMsrRdFn_Ia32VmxProcbasedCtls, /**< Takes real value as reference. */ 403 kCpumMsrRdFn_Ia32VmxExitCtls, /**< Takes real value as reference. */ 404 kCpumMsrRdFn_Ia32VmxEntryCtls, /**< Takes real value as reference. */ 405 kCpumMsrRdFn_Ia32VmxMisc, /**< Takes real value as reference. */ 406 kCpumMsrRdFn_Ia32VmxCr0Fixed0, /**< Takes real value as reference. */ 407 kCpumMsrRdFn_Ia32VmxCr0Fixed1, /**< Takes real value as reference. */ 408 kCpumMsrRdFn_Ia32VmxCr4Fixed0, /**< Takes real value as reference. */ 409 kCpumMsrRdFn_Ia32VmxCr4Fixed1, /**< Takes real value as reference. */ 410 kCpumMsrRdFn_Ia32VmxVmcsEnum, /**< Takes real value as reference. */ 411 kCpumMsrRdFn_Ia32VmxProcBasedCtls2, /**< Takes real value as reference. */ 412 kCpumMsrRdFn_Ia32VmxEptVpidCap, /**< Takes real value as reference. */ 413 kCpumMsrRdFn_Ia32VmxTruePinbasedCtls, /**< Takes real value as reference. */ 414 kCpumMsrRdFn_Ia32VmxTrueProcbasedCtls, /**< Takes real value as reference. */ 415 kCpumMsrRdFn_Ia32VmxTrueExitCtls, /**< Takes real value as reference. */ 416 kCpumMsrRdFn_Ia32VmxTrueEntryCtls, /**< Takes real value as reference. */ 417 418 kCpumMsrRdFn_Amd64Efer, 419 kCpumMsrRdFn_Amd64SyscallTarget, 420 kCpumMsrRdFn_Amd64LongSyscallTarget, 421 kCpumMsrRdFn_Amd64CompSyscallTarget, 422 kCpumMsrRdFn_Amd64SyscallFlagMask, 423 kCpumMsrRdFn_Amd64FsBase, 424 kCpumMsrRdFn_Amd64GsBase, 425 kCpumMsrRdFn_Amd64KernelGsBase, 426 kCpumMsrRdFn_Amd64TscAux, 427 428 kCpumMsrRdFn_IntelEblCrPowerOn, 429 kCpumMsrRdFn_IntelI7CoreThreadCount, 430 kCpumMsrRdFn_IntelP4EbcHardPowerOn, 431 kCpumMsrRdFn_IntelP4EbcSoftPowerOn, 432 kCpumMsrRdFn_IntelP4EbcFrequencyId, 433 kCpumMsrRdFn_IntelP6FsbFrequency, /**< Takes real value as reference. */ 434 kCpumMsrRdFn_IntelPlatformInfo, 435 kCpumMsrRdFn_IntelFlexRatio, /**< Takes real value as reference. */ 436 kCpumMsrRdFn_IntelPkgCStConfigControl, 437 kCpumMsrRdFn_IntelPmgIoCaptureBase, 438 kCpumMsrRdFn_IntelLastBranchFromToN, 439 kCpumMsrRdFn_IntelLastBranchFromN, 440 kCpumMsrRdFn_IntelLastBranchToN, 441 kCpumMsrRdFn_IntelLastBranchTos, 442 kCpumMsrRdFn_IntelBblCrCtl, 443 kCpumMsrRdFn_IntelBblCrCtl3, 444 kCpumMsrRdFn_IntelI7TemperatureTarget, /**< Range value returned. */ 445 kCpumMsrRdFn_IntelI7MsrOffCoreResponseN,/**< Takes register number. */ 446 kCpumMsrRdFn_IntelI7MiscPwrMgmt, 447 kCpumMsrRdFn_IntelP6CrN, 448 kCpumMsrRdFn_IntelCpuId1FeatureMaskEcdx, 449 kCpumMsrRdFn_IntelCpuId1FeatureMaskEax, 450 kCpumMsrRdFn_IntelCpuId80000001FeatureMaskEcdx, 451 kCpumMsrRdFn_IntelI7SandyAesNiCtl, 452 kCpumMsrRdFn_IntelI7TurboRatioLimit, /**< Returns range value. */ 453 kCpumMsrRdFn_IntelI7LbrSelect, 454 kCpumMsrRdFn_IntelI7SandyErrorControl, 455 kCpumMsrRdFn_IntelI7VirtualLegacyWireCap,/**< Returns range value. */ 456 kCpumMsrRdFn_IntelI7PowerCtl, 457 kCpumMsrRdFn_IntelI7SandyPebsNumAlt, 458 kCpumMsrRdFn_IntelI7PebsLdLat, 459 kCpumMsrRdFn_IntelI7PkgCnResidencyN, /**< Takes C-state number. */ 460 kCpumMsrRdFn_IntelI7CoreCnResidencyN, /**< Takes C-state number. */ 461 kCpumMsrRdFn_IntelI7SandyVrCurrentConfig,/**< Takes real value as reference. */ 462 kCpumMsrRdFn_IntelI7SandyVrMiscConfig, /**< Takes real value as reference. */ 463 kCpumMsrRdFn_IntelI7SandyRaplPowerUnit, /**< Takes real value as reference. */ 464 kCpumMsrRdFn_IntelI7SandyPkgCnIrtlN, /**< Takes real value as reference. */ 465 kCpumMsrRdFn_IntelI7SandyPkgC2Residency, /**< Takes real value as reference. */ 466 kCpumMsrRdFn_IntelI7RaplPkgPowerLimit, /**< Takes real value as reference. */ 467 kCpumMsrRdFn_IntelI7RaplPkgEnergyStatus, /**< Takes real value as reference. */ 468 kCpumMsrRdFn_IntelI7RaplPkgPerfStatus, /**< Takes real value as reference. */ 469 kCpumMsrRdFn_IntelI7RaplPkgPowerInfo, /**< Takes real value as reference. */ 470 kCpumMsrRdFn_IntelI7RaplDramPowerLimit, /**< Takes real value as reference. */ 471 kCpumMsrRdFn_IntelI7RaplDramEnergyStatus,/**< Takes real value as reference. */ 472 kCpumMsrRdFn_IntelI7RaplDramPerfStatus, /**< Takes real value as reference. */ 473 kCpumMsrRdFn_IntelI7RaplDramPowerInfo, /**< Takes real value as reference. */ 474 kCpumMsrRdFn_IntelI7RaplPp0PowerLimit, /**< Takes real value as reference. */ 475 kCpumMsrRdFn_IntelI7RaplPp0EnergyStatus, /**< Takes real value as reference. */ 476 kCpumMsrRdFn_IntelI7RaplPp0Policy, /**< Takes real value as reference. */ 477 kCpumMsrRdFn_IntelI7RaplPp0PerfStatus, /**< Takes real value as reference. */ 478 kCpumMsrRdFn_IntelI7RaplPp1PowerLimit, /**< Takes real value as reference. */ 479 kCpumMsrRdFn_IntelI7RaplPp1EnergyStatus, /**< Takes real value as reference. */ 480 kCpumMsrRdFn_IntelI7RaplPp1Policy, /**< Takes real value as reference. */ 481 kCpumMsrRdFn_IntelI7IvyConfigTdpNominal, /**< Takes real value as reference. */ 482 kCpumMsrRdFn_IntelI7IvyConfigTdpLevel1, /**< Takes real value as reference. */ 483 kCpumMsrRdFn_IntelI7IvyConfigTdpLevel2, /**< Takes real value as reference. */ 484 kCpumMsrRdFn_IntelI7IvyConfigTdpControl, 485 kCpumMsrRdFn_IntelI7IvyTurboActivationRatio, 486 kCpumMsrRdFn_IntelI7UncPerfGlobalCtrl, 487 kCpumMsrRdFn_IntelI7UncPerfGlobalStatus, 488 kCpumMsrRdFn_IntelI7UncPerfGlobalOvfCtrl, 489 kCpumMsrRdFn_IntelI7UncPerfFixedCtrCtrl, 490 kCpumMsrRdFn_IntelI7UncPerfFixedCtr, 491 kCpumMsrRdFn_IntelI7UncCBoxConfig, 492 kCpumMsrRdFn_IntelI7UncArbPerfCtrN, 493 kCpumMsrRdFn_IntelI7UncArbPerfEvtSelN, 494 kCpumMsrRdFn_IntelCore2EmttmCrTablesN, /**< Range value returned. */ 495 kCpumMsrRdFn_IntelCore2SmmCStMiscInfo, 496 kCpumMsrRdFn_IntelCore1ExtConfig, 497 kCpumMsrRdFn_IntelCore1DtsCalControl, 498 kCpumMsrRdFn_IntelCore2PeciControl, 499 500 kCpumMsrRdFn_P6LastBranchFromIp, 501 kCpumMsrRdFn_P6LastBranchToIp, 502 kCpumMsrRdFn_P6LastIntFromIp, 503 kCpumMsrRdFn_P6LastIntToIp, 504 505 kCpumMsrRdFn_AmdFam15hTscRate, 506 kCpumMsrRdFn_AmdFam15hLwpCfg, 507 kCpumMsrRdFn_AmdFam15hLwpCbAddr, 508 kCpumMsrRdFn_AmdFam10hMc4MiscN, 509 kCpumMsrRdFn_AmdK8PerfCtlN, 510 kCpumMsrRdFn_AmdK8PerfCtrN, 511 kCpumMsrRdFn_AmdK8SysCfg, /**< Range value returned. */ 512 kCpumMsrRdFn_AmdK8HwCr, 513 kCpumMsrRdFn_AmdK8IorrBaseN, 514 kCpumMsrRdFn_AmdK8IorrMaskN, 515 kCpumMsrRdFn_AmdK8TopOfMemN, 516 kCpumMsrRdFn_AmdK8NbCfg1, 517 kCpumMsrRdFn_AmdK8McXcptRedir, 518 kCpumMsrRdFn_AmdK8CpuNameN, 519 kCpumMsrRdFn_AmdK8HwThermalCtrl, /**< Range value returned. */ 520 kCpumMsrRdFn_AmdK8SwThermalCtrl, 521 kCpumMsrRdFn_AmdK8FidVidControl, /**< Range value returned. */ 522 kCpumMsrRdFn_AmdK8FidVidStatus, /**< Range value returned. */ 523 kCpumMsrRdFn_AmdK8McCtlMaskN, 524 kCpumMsrRdFn_AmdK8SmiOnIoTrapN, 525 kCpumMsrRdFn_AmdK8SmiOnIoTrapCtlSts, 526 kCpumMsrRdFn_AmdK8IntPendingMessage, 527 kCpumMsrRdFn_AmdK8SmiTriggerIoCycle, 528 kCpumMsrRdFn_AmdFam10hMmioCfgBaseAddr, 529 kCpumMsrRdFn_AmdFam10hTrapCtlMaybe, 530 kCpumMsrRdFn_AmdFam10hPStateCurLimit, /**< Returns range value. */ 531 kCpumMsrRdFn_AmdFam10hPStateControl, /**< Returns range value. */ 532 kCpumMsrRdFn_AmdFam10hPStateStatus, /**< Returns range value. */ 533 kCpumMsrRdFn_AmdFam10hPStateN, /**< Returns range value. This isn't an register index! */ 534 kCpumMsrRdFn_AmdFam10hCofVidControl, /**< Returns range value. */ 535 kCpumMsrRdFn_AmdFam10hCofVidStatus, /**< Returns range value. */ 536 kCpumMsrRdFn_AmdFam10hCStateIoBaseAddr, 537 kCpumMsrRdFn_AmdFam10hCpuWatchdogTimer, 538 kCpumMsrRdFn_AmdK8SmmBase, 539 kCpumMsrRdFn_AmdK8SmmAddr, 540 kCpumMsrRdFn_AmdK8SmmMask, 541 kCpumMsrRdFn_AmdK8VmCr, 542 kCpumMsrRdFn_AmdK8IgnNe, 543 kCpumMsrRdFn_AmdK8SmmCtl, 544 kCpumMsrRdFn_AmdK8VmHSavePa, 545 kCpumMsrRdFn_AmdFam10hVmLockKey, 546 kCpumMsrRdFn_AmdFam10hSmmLockKey, 547 kCpumMsrRdFn_AmdFam10hLocalSmiStatus, 548 kCpumMsrRdFn_AmdFam10hOsVisWrkIdLength, 549 kCpumMsrRdFn_AmdFam10hOsVisWrkStatus, 550 kCpumMsrRdFn_AmdFam16hL2IPerfCtlN, 551 kCpumMsrRdFn_AmdFam16hL2IPerfCtrN, 552 kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtlN, 553 kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtrN, 554 kCpumMsrRdFn_AmdK7MicrocodeCtl, /**< Returns range value. */ 555 kCpumMsrRdFn_AmdK7ClusterIdMaybe, /**< Returns range value. */ 556 kCpumMsrRdFn_AmdK8CpuIdCtlStd07hEbax, 557 kCpumMsrRdFn_AmdK8CpuIdCtlStd06hEcx, 558 kCpumMsrRdFn_AmdK8CpuIdCtlStd01hEdcx, 559 kCpumMsrRdFn_AmdK8CpuIdCtlExt01hEdcx, 560 kCpumMsrRdFn_AmdK8PatchLevel, /**< Returns range value. */ 561 kCpumMsrRdFn_AmdK7DebugStatusMaybe, 562 kCpumMsrRdFn_AmdK7BHTraceBaseMaybe, 563 kCpumMsrRdFn_AmdK7BHTracePtrMaybe, 564 kCpumMsrRdFn_AmdK7BHTraceLimitMaybe, 565 kCpumMsrRdFn_AmdK7HardwareDebugToolCfgMaybe, 566 kCpumMsrRdFn_AmdK7FastFlushCountMaybe, 567 kCpumMsrRdFn_AmdK7NodeId, 568 kCpumMsrRdFn_AmdK7DrXAddrMaskN, /**< Takes register index. */ 569 kCpumMsrRdFn_AmdK7Dr0DataMatchMaybe, 570 kCpumMsrRdFn_AmdK7Dr0DataMaskMaybe, 571 kCpumMsrRdFn_AmdK7LoadStoreCfg, 572 kCpumMsrRdFn_AmdK7InstrCacheCfg, 573 kCpumMsrRdFn_AmdK7DataCacheCfg, 574 kCpumMsrRdFn_AmdK7BusUnitCfg, 575 kCpumMsrRdFn_AmdK7DebugCtl2Maybe, 576 kCpumMsrRdFn_AmdFam15hFpuCfg, 577 kCpumMsrRdFn_AmdFam15hDecoderCfg, 578 kCpumMsrRdFn_AmdFam10hBusUnitCfg2, 579 kCpumMsrRdFn_AmdFam15hCombUnitCfg, 580 kCpumMsrRdFn_AmdFam15hCombUnitCfg2, 581 kCpumMsrRdFn_AmdFam15hCombUnitCfg3, 582 kCpumMsrRdFn_AmdFam15hExecUnitCfg, 583 kCpumMsrRdFn_AmdFam15hLoadStoreCfg2, 584 kCpumMsrRdFn_AmdFam10hIbsFetchCtl, 585 kCpumMsrRdFn_AmdFam10hIbsFetchLinAddr, 586 kCpumMsrRdFn_AmdFam10hIbsFetchPhysAddr, 587 kCpumMsrRdFn_AmdFam10hIbsOpExecCtl, 588 kCpumMsrRdFn_AmdFam10hIbsOpRip, 589 kCpumMsrRdFn_AmdFam10hIbsOpData, 590 kCpumMsrRdFn_AmdFam10hIbsOpData2, 591 kCpumMsrRdFn_AmdFam10hIbsOpData3, 592 kCpumMsrRdFn_AmdFam10hIbsDcLinAddr, 593 kCpumMsrRdFn_AmdFam10hIbsDcPhysAddr, 594 kCpumMsrRdFn_AmdFam10hIbsCtl, 595 kCpumMsrRdFn_AmdFam14hIbsBrTarget, 596 597 /** End of valid MSR read function indexes. */ 598 kCpumMsrRdFn_End 599 } CPUMMSRRDFN; 600 601 /** 602 * MSR write functions. 603 */ 604 typedef enum CPUMMSRWRFN 605 { 606 /** Invalid zero value. */ 607 kCpumMsrWrFn_Invalid = 0, 608 /** Writes are ignored, the fWrGpMask is observed though. */ 609 kCpumMsrWrFn_IgnoreWrite, 610 /** Writes cause GP(0) to be raised, the fWrGpMask should be UINT64_MAX. */ 611 kCpumMsrWrFn_ReadOnly, 612 /** Alias to the MSR range starting at the MSR given by 613 * CPUMMSRRANGE::uValue. Must be used in pair with 614 * kCpumMsrRdFn_MsrAlias. */ 615 kCpumMsrWrFn_MsrAlias, 616 617 kCpumMsrWrFn_Ia32P5McAddr, 618 kCpumMsrWrFn_Ia32P5McType, 619 kCpumMsrWrFn_Ia32TimestampCounter, 620 kCpumMsrWrFn_Ia32ApicBase, 621 kCpumMsrWrFn_Ia32FeatureControl, 622 kCpumMsrWrFn_Ia32BiosSignId, 623 kCpumMsrWrFn_Ia32BiosUpdateTrigger, 624 kCpumMsrWrFn_Ia32SmmMonitorCtl, 625 kCpumMsrWrFn_Ia32PmcN, 626 kCpumMsrWrFn_Ia32MonitorFilterLineSize, 627 kCpumMsrWrFn_Ia32MPerf, 628 kCpumMsrWrFn_Ia32APerf, 629 kCpumMsrWrFn_Ia32MtrrPhysBaseN, /**< Takes register number. */ 630 kCpumMsrWrFn_Ia32MtrrPhysMaskN, /**< Takes register number. */ 631 kCpumMsrWrFn_Ia32MtrrFixed, /**< Takes CPUMCPU offset. */ 632 kCpumMsrWrFn_Ia32MtrrDefType, 633 kCpumMsrWrFn_Ia32Pat, 634 kCpumMsrWrFn_Ia32SysEnterCs, 635 kCpumMsrWrFn_Ia32SysEnterEsp, 636 kCpumMsrWrFn_Ia32SysEnterEip, 637 kCpumMsrWrFn_Ia32McgStatus, 638 kCpumMsrWrFn_Ia32McgCtl, 639 kCpumMsrWrFn_Ia32DebugCtl, 640 kCpumMsrWrFn_Ia32SmrrPhysBase, 641 kCpumMsrWrFn_Ia32SmrrPhysMask, 642 kCpumMsrWrFn_Ia32PlatformDcaCap, 643 kCpumMsrWrFn_Ia32Dca0Cap, 644 kCpumMsrWrFn_Ia32PerfEvtSelN, /**< Range value indicates the register number. */ 645 kCpumMsrWrFn_Ia32PerfStatus, 646 kCpumMsrWrFn_Ia32PerfCtl, 647 kCpumMsrWrFn_Ia32FixedCtrN, /**< Takes register number of start of range. */ 648 kCpumMsrWrFn_Ia32PerfCapabilities, 649 kCpumMsrWrFn_Ia32FixedCtrCtrl, 650 kCpumMsrWrFn_Ia32PerfGlobalStatus, 651 kCpumMsrWrFn_Ia32PerfGlobalCtrl, 652 kCpumMsrWrFn_Ia32PerfGlobalOvfCtrl, 653 kCpumMsrWrFn_Ia32PebsEnable, 654 kCpumMsrWrFn_Ia32ClockModulation, 655 kCpumMsrWrFn_Ia32ThermInterrupt, 656 kCpumMsrWrFn_Ia32ThermStatus, 657 kCpumMsrWrFn_Ia32Therm2Ctl, 658 kCpumMsrWrFn_Ia32MiscEnable, 659 kCpumMsrWrFn_Ia32McCtlStatusAddrMiscN, /**< Takes bank number. */ 660 kCpumMsrWrFn_Ia32McNCtl2, /**< Takes register number of start of range. */ 661 kCpumMsrWrFn_Ia32DsArea, 662 kCpumMsrWrFn_Ia32TscDeadline, 663 kCpumMsrWrFn_Ia32X2ApicN, 664 kCpumMsrWrFn_Ia32DebugInterface, 665 666 kCpumMsrWrFn_Amd64Efer, 667 kCpumMsrWrFn_Amd64SyscallTarget, 668 kCpumMsrWrFn_Amd64LongSyscallTarget, 669 kCpumMsrWrFn_Amd64CompSyscallTarget, 670 kCpumMsrWrFn_Amd64SyscallFlagMask, 671 kCpumMsrWrFn_Amd64FsBase, 672 kCpumMsrWrFn_Amd64GsBase, 673 kCpumMsrWrFn_Amd64KernelGsBase, 674 kCpumMsrWrFn_Amd64TscAux, 675 kCpumMsrWrFn_IntelEblCrPowerOn, 676 kCpumMsrWrFn_IntelP4EbcHardPowerOn, 677 kCpumMsrWrFn_IntelP4EbcSoftPowerOn, 678 kCpumMsrWrFn_IntelP4EbcFrequencyId, 679 kCpumMsrWrFn_IntelFlexRatio, 680 kCpumMsrWrFn_IntelPkgCStConfigControl, 681 kCpumMsrWrFn_IntelPmgIoCaptureBase, 682 kCpumMsrWrFn_IntelLastBranchFromToN, 683 kCpumMsrWrFn_IntelLastBranchFromN, 684 kCpumMsrWrFn_IntelLastBranchToN, 685 kCpumMsrWrFn_IntelLastBranchTos, 686 kCpumMsrWrFn_IntelBblCrCtl, 687 kCpumMsrWrFn_IntelBblCrCtl3, 688 kCpumMsrWrFn_IntelI7TemperatureTarget, 689 kCpumMsrWrFn_IntelI7MsrOffCoreResponseN, /**< Takes register number. */ 690 kCpumMsrWrFn_IntelI7MiscPwrMgmt, 691 kCpumMsrWrFn_IntelP6CrN, 692 kCpumMsrWrFn_IntelCpuId1FeatureMaskEcdx, 693 kCpumMsrWrFn_IntelCpuId1FeatureMaskEax, 694 kCpumMsrWrFn_IntelCpuId80000001FeatureMaskEcdx, 695 kCpumMsrWrFn_IntelI7SandyAesNiCtl, 696 kCpumMsrWrFn_IntelI7TurboRatioLimit, 697 kCpumMsrWrFn_IntelI7LbrSelect, 698 kCpumMsrWrFn_IntelI7SandyErrorControl, 699 kCpumMsrWrFn_IntelI7PowerCtl, 700 kCpumMsrWrFn_IntelI7SandyPebsNumAlt, 701 kCpumMsrWrFn_IntelI7PebsLdLat, 702 kCpumMsrWrFn_IntelI7SandyVrCurrentConfig, 703 kCpumMsrWrFn_IntelI7SandyVrMiscConfig, 704 kCpumMsrWrFn_IntelI7SandyPkgCnIrtlN, 705 kCpumMsrWrFn_IntelI7RaplPkgPowerLimit, 706 kCpumMsrWrFn_IntelI7RaplDramPowerLimit, 707 kCpumMsrWrFn_IntelI7RaplPp0PowerLimit, 708 kCpumMsrWrFn_IntelI7RaplPp0Policy, 709 kCpumMsrWrFn_IntelI7RaplPp1PowerLimit, 710 kCpumMsrWrFn_IntelI7RaplPp1Policy, 711 kCpumMsrWrFn_IntelI7IvyConfigTdpControl, 712 kCpumMsrWrFn_IntelI7IvyTurboActivationRatio, 713 kCpumMsrWrFn_IntelI7UncPerfGlobalCtrl, 714 kCpumMsrWrFn_IntelI7UncPerfGlobalStatus, 715 kCpumMsrWrFn_IntelI7UncPerfGlobalOvfCtrl, 716 kCpumMsrWrFn_IntelI7UncPerfFixedCtrCtrl, 717 kCpumMsrWrFn_IntelI7UncPerfFixedCtr, 718 kCpumMsrWrFn_IntelI7UncArbPerfCtrN, 719 kCpumMsrWrFn_IntelI7UncArbPerfEvtSelN, 720 kCpumMsrWrFn_IntelCore2EmttmCrTablesN, 721 kCpumMsrWrFn_IntelCore2SmmCStMiscInfo, 722 kCpumMsrWrFn_IntelCore1ExtConfig, 723 kCpumMsrWrFn_IntelCore1DtsCalControl, 724 kCpumMsrWrFn_IntelCore2PeciControl, 725 726 kCpumMsrWrFn_P6LastIntFromIp, 727 kCpumMsrWrFn_P6LastIntToIp, 728 729 kCpumMsrWrFn_AmdFam15hTscRate, 730 kCpumMsrWrFn_AmdFam15hLwpCfg, 731 kCpumMsrWrFn_AmdFam15hLwpCbAddr, 732 kCpumMsrWrFn_AmdFam10hMc4MiscN, 733 kCpumMsrWrFn_AmdK8PerfCtlN, 734 kCpumMsrWrFn_AmdK8PerfCtrN, 735 kCpumMsrWrFn_AmdK8SysCfg, 736 kCpumMsrWrFn_AmdK8HwCr, 737 kCpumMsrWrFn_AmdK8IorrBaseN, 738 kCpumMsrWrFn_AmdK8IorrMaskN, 739 kCpumMsrWrFn_AmdK8TopOfMemN, 740 kCpumMsrWrFn_AmdK8NbCfg1, 741 kCpumMsrWrFn_AmdK8McXcptRedir, 742 kCpumMsrWrFn_AmdK8CpuNameN, 743 kCpumMsrWrFn_AmdK8HwThermalCtrl, 744 kCpumMsrWrFn_AmdK8SwThermalCtrl, 745 kCpumMsrWrFn_AmdK8FidVidControl, 746 kCpumMsrWrFn_AmdK8McCtlMaskN, 747 kCpumMsrWrFn_AmdK8SmiOnIoTrapN, 748 kCpumMsrWrFn_AmdK8SmiOnIoTrapCtlSts, 749 kCpumMsrWrFn_AmdK8IntPendingMessage, 750 kCpumMsrWrFn_AmdK8SmiTriggerIoCycle, 751 kCpumMsrWrFn_AmdFam10hMmioCfgBaseAddr, 752 kCpumMsrWrFn_AmdFam10hTrapCtlMaybe, 753 kCpumMsrWrFn_AmdFam10hPStateControl, 754 kCpumMsrWrFn_AmdFam10hPStateStatus, 755 kCpumMsrWrFn_AmdFam10hPStateN, 756 kCpumMsrWrFn_AmdFam10hCofVidControl, 757 kCpumMsrWrFn_AmdFam10hCofVidStatus, 758 kCpumMsrWrFn_AmdFam10hCStateIoBaseAddr, 759 kCpumMsrWrFn_AmdFam10hCpuWatchdogTimer, 760 kCpumMsrWrFn_AmdK8SmmBase, 761 kCpumMsrWrFn_AmdK8SmmAddr, 762 kCpumMsrWrFn_AmdK8SmmMask, 763 kCpumMsrWrFn_AmdK8VmCr, 764 kCpumMsrWrFn_AmdK8IgnNe, 765 kCpumMsrWrFn_AmdK8SmmCtl, 766 kCpumMsrWrFn_AmdK8VmHSavePa, 767 kCpumMsrWrFn_AmdFam10hVmLockKey, 768 kCpumMsrWrFn_AmdFam10hSmmLockKey, 769 kCpumMsrWrFn_AmdFam10hLocalSmiStatus, 770 kCpumMsrWrFn_AmdFam10hOsVisWrkIdLength, 771 kCpumMsrWrFn_AmdFam10hOsVisWrkStatus, 772 kCpumMsrWrFn_AmdFam16hL2IPerfCtlN, 773 kCpumMsrWrFn_AmdFam16hL2IPerfCtrN, 774 kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtlN, 775 kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtrN, 776 kCpumMsrWrFn_AmdK7MicrocodeCtl, 777 kCpumMsrWrFn_AmdK7ClusterIdMaybe, 778 kCpumMsrWrFn_AmdK8CpuIdCtlStd07hEbax, 779 kCpumMsrWrFn_AmdK8CpuIdCtlStd06hEcx, 780 kCpumMsrWrFn_AmdK8CpuIdCtlStd01hEdcx, 781 kCpumMsrWrFn_AmdK8CpuIdCtlExt01hEdcx, 782 kCpumMsrWrFn_AmdK8PatchLoader, 783 kCpumMsrWrFn_AmdK7DebugStatusMaybe, 784 kCpumMsrWrFn_AmdK7BHTraceBaseMaybe, 785 kCpumMsrWrFn_AmdK7BHTracePtrMaybe, 786 kCpumMsrWrFn_AmdK7BHTraceLimitMaybe, 787 kCpumMsrWrFn_AmdK7HardwareDebugToolCfgMaybe, 788 kCpumMsrWrFn_AmdK7FastFlushCountMaybe, 789 kCpumMsrWrFn_AmdK7NodeId, 790 kCpumMsrWrFn_AmdK7DrXAddrMaskN, /**< Takes register index. */ 791 kCpumMsrWrFn_AmdK7Dr0DataMatchMaybe, 792 kCpumMsrWrFn_AmdK7Dr0DataMaskMaybe, 793 kCpumMsrWrFn_AmdK7LoadStoreCfg, 794 kCpumMsrWrFn_AmdK7InstrCacheCfg, 795 kCpumMsrWrFn_AmdK7DataCacheCfg, 796 kCpumMsrWrFn_AmdK7BusUnitCfg, 797 kCpumMsrWrFn_AmdK7DebugCtl2Maybe, 798 kCpumMsrWrFn_AmdFam15hFpuCfg, 799 kCpumMsrWrFn_AmdFam15hDecoderCfg, 800 kCpumMsrWrFn_AmdFam10hBusUnitCfg2, 801 kCpumMsrWrFn_AmdFam15hCombUnitCfg, 802 kCpumMsrWrFn_AmdFam15hCombUnitCfg2, 803 kCpumMsrWrFn_AmdFam15hCombUnitCfg3, 804 kCpumMsrWrFn_AmdFam15hExecUnitCfg, 805 kCpumMsrWrFn_AmdFam15hLoadStoreCfg2, 806 kCpumMsrWrFn_AmdFam10hIbsFetchCtl, 807 kCpumMsrWrFn_AmdFam10hIbsFetchLinAddr, 808 kCpumMsrWrFn_AmdFam10hIbsFetchPhysAddr, 809 kCpumMsrWrFn_AmdFam10hIbsOpExecCtl, 810 kCpumMsrWrFn_AmdFam10hIbsOpRip, 811 kCpumMsrWrFn_AmdFam10hIbsOpData, 812 kCpumMsrWrFn_AmdFam10hIbsOpData2, 813 kCpumMsrWrFn_AmdFam10hIbsOpData3, 814 kCpumMsrWrFn_AmdFam10hIbsDcLinAddr, 815 kCpumMsrWrFn_AmdFam10hIbsDcPhysAddr, 816 kCpumMsrWrFn_AmdFam10hIbsCtl, 817 kCpumMsrWrFn_AmdFam14hIbsBrTarget, 818 819 /** End of valid MSR write function indexes. */ 820 kCpumMsrWrFn_End 821 } CPUMMSRWRFN; 332 822 333 823 /** … … 504 994 * @param pCtx Current CPU context 505 995 */ 506 DECLINLINE(bool) 996 DECLINLINE(bool) CPUMIsGuestInRealModeEx(PCPUMCTX pCtx) 507 997 { 508 998 return !(pCtx->cr0 & X86_CR0_PE); … … 538 1028 * @param pVM The VM handle. 539 1029 */ 540 DECLINLINE(bool) 1030 DECLINLINE(bool) CPUMIsGuestInPagedProtectedModeEx(PCPUMCTX pCtx) 541 1031 { 542 1032 return (pCtx->cr0 & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG); … … 549 1039 * @param pCtx Current CPU context 550 1040 */ 551 DECLINLINE(bool) 1041 DECLINLINE(bool) CPUMIsGuestInLongModeEx(PCPUMCTX pCtx) 552 1042 { 553 1043 return (pCtx->msrEFER & MSR_K6_EFER_LMA) == MSR_K6_EFER_LMA; … … 563 1053 * @param pCtx Current CPU context 564 1054 */ 565 DECLINLINE(bool) 1055 DECLINLINE(bool) CPUMIsGuestIn64BitCodeEx(PCPUMCTX pCtx) 566 1056 { 567 1057 if (!(pCtx->msrEFER & MSR_K6_EFER_LMA)) … … 578 1068 * @param pCtx Current CPU context 579 1069 */ 580 DECLINLINE(bool) 1070 DECLINLINE(bool) CPUMIsGuestPagingEnabledEx(PCPUMCTX pCtx) 581 1071 { 582 1072 return !!(pCtx->cr0 & X86_CR0_PG); … … 589 1079 * @param pCtx Current CPU context 590 1080 */ 591 DECLINLINE(bool) 1081 DECLINLINE(bool) CPUMIsGuestInPAEModeEx(PCPUMCTX pCtx) 592 1082 { 593 1083 /* Intel mentions EFER.LMA and EFER.LME in different parts of their spec. We shall use EFER.LMA rather -
trunk/src/VBox/VMM/include/CPUMInternal.h
r51283 r51285 109 109 #endif 110 110 #endif 111 112 113 /**114 * MSR read functions.115 */116 typedef enum CPUMMSRRDFN117 {118 /** Invalid zero value. */119 kCpumMsrRdFn_Invalid = 0,120 /** Return the CPUMMSRRANGE::uValue. */121 kCpumMsrRdFn_FixedValue,122 /** Alias to the MSR range starting at the MSR given by123 * CPUMMSRRANGE::uValue. Must be used in pair with124 * kCpumMsrWrFn_MsrAlias. */125 kCpumMsrRdFn_MsrAlias,126 /** Write only register, GP all read attempts. */127 kCpumMsrRdFn_WriteOnly,128 129 kCpumMsrRdFn_Ia32P5McAddr,130 kCpumMsrRdFn_Ia32P5McType,131 kCpumMsrRdFn_Ia32TimestampCounter,132 kCpumMsrRdFn_Ia32PlatformId, /**< Takes real CPU value for reference. */133 kCpumMsrRdFn_Ia32ApicBase,134 kCpumMsrRdFn_Ia32FeatureControl,135 kCpumMsrRdFn_Ia32BiosSignId, /**< Range value returned. */136 kCpumMsrRdFn_Ia32SmmMonitorCtl,137 kCpumMsrRdFn_Ia32PmcN,138 kCpumMsrRdFn_Ia32MonitorFilterLineSize,139 kCpumMsrRdFn_Ia32MPerf,140 kCpumMsrRdFn_Ia32APerf,141 kCpumMsrRdFn_Ia32MtrrCap, /**< Takes real CPU value for reference. */142 kCpumMsrRdFn_Ia32MtrrPhysBaseN, /**< Takes register number. */143 kCpumMsrRdFn_Ia32MtrrPhysMaskN, /**< Takes register number. */144 kCpumMsrRdFn_Ia32MtrrFixed, /**< Takes CPUMCPU offset. */145 kCpumMsrRdFn_Ia32MtrrDefType,146 kCpumMsrRdFn_Ia32Pat,147 kCpumMsrRdFn_Ia32SysEnterCs,148 kCpumMsrRdFn_Ia32SysEnterEsp,149 kCpumMsrRdFn_Ia32SysEnterEip,150 kCpumMsrRdFn_Ia32McgCap,151 kCpumMsrRdFn_Ia32McgStatus,152 kCpumMsrRdFn_Ia32McgCtl,153 kCpumMsrRdFn_Ia32DebugCtl,154 kCpumMsrRdFn_Ia32SmrrPhysBase,155 kCpumMsrRdFn_Ia32SmrrPhysMask,156 kCpumMsrRdFn_Ia32PlatformDcaCap,157 kCpumMsrRdFn_Ia32CpuDcaCap,158 kCpumMsrRdFn_Ia32Dca0Cap,159 kCpumMsrRdFn_Ia32PerfEvtSelN, /**< Range value indicates the register number. */160 kCpumMsrRdFn_Ia32PerfStatus, /**< Range value returned. */161 kCpumMsrRdFn_Ia32PerfCtl, /**< Range value returned. */162 kCpumMsrRdFn_Ia32FixedCtrN, /**< Takes register number of start of range. */163 kCpumMsrRdFn_Ia32PerfCapabilities, /**< Takes reference value. */164 kCpumMsrRdFn_Ia32FixedCtrCtrl,165 kCpumMsrRdFn_Ia32PerfGlobalStatus, /**< Takes reference value. */166 kCpumMsrRdFn_Ia32PerfGlobalCtrl,167 kCpumMsrRdFn_Ia32PerfGlobalOvfCtrl,168 kCpumMsrRdFn_Ia32PebsEnable,169 kCpumMsrRdFn_Ia32ClockModulation, /**< Range value returned. */170 kCpumMsrRdFn_Ia32ThermInterrupt, /**< Range value returned. */171 kCpumMsrRdFn_Ia32ThermStatus, /**< Range value returned. */172 kCpumMsrRdFn_Ia32Therm2Ctl, /**< Range value returned. */173 kCpumMsrRdFn_Ia32MiscEnable, /**< Range value returned. */174 kCpumMsrRdFn_Ia32McCtlStatusAddrMiscN, /**< Takes bank number. */175 kCpumMsrRdFn_Ia32McNCtl2, /**< Takes register number of start of range. */176 kCpumMsrRdFn_Ia32DsArea,177 kCpumMsrRdFn_Ia32TscDeadline,178 kCpumMsrRdFn_Ia32X2ApicN,179 kCpumMsrRdFn_Ia32DebugInterface,180 kCpumMsrRdFn_Ia32VmxBase, /**< Takes real value as reference. */181 kCpumMsrRdFn_Ia32VmxPinbasedCtls, /**< Takes real value as reference. */182 kCpumMsrRdFn_Ia32VmxProcbasedCtls, /**< Takes real value as reference. */183 kCpumMsrRdFn_Ia32VmxExitCtls, /**< Takes real value as reference. */184 kCpumMsrRdFn_Ia32VmxEntryCtls, /**< Takes real value as reference. */185 kCpumMsrRdFn_Ia32VmxMisc, /**< Takes real value as reference. */186 kCpumMsrRdFn_Ia32VmxCr0Fixed0, /**< Takes real value as reference. */187 kCpumMsrRdFn_Ia32VmxCr0Fixed1, /**< Takes real value as reference. */188 kCpumMsrRdFn_Ia32VmxCr4Fixed0, /**< Takes real value as reference. */189 kCpumMsrRdFn_Ia32VmxCr4Fixed1, /**< Takes real value as reference. */190 kCpumMsrRdFn_Ia32VmxVmcsEnum, /**< Takes real value as reference. */191 kCpumMsrRdFn_Ia32VmxProcBasedCtls2, /**< Takes real value as reference. */192 kCpumMsrRdFn_Ia32VmxEptVpidCap, /**< Takes real value as reference. */193 kCpumMsrRdFn_Ia32VmxTruePinbasedCtls, /**< Takes real value as reference. */194 kCpumMsrRdFn_Ia32VmxTrueProcbasedCtls, /**< Takes real value as reference. */195 kCpumMsrRdFn_Ia32VmxTrueExitCtls, /**< Takes real value as reference. */196 kCpumMsrRdFn_Ia32VmxTrueEntryCtls, /**< Takes real value as reference. */197 198 kCpumMsrRdFn_Amd64Efer,199 kCpumMsrRdFn_Amd64SyscallTarget,200 kCpumMsrRdFn_Amd64LongSyscallTarget,201 kCpumMsrRdFn_Amd64CompSyscallTarget,202 kCpumMsrRdFn_Amd64SyscallFlagMask,203 kCpumMsrRdFn_Amd64FsBase,204 kCpumMsrRdFn_Amd64GsBase,205 kCpumMsrRdFn_Amd64KernelGsBase,206 kCpumMsrRdFn_Amd64TscAux,207 208 kCpumMsrRdFn_IntelEblCrPowerOn,209 kCpumMsrRdFn_IntelI7CoreThreadCount,210 kCpumMsrRdFn_IntelP4EbcHardPowerOn,211 kCpumMsrRdFn_IntelP4EbcSoftPowerOn,212 kCpumMsrRdFn_IntelP4EbcFrequencyId,213 kCpumMsrRdFn_IntelP6FsbFrequency, /**< Takes real value as reference. */214 kCpumMsrRdFn_IntelPlatformInfo,215 kCpumMsrRdFn_IntelFlexRatio, /**< Takes real value as reference. */216 kCpumMsrRdFn_IntelPkgCStConfigControl,217 kCpumMsrRdFn_IntelPmgIoCaptureBase,218 kCpumMsrRdFn_IntelLastBranchFromToN,219 kCpumMsrRdFn_IntelLastBranchFromN,220 kCpumMsrRdFn_IntelLastBranchToN,221 kCpumMsrRdFn_IntelLastBranchTos,222 kCpumMsrRdFn_IntelBblCrCtl,223 kCpumMsrRdFn_IntelBblCrCtl3,224 kCpumMsrRdFn_IntelI7TemperatureTarget, /**< Range value returned. */225 kCpumMsrRdFn_IntelI7MsrOffCoreResponseN,/**< Takes register number. */226 kCpumMsrRdFn_IntelI7MiscPwrMgmt,227 kCpumMsrRdFn_IntelP6CrN,228 kCpumMsrRdFn_IntelCpuId1FeatureMaskEcdx,229 kCpumMsrRdFn_IntelCpuId1FeatureMaskEax,230 kCpumMsrRdFn_IntelCpuId80000001FeatureMaskEcdx,231 kCpumMsrRdFn_IntelI7SandyAesNiCtl,232 kCpumMsrRdFn_IntelI7TurboRatioLimit, /**< Returns range value. */233 kCpumMsrRdFn_IntelI7LbrSelect,234 kCpumMsrRdFn_IntelI7SandyErrorControl,235 kCpumMsrRdFn_IntelI7VirtualLegacyWireCap,/**< Returns range value. */236 kCpumMsrRdFn_IntelI7PowerCtl,237 kCpumMsrRdFn_IntelI7SandyPebsNumAlt,238 kCpumMsrRdFn_IntelI7PebsLdLat,239 kCpumMsrRdFn_IntelI7PkgCnResidencyN, /**< Takes C-state number. */240 kCpumMsrRdFn_IntelI7CoreCnResidencyN, /**< Takes C-state number. */241 kCpumMsrRdFn_IntelI7SandyVrCurrentConfig,/**< Takes real value as reference. */242 kCpumMsrRdFn_IntelI7SandyVrMiscConfig, /**< Takes real value as reference. */243 kCpumMsrRdFn_IntelI7SandyRaplPowerUnit, /**< Takes real value as reference. */244 kCpumMsrRdFn_IntelI7SandyPkgCnIrtlN, /**< Takes real value as reference. */245 kCpumMsrRdFn_IntelI7SandyPkgC2Residency, /**< Takes real value as reference. */246 kCpumMsrRdFn_IntelI7RaplPkgPowerLimit, /**< Takes real value as reference. */247 kCpumMsrRdFn_IntelI7RaplPkgEnergyStatus, /**< Takes real value as reference. */248 kCpumMsrRdFn_IntelI7RaplPkgPerfStatus, /**< Takes real value as reference. */249 kCpumMsrRdFn_IntelI7RaplPkgPowerInfo, /**< Takes real value as reference. */250 kCpumMsrRdFn_IntelI7RaplDramPowerLimit, /**< Takes real value as reference. */251 kCpumMsrRdFn_IntelI7RaplDramEnergyStatus,/**< Takes real value as reference. */252 kCpumMsrRdFn_IntelI7RaplDramPerfStatus, /**< Takes real value as reference. */253 kCpumMsrRdFn_IntelI7RaplDramPowerInfo, /**< Takes real value as reference. */254 kCpumMsrRdFn_IntelI7RaplPp0PowerLimit, /**< Takes real value as reference. */255 kCpumMsrRdFn_IntelI7RaplPp0EnergyStatus, /**< Takes real value as reference. */256 kCpumMsrRdFn_IntelI7RaplPp0Policy, /**< Takes real value as reference. */257 kCpumMsrRdFn_IntelI7RaplPp0PerfStatus, /**< Takes real value as reference. */258 kCpumMsrRdFn_IntelI7RaplPp1PowerLimit, /**< Takes real value as reference. */259 kCpumMsrRdFn_IntelI7RaplPp1EnergyStatus, /**< Takes real value as reference. */260 kCpumMsrRdFn_IntelI7RaplPp1Policy, /**< Takes real value as reference. */261 kCpumMsrRdFn_IntelI7IvyConfigTdpNominal, /**< Takes real value as reference. */262 kCpumMsrRdFn_IntelI7IvyConfigTdpLevel1, /**< Takes real value as reference. */263 kCpumMsrRdFn_IntelI7IvyConfigTdpLevel2, /**< Takes real value as reference. */264 kCpumMsrRdFn_IntelI7IvyConfigTdpControl,265 kCpumMsrRdFn_IntelI7IvyTurboActivationRatio,266 kCpumMsrRdFn_IntelI7UncPerfGlobalCtrl,267 kCpumMsrRdFn_IntelI7UncPerfGlobalStatus,268 kCpumMsrRdFn_IntelI7UncPerfGlobalOvfCtrl,269 kCpumMsrRdFn_IntelI7UncPerfFixedCtrCtrl,270 kCpumMsrRdFn_IntelI7UncPerfFixedCtr,271 kCpumMsrRdFn_IntelI7UncCBoxConfig,272 kCpumMsrRdFn_IntelI7UncArbPerfCtrN,273 kCpumMsrRdFn_IntelI7UncArbPerfEvtSelN,274 kCpumMsrRdFn_IntelCore2EmttmCrTablesN, /**< Range value returned. */275 kCpumMsrRdFn_IntelCore2SmmCStMiscInfo,276 kCpumMsrRdFn_IntelCore1ExtConfig,277 kCpumMsrRdFn_IntelCore1DtsCalControl,278 kCpumMsrRdFn_IntelCore2PeciControl,279 280 kCpumMsrRdFn_P6LastBranchFromIp,281 kCpumMsrRdFn_P6LastBranchToIp,282 kCpumMsrRdFn_P6LastIntFromIp,283 kCpumMsrRdFn_P6LastIntToIp,284 285 kCpumMsrRdFn_AmdFam15hTscRate,286 kCpumMsrRdFn_AmdFam15hLwpCfg,287 kCpumMsrRdFn_AmdFam15hLwpCbAddr,288 kCpumMsrRdFn_AmdFam10hMc4MiscN,289 kCpumMsrRdFn_AmdK8PerfCtlN,290 kCpumMsrRdFn_AmdK8PerfCtrN,291 kCpumMsrRdFn_AmdK8SysCfg, /**< Range value returned. */292 kCpumMsrRdFn_AmdK8HwCr,293 kCpumMsrRdFn_AmdK8IorrBaseN,294 kCpumMsrRdFn_AmdK8IorrMaskN,295 kCpumMsrRdFn_AmdK8TopOfMemN,296 kCpumMsrRdFn_AmdK8NbCfg1,297 kCpumMsrRdFn_AmdK8McXcptRedir,298 kCpumMsrRdFn_AmdK8CpuNameN,299 kCpumMsrRdFn_AmdK8HwThermalCtrl, /**< Range value returned. */300 kCpumMsrRdFn_AmdK8SwThermalCtrl,301 kCpumMsrRdFn_AmdK8FidVidControl, /**< Range value returned. */302 kCpumMsrRdFn_AmdK8FidVidStatus, /**< Range value returned. */303 kCpumMsrRdFn_AmdK8McCtlMaskN,304 kCpumMsrRdFn_AmdK8SmiOnIoTrapN,305 kCpumMsrRdFn_AmdK8SmiOnIoTrapCtlSts,306 kCpumMsrRdFn_AmdK8IntPendingMessage,307 kCpumMsrRdFn_AmdK8SmiTriggerIoCycle,308 kCpumMsrRdFn_AmdFam10hMmioCfgBaseAddr,309 kCpumMsrRdFn_AmdFam10hTrapCtlMaybe,310 kCpumMsrRdFn_AmdFam10hPStateCurLimit, /**< Returns range value. */311 kCpumMsrRdFn_AmdFam10hPStateControl, /**< Returns range value. */312 kCpumMsrRdFn_AmdFam10hPStateStatus, /**< Returns range value. */313 kCpumMsrRdFn_AmdFam10hPStateN, /**< Returns range value. This isn't an register index! */314 kCpumMsrRdFn_AmdFam10hCofVidControl, /**< Returns range value. */315 kCpumMsrRdFn_AmdFam10hCofVidStatus, /**< Returns range value. */316 kCpumMsrRdFn_AmdFam10hCStateIoBaseAddr,317 kCpumMsrRdFn_AmdFam10hCpuWatchdogTimer,318 kCpumMsrRdFn_AmdK8SmmBase,319 kCpumMsrRdFn_AmdK8SmmAddr,320 kCpumMsrRdFn_AmdK8SmmMask,321 kCpumMsrRdFn_AmdK8VmCr,322 kCpumMsrRdFn_AmdK8IgnNe,323 kCpumMsrRdFn_AmdK8SmmCtl,324 kCpumMsrRdFn_AmdK8VmHSavePa,325 kCpumMsrRdFn_AmdFam10hVmLockKey,326 kCpumMsrRdFn_AmdFam10hSmmLockKey,327 kCpumMsrRdFn_AmdFam10hLocalSmiStatus,328 kCpumMsrRdFn_AmdFam10hOsVisWrkIdLength,329 kCpumMsrRdFn_AmdFam10hOsVisWrkStatus,330 kCpumMsrRdFn_AmdFam16hL2IPerfCtlN,331 kCpumMsrRdFn_AmdFam16hL2IPerfCtrN,332 kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtlN,333 kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtrN,334 kCpumMsrRdFn_AmdK7MicrocodeCtl, /**< Returns range value. */335 kCpumMsrRdFn_AmdK7ClusterIdMaybe, /**< Returns range value. */336 kCpumMsrRdFn_AmdK8CpuIdCtlStd07hEbax,337 kCpumMsrRdFn_AmdK8CpuIdCtlStd06hEcx,338 kCpumMsrRdFn_AmdK8CpuIdCtlStd01hEdcx,339 kCpumMsrRdFn_AmdK8CpuIdCtlExt01hEdcx,340 kCpumMsrRdFn_AmdK8PatchLevel, /**< Returns range value. */341 kCpumMsrRdFn_AmdK7DebugStatusMaybe,342 kCpumMsrRdFn_AmdK7BHTraceBaseMaybe,343 kCpumMsrRdFn_AmdK7BHTracePtrMaybe,344 kCpumMsrRdFn_AmdK7BHTraceLimitMaybe,345 kCpumMsrRdFn_AmdK7HardwareDebugToolCfgMaybe,346 kCpumMsrRdFn_AmdK7FastFlushCountMaybe,347 kCpumMsrRdFn_AmdK7NodeId,348 kCpumMsrRdFn_AmdK7DrXAddrMaskN, /**< Takes register index. */349 kCpumMsrRdFn_AmdK7Dr0DataMatchMaybe,350 kCpumMsrRdFn_AmdK7Dr0DataMaskMaybe,351 kCpumMsrRdFn_AmdK7LoadStoreCfg,352 kCpumMsrRdFn_AmdK7InstrCacheCfg,353 kCpumMsrRdFn_AmdK7DataCacheCfg,354 kCpumMsrRdFn_AmdK7BusUnitCfg,355 kCpumMsrRdFn_AmdK7DebugCtl2Maybe,356 kCpumMsrRdFn_AmdFam15hFpuCfg,357 kCpumMsrRdFn_AmdFam15hDecoderCfg,358 kCpumMsrRdFn_AmdFam10hBusUnitCfg2,359 kCpumMsrRdFn_AmdFam15hCombUnitCfg,360 kCpumMsrRdFn_AmdFam15hCombUnitCfg2,361 kCpumMsrRdFn_AmdFam15hCombUnitCfg3,362 kCpumMsrRdFn_AmdFam15hExecUnitCfg,363 kCpumMsrRdFn_AmdFam15hLoadStoreCfg2,364 kCpumMsrRdFn_AmdFam10hIbsFetchCtl,365 kCpumMsrRdFn_AmdFam10hIbsFetchLinAddr,366 kCpumMsrRdFn_AmdFam10hIbsFetchPhysAddr,367 kCpumMsrRdFn_AmdFam10hIbsOpExecCtl,368 kCpumMsrRdFn_AmdFam10hIbsOpRip,369 kCpumMsrRdFn_AmdFam10hIbsOpData,370 kCpumMsrRdFn_AmdFam10hIbsOpData2,371 kCpumMsrRdFn_AmdFam10hIbsOpData3,372 kCpumMsrRdFn_AmdFam10hIbsDcLinAddr,373 kCpumMsrRdFn_AmdFam10hIbsDcPhysAddr,374 kCpumMsrRdFn_AmdFam10hIbsCtl,375 kCpumMsrRdFn_AmdFam14hIbsBrTarget,376 377 /** End of valid MSR read function indexes. */378 kCpumMsrRdFn_End379 } CPUMMSRRDFN;380 381 /**382 * MSR write functions.383 */384 typedef enum CPUMMSRWRFN385 {386 /** Invalid zero value. */387 kCpumMsrWrFn_Invalid = 0,388 /** Writes are ignored, the fWrGpMask is observed though. */389 kCpumMsrWrFn_IgnoreWrite,390 /** Writes cause GP(0) to be raised, the fWrGpMask should be UINT64_MAX. */391 kCpumMsrWrFn_ReadOnly,392 /** Alias to the MSR range starting at the MSR given by393 * CPUMMSRRANGE::uValue. Must be used in pair with394 * kCpumMsrRdFn_MsrAlias. */395 kCpumMsrWrFn_MsrAlias,396 397 kCpumMsrWrFn_Ia32P5McAddr,398 kCpumMsrWrFn_Ia32P5McType,399 kCpumMsrWrFn_Ia32TimestampCounter,400 kCpumMsrWrFn_Ia32ApicBase,401 kCpumMsrWrFn_Ia32FeatureControl,402 kCpumMsrWrFn_Ia32BiosSignId,403 kCpumMsrWrFn_Ia32BiosUpdateTrigger,404 kCpumMsrWrFn_Ia32SmmMonitorCtl,405 kCpumMsrWrFn_Ia32PmcN,406 kCpumMsrWrFn_Ia32MonitorFilterLineSize,407 kCpumMsrWrFn_Ia32MPerf,408 kCpumMsrWrFn_Ia32APerf,409 kCpumMsrWrFn_Ia32MtrrPhysBaseN, /**< Takes register number. */410 kCpumMsrWrFn_Ia32MtrrPhysMaskN, /**< Takes register number. */411 kCpumMsrWrFn_Ia32MtrrFixed, /**< Takes CPUMCPU offset. */412 kCpumMsrWrFn_Ia32MtrrDefType,413 kCpumMsrWrFn_Ia32Pat,414 kCpumMsrWrFn_Ia32SysEnterCs,415 kCpumMsrWrFn_Ia32SysEnterEsp,416 kCpumMsrWrFn_Ia32SysEnterEip,417 kCpumMsrWrFn_Ia32McgStatus,418 kCpumMsrWrFn_Ia32McgCtl,419 kCpumMsrWrFn_Ia32DebugCtl,420 kCpumMsrWrFn_Ia32SmrrPhysBase,421 kCpumMsrWrFn_Ia32SmrrPhysMask,422 kCpumMsrWrFn_Ia32PlatformDcaCap,423 kCpumMsrWrFn_Ia32Dca0Cap,424 kCpumMsrWrFn_Ia32PerfEvtSelN, /**< Range value indicates the register number. */425 kCpumMsrWrFn_Ia32PerfStatus,426 kCpumMsrWrFn_Ia32PerfCtl,427 kCpumMsrWrFn_Ia32FixedCtrN, /**< Takes register number of start of range. */428 kCpumMsrWrFn_Ia32PerfCapabilities,429 kCpumMsrWrFn_Ia32FixedCtrCtrl,430 kCpumMsrWrFn_Ia32PerfGlobalStatus,431 kCpumMsrWrFn_Ia32PerfGlobalCtrl,432 kCpumMsrWrFn_Ia32PerfGlobalOvfCtrl,433 kCpumMsrWrFn_Ia32PebsEnable,434 kCpumMsrWrFn_Ia32ClockModulation,435 kCpumMsrWrFn_Ia32ThermInterrupt,436 kCpumMsrWrFn_Ia32ThermStatus,437 kCpumMsrWrFn_Ia32Therm2Ctl,438 kCpumMsrWrFn_Ia32MiscEnable,439 kCpumMsrWrFn_Ia32McCtlStatusAddrMiscN, /**< Takes bank number. */440 kCpumMsrWrFn_Ia32McNCtl2, /**< Takes register number of start of range. */441 kCpumMsrWrFn_Ia32DsArea,442 kCpumMsrWrFn_Ia32TscDeadline,443 kCpumMsrWrFn_Ia32X2ApicN,444 kCpumMsrWrFn_Ia32DebugInterface,445 446 kCpumMsrWrFn_Amd64Efer,447 kCpumMsrWrFn_Amd64SyscallTarget,448 kCpumMsrWrFn_Amd64LongSyscallTarget,449 kCpumMsrWrFn_Amd64CompSyscallTarget,450 kCpumMsrWrFn_Amd64SyscallFlagMask,451 kCpumMsrWrFn_Amd64FsBase,452 kCpumMsrWrFn_Amd64GsBase,453 kCpumMsrWrFn_Amd64KernelGsBase,454 kCpumMsrWrFn_Amd64TscAux,455 kCpumMsrWrFn_IntelEblCrPowerOn,456 kCpumMsrWrFn_IntelP4EbcHardPowerOn,457 kCpumMsrWrFn_IntelP4EbcSoftPowerOn,458 kCpumMsrWrFn_IntelP4EbcFrequencyId,459 kCpumMsrWrFn_IntelFlexRatio,460 kCpumMsrWrFn_IntelPkgCStConfigControl,461 kCpumMsrWrFn_IntelPmgIoCaptureBase,462 kCpumMsrWrFn_IntelLastBranchFromToN,463 kCpumMsrWrFn_IntelLastBranchFromN,464 kCpumMsrWrFn_IntelLastBranchToN,465 kCpumMsrWrFn_IntelLastBranchTos,466 kCpumMsrWrFn_IntelBblCrCtl,467 kCpumMsrWrFn_IntelBblCrCtl3,468 kCpumMsrWrFn_IntelI7TemperatureTarget,469 kCpumMsrWrFn_IntelI7MsrOffCoreResponseN, /**< Takes register number. */470 kCpumMsrWrFn_IntelI7MiscPwrMgmt,471 kCpumMsrWrFn_IntelP6CrN,472 kCpumMsrWrFn_IntelCpuId1FeatureMaskEcdx,473 kCpumMsrWrFn_IntelCpuId1FeatureMaskEax,474 kCpumMsrWrFn_IntelCpuId80000001FeatureMaskEcdx,475 kCpumMsrWrFn_IntelI7SandyAesNiCtl,476 kCpumMsrWrFn_IntelI7TurboRatioLimit,477 kCpumMsrWrFn_IntelI7LbrSelect,478 kCpumMsrWrFn_IntelI7SandyErrorControl,479 kCpumMsrWrFn_IntelI7PowerCtl,480 kCpumMsrWrFn_IntelI7SandyPebsNumAlt,481 kCpumMsrWrFn_IntelI7PebsLdLat,482 kCpumMsrWrFn_IntelI7SandyVrCurrentConfig,483 kCpumMsrWrFn_IntelI7SandyVrMiscConfig,484 kCpumMsrWrFn_IntelI7SandyPkgCnIrtlN,485 kCpumMsrWrFn_IntelI7RaplPkgPowerLimit,486 kCpumMsrWrFn_IntelI7RaplDramPowerLimit,487 kCpumMsrWrFn_IntelI7RaplPp0PowerLimit,488 kCpumMsrWrFn_IntelI7RaplPp0Policy,489 kCpumMsrWrFn_IntelI7RaplPp1PowerLimit,490 kCpumMsrWrFn_IntelI7RaplPp1Policy,491 kCpumMsrWrFn_IntelI7IvyConfigTdpControl,492 kCpumMsrWrFn_IntelI7IvyTurboActivationRatio,493 kCpumMsrWrFn_IntelI7UncPerfGlobalCtrl,494 kCpumMsrWrFn_IntelI7UncPerfGlobalStatus,495 kCpumMsrWrFn_IntelI7UncPerfGlobalOvfCtrl,496 kCpumMsrWrFn_IntelI7UncPerfFixedCtrCtrl,497 kCpumMsrWrFn_IntelI7UncPerfFixedCtr,498 kCpumMsrWrFn_IntelI7UncArbPerfCtrN,499 kCpumMsrWrFn_IntelI7UncArbPerfEvtSelN,500 kCpumMsrWrFn_IntelCore2EmttmCrTablesN,501 kCpumMsrWrFn_IntelCore2SmmCStMiscInfo,502 kCpumMsrWrFn_IntelCore1ExtConfig,503 kCpumMsrWrFn_IntelCore1DtsCalControl,504 kCpumMsrWrFn_IntelCore2PeciControl,505 506 kCpumMsrWrFn_P6LastIntFromIp,507 kCpumMsrWrFn_P6LastIntToIp,508 509 kCpumMsrWrFn_AmdFam15hTscRate,510 kCpumMsrWrFn_AmdFam15hLwpCfg,511 kCpumMsrWrFn_AmdFam15hLwpCbAddr,512 kCpumMsrWrFn_AmdFam10hMc4MiscN,513 kCpumMsrWrFn_AmdK8PerfCtlN,514 kCpumMsrWrFn_AmdK8PerfCtrN,515 kCpumMsrWrFn_AmdK8SysCfg,516 kCpumMsrWrFn_AmdK8HwCr,517 kCpumMsrWrFn_AmdK8IorrBaseN,518 kCpumMsrWrFn_AmdK8IorrMaskN,519 kCpumMsrWrFn_AmdK8TopOfMemN,520 kCpumMsrWrFn_AmdK8NbCfg1,521 kCpumMsrWrFn_AmdK8McXcptRedir,522 kCpumMsrWrFn_AmdK8CpuNameN,523 kCpumMsrWrFn_AmdK8HwThermalCtrl,524 kCpumMsrWrFn_AmdK8SwThermalCtrl,525 kCpumMsrWrFn_AmdK8FidVidControl,526 kCpumMsrWrFn_AmdK8McCtlMaskN,527 kCpumMsrWrFn_AmdK8SmiOnIoTrapN,528 kCpumMsrWrFn_AmdK8SmiOnIoTrapCtlSts,529 kCpumMsrWrFn_AmdK8IntPendingMessage,530 kCpumMsrWrFn_AmdK8SmiTriggerIoCycle,531 kCpumMsrWrFn_AmdFam10hMmioCfgBaseAddr,532 kCpumMsrWrFn_AmdFam10hTrapCtlMaybe,533 kCpumMsrWrFn_AmdFam10hPStateControl,534 kCpumMsrWrFn_AmdFam10hPStateStatus,535 kCpumMsrWrFn_AmdFam10hPStateN,536 kCpumMsrWrFn_AmdFam10hCofVidControl,537 kCpumMsrWrFn_AmdFam10hCofVidStatus,538 kCpumMsrWrFn_AmdFam10hCStateIoBaseAddr,539 kCpumMsrWrFn_AmdFam10hCpuWatchdogTimer,540 kCpumMsrWrFn_AmdK8SmmBase,541 kCpumMsrWrFn_AmdK8SmmAddr,542 kCpumMsrWrFn_AmdK8SmmMask,543 kCpumMsrWrFn_AmdK8VmCr,544 kCpumMsrWrFn_AmdK8IgnNe,545 kCpumMsrWrFn_AmdK8SmmCtl,546 kCpumMsrWrFn_AmdK8VmHSavePa,547 kCpumMsrWrFn_AmdFam10hVmLockKey,548 kCpumMsrWrFn_AmdFam10hSmmLockKey,549 kCpumMsrWrFn_AmdFam10hLocalSmiStatus,550 kCpumMsrWrFn_AmdFam10hOsVisWrkIdLength,551 kCpumMsrWrFn_AmdFam10hOsVisWrkStatus,552 kCpumMsrWrFn_AmdFam16hL2IPerfCtlN,553 kCpumMsrWrFn_AmdFam16hL2IPerfCtrN,554 kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtlN,555 kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtrN,556 kCpumMsrWrFn_AmdK7MicrocodeCtl,557 kCpumMsrWrFn_AmdK7ClusterIdMaybe,558 kCpumMsrWrFn_AmdK8CpuIdCtlStd07hEbax,559 kCpumMsrWrFn_AmdK8CpuIdCtlStd06hEcx,560 kCpumMsrWrFn_AmdK8CpuIdCtlStd01hEdcx,561 kCpumMsrWrFn_AmdK8CpuIdCtlExt01hEdcx,562 kCpumMsrWrFn_AmdK8PatchLoader,563 kCpumMsrWrFn_AmdK7DebugStatusMaybe,564 kCpumMsrWrFn_AmdK7BHTraceBaseMaybe,565 kCpumMsrWrFn_AmdK7BHTracePtrMaybe,566 kCpumMsrWrFn_AmdK7BHTraceLimitMaybe,567 kCpumMsrWrFn_AmdK7HardwareDebugToolCfgMaybe,568 kCpumMsrWrFn_AmdK7FastFlushCountMaybe,569 kCpumMsrWrFn_AmdK7NodeId,570 kCpumMsrWrFn_AmdK7DrXAddrMaskN, /**< Takes register index. */571 kCpumMsrWrFn_AmdK7Dr0DataMatchMaybe,572 kCpumMsrWrFn_AmdK7Dr0DataMaskMaybe,573 kCpumMsrWrFn_AmdK7LoadStoreCfg,574 kCpumMsrWrFn_AmdK7InstrCacheCfg,575 kCpumMsrWrFn_AmdK7DataCacheCfg,576 kCpumMsrWrFn_AmdK7BusUnitCfg,577 kCpumMsrWrFn_AmdK7DebugCtl2Maybe,578 kCpumMsrWrFn_AmdFam15hFpuCfg,579 kCpumMsrWrFn_AmdFam15hDecoderCfg,580 kCpumMsrWrFn_AmdFam10hBusUnitCfg2,581 kCpumMsrWrFn_AmdFam15hCombUnitCfg,582 kCpumMsrWrFn_AmdFam15hCombUnitCfg2,583 kCpumMsrWrFn_AmdFam15hCombUnitCfg3,584 kCpumMsrWrFn_AmdFam15hExecUnitCfg,585 kCpumMsrWrFn_AmdFam15hLoadStoreCfg2,586 kCpumMsrWrFn_AmdFam10hIbsFetchCtl,587 kCpumMsrWrFn_AmdFam10hIbsFetchLinAddr,588 kCpumMsrWrFn_AmdFam10hIbsFetchPhysAddr,589 kCpumMsrWrFn_AmdFam10hIbsOpExecCtl,590 kCpumMsrWrFn_AmdFam10hIbsOpRip,591 kCpumMsrWrFn_AmdFam10hIbsOpData,592 kCpumMsrWrFn_AmdFam10hIbsOpData2,593 kCpumMsrWrFn_AmdFam10hIbsOpData3,594 kCpumMsrWrFn_AmdFam10hIbsDcLinAddr,595 kCpumMsrWrFn_AmdFam10hIbsDcPhysAddr,596 kCpumMsrWrFn_AmdFam10hIbsCtl,597 kCpumMsrWrFn_AmdFam14hIbsBrTarget,598 599 /** End of valid MSR write function indexes. */600 kCpumMsrWrFn_End601 } CPUMMSRWRFN;602 111 603 112
Note:
See TracChangeset
for help on using the changeset viewer.