1 /*++ 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 #define EFILDR_BASE_SEGMENT 0x2000 25 #define EFILDR_LOAD_ADDRESS (EFILDR_BASE_SEGMENT << 4) 26 #define EFILDR_HEADER_ADDRESS (EFILDR_LOAD_ADDRESS+0x2000) 27 28 #define EFILDR_CB_VA 0x00 29 30 typedef struct _EFILDRHANDOFF { 31 UINTN MemDescCount; 32 EFI_MEMORY_DESCRIPTOR *MemDesc; 33 VOID *BfvBase; 34 UINTN BfvSize; 35 VOID *DxeIplImageBase; 36 UINTN DxeIplImageSize; 37 VOID *DxeCoreImageBase; 38 UINTN DxeCoreImageSize; 39 VOID *DxeCoreEntryPoint; 40 } EFILDRHANDOFF; 41 42 typedef struct { 43 UINT32 CheckSum; 44 UINT32 Offset; 45 UINT32 Length; 46 UINT8 FileName[52]; 47 } EFILDR_IMAGE; 48 49 typedef struct { 50 UINT32 Signature; 51 UINT32 HeaderCheckSum; 52 UINT32 FileLength; 53 UINT32 NumberOfImages; 54 } EFILDR_HEADER; 55 56 #endif 57