c119523edd68171530f1048c8366322463f1e86c
[efi/edk2/.git] / edk2 / IntelFrameworkModulePkg / Library / GenericBdsLib / InternalBdsLib.h
1 /** @file\r
2   BDS library definition, include the file and data structure\r
3 \r
4 Copyright (c) 2004 - 2009, Intel Corporation. <BR>\r
5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution.  The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9 \r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 \r
13 **/\r
14 \r
15 #ifndef _INTERNAL_BDS_LIB_H_\r
16 #define _INTERNAL_BDS_LIB_H_\r
17 \r
18 #include <FrameworkDxe.h>\r
19 \r
20 #include <IndustryStandard/Pci.h>\r
21 #include <IndustryStandard/PeImage.h>\r
22 \r
23 #include <Protocol/BlockIo.h>\r
24 #include <Protocol/LoadedImage.h>\r
25 #include <Protocol/Cpu.h>\r
26 #include <Protocol/SimpleFileSystem.h>\r
27 #include <Protocol/ManagedNetwork.h>\r
28 #include <Protocol/LoadFile.h>\r
29 #include <Protocol/DebugPort.h>\r
30 #include <Protocol/DevicePath.h>\r
31 #include <Protocol/SimpleTextIn.h>\r
32 #include <Protocol/LegacyBios.h>\r
33 #include <Protocol/SimpleTextOut.h>\r
34 #include <Protocol/SimpleNetwork.h>\r
35 #include <Protocol/DevicePathToText.h>\r
36 #include <Protocol/FirmwareVolume2.h>\r
37 #include <Protocol/PciIo.h>\r
38 #include <Protocol/AcpiS3Save.h>\r
39 #include <Protocol/OEMBadging.h>\r
40 #include <Protocol/GraphicsOutput.h>\r
41 #include <Protocol/UgaDraw.h>\r
42 #include <Protocol/HiiFont.h>\r
43 #include <Protocol/HiiImage.h>\r
44 \r
45 #include <Guid/MemoryTypeInformation.h>\r
46 #include <Guid/FileInfo.h>\r
47 #include <Guid/GlobalVariable.h>\r
48 #include <Guid/PcAnsi.h>\r
49 #include <Guid/Performance.h>\r
50 \r
51 #include <Library/PrintLib.h>\r
52 #include <Library/DebugLib.h>\r
53 #include <Library/BaseMemoryLib.h>\r
54 #include <Library/UefiBootServicesTableLib.h>\r
55 #include <Library/UefiLib.h>\r
56 #include <Library/MemoryAllocationLib.h>\r
57 #include <Library/DxeServicesTableLib.h>\r
58 #include <Library/UefiRuntimeServicesTableLib.h>\r
59 #include <Library/HobLib.h>\r
60 #include <Library/BaseLib.h>\r
61 #include <Library/DevicePathLib.h>\r
62 #include <Library/PerformanceLib.h>\r
63 #include <Library/PcdLib.h>\r
64 #include <Library/PeCoffGetEntryPointLib.h>\r
65 #include <Library/GenericBdsLib.h>\r
66 #include <Library/TimerLib.h>\r
67 #include <Library/PcdLib.h>\r
68 #include <Library/DxeServicesLib.h>\r
69 \r
70 #if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)\r
71     #if defined (MDE_CPU_EBC)\r
72         //\r
73         // Uefi specification only defines the default boot file name for IA32, X64\r
74         // and IPF processor, so need define boot file name for EBC architecture here.\r
75         //\r
76         #define EFI_REMOVABLE_MEDIA_FILE_NAME L"\\EFI\\BOOT\\BOOTEBC.EFI"\r
77     #else\r
78         #error "Can not determine the default boot file name for unknown processor type!"\r
79     #endif\r
80 #endif\r
81 \r
82 /**\r
83 \r
84   Allocates a block of memory and writes performance data of booting into it.\r
85   OS can processing these record.\r
86   \r
87 **/\r
88 VOID\r
89 WriteBootToOsPerformanceData (\r
90   VOID\r
91   );\r
92 \r
93 /**\r
94   Get the headers (dos, image, optional header) from an image\r
95 \r
96   @param  Device                SimpleFileSystem device handle\r
97   @param  FileName              File name for the image\r
98   @param  DosHeader             Pointer to dos header\r
99   @param  Hdr                   The buffer in which to return the PE32, PE32+, or TE header.\r
100 \r
101   @retval EFI_SUCCESS           Successfully get the machine type.\r
102   @retval EFI_NOT_FOUND         The file is not found.\r
103   @retval EFI_LOAD_ERROR        File is not a valid image file.\r
104 \r
105 **/\r
106 EFI_STATUS\r
107 EFIAPI\r
108 BdsLibGetImageHeader (\r
109   IN  EFI_HANDLE                  Device,\r
110   IN  CHAR16                      *FileName,\r
111   OUT EFI_IMAGE_DOS_HEADER        *DosHeader,\r
112   OUT EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION   Hdr\r
113   );\r
114 \r
115 #endif // _BDS_LIB_H_\r