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 MtrrSetVariableMtrr ( IN MTRR_VARIABLE_SETTINGS *VariableSettings ) { MTRR_CONTEXT MtrrContext; if (!IsMtrrSupported ()) { return VariableSettings; } PreMtrrChange (&MtrrContext); MtrrSetVariableMtrrWorker (VariableSettings); PostMtrrChange (&MtrrContext); return VariableSettings; }
EFIAPI MtrrSetVariableMtrr ( IN MTRR_VARIABLE_SETTINGS *VariableSettings ) { UINTN Cr4; if (!IsMtrrSupported ()) { return VariableSettings; } Cr4 = PreMtrrChange (); MtrrSetVariableMtrrWorker (VariableSettings); PostMtrrChange (Cr4); return VariableSettings; }