Index: /trunk/include/VBox/vmm/cpum.h
===================================================================
--- /trunk/include/VBox/vmm/cpum.h	(revision 51284)
+++ /trunk/include/VBox/vmm/cpum.h	(revision 51285)
@@ -330,4 +330,494 @@
 typedef CPUMUKNOWNCPUID *PCPUMUKNOWNCPUID;
 
+
+/**
+ * MSR read functions.
+ */
+typedef enum CPUMMSRRDFN
+{
+    /** Invalid zero value. */
+    kCpumMsrRdFn_Invalid = 0,
+    /** Return the CPUMMSRRANGE::uValue. */
+    kCpumMsrRdFn_FixedValue,
+    /** Alias to the MSR range starting at the MSR given by
+     * CPUMMSRRANGE::uValue.  Must be used in pair with
+     * kCpumMsrWrFn_MsrAlias. */
+    kCpumMsrRdFn_MsrAlias,
+    /** Write only register, GP all read attempts. */
+    kCpumMsrRdFn_WriteOnly,
+
+    kCpumMsrRdFn_Ia32P5McAddr,
+    kCpumMsrRdFn_Ia32P5McType,
+    kCpumMsrRdFn_Ia32TimestampCounter,
+    kCpumMsrRdFn_Ia32PlatformId,            /**< Takes real CPU value for reference. */
+    kCpumMsrRdFn_Ia32ApicBase,
+    kCpumMsrRdFn_Ia32FeatureControl,
+    kCpumMsrRdFn_Ia32BiosSignId,            /**< Range value returned. */
+    kCpumMsrRdFn_Ia32SmmMonitorCtl,
+    kCpumMsrRdFn_Ia32PmcN,
+    kCpumMsrRdFn_Ia32MonitorFilterLineSize,
+    kCpumMsrRdFn_Ia32MPerf,
+    kCpumMsrRdFn_Ia32APerf,
+    kCpumMsrRdFn_Ia32MtrrCap,               /**< Takes real CPU value for reference.  */
+    kCpumMsrRdFn_Ia32MtrrPhysBaseN,         /**< Takes register number. */
+    kCpumMsrRdFn_Ia32MtrrPhysMaskN,         /**< Takes register number. */
+    kCpumMsrRdFn_Ia32MtrrFixed,             /**< Takes CPUMCPU offset. */
+    kCpumMsrRdFn_Ia32MtrrDefType,
+    kCpumMsrRdFn_Ia32Pat,
+    kCpumMsrRdFn_Ia32SysEnterCs,
+    kCpumMsrRdFn_Ia32SysEnterEsp,
+    kCpumMsrRdFn_Ia32SysEnterEip,
+    kCpumMsrRdFn_Ia32McgCap,
+    kCpumMsrRdFn_Ia32McgStatus,
+    kCpumMsrRdFn_Ia32McgCtl,
+    kCpumMsrRdFn_Ia32DebugCtl,
+    kCpumMsrRdFn_Ia32SmrrPhysBase,
+    kCpumMsrRdFn_Ia32SmrrPhysMask,
+    kCpumMsrRdFn_Ia32PlatformDcaCap,
+    kCpumMsrRdFn_Ia32CpuDcaCap,
+    kCpumMsrRdFn_Ia32Dca0Cap,
+    kCpumMsrRdFn_Ia32PerfEvtSelN,           /**< Range value indicates the register number. */
+    kCpumMsrRdFn_Ia32PerfStatus,            /**< Range value returned. */
+    kCpumMsrRdFn_Ia32PerfCtl,               /**< Range value returned. */
+    kCpumMsrRdFn_Ia32FixedCtrN,             /**< Takes register number of start of range. */
+    kCpumMsrRdFn_Ia32PerfCapabilities,      /**< Takes reference value. */
+    kCpumMsrRdFn_Ia32FixedCtrCtrl,
+    kCpumMsrRdFn_Ia32PerfGlobalStatus,      /**< Takes reference value. */
+    kCpumMsrRdFn_Ia32PerfGlobalCtrl,
+    kCpumMsrRdFn_Ia32PerfGlobalOvfCtrl,
+    kCpumMsrRdFn_Ia32PebsEnable,
+    kCpumMsrRdFn_Ia32ClockModulation,       /**< Range value returned. */
+    kCpumMsrRdFn_Ia32ThermInterrupt,        /**< Range value returned. */
+    kCpumMsrRdFn_Ia32ThermStatus,           /**< Range value returned. */
+    kCpumMsrRdFn_Ia32Therm2Ctl,             /**< Range value returned. */
+    kCpumMsrRdFn_Ia32MiscEnable,            /**< Range value returned. */
+    kCpumMsrRdFn_Ia32McCtlStatusAddrMiscN,  /**< Takes bank number. */
+    kCpumMsrRdFn_Ia32McNCtl2,               /**< Takes register number of start of range. */
+    kCpumMsrRdFn_Ia32DsArea,
+    kCpumMsrRdFn_Ia32TscDeadline,
+    kCpumMsrRdFn_Ia32X2ApicN,
+    kCpumMsrRdFn_Ia32DebugInterface,
+    kCpumMsrRdFn_Ia32VmxBase,               /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxPinbasedCtls,       /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxProcbasedCtls,      /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxExitCtls,           /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxEntryCtls,          /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxMisc,               /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxCr0Fixed0,          /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxCr0Fixed1,          /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxCr4Fixed0,          /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxCr4Fixed1,          /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxVmcsEnum,           /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxProcBasedCtls2,     /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxEptVpidCap,         /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxTruePinbasedCtls,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxTrueProcbasedCtls,  /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxTrueExitCtls,       /**< Takes real value as reference. */
+    kCpumMsrRdFn_Ia32VmxTrueEntryCtls,      /**< Takes real value as reference. */
+
+    kCpumMsrRdFn_Amd64Efer,
+    kCpumMsrRdFn_Amd64SyscallTarget,
+    kCpumMsrRdFn_Amd64LongSyscallTarget,
+    kCpumMsrRdFn_Amd64CompSyscallTarget,
+    kCpumMsrRdFn_Amd64SyscallFlagMask,
+    kCpumMsrRdFn_Amd64FsBase,
+    kCpumMsrRdFn_Amd64GsBase,
+    kCpumMsrRdFn_Amd64KernelGsBase,
+    kCpumMsrRdFn_Amd64TscAux,
+
+    kCpumMsrRdFn_IntelEblCrPowerOn,
+    kCpumMsrRdFn_IntelI7CoreThreadCount,
+    kCpumMsrRdFn_IntelP4EbcHardPowerOn,
+    kCpumMsrRdFn_IntelP4EbcSoftPowerOn,
+    kCpumMsrRdFn_IntelP4EbcFrequencyId,
+    kCpumMsrRdFn_IntelP6FsbFrequency,       /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelPlatformInfo,
+    kCpumMsrRdFn_IntelFlexRatio,            /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelPkgCStConfigControl,
+    kCpumMsrRdFn_IntelPmgIoCaptureBase,
+    kCpumMsrRdFn_IntelLastBranchFromToN,
+    kCpumMsrRdFn_IntelLastBranchFromN,
+    kCpumMsrRdFn_IntelLastBranchToN,
+    kCpumMsrRdFn_IntelLastBranchTos,
+    kCpumMsrRdFn_IntelBblCrCtl,
+    kCpumMsrRdFn_IntelBblCrCtl3,
+    kCpumMsrRdFn_IntelI7TemperatureTarget,  /**< Range value returned. */
+    kCpumMsrRdFn_IntelI7MsrOffCoreResponseN,/**< Takes register number. */
+    kCpumMsrRdFn_IntelI7MiscPwrMgmt,
+    kCpumMsrRdFn_IntelP6CrN,
+    kCpumMsrRdFn_IntelCpuId1FeatureMaskEcdx,
+    kCpumMsrRdFn_IntelCpuId1FeatureMaskEax,
+    kCpumMsrRdFn_IntelCpuId80000001FeatureMaskEcdx,
+    kCpumMsrRdFn_IntelI7SandyAesNiCtl,
+    kCpumMsrRdFn_IntelI7TurboRatioLimit,    /**< Returns range value. */
+    kCpumMsrRdFn_IntelI7LbrSelect,
+    kCpumMsrRdFn_IntelI7SandyErrorControl,
+    kCpumMsrRdFn_IntelI7VirtualLegacyWireCap,/**< Returns range value. */
+    kCpumMsrRdFn_IntelI7PowerCtl,
+    kCpumMsrRdFn_IntelI7SandyPebsNumAlt,
+    kCpumMsrRdFn_IntelI7PebsLdLat,
+    kCpumMsrRdFn_IntelI7PkgCnResidencyN,     /**< Takes C-state number. */
+    kCpumMsrRdFn_IntelI7CoreCnResidencyN,    /**< Takes C-state number. */
+    kCpumMsrRdFn_IntelI7SandyVrCurrentConfig,/**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7SandyVrMiscConfig,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7SandyRaplPowerUnit,  /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7SandyPkgCnIrtlN,     /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7SandyPkgC2Residency, /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPkgPowerLimit,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPkgEnergyStatus, /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPkgPerfStatus,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPkgPowerInfo,    /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplDramPowerLimit,  /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplDramEnergyStatus,/**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplDramPerfStatus,  /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplDramPowerInfo,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp0PowerLimit,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp0EnergyStatus, /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp0Policy,       /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp0PerfStatus,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp1PowerLimit,   /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp1EnergyStatus, /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7RaplPp1Policy,       /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7IvyConfigTdpNominal, /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7IvyConfigTdpLevel1,  /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7IvyConfigTdpLevel2,  /**< Takes real value as reference. */
+    kCpumMsrRdFn_IntelI7IvyConfigTdpControl,
+    kCpumMsrRdFn_IntelI7IvyTurboActivationRatio,
+    kCpumMsrRdFn_IntelI7UncPerfGlobalCtrl,
+    kCpumMsrRdFn_IntelI7UncPerfGlobalStatus,
+    kCpumMsrRdFn_IntelI7UncPerfGlobalOvfCtrl,
+    kCpumMsrRdFn_IntelI7UncPerfFixedCtrCtrl,
+    kCpumMsrRdFn_IntelI7UncPerfFixedCtr,
+    kCpumMsrRdFn_IntelI7UncCBoxConfig,
+    kCpumMsrRdFn_IntelI7UncArbPerfCtrN,
+    kCpumMsrRdFn_IntelI7UncArbPerfEvtSelN,
+    kCpumMsrRdFn_IntelCore2EmttmCrTablesN,  /**< Range value returned. */
+    kCpumMsrRdFn_IntelCore2SmmCStMiscInfo,
+    kCpumMsrRdFn_IntelCore1ExtConfig,
+    kCpumMsrRdFn_IntelCore1DtsCalControl,
+    kCpumMsrRdFn_IntelCore2PeciControl,
+
+    kCpumMsrRdFn_P6LastBranchFromIp,
+    kCpumMsrRdFn_P6LastBranchToIp,
+    kCpumMsrRdFn_P6LastIntFromIp,
+    kCpumMsrRdFn_P6LastIntToIp,
+
+    kCpumMsrRdFn_AmdFam15hTscRate,
+    kCpumMsrRdFn_AmdFam15hLwpCfg,
+    kCpumMsrRdFn_AmdFam15hLwpCbAddr,
+    kCpumMsrRdFn_AmdFam10hMc4MiscN,
+    kCpumMsrRdFn_AmdK8PerfCtlN,
+    kCpumMsrRdFn_AmdK8PerfCtrN,
+    kCpumMsrRdFn_AmdK8SysCfg,               /**< Range value returned. */
+    kCpumMsrRdFn_AmdK8HwCr,
+    kCpumMsrRdFn_AmdK8IorrBaseN,
+    kCpumMsrRdFn_AmdK8IorrMaskN,
+    kCpumMsrRdFn_AmdK8TopOfMemN,
+    kCpumMsrRdFn_AmdK8NbCfg1,
+    kCpumMsrRdFn_AmdK8McXcptRedir,
+    kCpumMsrRdFn_AmdK8CpuNameN,
+    kCpumMsrRdFn_AmdK8HwThermalCtrl,        /**< Range value returned. */
+    kCpumMsrRdFn_AmdK8SwThermalCtrl,
+    kCpumMsrRdFn_AmdK8FidVidControl,        /**< Range value returned. */
+    kCpumMsrRdFn_AmdK8FidVidStatus,         /**< Range value returned. */
+    kCpumMsrRdFn_AmdK8McCtlMaskN,
+    kCpumMsrRdFn_AmdK8SmiOnIoTrapN,
+    kCpumMsrRdFn_AmdK8SmiOnIoTrapCtlSts,
+    kCpumMsrRdFn_AmdK8IntPendingMessage,
+    kCpumMsrRdFn_AmdK8SmiTriggerIoCycle,
+    kCpumMsrRdFn_AmdFam10hMmioCfgBaseAddr,
+    kCpumMsrRdFn_AmdFam10hTrapCtlMaybe,
+    kCpumMsrRdFn_AmdFam10hPStateCurLimit,   /**< Returns range value. */
+    kCpumMsrRdFn_AmdFam10hPStateControl,    /**< Returns range value. */
+    kCpumMsrRdFn_AmdFam10hPStateStatus,     /**< Returns range value. */
+    kCpumMsrRdFn_AmdFam10hPStateN,          /**< Returns range value. This isn't an register index! */
+    kCpumMsrRdFn_AmdFam10hCofVidControl,    /**< Returns range value. */
+    kCpumMsrRdFn_AmdFam10hCofVidStatus,     /**< Returns range value. */
+    kCpumMsrRdFn_AmdFam10hCStateIoBaseAddr,
+    kCpumMsrRdFn_AmdFam10hCpuWatchdogTimer,
+    kCpumMsrRdFn_AmdK8SmmBase,
+    kCpumMsrRdFn_AmdK8SmmAddr,
+    kCpumMsrRdFn_AmdK8SmmMask,
+    kCpumMsrRdFn_AmdK8VmCr,
+    kCpumMsrRdFn_AmdK8IgnNe,
+    kCpumMsrRdFn_AmdK8SmmCtl,
+    kCpumMsrRdFn_AmdK8VmHSavePa,
+    kCpumMsrRdFn_AmdFam10hVmLockKey,
+    kCpumMsrRdFn_AmdFam10hSmmLockKey,
+    kCpumMsrRdFn_AmdFam10hLocalSmiStatus,
+    kCpumMsrRdFn_AmdFam10hOsVisWrkIdLength,
+    kCpumMsrRdFn_AmdFam10hOsVisWrkStatus,
+    kCpumMsrRdFn_AmdFam16hL2IPerfCtlN,
+    kCpumMsrRdFn_AmdFam16hL2IPerfCtrN,
+    kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtlN,
+    kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtrN,
+    kCpumMsrRdFn_AmdK7MicrocodeCtl,         /**< Returns range value. */
+    kCpumMsrRdFn_AmdK7ClusterIdMaybe,       /**< Returns range value. */
+    kCpumMsrRdFn_AmdK8CpuIdCtlStd07hEbax,
+    kCpumMsrRdFn_AmdK8CpuIdCtlStd06hEcx,
+    kCpumMsrRdFn_AmdK8CpuIdCtlStd01hEdcx,
+    kCpumMsrRdFn_AmdK8CpuIdCtlExt01hEdcx,
+    kCpumMsrRdFn_AmdK8PatchLevel,           /**< Returns range value. */
+    kCpumMsrRdFn_AmdK7DebugStatusMaybe,
+    kCpumMsrRdFn_AmdK7BHTraceBaseMaybe,
+    kCpumMsrRdFn_AmdK7BHTracePtrMaybe,
+    kCpumMsrRdFn_AmdK7BHTraceLimitMaybe,
+    kCpumMsrRdFn_AmdK7HardwareDebugToolCfgMaybe,
+    kCpumMsrRdFn_AmdK7FastFlushCountMaybe,
+    kCpumMsrRdFn_AmdK7NodeId,
+    kCpumMsrRdFn_AmdK7DrXAddrMaskN,      /**< Takes register index. */
+    kCpumMsrRdFn_AmdK7Dr0DataMatchMaybe,
+    kCpumMsrRdFn_AmdK7Dr0DataMaskMaybe,
+    kCpumMsrRdFn_AmdK7LoadStoreCfg,
+    kCpumMsrRdFn_AmdK7InstrCacheCfg,
+    kCpumMsrRdFn_AmdK7DataCacheCfg,
+    kCpumMsrRdFn_AmdK7BusUnitCfg,
+    kCpumMsrRdFn_AmdK7DebugCtl2Maybe,
+    kCpumMsrRdFn_AmdFam15hFpuCfg,
+    kCpumMsrRdFn_AmdFam15hDecoderCfg,
+    kCpumMsrRdFn_AmdFam10hBusUnitCfg2,
+    kCpumMsrRdFn_AmdFam15hCombUnitCfg,
+    kCpumMsrRdFn_AmdFam15hCombUnitCfg2,
+    kCpumMsrRdFn_AmdFam15hCombUnitCfg3,
+    kCpumMsrRdFn_AmdFam15hExecUnitCfg,
+    kCpumMsrRdFn_AmdFam15hLoadStoreCfg2,
+    kCpumMsrRdFn_AmdFam10hIbsFetchCtl,
+    kCpumMsrRdFn_AmdFam10hIbsFetchLinAddr,
+    kCpumMsrRdFn_AmdFam10hIbsFetchPhysAddr,
+    kCpumMsrRdFn_AmdFam10hIbsOpExecCtl,
+    kCpumMsrRdFn_AmdFam10hIbsOpRip,
+    kCpumMsrRdFn_AmdFam10hIbsOpData,
+    kCpumMsrRdFn_AmdFam10hIbsOpData2,
+    kCpumMsrRdFn_AmdFam10hIbsOpData3,
+    kCpumMsrRdFn_AmdFam10hIbsDcLinAddr,
+    kCpumMsrRdFn_AmdFam10hIbsDcPhysAddr,
+    kCpumMsrRdFn_AmdFam10hIbsCtl,
+    kCpumMsrRdFn_AmdFam14hIbsBrTarget,
+
+    /** End of valid MSR read function indexes. */
+    kCpumMsrRdFn_End
+} CPUMMSRRDFN;
+
+/**
+ * MSR write functions.
+ */
+typedef enum CPUMMSRWRFN
+{
+    /** Invalid zero value. */
+    kCpumMsrWrFn_Invalid = 0,
+    /** Writes are ignored, the fWrGpMask is observed though. */
+    kCpumMsrWrFn_IgnoreWrite,
+    /** Writes cause GP(0) to be raised, the fWrGpMask should be UINT64_MAX. */
+    kCpumMsrWrFn_ReadOnly,
+    /** Alias to the MSR range starting at the MSR given by
+     * CPUMMSRRANGE::uValue.  Must be used in pair with
+     * kCpumMsrRdFn_MsrAlias. */
+    kCpumMsrWrFn_MsrAlias,
+
+    kCpumMsrWrFn_Ia32P5McAddr,
+    kCpumMsrWrFn_Ia32P5McType,
+    kCpumMsrWrFn_Ia32TimestampCounter,
+    kCpumMsrWrFn_Ia32ApicBase,
+    kCpumMsrWrFn_Ia32FeatureControl,
+    kCpumMsrWrFn_Ia32BiosSignId,
+    kCpumMsrWrFn_Ia32BiosUpdateTrigger,
+    kCpumMsrWrFn_Ia32SmmMonitorCtl,
+    kCpumMsrWrFn_Ia32PmcN,
+    kCpumMsrWrFn_Ia32MonitorFilterLineSize,
+    kCpumMsrWrFn_Ia32MPerf,
+    kCpumMsrWrFn_Ia32APerf,
+    kCpumMsrWrFn_Ia32MtrrPhysBaseN,         /**< Takes register number. */
+    kCpumMsrWrFn_Ia32MtrrPhysMaskN,         /**< Takes register number. */
+    kCpumMsrWrFn_Ia32MtrrFixed,             /**< Takes CPUMCPU offset. */
+    kCpumMsrWrFn_Ia32MtrrDefType,
+    kCpumMsrWrFn_Ia32Pat,
+    kCpumMsrWrFn_Ia32SysEnterCs,
+    kCpumMsrWrFn_Ia32SysEnterEsp,
+    kCpumMsrWrFn_Ia32SysEnterEip,
+    kCpumMsrWrFn_Ia32McgStatus,
+    kCpumMsrWrFn_Ia32McgCtl,
+    kCpumMsrWrFn_Ia32DebugCtl,
+    kCpumMsrWrFn_Ia32SmrrPhysBase,
+    kCpumMsrWrFn_Ia32SmrrPhysMask,
+    kCpumMsrWrFn_Ia32PlatformDcaCap,
+    kCpumMsrWrFn_Ia32Dca0Cap,
+    kCpumMsrWrFn_Ia32PerfEvtSelN,           /**< Range value indicates the register number. */
+    kCpumMsrWrFn_Ia32PerfStatus,
+    kCpumMsrWrFn_Ia32PerfCtl,
+    kCpumMsrWrFn_Ia32FixedCtrN,             /**< Takes register number of start of range. */
+    kCpumMsrWrFn_Ia32PerfCapabilities,
+    kCpumMsrWrFn_Ia32FixedCtrCtrl,
+    kCpumMsrWrFn_Ia32PerfGlobalStatus,
+    kCpumMsrWrFn_Ia32PerfGlobalCtrl,
+    kCpumMsrWrFn_Ia32PerfGlobalOvfCtrl,
+    kCpumMsrWrFn_Ia32PebsEnable,
+    kCpumMsrWrFn_Ia32ClockModulation,
+    kCpumMsrWrFn_Ia32ThermInterrupt,
+    kCpumMsrWrFn_Ia32ThermStatus,
+    kCpumMsrWrFn_Ia32Therm2Ctl,
+    kCpumMsrWrFn_Ia32MiscEnable,
+    kCpumMsrWrFn_Ia32McCtlStatusAddrMiscN,  /**< Takes bank number. */
+    kCpumMsrWrFn_Ia32McNCtl2,               /**< Takes register number of start of range. */
+    kCpumMsrWrFn_Ia32DsArea,
+    kCpumMsrWrFn_Ia32TscDeadline,
+    kCpumMsrWrFn_Ia32X2ApicN,
+    kCpumMsrWrFn_Ia32DebugInterface,
+
+    kCpumMsrWrFn_Amd64Efer,
+    kCpumMsrWrFn_Amd64SyscallTarget,
+    kCpumMsrWrFn_Amd64LongSyscallTarget,
+    kCpumMsrWrFn_Amd64CompSyscallTarget,
+    kCpumMsrWrFn_Amd64SyscallFlagMask,
+    kCpumMsrWrFn_Amd64FsBase,
+    kCpumMsrWrFn_Amd64GsBase,
+    kCpumMsrWrFn_Amd64KernelGsBase,
+    kCpumMsrWrFn_Amd64TscAux,
+    kCpumMsrWrFn_IntelEblCrPowerOn,
+    kCpumMsrWrFn_IntelP4EbcHardPowerOn,
+    kCpumMsrWrFn_IntelP4EbcSoftPowerOn,
+    kCpumMsrWrFn_IntelP4EbcFrequencyId,
+    kCpumMsrWrFn_IntelFlexRatio,
+    kCpumMsrWrFn_IntelPkgCStConfigControl,
+    kCpumMsrWrFn_IntelPmgIoCaptureBase,
+    kCpumMsrWrFn_IntelLastBranchFromToN,
+    kCpumMsrWrFn_IntelLastBranchFromN,
+    kCpumMsrWrFn_IntelLastBranchToN,
+    kCpumMsrWrFn_IntelLastBranchTos,
+    kCpumMsrWrFn_IntelBblCrCtl,
+    kCpumMsrWrFn_IntelBblCrCtl3,
+    kCpumMsrWrFn_IntelI7TemperatureTarget,
+    kCpumMsrWrFn_IntelI7MsrOffCoreResponseN, /**< Takes register number. */
+    kCpumMsrWrFn_IntelI7MiscPwrMgmt,
+    kCpumMsrWrFn_IntelP6CrN,
+    kCpumMsrWrFn_IntelCpuId1FeatureMaskEcdx,
+    kCpumMsrWrFn_IntelCpuId1FeatureMaskEax,
+    kCpumMsrWrFn_IntelCpuId80000001FeatureMaskEcdx,
+    kCpumMsrWrFn_IntelI7SandyAesNiCtl,
+    kCpumMsrWrFn_IntelI7TurboRatioLimit,
+    kCpumMsrWrFn_IntelI7LbrSelect,
+    kCpumMsrWrFn_IntelI7SandyErrorControl,
+    kCpumMsrWrFn_IntelI7PowerCtl,
+    kCpumMsrWrFn_IntelI7SandyPebsNumAlt,
+    kCpumMsrWrFn_IntelI7PebsLdLat,
+    kCpumMsrWrFn_IntelI7SandyVrCurrentConfig,
+    kCpumMsrWrFn_IntelI7SandyVrMiscConfig,
+    kCpumMsrWrFn_IntelI7SandyPkgCnIrtlN,
+    kCpumMsrWrFn_IntelI7RaplPkgPowerLimit,
+    kCpumMsrWrFn_IntelI7RaplDramPowerLimit,
+    kCpumMsrWrFn_IntelI7RaplPp0PowerLimit,
+    kCpumMsrWrFn_IntelI7RaplPp0Policy,
+    kCpumMsrWrFn_IntelI7RaplPp1PowerLimit,
+    kCpumMsrWrFn_IntelI7RaplPp1Policy,
+    kCpumMsrWrFn_IntelI7IvyConfigTdpControl,
+    kCpumMsrWrFn_IntelI7IvyTurboActivationRatio,
+    kCpumMsrWrFn_IntelI7UncPerfGlobalCtrl,
+    kCpumMsrWrFn_IntelI7UncPerfGlobalStatus,
+    kCpumMsrWrFn_IntelI7UncPerfGlobalOvfCtrl,
+    kCpumMsrWrFn_IntelI7UncPerfFixedCtrCtrl,
+    kCpumMsrWrFn_IntelI7UncPerfFixedCtr,
+    kCpumMsrWrFn_IntelI7UncArbPerfCtrN,
+    kCpumMsrWrFn_IntelI7UncArbPerfEvtSelN,
+    kCpumMsrWrFn_IntelCore2EmttmCrTablesN,
+    kCpumMsrWrFn_IntelCore2SmmCStMiscInfo,
+    kCpumMsrWrFn_IntelCore1ExtConfig,
+    kCpumMsrWrFn_IntelCore1DtsCalControl,
+    kCpumMsrWrFn_IntelCore2PeciControl,
+
+    kCpumMsrWrFn_P6LastIntFromIp,
+    kCpumMsrWrFn_P6LastIntToIp,
+
+    kCpumMsrWrFn_AmdFam15hTscRate,
+    kCpumMsrWrFn_AmdFam15hLwpCfg,
+    kCpumMsrWrFn_AmdFam15hLwpCbAddr,
+    kCpumMsrWrFn_AmdFam10hMc4MiscN,
+    kCpumMsrWrFn_AmdK8PerfCtlN,
+    kCpumMsrWrFn_AmdK8PerfCtrN,
+    kCpumMsrWrFn_AmdK8SysCfg,
+    kCpumMsrWrFn_AmdK8HwCr,
+    kCpumMsrWrFn_AmdK8IorrBaseN,
+    kCpumMsrWrFn_AmdK8IorrMaskN,
+    kCpumMsrWrFn_AmdK8TopOfMemN,
+    kCpumMsrWrFn_AmdK8NbCfg1,
+    kCpumMsrWrFn_AmdK8McXcptRedir,
+    kCpumMsrWrFn_AmdK8CpuNameN,
+    kCpumMsrWrFn_AmdK8HwThermalCtrl,
+    kCpumMsrWrFn_AmdK8SwThermalCtrl,
+    kCpumMsrWrFn_AmdK8FidVidControl,
+    kCpumMsrWrFn_AmdK8McCtlMaskN,
+    kCpumMsrWrFn_AmdK8SmiOnIoTrapN,
+    kCpumMsrWrFn_AmdK8SmiOnIoTrapCtlSts,
+    kCpumMsrWrFn_AmdK8IntPendingMessage,
+    kCpumMsrWrFn_AmdK8SmiTriggerIoCycle,
+    kCpumMsrWrFn_AmdFam10hMmioCfgBaseAddr,
+    kCpumMsrWrFn_AmdFam10hTrapCtlMaybe,
+    kCpumMsrWrFn_AmdFam10hPStateControl,
+    kCpumMsrWrFn_AmdFam10hPStateStatus,
+    kCpumMsrWrFn_AmdFam10hPStateN,
+    kCpumMsrWrFn_AmdFam10hCofVidControl,
+    kCpumMsrWrFn_AmdFam10hCofVidStatus,
+    kCpumMsrWrFn_AmdFam10hCStateIoBaseAddr,
+    kCpumMsrWrFn_AmdFam10hCpuWatchdogTimer,
+    kCpumMsrWrFn_AmdK8SmmBase,
+    kCpumMsrWrFn_AmdK8SmmAddr,
+    kCpumMsrWrFn_AmdK8SmmMask,
+    kCpumMsrWrFn_AmdK8VmCr,
+    kCpumMsrWrFn_AmdK8IgnNe,
+    kCpumMsrWrFn_AmdK8SmmCtl,
+    kCpumMsrWrFn_AmdK8VmHSavePa,
+    kCpumMsrWrFn_AmdFam10hVmLockKey,
+    kCpumMsrWrFn_AmdFam10hSmmLockKey,
+    kCpumMsrWrFn_AmdFam10hLocalSmiStatus,
+    kCpumMsrWrFn_AmdFam10hOsVisWrkIdLength,
+    kCpumMsrWrFn_AmdFam10hOsVisWrkStatus,
+    kCpumMsrWrFn_AmdFam16hL2IPerfCtlN,
+    kCpumMsrWrFn_AmdFam16hL2IPerfCtrN,
+    kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtlN,
+    kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtrN,
+    kCpumMsrWrFn_AmdK7MicrocodeCtl,
+    kCpumMsrWrFn_AmdK7ClusterIdMaybe,
+    kCpumMsrWrFn_AmdK8CpuIdCtlStd07hEbax,
+    kCpumMsrWrFn_AmdK8CpuIdCtlStd06hEcx,
+    kCpumMsrWrFn_AmdK8CpuIdCtlStd01hEdcx,
+    kCpumMsrWrFn_AmdK8CpuIdCtlExt01hEdcx,
+    kCpumMsrWrFn_AmdK8PatchLoader,
+    kCpumMsrWrFn_AmdK7DebugStatusMaybe,
+    kCpumMsrWrFn_AmdK7BHTraceBaseMaybe,
+    kCpumMsrWrFn_AmdK7BHTracePtrMaybe,
+    kCpumMsrWrFn_AmdK7BHTraceLimitMaybe,
+    kCpumMsrWrFn_AmdK7HardwareDebugToolCfgMaybe,
+    kCpumMsrWrFn_AmdK7FastFlushCountMaybe,
+    kCpumMsrWrFn_AmdK7NodeId,
+    kCpumMsrWrFn_AmdK7DrXAddrMaskN,      /**< Takes register index. */
+    kCpumMsrWrFn_AmdK7Dr0DataMatchMaybe,
+    kCpumMsrWrFn_AmdK7Dr0DataMaskMaybe,
+    kCpumMsrWrFn_AmdK7LoadStoreCfg,
+    kCpumMsrWrFn_AmdK7InstrCacheCfg,
+    kCpumMsrWrFn_AmdK7DataCacheCfg,
+    kCpumMsrWrFn_AmdK7BusUnitCfg,
+    kCpumMsrWrFn_AmdK7DebugCtl2Maybe,
+    kCpumMsrWrFn_AmdFam15hFpuCfg,
+    kCpumMsrWrFn_AmdFam15hDecoderCfg,
+    kCpumMsrWrFn_AmdFam10hBusUnitCfg2,
+    kCpumMsrWrFn_AmdFam15hCombUnitCfg,
+    kCpumMsrWrFn_AmdFam15hCombUnitCfg2,
+    kCpumMsrWrFn_AmdFam15hCombUnitCfg3,
+    kCpumMsrWrFn_AmdFam15hExecUnitCfg,
+    kCpumMsrWrFn_AmdFam15hLoadStoreCfg2,
+    kCpumMsrWrFn_AmdFam10hIbsFetchCtl,
+    kCpumMsrWrFn_AmdFam10hIbsFetchLinAddr,
+    kCpumMsrWrFn_AmdFam10hIbsFetchPhysAddr,
+    kCpumMsrWrFn_AmdFam10hIbsOpExecCtl,
+    kCpumMsrWrFn_AmdFam10hIbsOpRip,
+    kCpumMsrWrFn_AmdFam10hIbsOpData,
+    kCpumMsrWrFn_AmdFam10hIbsOpData2,
+    kCpumMsrWrFn_AmdFam10hIbsOpData3,
+    kCpumMsrWrFn_AmdFam10hIbsDcLinAddr,
+    kCpumMsrWrFn_AmdFam10hIbsDcPhysAddr,
+    kCpumMsrWrFn_AmdFam10hIbsCtl,
+    kCpumMsrWrFn_AmdFam14hIbsBrTarget,
+
+    /** End of valid MSR write function indexes. */
+    kCpumMsrWrFn_End
+} CPUMMSRWRFN;
 
 /**
@@ -504,5 +994,5 @@
  * @param   pCtx    Current CPU context
  */
