Newer
Older
AMI-Aptio-BIOS-Reversed / MultiSkuDistinctionPei / MultiSkuDistinctionPei.h
@Ajax Dong Ajax Dong 2 days ago 3 KB Init
/** @file
  MultiSkuDistinctionPei.h -- Header for MultiSkuDistinctionPei

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __MULTISKUDISTINCTIONPEI_H__
#define __MULTISKUDISTINCTIONPEI_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
ReadIdtr(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
PeiServicesNotify(
  VOID
);

EFI_STATUS
EFIAPI
IsGuidMatch(
  VOID
);

EFI_STATUS
EFIAPI
SkuInit(
  VOID
);

EFI_STATUS
EFIAPI
InstallSkuPpi(
  VOID
);

EFI_STATUS
EFIAPI
EntryPointStub(
  VOID
);

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
GUID definitions (defined in .data section)(
  VOID
);

EFI_STATUS
EFIAPI
Descriptors (defined in .data section)(
  VOID
);

/// installed when SKU sentinel is NOT present.
EFI_STATUS
EFIAPI
SKU PPI descriptor(
  VOID
);

EFI_STATUS
EFIAPI
the notification GUID gSkuNotificationGuid.(
  VOID
);

EFI_STATUS
EFIAPI
mDefaultSkuPpiDescriptor = {(
  VOID
);

EFI_STATUS
EFIAPI
a notification/event to trigger further SKU processing.(
  VOID
);

EFI_STATUS
EFIAPI
mActiveSkuPpiDescriptor = {(
  VOID
);

EFI_STATUS
EFIAPI
Helper Functions(
  VOID
);

EFI_STATUS
EFIAPI
Services(
  VOID
);

EFI_STATUS
EFIAPI
Services Access(
  VOID
);

EFI_STATUS
EFIAPI
PEI Services Table pointer is stored at (IDT_Base - 4).(
  VOID
);

EFI_STATUS
EFIAPI
is a standard technique used by PeiServicesTablePointerLibIdt.(
  VOID
);

EFI_STATUS
EFIAPI
= *(EFI_PEI_SERVICES ***)(Idtr.Base - 4);(
  VOID
);

EFI_STATUS
EFIAPI
current CMOS index register, preserve NMI bit(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (CMOS_INDEX_PORT);(
  VOID
);

EFI_STATUS
EFIAPI
small SKU value (0, 1, 2, or 3)(
  VOID
);

EFI_STATUS
EFIAPI
(SkuValue == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
not found(
  VOID
);

EFI_STATUS
EFIAPI
SKU found(
  VOID
);

EFI_STATUS
EFIAPI
> 3: check if zero(
  VOID
);

EFI_STATUS
EFIAPI
RegValue;(
  VOID
);

EFI_STATUS
EFIAPI
(SkuValue == 0xFF) {(
  VOID
);

EFI_STATUS
EFIAPI
invalid(
  VOID
);

EFI_STATUS
EFIAPI
past this HOB to continue searching(
  VOID
);

EFI_STATUS
EFIAPI
= (VOID *)((UINT8 *)Hob + Hob->HobLength);(
  VOID
);

EFI_STATUS
EFIAPI
SKU identifier bytes from HOB data area.(
  VOID
);

EFI_STATUS
EFIAPI
CrystalRidge HOB stores 3 SKU identification bytes(
  VOID
);

EFI_STATUS
EFIAPI
fixed offsets 48, 49, 50 from the HOB start.(
  VOID
);

EFI_STATUS
EFIAPI
= 0x80000000 | 6(
  VOID
);

EFI_STATUS
EFIAPI
SKU buffer does NOT contain the sentinel 0x55 at byte 24(
  VOID
);

EFI_STATUS
EFIAPI
the "default" SKU PPI to signal downstream PEIMs.(
  VOID
);

EFI_STATUS
EFIAPI
(SkuBuffer[24] != SKU_VALID_SENTINEL) {(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
boot services data buffer(
  VOID
);

EFI_STATUS
EFIAPI
= (*PeiServices)->AllocatePages ((
  VOID
);

EFI_STATUS
EFIAPI
revision/sku data into the allocated buffer(
  VOID
);

EFI_STATUS
EFIAPI
// *((UINT8 *)Buffer  + 17) = 0x00;(
  VOID
);

EFI_STATUS
EFIAPI
SKU from HOB(
  VOID
);

EFI_STATUS
EFIAPI
= SkuInit (SkuBuffer);(
  VOID
);

EFI_STATUS
EFIAPI
SKU sentinel byte == 0x55, install active PPI directly(
  VOID
);

EFI_STATUS
EFIAPI
(SkuBuffer[24] == SKU_VALID_SENTINEL) {(
  VOID
);

EFI_STATUS
EFIAPI
InstallSkuPpi (LocalPeiServices);(
  VOID
);

#endif /* __MULTISKUDISTINCTIONPEI_H__ */