Ryzen/AmiModulePkg/AmiStatusCode/StatusCodeInt.h
2022-12-23 15:14:44 +08:00

124 lines
4.1 KiB
C

//***********************************************************************
//* *
//* Copyright (c) 1985-2020, American Megatrends International LLC. *
//* *
//* All rights reserved. Subject to AMI licensing agreement. *
//* *
//***********************************************************************
/** @file StatusCodeInt.h
NVRAM Definitions
**/
//**********************************************************************
#ifndef __StatusCode__H__
#define __StatusCode__H__
#ifdef __cplusplus
extern "C" {
#endif
#include <StatusCodeElinks.h>
#include <Protocol/ReportStatusCodeHandler.h>
#include <Guid/StatusCodeDataTypeDebug.h>
#include <Library/SynchronizationLib.h>
#include <Library/BaseMemoryLib.h>
typedef struct {
EFI_STATUS_CODE_DATA Header;
EFI_DEBUG_INFO DebugInfo;
UINT64 VariableArguments[12];
UINT8 String[2048];
} AMI_STATUS_CODE_BUFFER;
typedef struct
{
EFI_STATUS_CODE_VALUE Value;
UINT8 Byte;
} STATUS_CODE_TO_BYTE_MAP;
typedef VOID (ERROR_CODE_ACTION)(
IN VOID *PeiServices, IN EFI_STATUS_CODE_VALUE Value
);
typedef struct
{
EFI_STATUS_CODE_VALUE Value;
ERROR_CODE_ACTION *Action;
} ERROR_CODE_ACTION_MAP;
#define STATUS_CODE_TYPE(Type) ((Type)&EFI_STATUS_CODE_TYPE_MASK)
UINT8 FindByteCode(STATUS_CODE_TO_BYTE_MAP *Map, EFI_STATUS_CODE_VALUE Value);
EFI_STATUS AmiReportStatusCode (
IN VOID *PeiServices,
IN EFI_STATUS_CODE_TYPE Type, IN EFI_STATUS_CODE_VALUE Value,
IN UINT32 Instance, IN EFI_GUID *CallerId OPTIONAL,
IN EFI_STATUS_CODE_DATA *Data OPTIONAL, UINT8 *String
);
VOID InitStatusCodeParts(IN VOID *ImageHandler, IN VOID *ServicesTable);
VOID ResetOrResume(IN VOID *PeiServices, IN EFI_STATUS_CODE_VALUE Value);
typedef struct {
EFI_STATUS_CODE_TYPE Type;
EFI_STATUS_CODE_VALUE Value;
UINT32 Instance;
UINT32 Reserved;
EFI_GUID CallerId;
EFI_STATUS_CODE_DATA Data;
} RSC_DATA_ENTRY;
typedef struct {
EFI_RSC_HANDLER_CALLBACK RscHandlerCallback;
EFI_TPL Tpl;
EFI_EVENT Event;
EFI_PHYSICAL_ADDRESS StatusCodeDataBuffer;
UINTN BufferSize;
EFI_PHYSICAL_ADDRESS EndPointer;
} RSC_HANDLER_CALLBACK_ENTRY;
typedef struct {
UINT32 RegisteredEntries;
UINT32 TotalEntries;
} ROUTER_STRUCT_HEADER;
typedef EFI_STATUS (INIT_FUNCTION)(IN VOID *ImageHandler, IN VOID *ServicesTable);
typedef EFI_STATUS (STRING_FUNCTION)(IN VOID *PeiServices, IN CHAR8 *String);
typedef EFI_STATUS (SIMPLE_FUNCTION)(
IN VOID *PeiServices,
IN EFI_STATUS_CODE_TYPE Type, IN EFI_STATUS_CODE_VALUE Value
);
typedef EFI_STATUS (MISC_FUNCTION)(
IN VOID *PeiServices,
IN EFI_STATUS_CODE_TYPE Type, IN EFI_STATUS_CODE_VALUE Value,
IN UINT32 Instance, IN CONST EFI_GUID *CallerId OPTIONAL,
IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
typedef VOID (CHECKPOINT_FUNCTION)(IN VOID *PeiServices, IN UINT8 Checkpoint);
typedef EFI_STATUS (DEBUG_SERVICE_PRINT_FUNCTION)(IN CHAR8 *String, IN UINTN ErrorLevel);
typedef EFI_STATUS (DEBUG_SERVICE_ASSERT_FUNCTION)(IN UINT8 *String, IN CONST CHAR8 *FileName, IN UINTN LineNumber);
typedef BOOLEAN (DEBUG_SERVICE_PRINT_GATE_FUNCTION)(IN CHAR8 *String, IN UINTN ErrorLevel);
typedef BOOLEAN (DEBUG_SERVICE_ASSERT_GATE_FUNCTION)(IN CONST CHAR8 *FileName, IN UINTN LineNumber);
typedef struct {
UINT32 ErrorValue;
CHAR8* ErrorString;
} ERROR_MESSAGE;
VOID EFIAPI AmiDebugServiceDebugPrintHelper (
IN VOID *PeiServices, OUT UINT8 *String, IN UINTN ErrorLevel, IN CONST CHAR8 *Format, VA_LIST VaListMarker
);
VOID EFIAPI AmiDebugServiceDebugAssertHelper (
IN VOID *PeiServices, OUT UINT8 *String, IN CONST CHAR8 *FileName, IN UINTN LineNumber, IN CONST CHAR8 *Description
);
/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif