• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   Include file matches things in PI for multiple module types.
3 
4   Copyright (c) 2006 - 2008, 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_MULTIPHASE_H__
19 #define __PI_MULTIPHASE_H__
20 
21 #include <gpxe/efi/Uefi/UefiMultiPhase.h>
22 
23 #include <gpxe/efi/Pi/PiFirmwareVolume.h>
24 #include <gpxe/efi/Pi/PiFirmwareFile.h>
25 #include <gpxe/efi/Pi/PiBootMode.h>
26 
27 #include <gpxe/efi/Pi/PiHob.h>
28 #include <gpxe/efi/Pi/PiDependency.h>
29 
30 
31 #define EFI_NOT_AVAILABLE_YET   EFIERR (32)
32 
33 ///
34 /// Status Code Type Definition
35 ///
36 typedef UINT32  EFI_STATUS_CODE_TYPE;
37 
38 //
39 // A Status Code Type is made up of the code type and severity
40 // All values masked by EFI_STATUS_CODE_RESERVED_MASK are
41 // reserved for use by this specification.
42 //
43 #define EFI_STATUS_CODE_TYPE_MASK     0x000000FF
44 #define EFI_STATUS_CODE_SEVERITY_MASK 0xFF000000
45 #define EFI_STATUS_CODE_RESERVED_MASK 0x00FFFF00
46 
47 //
48 // Definition of code types, all other values masked by
49 // EFI_STATUS_CODE_TYPE_MASK are reserved for use by
50 // this specification.
51 //
52 #define EFI_PROGRESS_CODE             0x00000001
53 #define EFI_ERROR_CODE                0x00000002
54 #define EFI_DEBUG_CODE                0x00000003
55 
56 //
57 // Definitions of severities, all other values masked by
58 // EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
59 // this specification.
60 // Uncontained errors are major errors that could not contained
61 // to the specific component that is reporting the error
62 // For example, if a memory error was not detected early enough,
63 // the bad data could be consumed by other drivers.
64 //
65 #define EFI_ERROR_MINOR               0x40000000
66 #define EFI_ERROR_MAJOR               0x80000000
67 #define EFI_ERROR_UNRECOVERED         0x90000000
68 #define EFI_ERROR_UNCONTAINED         0xa0000000
69 
70 ///
71 /// Status Code Value Definition
72 ///
73 typedef UINT32 EFI_STATUS_CODE_VALUE;
74 
75 //
76 // A Status Code Value is made up of the class, subclass, and
77 // an operation.
78 //
79 #define EFI_STATUS_CODE_CLASS_MASK      0xFF000000
80 #define EFI_STATUS_CODE_SUBCLASS_MASK   0x00FF0000
81 #define EFI_STATUS_CODE_OPERATION_MASK  0x0000FFFF
82 
83 ///
84 /// Definition of Status Code extended data header.
85 /// The data will follow HeaderSize bytes from the beginning of
86 /// the structure and is Size bytes long.
87 ///
88 typedef struct {
89   UINT16    HeaderSize;
90   UINT16    Size;
91   EFI_GUID  Type;
92 } EFI_STATUS_CODE_DATA;
93 
94 
95 //
96 // Bit values for Authentication Status
97 //
98 #define EFI_AUTH_STATUS_PLATFORM_OVERRIDE   0x01
99 #define EFI_AUTH_STATUS_IMAGE_SIGNED        0x02
100 #define EFI_AUTH_STATUS_NOT_TESTED          0x04
101 #define EFI_AUTH_STATUS_TEST_FAILED         0x08
102 #define EFI_AUTH_STATUS_ALL                 0x0f
103 
104 #endif
105