1 /** @file 2 3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 EfiLdrHandoff.h 14 15 Abstract: 16 17 Revision History: 18 19 **/ 20 21 #ifndef _EFILDR_HANDOFF_H_ 22 #define _EFILDR_HANDOFF_H_ 23 24 #include <Base.h> 25 #include <Uefi.h> 26 27 #define EFILDR_BASE_SEGMENT 0x2000 28 #define EFILDR_LOAD_ADDRESS (EFILDR_BASE_SEGMENT << 4) 29 #define EFILDR_HEADER_ADDRESS (EFILDR_LOAD_ADDRESS+0x2000) 30 31 #define EFILDR_CB_VA 0x00 32 33 typedef struct _EFILDRHANDOFF { 34 UINTN MemDescCount; 35 EFI_MEMORY_DESCRIPTOR *MemDesc; 36 VOID *BfvBase; 37 UINTN BfvSize; 38 VOID *DxeIplImageBase; 39 UINTN DxeIplImageSize; 40 VOID *DxeCoreImageBase; 41 UINTN DxeCoreImageSize; 42 VOID *DxeCoreEntryPoint; 43 } EFILDRHANDOFF; 44 45 typedef struct { 46 UINT32 CheckSum; 47 UINT32 Offset; 48 UINT32 Length; 49 UINT8 FileName[52]; 50 } EFILDR_IMAGE; 51 52 typedef struct { 53 UINT32 Signature; 54 UINT32 HeaderCheckSum; 55 UINT32 FileLength; 56 UINT32 NumberOfImages; 57 } EFILDR_HEADER; 58 59 #endif 60