]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h
MdeModulePkg SmiHandlerProfile: Use fixed data type in data structure
[mirror_edk2.git] / MdeModulePkg / Include / Guid / MemoryStatusCodeRecord.h
1 /** @file
2 GUID used to identify status code records HOB that originate from the PEI status code.
3
4 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
6 This program and the accompanying materials are licensed and made available under
7 the terms and conditions of the BSD License that accompanies this distribution.
8 The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __MEMORY_STATUS_CODE_RECORD_H__
17 #define __MEMORY_STATUS_CODE_RECORD_H__
18
19 ///
20 /// Global ID used to identify GUIDed HOBs that start with a structure of type
21 /// MEMORY_STATUSCODE_PACKET_HEADER, followed by an array of structures of type
22 /// MEMORY_STATUSCODE_RECORD. These GUIDed HOBs record all the information
23 /// passed into the ReportStatusCode() service of PEI Services Table.
24 ///
25 /// <pre>
26 /// Memory status code records packet structure :
27 /// +---------------+----------+----------+-----+----------+-----+----------+
28 /// | Packet Header | Record 1 | Record 2 | ... + Record n | ... | Record m |
29 /// +---------------+----------+----------+-----+----------+-----+----------+
30 /// ^ ^ ^
31 /// +--------- RecordIndex -----------+ |
32 /// +---------------- MaxRecordsNumber----------------------+
33 /// </pre>
34 ///
35 #define MEMORY_STATUS_CODE_RECORD_GUID \
36 { \
37 0x60cc026, 0x4c0d, 0x4dda, {0x8f, 0x41, 0x59, 0x5f, 0xef, 0x0, 0xa5, 0x2} \
38 }
39
40 ///
41 /// A header structure that is followed by an array of records that contain the
42 /// parameters passed into the ReportStatusCode() service in the PEI Services Table.
43 ///
44 typedef struct {
45 ///
46 /// Index of the packet.
47 ///
48 UINT16 PacketIndex;
49 ///
50 /// The number of active records in the packet.
51 ///
52 UINT16 RecordIndex;
53 ///
54 /// The maximum number of records that the packet can store.
55 ///
56 UINT32 MaxRecordsNumber;
57 } MEMORY_STATUSCODE_PACKET_HEADER;
58
59 ///
60 /// A header structure that is followed by an array of records that contain the
61 /// parameters passed into the ReportStatusCode() service in the DXE Services Table.
62 ///
63 typedef struct {
64 ///
65 /// The index pointing to the last recored being stored.
66 ///
67 UINT32 RecordIndex;
68 ///
69 /// The number of records being stored.
70 ///
71 UINT32 NumberOfRecords;
72 ///
73 /// The maximum number of records that can be stored.
74 ///
75 UINT32 MaxRecordsNumber;
76 } RUNTIME_MEMORY_STATUSCODE_HEADER;
77
78 ///
79 /// A structure that contains the parameters passed into the ReportStatusCode()
80 /// service in the PEI Services Table.
81 ///
82 typedef struct {
83 ///
84 /// Status Code type to be reported.
85 ///
86 EFI_STATUS_CODE_TYPE CodeType;
87
88 ///
89 /// An operation, plus value information about the class and subclass, used to
90 /// classify the hardware and software entity.
91 ///
92 EFI_STATUS_CODE_VALUE Value;
93
94 ///
95 /// The enumeration of a hardware or software entity within
96 /// the system. Valid instance numbers start with the number 1.
97 ///
98 UINT32 Instance;
99 } MEMORY_STATUSCODE_RECORD;
100
101 extern EFI_GUID gMemoryStatusCodeRecordGuid;
102
103 #endif