Changeset 51285 in vbox for trunk/include/VBox/vmm
- Timestamp:
- May 19, 2014 11:00:11 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 93753
- File:
-
- 1 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
Note:
See TracChangeset
for help on using the changeset viewer.