1 /** @file 2 Status code Runtime Protocol as defined in PI Specification 1.4a VOLUME 2 DXE 3 4 Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR> 5 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 **/ 14 15 #ifndef __STATUS_CODE_RUNTIME_PROTOCOL_H__ 16 #define __STATUS_CODE_RUNTIME_PROTOCOL_H__ 17 18 #define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \ 19 { 0xd2b2b828, 0x826, 0x48a7, { 0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0 } } 20 21 /** 22 Provides an interface that a software module can call to report a status code. 23 24 @param Type Indicates the type of status code being reported. 25 @param Value Describes the current status of a hardware or software entity. 26 This included information about the class and subclass that is used to 27 classify the entity as well as an operation. 28 @param Instance The enumeration of a hardware or software entity within 29 the system. Valid instance numbers start with 1. 30 @param CallerId This optional parameter may be used to identify the caller. 31 This parameter allows the status code driver to apply different rules to 32 different callers. 33 @param Data This optional parameter may be used to pass additional data. 34 35 @retval EFI_SUCCESS The function completed successfully 36 @retval EFI_DEVICE_ERROR The function should not be completed due to a device error. 37 38 **/ 39 typedef 40 EFI_STATUS 41 (EFIAPI *EFI_REPORT_STATUS_CODE)( 42 IN EFI_STATUS_CODE_TYPE Type, 43 IN EFI_STATUS_CODE_VALUE Value, 44 IN UINT32 Instance, 45 IN EFI_GUID *CallerId OPTIONAL, 46 IN EFI_STATUS_CODE_DATA *Data OPTIONAL 47 ); 48 49 /// 50 /// Provides the service required to report a status code to the platform firmware. 51 /// This protocol must be produced by a runtime DXE driver. 52 /// 53 typedef struct _EFI_STATUS_CODE_PROTOCOL { 54 EFI_REPORT_STATUS_CODE ReportStatusCode; 55 } EFI_STATUS_CODE_PROTOCOL; 56 57 extern EFI_GUID gEfiStatusCodeRuntimeProtocolGuid; 58 59 #endif 60