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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __TPM20PLATFORMDXE_H__
#define __TPM20PLATFORMDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
InitUefiServices(
  VOID
);

EFI_STATUS
EFIAPI
Tpm20PlatformDriverEntry(
  VOID
);

EFI_STATUS
EFIAPI
CompleteTpm20PlatformInit(
  VOID
);

EFI_STATUS
EFIAPI
GetTpmPpiRequest(
  VOID
);

EFI_STATUS
EFIAPI
Tpm20PpiCallback(
  VOID
);

EFI_STATUS
EFIAPI
InstallTpm20HiiPackage(
  VOID
);

EFI_STATUS
EFIAPI
Tpm20OnVariableLock(
  VOID
);

EFI_STATUS
EFIAPI
SidPpiCallback(
  VOID
);

EFI_STATUS
EFIAPI
CreateReadyToBootEvent(
  VOID
);

EFI_STATUS
EFIAPI
MeasureSecureBootVariables(
  VOID
);

EFI_STATUS
EFIAPI
MeasureVariable(
  VOID
);

EFI_STATUS
EFIAPI
MeasureGpt(
  VOID
);

EFI_STATUS
EFIAPI
Sha256Init(
  VOID
);

EFI_STATUS
EFIAPI
Sha256Update(
  VOID
);

EFI_STATUS
EFIAPI
Sha256Final(
  VOID
);

EFI_STATUS
EFIAPI
Sm3Hash(
  VOID
);

EFI_STATUS
EFIAPI
Sha512Init(
  VOID
);

EFI_STATUS
EFIAPI
Sha512Update(
  VOID
);

EFI_STATUS
EFIAPI
Sha384Final(
  VOID
);

EFI_STATUS
EFIAPI
Sha512Final(
  VOID
);

EFI_STATUS
EFIAPI
MeasureFirmwareImage(
  VOID
);

EFI_STATUS
EFIAPI
Tpm2HashSequenceSha256(
  VOID
);

EFI_STATUS
EFIAPI
UnicodeSPrint(
  VOID
);

EFI_STATUS
EFIAPI
Sha512MessageSchedule(
  VOID
);

EFI_STATUS
EFIAPI
InitializeAmiTcgPpiVar(
  VOID
);

EFI_STATUS
EFIAPI
AmiSetVariable(
  VOID
);

EFI_STATUS
EFIAPI
Data(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle;           // qword_12A48(
  VOID
);

EFI_STATUS
EFIAPI
UINT64  gBS;                    // qword_12A40(
  VOID
);

EFI_STATUS
EFIAPI
UINT64  gTcg2Protocol;          // qword_12A78(
  VOID
);

EFI_STATUS
EFIAPI
(unk_129E8)(
  VOID
);

EFI_STATUS
EFIAPI
UINT64  gTpm20Ppi;              // qword_12A28(
  VOID
);

EFI_STATUS
EFIAPI
UINT8   gTpmPerBiosFlags;       // byte_12AD8(
  VOID
);

EFI_STATUS
EFIAPI
UINT8   gTpmPerBiosFlags3;      // byte_12ADA(
  VOID
);

EFI_STATUS
EFIAPI
(n0x80)(
  VOID
);

EFI_STATUS
EFIAPI
UINT32  gAmiTcgPpiVar[6];      // dword_12AD0(
  VOID
);

EFI_STATUS
EFIAPI
//(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
Initialization(
  VOID
);

EFI_STATUS
EFIAPI
global data structures(
  VOID
);

EFI_STATUS
EFIAPI
and initialize TCG platform protocol(
  VOID
);

EFI_STATUS
EFIAPI
write protection if not already enabled(
  VOID
);

EFI_STATUS
EFIAPI
if Local APIC is enabled for delay calibration(
  VOID
);

EFI_STATUS
EFIAPI
HII Database protocol(
  VOID
);

EFI_STATUS
EFIAPI
Driver Entry(
  VOID
);

EFI_STATUS
EFIAPI
1: Read TPMPERBIOSFLAGS variable(
  VOID
);

EFI_STATUS
EFIAPI
= 6;(
  VOID
);

EFI_STATUS
EFIAPI
not found - set defaults(
  VOID
);

EFI_STATUS
EFIAPI
= 1;(
  VOID
);

EFI_STATUS
EFIAPI
2: Determine PPI request from AMI TCG PPI variable(
  VOID
);

