/** @file
  SmmGenericElog.h -- Header for SmmGenericElog

  Source: DEBUG_VS2015\X64\AmiModulePkg\GenericElog\SmmGenericElog\DEBUG
  Build: HR6N0XMLK DEBUG_VS2015 X64

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SMMGENERICELOG_H__
#define __SMMGENERICELOG_H__

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

//
// Function Prototypes
//

///
/// ModuleEntryPoint -- UEFI entry point / initialization function
///
EFI_STATUS
EFIAPI
ModuleEntryPoint(
  EFI_HANDLE      ImageHandle,
  EFI_SYSTEM_TABLE *SystemTable
);

///
/// SmmGenericElogCacheServices -- caches image and system-table globals.
///
EFI_STATUS
EFIAPI
SmmGenericElogCacheServices(
  EFI_HANDLE      ImageHandle,
  EFI_SYSTEM_TABLE *SystemTable
);

///
/// SmmGenericElogInitStatusCheck -- initialization error-checking hook.
///
EFI_STATUS
EFIAPI
SmmGenericElogInitStatusCheck(
  VOID *
);

///
/// SmmGenericElogRegisterEventLog -- core SMM generic event log setup/registration.
///
EFI_STATUS
EFIAPI
SmmGenericElogRegisterEventLog(
  VOID *
);

///
/// SmmGenericElogNotificationCleanup -- event notification teardown callback 1.
///
EFI_STATUS
EFIAPI
SmmGenericElogNotificationCleanup(
  VOID *
);

///
/// SmmGenericElogTeardownNotifications -- event notification teardown callback 2.
///
EFI_STATUS
EFIAPI
SmmGenericElogTeardownNotifications(
  VOID *,
  INT64
);

///
/// SmmGenericElogErrorCleanup -- error-path cleanup handler.
///
EFI_STATUS
EFIAPI
SmmGenericElogErrorCleanup(
  VOID *Context
);

///
/// sub_E30
///
EFI_STATUS
EFIAPI
sub_E30(
  CHAR8 *,
  UINTN,
  CHAR8 *
);

#endif /* __SMMGENERICELOG_H__ */
