diff options
Diffstat (limited to 'MdeModulePkg/Library/GenericBdsLib/Ipf/ShadowRom.c')
-rw-r--r-- | MdeModulePkg/Library/GenericBdsLib/Ipf/ShadowRom.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/MdeModulePkg/Library/GenericBdsLib/Ipf/ShadowRom.c b/MdeModulePkg/Library/GenericBdsLib/Ipf/ShadowRom.c new file mode 100644 index 0000000000..b1bec9db6e --- /dev/null +++ b/MdeModulePkg/Library/GenericBdsLib/Ipf/ShadowRom.c @@ -0,0 +1,56 @@ +/** @file + +Copyright (c) 2004, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + ShadowRom.c + +Abstract: + + Shadow all option rom + +Revision History + + +**/ + +//@MT:#include "Tiano.h" +//@MT:#include "EfiDriverLib.h" + +//@MT:#include EFI_PROTOCOL_DEFINITION (LegacyBios) + +#include "InternalBdsLib.h" + +UINT8 mShadowRomFlag = 0; + +VOID +ShadowAllOptionRom() +{ + EFI_STATUS Status; + EFI_LEGACY_BIOS_PROTOCOL *LegacyBios; + // + // Rom shadow only do once. + // + if (mShadowRomFlag == 0) { + Status = gBS->LocateProtocol ( + &gEfiLegacyBiosProtocolGuid, + NULL, + (VOID **) &LegacyBios + ); + if (!EFI_ERROR (Status)) { + LegacyBios->PrepareToBootEfi (LegacyBios, NULL, NULL); + } + + mShadowRomFlag = 1; + } + + return ; +} |