EFI_STATUS
EFIAPI
= GetTpmPpiRequest (&gAmiTcgPpiVar[0]);(
  VOID
);

EFI_STATUS
EFIAPI
3: If PPI request is active, install HII + PPI protocol(
  VOID
);

EFI_STATUS
EFIAPI
(gPpiRequest && gPpiRequest <= 0x80) {(
  VOID
);

EFI_STATUS
EFIAPI
PPI request - install variable lock callback(
  VOID
);

EFI_STATUS
EFIAPI
((*(UINT64 (__fastcall **)(UINT64, UINT64, UINT64 (__fastcall *)(), UINT64, UINT64 *))(gBS + 80))((
  VOID
);

EFI_STATUS
EFIAPI
4: Locate TCG2 protocol for TPM measurements(
  VOID
);

EFI_STATUS
EFIAPI
= (*(UINT64 (__fastcall **)(VOID *, UINT64, UINT64 *))(gBS + 320))((
  VOID
);

EFI_STATUS
EFIAPI
TPM 2.0 Platform Initialization(
  VOID
);

EFI_STATUS
EFIAPI
1: Measure Secure Boot variables(
  VOID
);

EFI_STATUS
EFIAPI
= PrepareSecureBootMeasurement ();(
  VOID
);

EFI_STATUS
EFIAPI
2: Measure SID (Storage ID) via PPI(
  VOID
);

EFI_STATUS
EFIAPI
(7);(
  VOID
);

EFI_STATUS
EFIAPI
3: Register BDS TCG TPM2 ready-to-boostrap callback(
  VOID
);

EFI_STATUS
EFIAPI
= CreateReadyToBootEvent (8, SidPpiCallback2, 0, &Registration);(
  VOID
);

EFI_STATUS
EFIAPI
4: Initialize TPM platform hardware(
  VOID
);

EFI_STATUS
EFIAPI
= InitializeTpmPlatformHardware ();(
  VOID
);

EFI_STATUS
EFIAPI
5: Register TPM platform hardware init callback(
  VOID
);

EFI_STATUS
EFIAPI
= (*(UINT64 (__fastcall **)(UINT64, UINT64, UINT64 (__fastcall *)(), UINT64, UINT8 *))(gBS + 80))((
  VOID
);

EFI_STATUS
EFIAPI
6: Register TPM platform ready-to-boot callback(
  VOID
);

EFI_STATUS
EFIAPI
= RegisterTpmPlatformReadyBoot (16, Tpm20PlatformReadyBoot, 0, &gEfiTpm20PlatformProtocolGuid);(
  VOID
);

EFI_STATUS
EFIAPI
PPI Request Handler(
  VOID
);

EFI_STATUS
EFIAPI
to read AMITCGPPIVAR(
  VOID
);

EFI_STATUS
EFIAPI
((*(INT64 (__fastcall **)(const UINT16 *, VOID *, INT32 *, UINT64 *, INT32 *))(gRT + 72))((
  VOID
);

EFI_STATUS
EFIAPI
not found - initialize to zero(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
exists - check if we need to migrate from AMITCGPPIVAR2(
  VOID
);

EFI_STATUS
EFIAPI
(!PpiState &&(
  VOID
);

EFI_STATUS
EFIAPI
AMITCGPPIVAR2 (version 23) to AMITCGPPIVAR(
  VOID
);

EFI_STATUS
EFIAPI
PPI Handler (called via event notification)(
  VOID
);

EFI_STATUS
EFIAPI
TPM PPI request(
  VOID
);

EFI_STATUS
EFIAPI
function handles TPM enable/disable/clear operations(
  VOID
);

EFI_STATUS
EFIAPI
on the gPpiRequest value(
  VOID
);

EFI_STATUS
EFIAPI
HandleTpm20PpiRequest ();(
  VOID
);

EFI_STATUS
EFIAPI
HII Package List for TPM PPI(
  VOID
);

EFI_STATUS
EFIAPI
HII package list protocol on ImageHandle(
  VOID
);

EFI_STATUS
EFIAPI
= (*(INT64 (__fastcall **)(EFI_HANDLE, VOID *, UINT64 *, EFI_HANDLE, UINT64, INT32))(gBS + 280))((
  VOID
);

EFI_STATUS
EFIAPI
HiiDatabase->NewPackageList to register the HII package(
  VOID
);

EFI_STATUS
EFIAPI
= (*(UINT64 (__fastcall **)(UINT64, UINT64, UINT64, UINT64))HiiDatabase)((
  VOID
);

EFI_STATUS
EFIAPI
Lock Callback(
  VOID
);

EFI_STATUS
EFIAPI
PPI Callback(
  VOID
);

EFI_STATUS
EFIAPI
TcgSIDVariable(
  VOID
);

EFI_STATUS
EFIAPI
= (*(INT64 (__fastcall **)(const UINT16 *, VOID *, INT32 *, UINT64 *, UINT64 *))(gRT + 72))((
  VOID
);

EFI_STATUS
EFIAPI
UEFI spec version (>= 2.0 supports CreateEventEx)(
  VOID
);

EFI_STATUS
EFIAPI
(*(UINT32 *)(gST + 8) >= 0x20000) {(
  VOID
);

EFI_STATUS
EFIAPI
GUID(
  VOID
);

EFI_STATUS
EFIAPI
Boot Measurement(
  VOID
);

EFI_STATUS
EFIAPI
(EFI_GLOBAL_VARIABLE)(
  VOID
);

EFI_STATUS
EFIAPI
SecureBoot variable(
  VOID
);

EFI_STATUS
EFIAPI
= 23;(
  VOID
);

EFI_STATUS
EFIAPI
the buffer(
  VOID
);

EFI_STATUS
EFIAPI
and measure SecureBoot(
  VOID
);

EFI_STATUS
EFIAPI
= L"SecureBoot";(
  VOID
);

EFI_STATUS
EFIAPI
and measure PK(
  VOID
);

EFI_STATUS
EFIAPI
= DataSize;(
  VOID
);

EFI_STATUS
EFIAPI
and measure KEK(
  VOID
);

EFI_STATUS
EFIAPI
and measure db(
  VOID
);

EFI_STATUS
EFIAPI
and measure dbx(
  VOID
);

EFI_STATUS
EFIAPI
measurement(
  VOID
);

EFI_STATUS
EFIAPI
(1, 50694677);(
  VOID
);

EFI_STATUS
EFIAPI
allocated buffer(
  VOID
);

EFI_STATUS
EFIAPI
variable into TPM(
  VOID
);

EFI_STATUS
EFIAPI
PC Client Platform Firmware Profile Specification(
  VOID
);

EFI_STATUS
EFIAPI
variable Name + VendorGuid + Data into PCR(
  VOID
);

EFI_STATUS
EFIAPI
Tpm2MeasureVariable (PcrIndex, EventType, VarName, VendorGuid, Data, DataSize);(
  VOID
);

EFI_STATUS
EFIAPI
Measurement(
  VOID
);

EFI_STATUS
EFIAPI
local variables(
  VOID
);

EFI_STATUS
EFIAPI
if GPT already measured(
  VOID
);

EFI_STATUS
EFIAPI
(gGptMeasurementCount > 0) {(
  VOID
);

EFI_STATUS
EFIAPI
Block I/O protocol and Disk I/O protocol(
  VOID
);

EFI_STATUS
EFIAPI
((*(INT64 (__fastcall **)(UINT64, VOID *, UINT64 *))(gBS + 152))((
  VOID
);

EFI_STATUS
EFIAPI
buffer for partition table header(
  VOID
);

EFI_STATUS
EFIAPI
= (*(INT64 (__fastcall **)(UINT64, UINT64, UINT64 *))(gBS + 64))((
  VOID
);

EFI_STATUS
EFIAPI
partition table header(
  VOID
);

EFI_STATUS
EFIAPI
for GPT protective MBR signature (0xEE)(
  VOID
);

EFI_STATUS
EFIAPI
GPT header(
  VOID
);

EFI_STATUS
EFIAPI
buffer for partition entries(
  VOID
);

EFI_STATUS
EFIAPI
partition entries(
  VOID
);

EFI_STATUS
EFIAPI
= (*(INT64 (__fastcall **)(UINT64, UINT64, UINT64, UINT64, UINT64))(DiskIo + 8))((
  VOID
);

EFI_STATUS
EFIAPI
valid partition entries(
  VOID
);

EFI_STATUS
EFIAPI
= GptBlockIo;(
  VOID
);

EFI_STATUS
EFIAPI
buffer for combined GPT data(
  VOID
);

EFI_STATUS
EFIAPI
= GptValidEntries * *(UINT32 *)(GptBlockIo + 84) + 100;(
  VOID
);

EFI_STATUS
EFIAPI
and populate GPT data buffer(
  VOID
);

EFI_STATUS
EFIAPI
*(UINT32 *)((UINT8 *)Action + 342) = BufferSize;(
  VOID
);

EFI_STATUS
EFIAPI
GPT header to buffer(
  VOID
);

EFI_STATUS
EFIAPI
= GptDiskIo;(
  VOID
);

EFI_STATUS
EFIAPI
GPT measurement into TPM(
  VOID
);

EFI_STATUS
EFIAPI
(ValidIndex) {(
  VOID
);

EFI_STATUS
EFIAPI
2.0 Hash Algorithm Implementations(
  VOID
);

EFI_STATUS
EFIAPI
implements the SHA-256 message schedule and compression loop(
  VOID
);

EFI_STATUS
EFIAPI
implements the SHA-512 message schedule and compression loop(
  VOID
);

EFI_STATUS
EFIAPI
processes TPM PPI requests (enable/disable/clear).(
  VOID
);

EFI_STATUS
EFIAPI
prepares the 80 64-bit words for the SHA-512 compression loop.(
  VOID
);

EFI_STATUS
EFIAPI
handles SID (Storage ID) PPI UI interactions.(
  VOID
);

EFI_STATUS
EFIAPI
SHA-256 context with initial hash values (H0-H7)(
  VOID
);

EFI_STATUS
EFIAPI
= 0x6a09e667, H1 = 0xbb67ae85, H2 = 0x3c6ef372, H3 = 0xa54ff53a(
  VOID
);

EFI_STATUS
EFIAPI
= 0x510e527f, H5 = 0x9b05688c, H6 = 0x1f83d9ab, H7 = 0x5be0cd19(
  VOID
);

EFI_STATUS
EFIAPI
(Context);(
  VOID
);

EFI_STATUS
EFIAPI
Image Measurement(
  VOID
);

EFI_STATUS
EFIAPI
parameters(
  VOID
);

EFI_STATUS
EFIAPI
(DebugEnabled (64) && DebugLevelEnabled (64)) {(
  VOID
);

EFI_STATUS
EFIAPI
TCG2 protocol if not already available(
  VOID
);

EFI_STATUS
EFIAPI
(!gTpm20PpiContext) {(
  VOID
);

EFI_STATUS
EFIAPI
TPM platform protocol(
  VOID
);

EFI_STATUS
EFIAPI
PPI action structure(
  VOID
);

EFI_STATUS
EFIAPI
of events(
  VOID
);

EFI_STATUS
EFIAPI
AlgCount          = 16;(
  VOID
);

EFI_STATUS
EFIAPI
active PCR banks and iterate(
  VOID
);

EFI_STATUS
EFIAPI
= *(UINT8 *)(Tcg2Protocol + 6);(
  VOID
);

EFI_STATUS
EFIAPI
(Sha256Context);(
  VOID
);

EFI_STATUS
EFIAPI
((*(UINT32 *)(Tcg2Protocol + 24) & 1) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
Sha256Final (Sha256Context, (UINT8 *)&HashAlg);(
  VOID
);

EFI_STATUS
EFIAPI
Sm3Hash (Sm3Context, &HashAlg);(
  VOID
);

EFI_STATUS
EFIAPI
Sha384Final (Sm3Context, &HashAlg);(
  VOID
);

EFI_STATUS
EFIAPI
Sha512Final (AlignedBuffer, &HashAlg);(
  VOID
);

EFI_STATUS
EFIAPI
session approach for SHA-256 (via TCG protocol)(
  VOID
);

EFI_STATUS
EFIAPI
sequence start(
  VOID
);

EFI_STATUS
EFIAPI
= 4;(
  VOID
);

EFI_STATUS
EFIAPI
sequence update(
  VOID
);

EFI_STATUS
EFIAPI
sequence complete(
  VOID
);

EFI_STATUS
EFIAPI
= 64;(
  VOID
);

EFI_STATUS
EFIAPI
(HMAC)(
  VOID
);

EFI_STATUS
EFIAPI
hash sequence(
  VOID
);

EFI_STATUS
EFIAPI
the data(
  VOID
);

EFI_STATUS
EFIAPI
hash sequence and get result(
  VOID
);

EFI_STATUS
EFIAPI
String Print Library (Unicode SPrint wrapper)(
  VOID
);

EFI_STATUS
EFIAPI
pseudocode reference: sub_8FB8(
  VOID
);

EFI_STATUS
EFIAPI
assertion checks for Buffer, Format, and BufferSize limits.(
  VOID
);

EFI_STATUS
EFIAPI
the internal BasePrintLib SPrint function.(
  VOID
);

EFI_STATUS
EFIAPI
!= NULL(
  VOID
);

EFI_STATUS
EFIAPI
<= PcdMaximumUnicodeStringLength(
  VOID
);

EFI_STATUS
EFIAPI
0;(
  VOID
);

EFI_STATUS
EFIAPI
pseudocode reference: sub_E220(
  VOID
);

EFI_STATUS
EFIAPI
function:(
  VOID
);

EFI_STATUS
EFIAPI
TCG PPI Variable Initialization(
  VOID
);

EFI_STATUS
EFIAPI
Set Variable (wrapper for gRT->SetVariable)(
  VOID
);

EFI_STATUS
EFIAPI
Forward Declarations (to be resolved with renamed functions)(
  VOID
);

EFI_STATUS
EFIAPI
-> PrepareSecureBootMeasurement(
  VOID
);

EFI_STATUS
EFIAPI
-> MeasureSidPpi(
  VOID
);

EFI_STATUS
EFIAPI
-> InitializeTpmPlatformHardware(
  VOID
);

EFI_STATUS
EFIAPI
-> FinalizeTpm20PlatformInit(
  VOID
);

EFI_STATUS
EFIAPI
-> SendEnableBlockSidCommand(
  VOID
);

EFI_STATUS
EFIAPI
-> SidPpiCallback2 (SID callback variant)(
  VOID
);

EFI_STATUS
EFIAPI
-> Tpm2BdsCallback(
  VOID
);

EFI_STATUS
EFIAPI
-> TpmPlatformHardwareInit(
  VOID
);

EFI_STATUS
EFIAPI
-> Tpm20PlatformReadyBoot(
  VOID
);

EFI_STATUS
EFIAPI
-> HandleTpm20PpiRequest(
  VOID
);

EFI_STATUS
EFIAPI
-> LocateTcgPlatformProtocol(
  VOID
);

EFI_STATUS
EFIAPI
-> DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
-> AssertHandler(
  VOID
);

EFI_STATUS
EFIAPI
-> DebugEnabled(
  VOID
);

EFI_STATUS
EFIAPI
-> DebugLevelEnabled(
  VOID
);

EFI_STATUS
EFIAPI
-> CompareMemory(
  VOID
);

EFI_STATUS
EFIAPI
-> RegisterTpmPlatformReadyBoot(
  VOID
);

EFI_STATUS
EFIAPI
-> InitializeAmiTcgPpiVar(
  VOID
);

EFI_STATUS
EFIAPI
-> GetMemoryConfig(
  VOID
);

EFI_STATUS
EFIAPI
-> Tpm2MeasureVariable(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha256InitCore(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha256UpdateCore(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha256FinalCore(
  VOID
);

EFI_STATUS
EFIAPI
-> MeasureGpt(
  VOID
);

EFI_STATUS
EFIAPI
-> Sm3Init(
  VOID
);

EFI_STATUS
EFIAPI
-> Sm3Update(
  VOID
);

EFI_STATUS
EFIAPI
-> Sm3Final(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha512InitCore(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha384FinalCore(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha512Sm3Init(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha512Sm3Update(
  VOID
);

EFI_STATUS
EFIAPI
-> Sha512FinalCore(
  VOID
);

EFI_STATUS
EFIAPI
-> AmiSetVariable(
  VOID
);

EFI_STATUS
EFIAPI
-> Tpm2PcrExtend(
  VOID
);

EFI_STATUS
EFIAPI
-> EnableWriteProtection(
  VOID
);

EFI_STATUS
EFIAPI
-> ReadTimeStampCounter(
  VOID
);

EFI_STATUS
EFIAPI
-> CpuPause(
  VOID
);

EFI_STATUS
EFIAPI
-> EnableInterruptFlag(
  VOID
);

EFI_STATUS
EFIAPI
-> SetInterruptFlag(
  VOID
);

EFI_STATUS
EFIAPI
-> ClearInterruptFlag(
  VOID
);

EFI_STATUS
EFIAPI
-> ReadControlRegister(
  VOID
);

#endif /* __TPM20PLATFORMDXE_H__ */