Newer
Older
AMI-Aptio-BIOS-Reversed / AmiIpmiPkg / Ipmi / DxeSelStatusCode / DxeSelStatusCode.h
/** @file
  DxeSelStatusCode - AMI IPMI SEL Status Code DXE Driver
**/

#ifndef __DXESELSTATUSCODE_H__
#define __DXESELSTATUSCODE_H__

#include "../uefi_headers/Uefi.h"

typedef struct {
  UINT32  StatusCodeValue;
  UINT32  StatusCodeInstance;
  UINT8   SensorNumber;
  UINT8   SensorType;
  UINT8   EventDirType;
  UINT8   EventData2;
} SEL_EVENT_MAP_ENTRY;

extern EFI_HANDLE           gImageHandle;
extern EFI_SYSTEM_TABLE     *gSystemTable;
extern EFI_BOOT_SERVICES    *gBootServices;
extern EFI_RUNTIME_SERVICES *gRuntimeServices;
extern EFI_RUNTIME_SERVICES *gRuntimeServicesCopy;
extern EFI_RUNTIME_SERVICES *gRuntimeServices2;
extern VOID                 *gIpmiTransport;
extern UINT8                 gSelRedundancy;
extern UINT8                 gEnableRedundancy;
extern UINT8                 gSelRedundancyMode;
extern UINT8                 gSelOperationMode;
extern VOID                 *gDebugPrintProtocol;
extern VOID                 *gHobList;
extern VOID                 *gSmbiosProtocol;
extern UINT8                 gSmbiosInitialized;
extern EFI_EVENT             gVirtualAddressChangeEvent;
extern EFI_EVENT             gBootServicesCleanupEvent;
extern EFI_EVENT             gRuntimeCleanupEvent;
extern EFI_EVENT             gSmbiosCleanupEvent;
extern EFI_EVENT             gSmmCommEvent;
extern EFI_EVENT             gRuntimeProtocolCleanupEvent;
extern VOID                 *gBootServicesCopy;
extern SEL_EVENT_MAP_ENTRY   gSelEventMapTable[];

EFI_STATUS EFIAPI ModuleEntryPoint (
  IN EFI_HANDLE       ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  );
EFI_STATUS EFIAPI UefiBootServicesTableLibConstructor (
  IN EFI_HANDLE       ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  );
EFI_STATUS EFIAPI ReportStatusCodeLibDestructor (VOID);
VOID EFIAPI BootServicesCleanup (VOID);
EFI_STATUS EFIAPI RuntimeProtocolCleanup (VOID);
VOID EFIAPI SetVirtualAddressMapHandler (VOID);
EFI_STATUS SelMapStatusCodeToEventData (
  IN  UINT32  StatusCodeValue,
  IN  UINT32  StatusCodeInstance,
  OUT UINT8   *RecordData
  );
EFI_STATUS SelWriteEventToRecord (
  IN  VOID    *Transport,
  IN  UINT8   OperationMode,
  IN  UINT32  StatusCodeValue,
  IN  UINT32  StatusCodeInstance
  );
EFI_STATUS SelClearEventRecord (
  IN  UINT32  StatusCodeType,
  IN  UINT32  StatusCodeValue
  );
EFI_STATUS EFIAPI SelStatusCodeEntryInit (VOID);
VOID *DebugPrintProtocolInit (VOID);
EFI_STATUS EFIAPI DebugPrintWithLevel (
  IN  UINTN       ErrorLevel,
  IN  CONST CHAR8 *Format,
  ...
  );
VOID EFIAPI DebugAssert (
  IN  CONST CHAR8  *FileName,
  IN  UINTN        LineNumber,
  IN  CONST CHAR8  *Description
  );
VOID EFIAPI DxeSelStatusCodeNoOpNotify (VOID);
VOID EFIAPI RuntimeProtocolNotifyCleanup (VOID);
VOID EFIAPI SmbiosProtocolInit (VOID);
VOID EFIAPI SmbiosProtocolCleanup (VOID);
VOID EFIAPI ReportStatusCodeNotifyShutdown (VOID);
EFI_STATUS SelAddEventRecord (
  IN  VOID    *Transport,
  IN  UINT8   *RecordId,
  ...
  );
UINT8 SelCheckRedundancyStatus (VOID);
EFI_STATUS SelManageEventLog (
  IN  UINT64  ServerSetupData,
  IN  UINT8   OperationMode
  );
BOOLEAN HobGuidCompare (
  IN  CONST EFI_GUID  *Guid1,
  IN  CONST EFI_GUID  *Guid2
  );
UINT64 EFIAPI ReadUnaligned64 (
  IN  CONST VOID  *Buffer
  );

#endif /* __DXESELSTATUSCODE_H__ */