878ddf1f |
1 | /** @file\r |
2 | Status code Runtime Protocol as defined in the DXE CIS\r |
3 | \r |
4 | The StatusCode () Tiano service is added to the EFI system table and the \r |
5 | EFI_STATUS_CODE_ARCH_PROTOCOL_GUID protocol is registered with a NULL \r |
6 | pointer.\r |
7 | \r |
8 | No CRC of the EFI system table is required, as it is done in the DXE core.\r |
9 | \r |
10 | This code abstracts Status Code reporting.\r |
11 | \r |
12 | Copyright (c) 2006, Intel Corporation \r |
13 | All rights reserved. This program and the accompanying materials \r |
14 | are licensed and made available under the terms and conditions of the BSD License \r |
15 | which accompanies this distribution. The full text of the license may be found at \r |
16 | http://opensource.org/licenses/bsd-license.php \r |
17 | \r |
18 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r |
19 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r |
20 | \r |
21 | Module Name: StatusCode.h\r |
22 | \r |
23 | @par Revision Reference:\r |
24 | Version 0.91B.\r |
25 | \r |
26 | **/\r |
27 | \r |
28 | #ifndef __STATUS_CODE_RUNTIME_PROTOCOL_H__\r |
29 | #define __STATUS_CODE_RUNTIME_PROTOCOL_H__\r |
30 | \r |
31 | #define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \\r |
32 | { 0xd2b2b828, 0x826, 0x48a7, { 0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0 } }\r |
33 | \r |
34 | /**\r |
35 | Provides an interface that a software module can call to report a status code.\r |
36 | \r |
37 | @param Type Indicates the type of status code being reported.\r |
38 | \r |
39 | @param Value Describes the current status of a hardware or software entity.\r |
40 | This included information about the class and subclass that is used to \r |
41 | classify the entity as well as an operation.\r |
42 | \r |
43 | @param Instance The enumeration of a hardware or software entity within \r |
44 | the system. Valid instance numbers start with 1.\r |
45 | \r |
46 | @param CallerId This optional parameter may be used to identify the caller.\r |
47 | This parameter allows the status code driver to apply different rules to \r |
48 | different callers.\r |
49 | \r |
50 | @param Data This optional parameter may be used to pass additional data.\r |
51 | \r |
52 | @retval EFI_SUCCESS The function completed successfully\r |
53 | \r |
54 | @retval EFI_DEVICE_ERROR The function should not be completed due to a device error.\r |
55 | \r |
56 | **/\r |
57 | typedef\r |
58 | EFI_STATUS \r |
59 | (EFIAPI *EFI_REPORT_STATUS_CODE) (\r |
60 | IN EFI_STATUS_CODE_TYPE Type,\r |
61 | IN EFI_STATUS_CODE_VALUE Value,\r |
62 | IN UINT32 Instance,\r |
63 | IN EFI_GUID *CallerId OPTIONAL,\r |
64 | IN EFI_STATUS_CODE_DATA *Data OPTIONAL\r |
65 | );\r |
66 | \r |
67 | /**\r |
68 | @par Protocol Description:\r |
69 | Provides the service required to report a status code to the platform firmware.\r |
70 | This protocol must be produced by a runtime DXE driver and may be consumed \r |
71 | only by the DXE Foundation.\r |
72 | \r |
73 | @param ReportStatusCode Emit a status code.\r |
74 | \r |
75 | **/\r |
76 | typedef struct _EFI_STATUS_CODE_PROTOCOL {\r |
77 | EFI_REPORT_STATUS_CODE ReportStatusCode;\r |
78 | } EFI_STATUS_CODE_PROTOCOL;\r |
79 | \r |
80 | extern EFI_GUID gEfiStatusCodeRuntimeProtocolGuid;\r |
81 | \r |
82 | #endif\r |