Home | History | Annotate | Download | only in Protocol
      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