VirtualBox

Changeset 51285 in vbox for trunk/include/VBox/vmm


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.

File:
1 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
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