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