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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SMBIOSDATAUPDATEDXENEONCITYEPRP_H__
#define __SMBIOSDATAUPDATEDXENEONCITYEPRP_H__

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

//
// Function Prototypes
//

char *
EFIAPI
InternalZeroMem(
  char *buf,
  unsigned __int64 n24
);

char *
EFIAPI
InternalCopyMem(
  char *dst,
  char *src,
  unsigned __int64 count
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  EFI_HANDLE ImageHandle,
  EFI_SYSTEM_TABLE *SystemTable
);

__int64
EFIAPI
UefiDriverEntryPoint(
  __int64 ImageHandle,
  EFI_SYSTEM_TABLE *SystemTable
);

__int64
EFIAPI
SmbiosDataUpdateEntry(
  EFI_HANDLE ImageHandle,
  __int64 a2,
  double a3
);

__int64
EFIAPI
UpdateSmbiosType9SystemSlots(
  _WORD *ZeroPool,
  __int64 a2,
  const CHAR8 *i
);

__int64
EFIAPI
UpdateSmbiosType41OnboardDevices(
  _WORD *ZeroPool,
  __int64 a2,
  unsigned __int64 j
);

__int64
EFIAPI
UpdateSmbiosTypeUnknownExtended(
  char *ZeroPool,
  __int64 a2,
  unsigned __int64 k
);

__int64
EFIAPI
SmbiosDataUpdateCallback(
  VOID
);

__int64
EFIAPI
GetHiiDatabaseProtocol(
  VOID
);

char
EFIAPI
DebugPrintAssertLog(
  __int64 a1,
  const char *a2,
  ...
);

__int64
EFIAPI
AssertReport(
  __int64 a1,
  __int64 a2,
  __int64 a3
);

GUID *
EFIAPI
CopyGuid(
  GUID *DestinationGuid,
  const GUID *SourceGuid
);

BOOLEAN
EFIAPI
CompareGuid(
  const GUID *Guid1,
  const GUID *Guid2
);

void *
EFIAPI
ZeroMem(
  void *Buffer,
  UINTN Length
);

UINT32
EFIAPI
ReadUnaligned32(
  const UINT32 *Buffer
);

UINT64
EFIAPI
ReadUnaligned64(
  const UINT64 *Buffer
);

UINT64
EFIAPI
WriteUnaligned64(
  UINT64 *Buffer,
  UINT64 Value
);

void *
EFIAPI
AllocatePool(
  UINTN AllocationSize
);

void *
EFIAPI
AllocateZeroPool(
  UINTN AllocationSize
);

void
EFIAPI
AllocateZeroPool_1(
  void *Buffer
);

EFI_STATUS
EFIAPI
EfiGetSystemConfigurationTable(
  EFI_GUID *TableGuid,
  void **Table
);

__int64
EFIAPI
GetPlatformLangVariable(
  __int64 a1,
  __int64 *p_HiiHandle,
  unsigned __int64 n24
);

CHAR8 *
EFIAPI
GetBestLanguage(
  const CHAR8 *SupportedLanguages,
  BOOLEAN Iso639Language,
  ...
);

void *
EFIAPI
GetHobList(
  VOID
);

EFI_STRING
EFIAPI
HiiGetString(
  EFI_HII_HANDLE HiiHandle,
  EFI_STRING_ID StringId,
  const CHAR8 *Language
);

EFI_HII_HANDLE
EFIAPI
HiiAddPackages(
  const EFI_GUID *PackageListGuid,
  EFI_HANDLE DeviceHandle,
  ...
);

CHAR8 *
EFIAPI
HiiGetSupportedLanguages(
  EFI_HII_HANDLE HiiHandle
);

unsigned __int64
EFIAPI
UbaSmbiosUpdateStringReplace(
  VOID
);

unsigned __int64
EFIAPI
UbaSmbiosFindStringBlockEnd(
  __int64 *p_ZeroPool,
  _QWORD *p_Length
);

__int64
EFIAPI
UbaSmbiosFlushStringPack(
  void *ZeroPool
);

__int64
EFIAPI
UbaSmbiosGetVariable(
  char a1,
  __int64 a2,
  __int64 a3,
  _WORD *a4
);

__int64
EFIAPI
UbaSmbiosSetVariableIfNotExist(
  __int64 a1,
  __int64 a2,
  __int64 a3
);

__int64
EFIAPI
UbaSmbiosDeleteAllKeysOfType(
  char n9
);

__int64
EFIAPI
PciWriteMmPciUsra(
  unsigned __int8 a1,
  char a2,
  char a3
);

void *
EFIAPI
CopyMem(
  void *DestinationBuffer,
  const void *SourceBuffer,
  UINTN Length
);

UINTN
EFIAPI
AsciiStrLen(
  const CHAR8 *String
);

__int64
EFIAPI
sub_21B4(
  const CHAR8 *SupportedLanguages,
  const CHAR8 *a2,
  unsigned __int64 n3
);

UINTN
EFIAPI
StrLen(
  const CHAR16 *Buffer
);

UINTN
EFIAPI
AsciiStrnLenS(
  const CHAR8 *SourceBuffer,
  UINTN MaxSize
);

unsigned __int64
EFIAPI
StrToAsciiStr(
  const CHAR16 *Buffer,
  CHAR16 *SourceBuffer,
  UINTN n0xF4240
);

#endif /* __SMBIOSDATAUPDATEDXENEONCITYEPRP_H__ */