]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Pi/PiHob.h
Fixed unicode file search path issue
[mirror_edk2.git] / MdePkg / Include / Pi / PiHob.h
CommitLineData
959ccb23 1/* @file\r
00edb218 2 HOB related definitions in PI.\r
959ccb23 3\r
00edb218
A
4 Copyright (c) 2006 - 2007, Intel Corporation \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
959ccb23 9\r
00edb218
A
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
959ccb23 12\r
00edb218
A
13 @par Revision Reference:\r
14 Version 1.0.\r
959ccb23 15\r
16**/\r
17\r
18#ifndef __PI_HOB_H__\r
19#define __PI_HOB_H__\r
20\r
21//\r
22// HobType of EFI_HOB_GENERIC_HEADER.\r
23// \r
00edb218
A
24#define EFI_HOB_TYPE_HANDOFF 0x0001\r
25#define EFI_HOB_TYPE_MEMORY_ALLOCATION 0x0002\r
26#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR 0x0003\r
27#define EFI_HOB_TYPE_GUID_EXTENSION 0x0004\r
28#define EFI_HOB_TYPE_FV 0x0005\r
29#define EFI_HOB_TYPE_CPU 0x0006\r
30#define EFI_HOB_TYPE_MEMORY_POOL 0x0007\r
31#define EFI_HOB_TYPE_FV2 0x0009\r
32#define EFI_HOB_TYPE_LOAD_PEIM 0x000A\r
33#define EFI_HOB_TYPE_UNUSED 0xFFFE\r
34#define EFI_HOB_TYPE_END_OF_HOB_LIST 0xFFFF\r
959ccb23 35\r
36//\r
37// Describes the format and size of the data inside the HOB. \r
38// All HOBs must contain this generic HOB header.\r
39// \r
00edb218
A
40typedef struct {\r
41 UINT16 HobType;\r
42 UINT16 HobLength;\r
43 UINT32 Reserved;\r
959ccb23 44} EFI_HOB_GENERIC_HEADER;\r
45\r
46\r
47//\r
48// Value of version ofinEFI_HOB_HANDOFF_INFO_TABLE.\r
49// \r
50#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009\r
51//\r
52// Contains general state information used by the HOB producer phase. \r
53// This HOB must be the first one in the HOB list.\r
54// \r
00edb218
A
55typedef struct {\r
56 EFI_HOB_GENERIC_HEADER Header;\r
57 UINT32 Version;\r
58 EFI_BOOT_MODE BootMode;\r
59 EFI_PHYSICAL_ADDRESS EfiMemoryTop;\r
60 EFI_PHYSICAL_ADDRESS EfiMemoryBottom;\r
61 EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;\r
62 EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;\r
63 EFI_PHYSICAL_ADDRESS EfiEndOfHobList;\r
959ccb23 64} EFI_HOB_HANDOFF_INFO_TABLE;\r
65\r
66\r
00edb218
A
67typedef struct {\r
68 EFI_GUID Name;\r
69 EFI_PHYSICAL_ADDRESS MemoryBaseAddress;\r
70 UINT64 MemoryLength;\r
71 EFI_MEMORY_TYPE MemoryType;\r
72\r
73 //\r
74 // Padding for Itanium processor family\r
75 // \r
76 UINT8 Reserved[4];\r
959ccb23 77} EFI_HOB_MEMORY_ALLOCATION_HEADER;\r
78\r
79//\r
80// Describes all memory ranges used during the HOB producer \r
81// phase that exist outside the HOB list. This HOB type \r
82// describes how memory is used, \r
83// not the physical attributes of memory.\r
84// \r
00edb218
A
85typedef struct {\r
86 EFI_HOB_GENERIC_HEADER Header;\r
87 EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;\r
88 //\r
89