]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkModulePkg/Library/GenericBdsLib/Ipf/ShadowRom.c
28af4fd7ead6ad048a6d151db0a2add94def98e8
[mirror_edk2.git] / IntelFrameworkModulePkg / Library / GenericBdsLib / Ipf / ShadowRom.c
1 /** @file
2 Shadow all option rom
3
4 Copyright (c) 2004 - 2010, Intel Corporation. <BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #include "InternalBdsLib.h"
16
17 UINT8 mShadowRomFlag = 0;
18
19 /**
20 Shadow all opton ROM if the it is not done.
21 **/
22 VOID
23 EFIAPI
24 ShadowAllOptionRom(
25 VOID
26 )
27 {
28 EFI_STATUS Status;
29 EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;
30 //
31 // Rom shadow only do once.
32 //
33 if (mShadowRomFlag == 0) {
34 Status = gBS->LocateProtocol (
35 &gEfiLegacyBiosProtocolGuid,
36 NULL,
37 (VOID **) &LegacyBios
38 );
39 if (!EFI_ERROR (Status)) {
40 LegacyBios->PrepareToBootEfi (LegacyBios, NULL, NULL);
41 }
42
43 mShadowRomFlag = 1;
44 }
45
46 return ;
47 }