VirtualBox

Changeset 51285 in vbox for trunk


Ignore:
Timestamp:
May 19, 2014 11:00:11 AM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
93753
Message:

VMM: Expose the MSR read/write function index enums.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpum.h

    r51283 r51285  
    330330typedef CPUMUKNOWNCPUID *PCPUMUKNOWNCPUID;
    331331
     332
     333/**
     334 * MSR read functions.
     335 */
     336typedef 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 */
     604typedef 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;
    332822
    333823/**
     
    504994 * @param   pCtx    Current CPU context
    505995 */
    506 DECLINLINE(bool)    CPUMIsGuestInRealModeEx(PCPUMCTX pCtx)
     996DECLINLINE(bool) CPUMIsGuestInRealModeEx(PCPUMCTX pCtx)
    507997{
    508998    return !(pCtx->cr0 & X86_CR0_PE);
     
    5381028 * @param   pVM     The VM handle.
    5391029 */
    540 DECLINLINE(bool)    CPUMIsGuestInPagedProtectedModeEx(PCPUMCTX pCtx)
     1030DECLINLINE(bool) CPUMIsGuestInPagedProtectedModeEx(PCPUMCTX pCtx)
    5411031{
    5421032    return (pCtx->cr0 & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG);
     
    5491039 * @param   pCtx    Current CPU context
    5501040 */
    551 DECLINLINE(bool)    CPUMIsGuestInLongModeEx(PCPUMCTX pCtx)
     1041DECLINLINE(bool) CPUMIsGuestInLongModeEx(PCPUMCTX pCtx)
    5521042{
    5531043    return (pCtx->msrEFER & MSR_K6_EFER_LMA) == MSR_K6_EFER_LMA;
     
    5631053 * @param   pCtx    Current CPU context
    5641054 */
    565 DECLINLINE(bool)    CPUMIsGuestIn64BitCodeEx(PCPUMCTX pCtx)
     1055DECLINLINE(bool) CPUMIsGuestIn64BitCodeEx(PCPUMCTX pCtx)
    5661056{
    5671057    if (!(pCtx->msrEFER & MSR_K6_EFER_LMA))
     
    5781068 * @param   pCtx    Current CPU context
    5791069 */
    580 DECLINLINE(bool)    CPUMIsGuestPagingEnabledEx(PCPUMCTX pCtx)
     1070DECLINLINE(bool) CPUMIsGuestPagingEnabledEx(PCPUMCTX pCtx)
    5811071{
    5821072    return !!(pCtx->cr0 & X86_CR0_PG);
     
    5891079 * @param   pCtx    Current CPU context
    5901080 */
    591 DECLINLINE(bool)    CPUMIsGuestInPAEModeEx(PCPUMCTX pCtx)
     1081DECLINLINE(bool) CPUMIsGuestInPAEModeEx(PCPUMCTX pCtx)
    5921082{
    5931083    /* 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  
    109109#endif
    110110#endif
    111 
    112 
    113 /**
    114  * MSR read functions.
    115  */
    116 typedef enum CPUMMSRRDFN
    117 {
    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 by
    123      * CPUMMSRRANGE::uValue.  Must be used in pair with
    124      * 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_End
    379 } CPUMMSRRDFN;
    380 
    381 /**
    382  * MSR write functions.
    383  */
    384 typedef enum CPUMMSRWRFN
    385 {
    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 by
    393      * CPUMMSRRANGE::uValue.  Must be used in pair with
    394      * 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_End
    601 } CPUMMSRWRFN;
    602111
    603112
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette