EFIAPI MtrrSetAllMtrrs ( IN MTRR_SETTINGS *MtrrSetting ) { MTRR_CONTEXT MtrrContext; if (!IsMtrrSupported ()) { return MtrrSetting; } PreMtrrChange (&MtrrContext); // // Set fixed MTRRs // MtrrSetFixedMtrrWorker (&MtrrSetting->Fixed); // // Set variable MTRRs // MtrrSetVariableMtrrWorker (&MtrrSetting->Variables); // // Set MTRR_DEF_TYPE value // AsmWriteMsr64 (MTRR_LIB_IA32_MTRR_DEF_TYPE, MtrrSetting->MtrrDefType); PostMtrrChangeEnableCache (&MtrrContext); return MtrrSetting; }
EFIAPI MtrrSetAllMtrrs ( IN MTRR_SETTINGS *MtrrSetting ) { UINTN Cr4; if (!IsMtrrSupported ()) { return MtrrSetting; } Cr4 = PreMtrrChange (); // // Set fixed MTRRs // MtrrSetFixedMtrrWorker (&MtrrSetting->Fixed); // // Set variable MTRRs // MtrrSetVariableMtrrWorker (&MtrrSetting->Variables); // // Set MTRR_DEF_TYPE value // AsmWriteMsr64 (MTRR_LIB_IA32_MTRR_DEF_TYPE, MtrrSetting->MtrrDefType); PostMtrrChange (Cr4); return MtrrSetting; }
EFIAPI MtrrSetFixedMtrr ( IN MTRR_FIXED_SETTINGS *FixedSettings ) { MTRR_CONTEXT MtrrContext; if (!IsMtrrSupported ()) { return FixedSettings; } PreMtrrChange (&MtrrContext); MtrrSetFixedMtrrWorker (FixedSettings); PostMtrrChange (&MtrrContext); return FixedSettings; }
EFIAPI MtrrSetFixedMtrr ( IN MTRR_FIXED_SETTINGS *FixedSettings ) { UINTN Cr4; if (!IsMtrrSupported ()) { return FixedSettings; } Cr4 = PreMtrrChange (); MtrrSetFixedMtrrWorker (FixedSettings); PostMtrrChange (Cr4); return FixedSettings; }