]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Pi/PiStatusCode.h
to fill the gap between PI1.0 and code to fix the bug #202435
[mirror_edk2.git] / MdePkg / Include / Pi / PiStatusCode.h
1 /** @file
2 StatusCode related definitions in PI.
3
4 Copyright (c) 2009, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. 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 @par Revision Reference:
14 PI Version 1.0
15
16 **/
17
18 #ifndef __PI_STATUS_CODE_H__
19 #define __PI_STATUS_CODE_H__
20
21 ///
22 /// Status Code Type Definition
23 ///
24 typedef UINT32 EFI_STATUS_CODE_TYPE;
25
26 //
27 // A Status Code Type is made up of the code type and severity
28 // All values masked by EFI_STATUS_CODE_RESERVED_MASK are
29 // reserved for use by this specification.
30 //
31 #define EFI_STATUS_CODE_TYPE_MASK 0x000000FF
32 #define EFI_STATUS_CODE_SEVERITY_MASK 0xFF000000
33 #define EFI_STATUS_CODE_RESERVED_MASK 0x00FFFF00
34
35 //
36 // Definition of code types, all other values masked by
37 // EFI_STATUS_CODE_TYPE_MASK are reserved for use by
38 // this specification.
39 //
40 #define EFI_PROGRESS_CODE 0x00000001
41 #define EFI_ERROR_CODE 0x00000002
42 #define EFI_DEBUG_CODE 0x00000003
43
44 //
45 // Definitions of severities, all other values masked by
46 // EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
47 // this specification.
48 // Uncontained errors are major errors that could not contained
49 // to the specific component that is reporting the error
50 // For example, if a memory error was not detected early enough,
51 // the bad data could be consumed by other drivers.
52 //
53 #define EFI_ERROR_MINOR 0x40000000
54 #define EFI_ERROR_MAJOR 0x80000000
55 #define EFI_ERROR_UNRECOVERED 0x90000000
56 #define EFI_ERROR_UNCONTAINED 0xa0000000
57
58 ///
59 /// Status Code Value Definition
60 ///
61 typedef UINT32 EFI_STATUS_CODE_VALUE;
62
63 //
64 // A Status Code Value is made up of the class, subclass, and
65 // an operation.
66 //
67 #define EFI_STATUS_CODE_CLASS_MASK 0xFF000000
68 #define EFI_STATUS_CODE_SUBCLASS_MASK 0x00FF0000
69 #define EFI_STATUS_CODE_OPERATION_MASK 0x0000FFFF
70
71 ///
72 /// Definition of Status Code extended data header.
73 /// The data will follow HeaderSize bytes from the beginning of
74 /// the structure and is Size bytes long.
75 ///
76 typedef struct {
77 ///
78 /// The size of the structure. This is specified to enable future expansion.
79 ///
80 UINT16 HeaderSize;
81 ///
82 /// The size of the data in bytes. This does not include the size of the header structure.
83 ///
84 UINT16 Size;
85 ///
86 /// The GUID defining the type of the data.
87 ///
88 EFI_GUID Type;
89 } EFI_STATUS_CODE_DATA;
90
91
92 ///
93 /// Bit values for Authentication Status
94 ///
95 /// xx00 Image was not signed.
96 /// xxx1 Platform security policy override. Assumes same meaning as 0010 (the image was signed, the
97 /// signature was tested, and the signature passed authentication test).
98 /// 0010 Image was signed, the signature was tested, and the signature passed authentication test.
99 /// 0110 Image was signed and the signature was not tested.
100 /// 1010 Image was signed, the signature was tested, and the signature failed the authentication test.
101 ///
102 #define EFI_AUTH_STATUS_PLATFORM_OVERRIDE 0x01
103 #define EFI_AUTH_STATUS_IMAGE_SIGNED 0x02
104 #define EFI_AUTH_STATUS_NOT_TESTED 0x04
105 #define EFI_AUTH_STATUS_TEST_FAILED 0x08
106 #define EFI_AUTH_STATUS_ALL 0x0f
107
108 #endif