/** @file
LnvDxeStatusCode - Lenovo DXE Status Code Driver
Copyright (c) Lenovo. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef LNVDXESTATUSCODE_H_
#define LNVDXESTATUSCODE_H_
#include "../uefi_headers/Uefi.h"
typedef struct {
UINT64 ReportStatusCodeFn;
UINT64 DebugAssertFn;
} LENOVO_STATUS_CODE_PROTOCOL;
UINT64
EFIAPI
ReadUnaligned64 (
IN CONST VOID *Buffer
);
BOOLEAN
EFIAPI
IsHobListGuid (
IN CONST EFI_GUID *HobGuid
);
VOID *
EFIAPI
GetHobListFromConfigTable (
VOID
);
VOID *
EFIAPI
GetLenovoStatusCodeProtocol (
VOID
);
VOID
EFIAPI
ReportStatusCodeFiltered (
IN UINTN ErrorLevel,
IN CONST CHAR8 *Format,
...
);
VOID
EFIAPI
DebugAssertViaProtocol (
IN CONST CHAR8 *FileName,
IN UINTN LineNumber,
IN CONST CHAR8 *Expression
);
VOID
EFIAPI
LocateRuntimeStatusCodeProtocol (
VOID
);
VOID
EFIAPI
OnExitBootServicesClearBs (
IN EFI_EVENT Event,
IN VOID *Context
);
EFI_STATUS
EFIAPI
OnExitBootServicesConvertLenovo (
IN EFI_EVENT Event,
IN VOID *Context
);
VOID
EFIAPI
RuntimeProtocolNotifyNop (
IN EFI_EVENT Event,
IN VOID *Context
);
EFI_STATUS
EFIAPI
OnExitBootServicesConvertReg (
IN EFI_EVENT Event,
IN VOID *Context
);
EFI_STATUS
EFIAPI
OnExitBootServicesConvertRuntime (
IN EFI_EVENT Event,
IN VOID *Context
);
VOID
EFIAPI
OnVirtualAddressChange (
IN EFI_EVENT Event,
IN VOID *Context
);
EFI_STATUS
EFIAPI
DriverSetupInit (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
);
EFI_STATUS
EFIAPI
LnvDxeStatusCodeEntryPoint (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
);
#endif // LNVDXESTATUSCODE_H_