Home | History | Annotate | Download | only in Guid
      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 This program and the accompanying materials are licensed and made available under
      6 the terms and conditions of the BSD License that accompanies this distribution.
      7 The full text of the license may be found at
      8 http://opensource.org/licenses/bsd-license.php.
      9 
     10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef __MEMORY_STATUS_CODE_RECORD_H__
     16 #define __MEMORY_STATUS_CODE_RECORD_H__
     17 
     18 ///
     19 /// Global ID used to identify GUIDed HOBs that start with a structure of type
     20 /// MEMORY_STATUSCODE_PACKET_HEADER, followed by an array of structures of type
     21 /// MEMORY_STATUSCODE_RECORD.  These GUIDed HOBs record all the information
     22 /// passed into the ReportStatusCode() service of PEI Services Table.
     23 ///
     24 ///  <pre>
     25 ///  Memory status code records packet structure :
     26 ///  +---------------+----------+----------+-----+----------+-----+----------+
     27 ///  | Packet Header | Record 1 | Record 2 | ... + Record n | ... | Record m |
     28 ///  +---------------+----------+----------+-----+----------+-----+----------+
     29 ///                  ^                                 ^                     ^
     30 ///                  +--------- RecordIndex -----------+                     |
     31 ///                  +---------------- MaxRecordsNumber----------------------+
     32 ///  </pre>
     33 ///
     34 #define MEMORY_STATUS_CODE_RECORD_GUID \
     35   { \
     36     0x60cc026, 0x4c0d, 0x4dda, {0x8f, 0x41, 0x59, 0x5f, 0xef, 0x0, 0xa5, 0x2} \
     37   }
     38 
     39 ///
     40 /// A header structure that is followed by an array of records that contain the
     41 /// parameters passed into the ReportStatusCode() service in the PEI Services Table.
     42 ///
     43 typedef struct {
     44   ///
     45   /// Index of the packet.
     46   ///
     47   UINT16  PacketIndex;
     48   ///
     49   /// The number of active records in the packet.
     50   ///
     51   UINT16  RecordIndex;
     52   ///
     53   /// The maximum number of records that the packet can store.
     54   ///
     55   UINT32  MaxRecordsNumber;
     56 } MEMORY_STATUSCODE_PACKET_HEADER;
     57 
     58 ///
     59 /// A structure that contains the parameters passed into the ReportStatusCode()
     60 /// service in the PEI Services Table.
     61 ///
     62 typedef struct {
     63   ///
     64   /// Status Code type to be reported.
     65   ///
     66   EFI_STATUS_CODE_TYPE   CodeType;
     67 
     68   ///
     69   /// An operation, plus value information about the class and subclass, used to
     70   /// classify the hardware and software entity.
     71   ///
     72   EFI_STATUS_CODE_VALUE  Value;
     73 
     74   ///
     75   /// The enumeration of a hardware or software entity within
     76   /// the system. Valid instance numbers start with the number 1.
     77   ///
     78   UINT32                 Instance;
     79 } MEMORY_STATUSCODE_RECORD;
     80 
     81 extern EFI_GUID gMemoryStatusCodeRecordGuid;
     82 
     83 #endif
     84