blob: 9bbe94e3f9dab1306775d09e7e9ed01fe5721ddd [file] [log] [blame]
Vishal Bhoj82c80712015-12-15 21:13:33 +05301/** @file
2
3Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4This program and the accompanying materials
5are licensed and made available under the terms and conditions of the BSD License
6which accompanies this distribution. The full text of the license may be found at
7http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13 EfiLdrHandoff.h
14
15Abstract:
16
17Revision 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
33typedef 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
45typedef struct {
46 UINT32 CheckSum;
47 UINT32 Offset;
48 UINT32 Length;
49 UINT8 FileName[52];
50} EFILDR_IMAGE;
51
52typedef struct {
53 UINT32 Signature;
54 UINT32 HeaderCheckSum;
55 UINT32 FileLength;
56 UINT32 NumberOfImages;
57} EFILDR_HEADER;
58
59#endif