Newer
Older
AMI-Aptio-BIOS-Reversed / LenovoServerPkg / POSTStatus / LnvDxeStatusCode / LnvDxeStatusCode.h
/** @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_