/** @file
MultiSkuDistinctionDxe.h -- Header for MultiSkuDistinctionDxe
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __MULTISKUDISTINCTIONDXE_H__
#define __MULTISKUDISTINCTIONDXE_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
ReadUnaligned64(
VOID
);
EFI_STATUS
EFIAPI
CompareGuid(
VOID
);
EFI_STATUS
EFIAPI
MsDebugPrint(
VOID
);
EFI_STATUS
EFIAPI
MsDebugAssert(
VOID
);
EFI_STATUS
EFIAPI
GetMultiSkuInfoFromHob(
VOID
);
EFI_STATUS
EFIAPI
InstallSkuProtocol(
VOID
);
EFI_STATUS
EFIAPI
MultiSkuDistinctionDxeEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
globals(
VOID
);
EFI_STATUS
EFIAPI
MsDebugProtocol pointer (0 until first successful Lookup).(
VOID
);
EFI_STATUS
EFIAPI
*gMsDebugProtocol = NULL;(
VOID
);
EFI_STATUS
EFIAPI
HOB list pointer (0 until first successful GetHobList).(
VOID
);
EFI_STATUS
EFIAPI
*gHobList = NULL;(
VOID
);
EFI_STATUS
EFIAPI
definitions(
VOID
);
EFI_STATUS
EFIAPI
protocol lookup (sub_4C8)(
VOID
);
EFI_STATUS
EFIAPI
print wrapper (sub_548)(
VOID
);
/// system identification byte.
EFI_STATUS
EFIAPI
CMOS RTC index 0x4B(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
VOID
);
EFI_STATUS
EFIAPI
mask based on SKU byte.(
VOID
);
EFI_STATUS
EFIAPI
(SkuByte > 3) {(
VOID
);
EFI_STATUS
EFIAPI
= (*(volatile UINT8 *)0xFDAF0490 & 2) | 1;(
VOID
);
EFI_STATUS
EFIAPI
vtable entry [0] is the DebugPrint function.(
VOID
);
EFI_STATUS
EFIAPI
Protocol->DebugPrint (ErrorLevel, Format, Args);(
VOID
);
EFI_STATUS
EFIAPI
wrapper (sub_5D0)(
VOID
);
EFI_STATUS
EFIAPI
vtable entry [1] is the DebugAssert function.(
VOID
);
EFI_STATUS
EFIAPI
list retrieval (sub_610)(
VOID
);
EFI_STATUS
EFIAPI
configuration table entries.(
VOID
);
EFI_STATUS
EFIAPI
(0x80000000, "\nASSERT_EFI_ERROR (Status = %r)\n", 0x800000000000000Eull);(
VOID
);
EFI_STATUS
EFIAPI
GUID-ext search (sub_6F0)(
VOID
);
EFI_STATUS
EFIAPI
Multi-SKU info from HOB (sub_740)(
VOID
);
EFI_STATUS
EFIAPI
the HOB list looking for a GUID-ext HOB whose data matches(
VOID
);
EFI_STATUS
EFIAPI
= FindHobByGuid (&gLenovoMultiSkuHobGuid, HobList);(
VOID
);
EFI_STATUS
EFIAPI
3-byte SKU type is at offset 48 from the HOB base.(
VOID
);
EFI_STATUS
EFIAPI
Protocol installation (sub_470)(
VOID
);
/// still try to publish protocol
EFI_STATUS
EFIAPI
info not available(
VOID
);
EFI_STATUS
EFIAPI
whatever we have (or the HOB info is not critical).(
VOID
);
EFI_STATUS
EFIAPI
a unified SKU byte: publish the protocol.(
VOID
);
EFI_STATUS
EFIAPI
= gBootServices->HandleProtocol ((
VOID
);
EFI_STATUS
EFIAPI
Point (sub_344 / _ModuleEntryPoint)(
VOID
);
EFI_STATUS
EFIAPI
global protocol references.(
VOID
);
EFI_STATUS
EFIAPI
= ImageHandle;(
VOID
);
EFI_STATUS
EFIAPI
();(
VOID
);
EFI_STATUS
EFIAPI
SKU info from HOB.(
VOID
);
EFI_STATUS
EFIAPI
= GetMultiSkuInfoFromHob (&SkuInfo);(
VOID
);
EFI_STATUS
EFIAPI
the SKU type byte.(
VOID
);
/// delay installation.
EFI_STATUS
EFIAPI
= 'U' (unified / unknown SKU)(
VOID
);
EFI_STATUS
EFIAPI
(SkuInfo.SkuType[0] == 0x55) {(
VOID
);
EFI_STATUS
EFIAPI
an ExitBootServices notification event.(
VOID
);
EFI_STATUS
EFIAPI
= gBootServices->CreateEvent ((
VOID
);
EFI_STATUS
EFIAPI
the configuration table entry for the SKU GUID.(
VOID
);
EFI_STATUS
EFIAPI
InstallSkuProtocol ();(
VOID
);
#endif /* __MULTISKUDISTINCTIONDXE_H__ */