/** @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__ */