-DECLINLINE(bool)    CPUMIsGuestInRealModeEx(PCPUMCTX pCtx)
+DECLINLINE(bool) CPUMIsGuestInRealModeEx(PCPUMCTX pCtx)
 {
     return !(pCtx->cr0 & X86_CR0_PE);
@@ -538,5 +1028,5 @@
  * @param   pVM     The VM handle.
  */
-DECLINLINE(bool)    CPUMIsGuestInPagedProtectedModeEx(PCPUMCTX pCtx)
+DECLINLINE(bool) CPUMIsGuestInPagedProtectedModeEx(PCPUMCTX pCtx)
 {
     return (pCtx->cr0 & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG);
@@ -549,5 +1039,5 @@
  * @param   pCtx    Current CPU context
  */
-DECLINLINE(bool)    CPUMIsGuestInLongModeEx(PCPUMCTX pCtx)
+DECLINLINE(bool) CPUMIsGuestInLongModeEx(PCPUMCTX pCtx)
 {
     return (pCtx->msrEFER & MSR_K6_EFER_LMA) == MSR_K6_EFER_LMA;
@@ -563,5 +1053,5 @@
  * @param   pCtx    Current CPU context
  */
-DECLINLINE(bool)    CPUMIsGuestIn64BitCodeEx(PCPUMCTX pCtx)
+DECLINLINE(bool) CPUMIsGuestIn64BitCodeEx(PCPUMCTX pCtx)
 {
     if (!(pCtx->msrEFER & MSR_K6_EFER_LMA))
@@ -578,5 +1068,5 @@
  * @param   pCtx    Current CPU context
  */
-DECLINLINE(bool)    CPUMIsGuestPagingEnabledEx(PCPUMCTX pCtx)
+DECLINLINE(bool) CPUMIsGuestPagingEnabledEx(PCPUMCTX pCtx)
 {
     return !!(pCtx->cr0 & X86_CR0_PG);
@@ -589,5 +1079,5 @@
  * @param   pCtx    Current CPU context
  */
-DECLINLINE(bool)    CPUMIsGuestInPAEModeEx(PCPUMCTX pCtx)
+DECLINLINE(bool) CPUMIsGuestInPAEModeEx(PCPUMCTX pCtx)
 {
     /* Intel mentions EFER.LMA and EFER.LME in different parts of their spec. We shall use EFER.LMA rather
Index: /trunk/src/VBox/VMM/include/CPUMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/CPUMInternal.h	(revision 51284)
+++ /trunk/src/VBox/VMM/include/CPUMInternal.h	(revision 51285)
@@ -109,495 +109,4 @@
 #endif
 #endif
-
-
-/**
- * MSR read functions.
- */
-typedef enum CPUMMSRRDFN
-{
-    /** Invalid zero value. */
-    kCpumMsrRdFn_Invalid = 0,
-    /** Return the CPUMMSRRANGE::uValue. */
-    kCpumMsrRdFn_FixedValue,
-    /** Alias to the MSR range starting at the MSR given by
-     * CPUMMSRRANGE::uValue.  Must be used in pair with
-     * kCpumMsrWrFn_MsrAlias. */
-    kCpumMsrRdFn_MsrAlias,
-    /** Write only register, GP all read attempts. */
-    kCpumMsrRdFn_WriteOnly,
-
-    kCpumMsrRdFn_Ia32P5McAddr,
-    kCpumMsrRdFn_Ia32P5McType,
-    kCpumMsrRdFn_Ia32TimestampCounter,
-    kCpumMsrRdFn_Ia32PlatformId,            /**< Takes real CPU value for reference. */
-    kCpumMsrRdFn_Ia32ApicBase,
-    kCpumMsrRdFn_Ia32FeatureControl,
-    kCpumMsrRdFn_Ia32BiosSignId,            /**< Range value returned. */
-    kCpumMsrRdFn_Ia32SmmMonitorCtl,
-    kCpumMsrRdFn_Ia32PmcN,
-    kCpumMsrRdFn_Ia32MonitorFilterLineSize,
-    kCpumMsrRdFn_Ia32MPerf,
-    kCpumMsrRdFn_Ia32APerf,
-    kCpumMsrRdFn_Ia32MtrrCap,               /**< Takes real CPU value for reference.  */
-    kCpumMsrRdFn_Ia32MtrrPhysBaseN,         /**< Takes register number. */
-    kCpumMsrRdFn_Ia32MtrrPhysMaskN,         /**< Takes register number. */
-    kCpumMsrRdFn_Ia32MtrrFixed,             /**< Takes CPUMCPU offset. */
-    kCpumMsrRdFn_Ia32MtrrDefType,
-    kCpumMsrRdFn_Ia32Pat,
-    kCpumMsrRdFn_Ia32SysEnterCs,
-    kCpumMsrRdFn_Ia32SysEnterEsp,
-    kCpumMsrRdFn_Ia32SysEnterEip,
-    kCpumMsrRdFn_Ia32McgCap,
-    kCpumMsrRdFn_Ia32McgStatus,
-    kCpumMsrRdFn_Ia32McgCtl,
-    kCpumMsrRdFn_Ia32DebugCtl,
-    kCpumMsrRdFn_Ia32SmrrPhysBase,
-    kCpumMsrRdFn_Ia32SmrrPhysMask,
-    kCpumMsrRdFn_Ia32PlatformDcaCap,
-    kCpumMsrRdFn_Ia32CpuDcaCap,
-    kCpumMsrRdFn_Ia32Dca0Cap,
-    kCpumMsrRdFn_Ia32PerfEvtSelN,           /**< Range value indicates the register number. */
-    kCpumMsrRdFn_Ia32PerfStatus,            /**< Range value returned. */
-    kCpumMsrRdFn_Ia32PerfCtl,               /**< Range value returned. */
-    kCpumMsrRdFn_Ia32FixedCtrN,             /**< Takes register number of start of range. */
-    kCpumMsrRdFn_Ia32PerfCapabilities,      /**< Takes reference value. */
-    kCpumMsrRdFn_Ia32FixedCtrCtrl,
-    kCpumMsrRdFn_Ia32PerfGlobalStatus,      /**< Takes reference value. */
-    kCpumMsrRdFn_Ia32PerfGlobalCtrl,
-    kCpumMsrRdFn_Ia32PerfGlobalOvfCtrl,
-    kCpumMsrRdFn_Ia32PebsEnable,
-    kCpumMsrRdFn_Ia32ClockModulation,       /**< Range value returned. */
-    kCpumMsrRdFn_Ia32ThermInterrupt,        /**< Range value returned. */
-    kCpumMsrRdFn_Ia32ThermStatus,           /**< Range value returned. */
-    kCpumMsrRdFn_Ia32Therm2Ctl,             /**< Range value returned. */
-    kCpumMsrRdFn_Ia32MiscEnable,            /**< Range value returned. */
-    kCpumMsrRdFn_Ia32McCtlStatusAddrMiscN,  /**< Takes bank number. */
-    kCpumMsrRdFn_Ia32McNCtl2,               /**< Takes register number of start of range. */
-    kCpumMsrRdFn_Ia32DsArea,
-    kCpumMsrRdFn_Ia32TscDeadline,
-    kCpumMsrRdFn_Ia32X2ApicN,
-    kCpumMsrRdFn_Ia32DebugInterface,
-    kCpumMsrRdFn_Ia32VmxBase,               /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxPinbasedCtls,       /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxProcbasedCtls,      /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxExitCtls,           /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxEntryCtls,          /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxMisc,               /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxCr0Fixed0,          /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxCr0Fixed1,          /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxCr4Fixed0,          /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxCr4Fixed1,          /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxVmcsEnum,           /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxProcBasedCtls2,     /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxEptVpidCap,         /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxTruePinbasedCtls,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxTrueProcbasedCtls,  /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxTrueExitCtls,       /**< Takes real value as reference. */
-    kCpumMsrRdFn_Ia32VmxTrueEntryCtls,      /**< Takes real value as reference. */
-
-    kCpumMsrRdFn_Amd64Efer,
-    kCpumMsrRdFn_Amd64SyscallTarget,
-    kCpumMsrRdFn_Amd64LongSyscallTarget,
-    kCpumMsrRdFn_Amd64CompSyscallTarget,
-    kCpumMsrRdFn_Amd64SyscallFlagMask,
-    kCpumMsrRdFn_Amd64FsBase,
-    kCpumMsrRdFn_Amd64GsBase,
-    kCpumMsrRdFn_Amd64KernelGsBase,
-    kCpumMsrRdFn_Amd64TscAux,
-
-    kCpumMsrRdFn_IntelEblCrPowerOn,
-    kCpumMsrRdFn_IntelI7CoreThreadCount,
-    kCpumMsrRdFn_IntelP4EbcHardPowerOn,
-    kCpumMsrRdFn_IntelP4EbcSoftPowerOn,
-    kCpumMsrRdFn_IntelP4EbcFrequencyId,
-    kCpumMsrRdFn_IntelP6FsbFrequency,       /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelPlatformInfo,
-    kCpumMsrRdFn_IntelFlexRatio,            /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelPkgCStConfigControl,
-    kCpumMsrRdFn_IntelPmgIoCaptureBase,
-    kCpumMsrRdFn_IntelLastBranchFromToN,
-    kCpumMsrRdFn_IntelLastBranchFromN,
-    kCpumMsrRdFn_IntelLastBranchToN,
-    kCpumMsrRdFn_IntelLastBranchTos,
-    kCpumMsrRdFn_IntelBblCrCtl,
-    kCpumMsrRdFn_IntelBblCrCtl3,
-    kCpumMsrRdFn_IntelI7TemperatureTarget,  /**< Range value returned. */
-    kCpumMsrRdFn_IntelI7MsrOffCoreResponseN,/**< Takes register number. */
-    kCpumMsrRdFn_IntelI7MiscPwrMgmt,
-    kCpumMsrRdFn_IntelP6CrN,
-    kCpumMsrRdFn_IntelCpuId1FeatureMaskEcdx,
-    kCpumMsrRdFn_IntelCpuId1FeatureMaskEax,
-    kCpumMsrRdFn_IntelCpuId80000001FeatureMaskEcdx,
-    kCpumMsrRdFn_IntelI7SandyAesNiCtl,
-    kCpumMsrRdFn_IntelI7TurboRatioLimit,    /**< Returns range value. */
-    kCpumMsrRdFn_IntelI7LbrSelect,
-    kCpumMsrRdFn_IntelI7SandyErrorControl,
-    kCpumMsrRdFn_IntelI7VirtualLegacyWireCap,/**< Returns range value. */
-    kCpumMsrRdFn_IntelI7PowerCtl,
-    kCpumMsrRdFn_IntelI7SandyPebsNumAlt,
-    kCpumMsrRdFn_IntelI7PebsLdLat,
-    kCpumMsrRdFn_IntelI7PkgCnResidencyN,     /**< Takes C-state number. */
-    kCpumMsrRdFn_IntelI7CoreCnResidencyN,    /**< Takes C-state number. */
-    kCpumMsrRdFn_IntelI7SandyVrCurrentConfig,/**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7SandyVrMiscConfig,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7SandyRaplPowerUnit,  /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7SandyPkgCnIrtlN,     /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7SandyPkgC2Residency, /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPkgPowerLimit,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPkgEnergyStatus, /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPkgPerfStatus,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPkgPowerInfo,    /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplDramPowerLimit,  /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplDramEnergyStatus,/**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplDramPerfStatus,  /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplDramPowerInfo,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp0PowerLimit,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp0EnergyStatus, /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp0Policy,       /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp0PerfStatus,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp1PowerLimit,   /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp1EnergyStatus, /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7RaplPp1Policy,       /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7IvyConfigTdpNominal, /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7IvyConfigTdpLevel1,  /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7IvyConfigTdpLevel2,  /**< Takes real value as reference. */
-    kCpumMsrRdFn_IntelI7IvyConfigTdpControl,
-    kCpumMsrRdFn_IntelI7IvyTurboActivationRatio,
-    kCpumMsrRdFn_IntelI7UncPerfGlobalCtrl,
-    kCpumMsrRdFn_IntelI7UncPerfGlobalStatus,
-    kCpumMsrRdFn_IntelI7UncPerfGlobalOvfCtrl,
-    kCpumMsrRdFn_IntelI7UncPerfFixedCtrCtrl,
-    kCpumMsrRdFn_IntelI7UncPerfFixedCtr,
-    kCpumMsrRdFn_IntelI7UncCBoxConfig,
-    kCpumMsrRdFn_IntelI7UncArbPerfCtrN,
-    kCpumMsrRdFn_IntelI7UncArbPerfEvtSelN,
-    kCpumMsrRdFn_IntelCore2EmttmCrTablesN,  /**< Range value returned. */
-    kCpumMsrRdFn_IntelCore2SmmCStMiscInfo,
-    kCpumMsrRdFn_IntelCore1ExtConfig,
-    kCpumMsrRdFn_IntelCore1DtsCalControl,
-    kCpumMsrRdFn_IntelCore2PeciControl,
-
-    kCpumMsrRdFn_P6LastBranchFromIp,
-    kCpumMsrRdFn_P6LastBranchToIp,
-    kCpumMsrRdFn_P6LastIntFromIp,
-    kCpumMsrRdFn_P6LastIntToIp,
-
-    kCpumMsrRdFn_AmdFam15hTscRate,
-    kCpumMsrRdFn_AmdFam15hLwpCfg,
-    kCpumMsrRdFn_AmdFam15hLwpCbAddr,
-    kCpumMsrRdFn_AmdFam10hMc4MiscN,
-    kCpumMsrRdFn_AmdK8PerfCtlN,
-    kCpumMsrRdFn_AmdK8PerfCtrN,
-    kCpumMsrRdFn_AmdK8SysCfg,               /**< Range value returned. */
-    kCpumMsrRdFn_AmdK8HwCr,
-    kCpumMsrRdFn_AmdK8IorrBaseN,
-    kCpumMsrRdFn_AmdK8IorrMaskN,
-    kCpumMsrRdFn_AmdK8TopOfMemN,
-    kCpumMsrRdFn_AmdK8NbCfg1,
-    kCpumMsrRdFn_AmdK8McXcptRedir,
-    kCpumMsrRdFn_AmdK8CpuNameN,
-    kCpumMsrRdFn_AmdK8HwThermalCtrl,        /**< Range value returned. */
-    kCpumMsrRdFn_AmdK8SwThermalCtrl,
-    kCpumMsrRdFn_AmdK8FidVidControl,        /**< Range value returned. */
-    kCpumMsrRdFn_AmdK8FidVidStatus,         /**< Range value returned. */
-    kCpumMsrRdFn_AmdK8McCtlMaskN,
-    kCpumMsrRdFn_AmdK8SmiOnIoTrapN,
-    kCpumMsrRdFn_AmdK8SmiOnIoTrapCtlSts,
-    kCpumMsrRdFn_AmdK8IntPendingMessage,
-    kCpumMsrRdFn_AmdK8SmiTriggerIoCycle,
-    kCpumMsrRdFn_AmdFam10hMmioCfgBaseAddr,
-    kCpumMsrRdFn_AmdFam10hTrapCtlMaybe,
-    kCpumMsrRdFn_AmdFam10hPStateCurLimit,   /**< Returns range value. */
-    kCpumMsrRdFn_AmdFam10hPStateControl,    /**< Returns range value. */
-    kCpumMsrRdFn_AmdFam10hPStateStatus,     /**< Returns range value. */
-    kCpumMsrRdFn_AmdFam10hPStateN,          /**< Returns range value. This isn't an register index! */
-    kCpumMsrRdFn_AmdFam10hCofVidControl,    /**< Returns range value. */
-    kCpumMsrRdFn_AmdFam10hCofVidStatus,     /**< Returns range value. */
-    kCpumMsrRdFn_AmdFam10hCStateIoBaseAddr,
-    kCpumMsrRdFn_AmdFam10hCpuWatchdogTimer,
-    kCpumMsrRdFn_AmdK8SmmBase,
-    kCpumMsrRdFn_AmdK8SmmAddr,
-    kCpumMsrRdFn_AmdK8SmmMask,
-    kCpumMsrRdFn_AmdK8VmCr,
-    kCpumMsrRdFn_AmdK8IgnNe,
-    kCpumMsrRdFn_AmdK8SmmCtl,
-    kCpumMsrRdFn_AmdK8VmHSavePa,
-    kCpumMsrRdFn_AmdFam10hVmLockKey,
-    kCpumMsrRdFn_AmdFam10hSmmLockKey,
-    kCpumMsrRdFn_AmdFam10hLocalSmiStatus,
-    kCpumMsrRdFn_AmdFam10hOsVisWrkIdLength,
-    kCpumMsrRdFn_AmdFam10hOsVisWrkStatus,
-    kCpumMsrRdFn_AmdFam16hL2IPerfCtlN,
-    kCpumMsrRdFn_AmdFam16hL2IPerfCtrN,
-    kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtlN,
-    kCpumMsrRdFn_AmdFam15hNorthbridgePerfCtrN,
-    kCpumMsrRdFn_AmdK7MicrocodeCtl,         /**< Returns range value. */
-    kCpumMsrRdFn_AmdK7ClusterIdMaybe,       /**< Returns range value. */
-    kCpumMsrRdFn_AmdK8CpuIdCtlStd07hEbax,
-    kCpumMsrRdFn_AmdK8CpuIdCtlStd06hEcx,
-    kCpumMsrRdFn_AmdK8CpuIdCtlStd01hEdcx,
-    kCpumMsrRdFn_AmdK8CpuIdCtlExt01hEdcx,
-    kCpumMsrRdFn_AmdK8PatchLevel,           /**< Returns range value. */
-    kCpumMsrRdFn_AmdK7DebugStatusMaybe,
-    kCpumMsrRdFn_AmdK7BHTraceBaseMaybe,
-    kCpumMsrRdFn_AmdK7BHTracePtrMaybe,
-    kCpumMsrRdFn_AmdK7BHTraceLimitMaybe,
-    kCpumMsrRdFn_AmdK7HardwareDebugToolCfgMaybe,
-    kCpumMsrRdFn_AmdK7FastFlushCountMaybe,
-    kCpumMsrRdFn_AmdK7NodeId,
-    kCpumMsrRdFn_AmdK7DrXAddrMaskN,      /**< Takes register index. */
-    kCpumMsrRdFn_AmdK7Dr0DataMatchMaybe,
-    kCpumMsrRdFn_AmdK7Dr0DataMaskMaybe,
-    kCpumMsrRdFn_AmdK7LoadStoreCfg,
-    kCpumMsrRdFn_AmdK7InstrCacheCfg,
-    kCpumMsrRdFn_AmdK7DataCacheCfg,
-    kCpumMsrRdFn_AmdK7BusUnitCfg,
-    kCpumMsrRdFn_AmdK7DebugCtl2Maybe,
-    kCpumMsrRdFn_AmdFam15hFpuCfg,
-    kCpumMsrRdFn_AmdFam15hDecoderCfg,
-    kCpumMsrRdFn_AmdFam10hBusUnitCfg2,
-    kCpumMsrRdFn_AmdFam15hCombUnitCfg,
-    kCpumMsrRdFn_AmdFam15hCombUnitCfg2,
-    kCpumMsrRdFn_AmdFam15hCombUnitCfg3,
-    kCpumMsrRdFn_AmdFam15hExecUnitCfg,
-    kCpumMsrRdFn_AmdFam15hLoadStoreCfg2,
-    kCpumMsrRdFn_AmdFam10hIbsFetchCtl,
-    kCpumMsrRdFn_AmdFam10hIbsFetchLinAddr,
-    kCpumMsrRdFn_AmdFam10hIbsFetchPhysAddr,
-    kCpumMsrRdFn_AmdFam10hIbsOpExecCtl,
-    kCpumMsrRdFn_AmdFam10hIbsOpRip,
-    kCpumMsrRdFn_AmdFam10hIbsOpData,
-    kCpumMsrRdFn_AmdFam10hIbsOpData2,
-    kCpumMsrRdFn_AmdFam10hIbsOpData3,
-    kCpumMsrRdFn_AmdFam10hIbsDcLinAddr,
-    kCpumMsrRdFn_AmdFam10hIbsDcPhysAddr,
-    kCpumMsrRdFn_AmdFam10hIbsCtl,
-    kCpumMsrRdFn_AmdFam14hIbsBrTarget,
-
-    /** End of valid MSR read function indexes. */
-    kCpumMsrRdFn_End
-} CPUMMSRRDFN;
-
-/**
- * MSR write functions.
- */
-typedef enum CPUMMSRWRFN
-{
-    /** Invalid zero value. */
-    kCpumMsrWrFn_Invalid = 0,
-    /** Writes are ignored, the fWrGpMask is observed though. */
-    kCpumMsrWrFn_IgnoreWrite,
-    /** Writes cause GP(0) to be raised, the fWrGpMask should be UINT64_MAX. */
-    kCpumMsrWrFn_ReadOnly,
-    /** Alias to the MSR range starting at the MSR given by
-     * CPUMMSRRANGE::uValue.  Must be used in pair with
-     * kCpumMsrRdFn_MsrAlias. */
-    kCpumMsrWrFn_MsrAlias,
-
-    kCpumMsrWrFn_Ia32P5McAddr,
-    kCpumMsrWrFn_Ia32P5McType,
-    kCpumMsrWrFn_Ia32TimestampCounter,
-    kCpumMsrWrFn_Ia32ApicBase,
-    kCpumMsrWrFn_Ia32FeatureControl,
-    kCpumMsrWrFn_Ia32BiosSignId,
-    kCpumMsrWrFn_Ia32BiosUpdateTrigger,
-    kCpumMsrWrFn_Ia32SmmMonitorCtl,
-    kCpumMsrWrFn_Ia32PmcN,
-    kCpumMsrWrFn_Ia32MonitorFilterLineSize,
-    kCpumMsrWrFn_Ia32MPerf,
-    kCpumMsrWrFn_Ia32APerf,
-    kCpumMsrWrFn_Ia32MtrrPhysBaseN,         /**< Takes register number. */
-    kCpumMsrWrFn_Ia32MtrrPhysMaskN,         /**< Takes register number. */
-    kCpumMsrWrFn_Ia32MtrrFixed,             /**< Takes CPUMCPU offset. */
-    kCpumMsrWrFn_Ia32MtrrDefType,
-    kCpumMsrWrFn_Ia32Pat,
-    kCpumMsrWrFn_Ia32SysEnterCs,
-    kCpumMsrWrFn_Ia32SysEnterEsp,
-    kCpumMsrWrFn_Ia32SysEnterEip,
-    kCpumMsrWrFn_Ia32McgStatus,
-    kCpumMsrWrFn_Ia32McgCtl,
-    kCpumMsrWrFn_Ia32DebugCtl,
-    kCpumMsrWrFn_Ia32SmrrPhysBase,
-    kCpumMsrWrFn_Ia32SmrrPhysMask,
-    kCpumMsrWrFn_Ia32PlatformDcaCap,
-    kCpumMsrWrFn_Ia32Dca0Cap,
-    kCpumMsrWrFn_Ia32PerfEvtSelN,           /**< Range value indicates the register number. */
-    kCpumMsrWrFn_Ia32PerfStatus,
-    kCpumMsrWrFn_Ia32PerfCtl,
-    kCpumMsrWrFn_Ia32FixedCtrN,             /**< Takes register number of start of range. */
-    kCpumMsrWrFn_Ia32PerfCapabilities,
-    kCpumMsrWrFn_Ia32FixedCtrCtrl,
-    kCpumMsrWrFn_Ia32PerfGlobalStatus,
-    kCpumMsrWrFn_Ia32PerfGlobalCtrl,
-    kCpumMsrWrFn_Ia32PerfGlobalOvfCtrl,
-    kCpumMsrWrFn_Ia32PebsEnable,
-    kCpumMsrWrFn_Ia32ClockModulation,
-    kCpumMsrWrFn_Ia32ThermInterrupt,
-    kCpumMsrWrFn_Ia32ThermStatus,
-    kCpumMsrWrFn_Ia32Therm2Ctl,
-    kCpumMsrWrFn_Ia32MiscEnable,
-    kCpumMsrWrFn_Ia32McCtlStatusAddrMiscN,  /**< Takes bank number. */
-    kCpumMsrWrFn_Ia32McNCtl2,               /**< Takes register number of start of range. */
-    kCpumMsrWrFn_Ia32DsArea,
-    kCpumMsrWrFn_Ia32TscDeadline,
-    kCpumMsrWrFn_Ia32X2ApicN,
-    kCpumMsrWrFn_Ia32DebugInterface,
-
-    kCpumMsrWrFn_Amd64Efer,
-    kCpumMsrWrFn_Amd64SyscallTarget,
-    kCpumMsrWrFn_Amd64LongSyscallTarget,
-    kCpumMsrWrFn_Amd64CompSyscallTarget,
-    kCpumMsrWrFn_Amd64SyscallFlagMask,
-    kCpumMsrWrFn_Amd64FsBase,
-    kCpumMsrWrFn_Amd64GsBase,
-    kCpumMsrWrFn_Amd64KernelGsBase,
-    kCpumMsrWrFn_Amd64TscAux,
-    kCpumMsrWrFn_IntelEblCrPowerOn,
-    kCpumMsrWrFn_IntelP4EbcHardPowerOn,
-    kCpumMsrWrFn_IntelP4EbcSoftPowerOn,
-    kCpumMsrWrFn_IntelP4EbcFrequencyId,
-    kCpumMsrWrFn_IntelFlexRatio,
-    kCpumMsrWrFn_IntelPkgCStConfigControl,
-    kCpumMsrWrFn_IntelPmgIoCaptureBase,
-    kCpumMsrWrFn_IntelLastBranchFromToN,
-    kCpumMsrWrFn_IntelLastBranchFromN,
-    kCpumMsrWrFn_IntelLastBranchToN,
-    kCpumMsrWrFn_IntelLastBranchTos,
-    kCpumMsrWrFn_IntelBblCrCtl,
-    kCpumMsrWrFn_IntelBblCrCtl3,
-    kCpumMsrWrFn_IntelI7TemperatureTarget,
-    kCpumMsrWrFn_IntelI7MsrOffCoreResponseN, /**< Takes register number. */
-    kCpumMsrWrFn_IntelI7MiscPwrMgmt,
-    kCpumMsrWrFn_IntelP6CrN,
-    kCpumMsrWrFn_IntelCpuId1FeatureMaskEcdx,
-    kCpumMsrWrFn_IntelCpuId1FeatureMaskEax,
-    kCpumMsrWrFn_IntelCpuId80000001FeatureMaskEcdx,
-    kCpumMsrWrFn_IntelI7SandyAesNiCtl,
-    kCpumMsrWrFn_IntelI7TurboRatioLimit,
-    kCpumMsrWrFn_IntelI7LbrSelect,
-    kCpumMsrWrFn_IntelI7SandyErrorControl,
-    kCpumMsrWrFn_IntelI7PowerCtl,
-    kCpumMsrWrFn_IntelI7SandyPebsNumAlt,
-    kCpumMsrWrFn_IntelI7PebsLdLat,
-    kCpumMsrWrFn_IntelI7SandyVrCurrentConfig,
-    kCpumMsrWrFn_IntelI7SandyVrMiscConfig,
-    kCpumMsrWrFn_IntelI7SandyPkgCnIrtlN,
-    kCpumMsrWrFn_IntelI7RaplPkgPowerLimit,
-    kCpumMsrWrFn_IntelI7RaplDramPowerLimit,
-    kCpumMsrWrFn_IntelI7RaplPp0PowerLimit,
-    kCpumMsrWrFn_IntelI7RaplPp0Policy,
-    kCpumMsrWrFn_IntelI7RaplPp1PowerLimit,
-    kCpumMsrWrFn_IntelI7RaplPp1Policy,
-    kCpumMsrWrFn_IntelI7IvyConfigTdpControl,
-    kCpumMsrWrFn_IntelI7IvyTurboActivationRatio,
-    kCpumMsrWrFn_IntelI7UncPerfGlobalCtrl,
-    kCpumMsrWrFn_IntelI7UncPerfGlobalStatus,
-    kCpumMsrWrFn_IntelI7UncPerfGlobalOvfCtrl,
-    kCpumMsrWrFn_IntelI7UncPerfFixedCtrCtrl,
-    kCpumMsrWrFn_IntelI7UncPerfFixedCtr,
-    kCpumMsrWrFn_IntelI7UncArbPerfCtrN,
-    kCpumMsrWrFn_IntelI7UncArbPerfEvtSelN,
-    kCpumMsrWrFn_IntelCore2EmttmCrTablesN,
-    kCpumMsrWrFn_IntelCore2SmmCStMiscInfo,
-    kCpumMsrWrFn_IntelCore1ExtConfig,
-    kCpumMsrWrFn_IntelCore1DtsCalControl,
-    kCpumMsrWrFn_IntelCore2PeciControl,
-
-    kCpumMsrWrFn_P6LastIntFromIp,
-    kCpumMsrWrFn_P6LastIntToIp,
-
-    kCpumMsrWrFn_AmdFam15hTscRate,
-    kCpumMsrWrFn_AmdFam15hLwpCfg,
-    kCpumMsrWrFn_AmdFam15hLwpCbAddr,
-    kCpumMsrWrFn_AmdFam10hMc4MiscN,
-    kCpumMsrWrFn_AmdK8PerfCtlN,
-    kCpumMsrWrFn_AmdK8PerfCtrN,
-    kCpumMsrWrFn_AmdK8SysCfg,
-    kCpumMsrWrFn_AmdK8HwCr,
-    kCpumMsrWrFn_AmdK8IorrBaseN,
-    kCpumMsrWrFn_AmdK8IorrMaskN,
-    kCpumMsrWrFn_AmdK8TopOfMemN,
-    kCpumMsrWrFn_AmdK8NbCfg1,
-    kCpumMsrWrFn_AmdK8McXcptRedir,
-    kCpumMsrWrFn_AmdK8CpuNameN,
-    kCpumMsrWrFn_AmdK8HwThermalCtrl,
-    kCpumMsrWrFn_AmdK8SwThermalCtrl,
-    kCpumMsrWrFn_AmdK8FidVidControl,
-    kCpumMsrWrFn_AmdK8McCtlMaskN,
-    kCpumMsrWrFn_AmdK8SmiOnIoTrapN,
-    kCpumMsrWrFn_AmdK8SmiOnIoTrapCtlSts,
-    kCpumMsrWrFn_AmdK8IntPendingMessage,
-    kCpumMsrWrFn_AmdK8SmiTriggerIoCycle,
-    kCpumMsrWrFn_AmdFam10hMmioCfgBaseAddr,
-    kCpumMsrWrFn_AmdFam10hTrapCtlMaybe,
-    kCpumMsrWrFn_AmdFam10hPStateControl,
-    kCpumMsrWrFn_AmdFam10hPStateStatus,
-    kCpumMsrWrFn_AmdFam10hPStateN,
-    kCpumMsrWrFn_AmdFam10hCofVidControl,
-    kCpumMsrWrFn_AmdFam10hCofVidStatus,
-    kCpumMsrWrFn_AmdFam10hCStateIoBaseAddr,
-    kCpumMsrWrFn_AmdFam10hCpuWatchdogTimer,
-    kCpumMsrWrFn_AmdK8SmmBase,
-    kCpumMsrWrFn_AmdK8SmmAddr,
-    kCpumMsrWrFn_AmdK8SmmMask,
-    kCpumMsrWrFn_AmdK8VmCr,
-    kCpumMsrWrFn_AmdK8IgnNe,
-    kCpumMsrWrFn_AmdK8SmmCtl,
-    kCpumMsrWrFn_AmdK8VmHSavePa,
-    kCpumMsrWrFn_AmdFam10hVmLockKey,
-    kCpumMsrWrFn_AmdFam10hSmmLockKey,
-    kCpumMsrWrFn_AmdFam10hLocalSmiStatus,
-    kCpumMsrWrFn_AmdFam10hOsVisWrkIdLength,
-    kCpumMsrWrFn_AmdFam10hOsVisWrkStatus,
-    kCpumMsrWrFn_AmdFam16hL2IPerfCtlN,
-    kCpumMsrWrFn_AmdFam16hL2IPerfCtrN,
-    kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtlN,
-    kCpumMsrWrFn_AmdFam15hNorthbridgePerfCtrN,
-    kCpumMsrWrFn_AmdK7MicrocodeCtl,
-    kCpumMsrWrFn_AmdK7ClusterIdMaybe,
-    kCpumMsrWrFn_AmdK8CpuIdCtlStd07hEbax,
-    kCpumMsrWrFn_AmdK8CpuIdCtlStd06hEcx,
-    kCpumMsrWrFn_AmdK8CpuIdCtlStd01hEdcx,
-    kCpumMsrWrFn_AmdK8CpuIdCtlExt01hEdcx,
-    kCpumMsrWrFn_AmdK8PatchLoader,
-    kCpumMsrWrFn_AmdK7DebugStatusMaybe,
-    kCpumMsrWrFn_AmdK7BHTraceBaseMaybe,
-    kCpumMsrWrFn_AmdK7BHTracePtrMaybe,
-    kCpumMsrWrFn_AmdK7BHTraceLimitMaybe,
-    kCpumMsrWrFn_AmdK7HardwareDebugToolCfgMaybe,
-    kCpumMsrWrFn_AmdK7FastFlushCountMaybe,
-    kCpumMsrWrFn_AmdK7NodeId,
-    kCpumMsrWrFn_AmdK7DrXAddrMaskN,      /**< Takes register index. */
-    kCpumMsrWrFn_AmdK7Dr0DataMatchMaybe,
-    kCpumMsrWrFn_AmdK7Dr0DataMaskMaybe,
-    kCpumMsrWrFn_AmdK7LoadStoreCfg,
-    kCpumMsrWrFn_AmdK7InstrCacheCfg,
-    kCpumMsrWrFn_AmdK7DataCacheCfg,
-    kCpumMsrWrFn_AmdK7BusUnitCfg,
-    kCpumMsrWrFn_AmdK7DebugCtl2Maybe,
-    kCpumMsrWrFn_AmdFam15hFpuCfg,
-    kCpumMsrWrFn_AmdFam15hDecoderCfg,
-    kCpumMsrWrFn_AmdFam10hBusUnitCfg2,
-    kCpumMsrWrFn_AmdFam15hCombUnitCfg,
-    kCpumMsrWrFn_AmdFam15hCombUnitCfg2,
-    kCpumMsrWrFn_AmdFam15hCombUnitCfg3,
-    kCpumMsrWrFn_AmdFam15hExecUnitCfg,
-    kCpumMsrWrFn_AmdFam15hLoadStoreCfg2,
-    kCpumMsrWrFn_AmdFam10hIbsFetchCtl,
-    kCpumMsrWrFn_AmdFam10hIbsFetchLinAddr,
-    kCpumMsrWrFn_AmdFam10hIbsFetchPhysAddr,
-    kCpumMsrWrFn_AmdFam10hIbsOpExecCtl,
-    kCpumMsrWrFn_AmdFam10hIbsOpRip,
-    kCpumMsrWrFn_AmdFam10hIbsOpData,
-    kCpumMsrWrFn_AmdFam10hIbsOpData2,
-    kCpumMsrWrFn_AmdFam10hIbsOpData3,
-    kCpumMsrWrFn_AmdFam10hIbsDcLinAddr,
-    kCpumMsrWrFn_AmdFam10hIbsDcPhysAddr,
-    kCpumMsrWrFn_AmdFam10hIbsCtl,
-    kCpumMsrWrFn_AmdFam14hIbsBrTarget,
-
-    /** End of valid MSR write function indexes. */
-    kCpumMsrWrFn_End
-} CPUMMSRWRFN;
 
 
