]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/Guid/StatusCodeDataTypeId.h
Move those status code definitions that exactly match the PI 1.2 Specification from...
[mirror_edk2.git] / MdePkg / Include / Guid / StatusCodeDataTypeId.h
CommitLineData
b205f267 1/** @file\r
2 GUID used to identify id for the caller who is initiating the Status Code.\r
3\r
4 Copyright (c) 2006, 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
9\r
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
12\r
13 @par Revision Reference:\r
14 These GUIDs and structures are defined in UEFI Platform Initialization Specification 1.2 \r
15 Volume 3: Shared Architectural Elements\r
16\r
17**/\r
18\r
19#ifndef __PI_STATUS_CODE_DATA_TYPE_ID_GUID_H__\r
20#define __PI_STATUS_CODE_DATA_TYPE_ID_GUID_H__\r
21\r
22#include <PiDxe.h>\r
23#include <Protocol/DebugSupport.h>\r
24\r
25///\r
26/// Global ID for the EFI_STATUS_CODE_STRING structure\r
27///\r
28#define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \\r
29 { 0x92D11080, 0x496F, 0x4D95, { 0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A } }\r
30 \r
31#pragma pack(1)\r
32 \r
33typedef enum {\r
34 ///\r
35 /// A NULL-terminated ASCII string.\r
36 ///\r
37 EfiStringAscii,\r
38 ///\r
39 /// A double NULL-terminated Unicode string.\r
40 ///\r
41 EfiStringUnicode,\r
42 ///\r
43 /// An EFI_STATUS_CODE_STRING_TOKEN representing the string. The actual \r
44 /// string can be obtained by querying the HII Database\r
45 ///\r
46 EfiStringToken\r
47} EFI_STRING_TYPE;\r
48 \r
49///\r
50/// Specifies the format of the data in EFI_STATUS_CODE_STRING_DATA.String.\r
51///\r
52typedef struct {\r
53 ///\r
54 /// The HII package list which contains the string. Handle is a dynamic value that may\r
55 /// not be the same for different boots. Type EFI_HII_HANDLE is defined in\r
56 /// EFI_HII_DATABASE_PROTOCOL.NewPackageList() in the UEFI Specification.\r
57 ///\r
58 EFI_HII_HANDLE Handle;\r
59 ///\r
60 /// When combined with Handle, the string token can be used to retrieve the string.\r
61 /// Type EFI_STRING_ID is defined in EFI_IFR_OP_HEADER in the UEFI Specification.\r
62 ///\r
63 EFI_STRING_ID Token;\r
64} EFI_STATUS_CODE_STRING_TOKEN;\r
65 \r
66typedef union {\r
67 ///\r
68 /// ASCII formatted string.\r
69 ///\r
70 CHAR8 *Ascii;\r
71 ///\r
72 /// Unicode formatted string.\r
73 ///\r
74 CHAR16 *Unicode;\r
75 ///\r
76 /// HII handle/token pair.\r
77 ///\r
78 EFI_STATUS_CODE_STRING_TOKEN Hii;\r
79} EFI_STATUS_CODE_STRING;\r
80 \r
81///\r
82/// This data type defines a string type of extended data. A string can accompany \r
83/// any status code. The string can provide additional information about the \r
84/// status code. The string can be ASCII, Unicode, or a Human Interface Infrastructure \r
85/// (HII) token/GUID pair.\r
86///\r
87typedef struct {\r
88 ///\r
89 /// The data header identifying the data. DataHeader.HeaderSize should be\r
90 /// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be\r
91