-/*++\r
-\r
+/**@file\r
+ Header file of DxeCore\r
+ \r
Copyright (c) 2006 - 2007, Intel Corporation \r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
\r
-Module Name:\r
-\r
- DxeMain.h\r
-\r
-Abstract:\r
-\r
-Revision History\r
-\r
---*/\r
+**/\r
\r
#ifndef _DXE_MAIN_H_\r
#define _DXE_MAIN_H_\r
\r
\r
#include <PiDxe.h>\r
-#include <FrameworkPei.h>\r
\r
#include <Protocol/LoadedImage.h>\r
#include <Protocol/GuidedSectionExtraction.h>\r
-#include <Protocol/SectionExtraction.h>\r
#include <Guid/DebugImageInfoTable.h>\r
#include <Protocol/DevicePath.h>\r
#include <Protocol/Runtime.h>\r
#include <Protocol/Capsule.h>\r
#include <Protocol/BusSpecificDriverOverride.h>\r
#include <Protocol/Performance.h>\r
-#include <Guid/StatusCodeDataTypeId.h>\r
\r
#include <Library/DxeCoreEntryPoint.h>\r
#include <Library/DebugLib.h>\r
#include <Library/HobLib.h>\r
#include <Library/PerformanceLib.h>\r
#include <Library/UefiDecompressLib.h>\r
-#include <Library/CustomDecompressLib.h>\r
-#include <Library/PeCoffLoaderLib.h>\r
+#include <Library/ExtractGuidedSectionLib.h>\r
#include <Library/CacheMaintenanceLib.h>\r
#include <Library/BaseMemoryLib.h>\r
+#include <Library/PeCoffLib.h>\r
+#include <Library/PcdLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
\r
#include "DebugImageInfo.h"\r
#include "Library.h"\r
BOOLEAN Present;\r
} ARCHITECTURAL_PROTOCOL_ENTRY;\r
\r
+typedef struct {\r
+ EFI_STATUS_CODE_DATA DataHeader;\r
+ EFI_HANDLE Handle;\r
+} EFI_DXE_DEVICE_HANDLE_EXTENDED_DATA;\r
+\r
+#define EFI_STATUS_CODE_DXE_CORE_GUID \\r
+ { 0x335984bd, 0xe805, 0x409a, { 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 } }\r
\r
//\r
// DXE Dispatcher Data structures\r
extern EFI_HANDLE gDxeCoreImageHandle;\r
\r
extern EFI_DECOMPRESS_PROTOCOL gEfiDecompress;\r
-extern EFI_PEI_PE_COFF_LOADER_PROTOCOL *gEfiPeiPeCoffLoader;\r
\r
extern EFI_RUNTIME_ARCH_PROTOCOL *gRuntime;\r
extern EFI_CPU_ARCH_PROTOCOL *gCpu;\r
\r
EFI_STATUS\r
CoreInitializeGcdServices (\r
- IN VOID **HobStart,\r
+ IN OUT VOID **HobStart,\r
IN EFI_PHYSICAL_ADDRESS MemoryBaseAddress,\r
IN UINT64 MemoryLength\r
)\r
memory map, so memory allocations and resource allocations can be made. The first\r
part of this function can not depend on any memory services until at least one\r
memory descriptor is provided to the memory services. Then the memory services\r
- can be used to intialize the GCD map.\r
+ can be used to intialize the GCD map. The HobStart will be relocated to a pool\r
+ buffer.\r
\r
Arguments:\r
\r
\r
Routine Description:\r
\r
- EFI 1.0 API to terminate Boot Services\r
+ UEFI 2.0 API to terminate Boot Services\r
\r
Arguments:\r
\r
IN UINT32 ScratchSize\r
);\r
\r
+EFI_STATUS\r
+EFIAPI\r
+OpenSectionStream (\r
+ IN UINTN SectionStreamLength,\r
+ IN VOID *SectionStream,\r
+ OUT UINTN *SectionStreamHandle\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+GetSection (\r
+ IN UINTN SectionStreamHandle,\r
+ IN EFI_SECTION_TYPE *SectionType,\r
+ IN EFI_GUID *SectionDefinitionGuid,\r
+ IN UINTN SectionInstance,\r
+ IN VOID **Buffer,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT UINT32 *AuthenticationStatus\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+CloseSectionStream (\r
+ IN UINTN StreamHandleToClose\r
+ );\r
+\r
#endif\r