Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / TCG2 / Samples / AmiTcgNvflagSample / AmiTcgNvflagSample.h
@Ajax Dong Ajax Dong 2 days ago 6 KB Full restructure
/** @file
  AmiTcgNvflagSample.h -- Header for AmiTcgNvflagSample

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __AMITCGNVFLAGSAMPLE_H__
#define __AMITCGNVFLAGSAMPLE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
IoRead32(
  VOID
);

EFI_STATUS
EFIAPI
CpuPause(
  VOID
);

EFI_STATUS
EFIAPI
ReadTimeStampCounter(
  VOID
);

EFI_STATUS
EFIAPI
EnableInterrupts(
  VOID
);

EFI_STATUS
EFIAPI
DisableInterrupts(
  VOID
);

EFI_STATUS
EFIAPI
GetCallerEflags(
  VOID
);

EFI_STATUS
EFIAPI
MmioWrite16(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrintErrorLevel(
  VOID
);

EFI_STATUS
EFIAPI
AssertBreakpoint(
  VOID
);

EFI_STATUS
EFIAPI
MatchHobGuid(
  VOID
);

EFI_STATUS
EFIAPI
UefiBootServicesTableLibConstructor(
  VOID
);

EFI_STATUS
EFIAPI
TpmNvFlagWriteVariable(
  VOID
);

EFI_STATUS
EFIAPI
GetPersistentTpmFlags(
  VOID
);

EFI_STATUS
EFIAPI
SetPersistentTpmFlags(
  VOID
);

EFI_STATUS
EFIAPI
TpmNvFlagStub(
  VOID
);

EFI_STATUS
EFIAPI
AmiTcgNvflagSampleDriver(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
Global Data(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle      = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
VOID                     *mHobList         = NULL;     // qword_15A8(
  VOID
);

EFI_STATUS
EFIAPI
UINT64                   gDebugLevel       = 0;        // qword_15A0(
  VOID
);

EFI_STATUS
EFIAPI
Protocol GUID(
  VOID
);

EFI_STATUS
EFIAPI
gEfiTcgProtocolGuid           = { 0xF67D28B8, 0x1E78, 0x4C19, { 0xB8, 0x7B, 0x1A, 0x99, 0xC2, 0x40, 0x6A, 0x54 } };(
  VOID
);

EFI_STATUS
EFIAPI
Configuration Protocol GUID(
  VOID
);

EFI_STATUS
EFIAPI
gEfiTcgConfigProtocolGuid     = { 0xD7F12B7E, 0x64B7, 0x4B0B, { 0x99, 0xBF, 0xCB, 0x7B, 0xFA, 0x8F, 0x1D, 0x8C } };(
  VOID
);

EFI_STATUS
EFIAPI
GUIDs(
  VOID
);

EFI_STATUS
EFIAPI
gTcgInterfaceVarGuid          = { 0x94B0F9D0, 0x8B8A, 0x4F63, { 0x87, 0x0E, 0x35, 0x5D, 0xFE, 0x42, 0x26, 0x55 } };  // unk_1510(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gTcgNvDataGuid                = { 0xAB954E08, 0x6F10, 0x4C29, { 0xB5, 0xA5, 0xE8, 0x3E, 0x60, 0x5D, 0x71, 0x23 } };  // unk_14E0(
  VOID
);

EFI_STATUS
EFIAPI
Token Space GUID(
  VOID
);

EFI_STATUS
EFIAPI
gPcdTokenSpaceGuid            = { 0x9B3ADA11, 0x5CBC, 0x4C41, { 0xA8, 0x1F, 0x0E, 0xAD, 0x64, 0x7B, 0xBE, 0x6C } };(
  VOID
);

EFI_STATUS
EFIAPI
GUID for locating HOB list in configuration table(
  VOID
);

EFI_STATUS
EFIAPI
gHobGuid                      = { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } };  // unk_1520/unk_1528(
  VOID
);

EFI_STATUS
EFIAPI
Driver Binding Protocol instance(
  VOID
);

EFI_STATUS
EFIAPI
- The driver binding protocol instance(
  VOID
);

EFI_STATUS
EFIAPI
mDriverBinding = {(
  VOID
);

EFI_STATUS
EFIAPI
NULL,  // Stop(
  VOID
);

EFI_STATUS
EFIAPI
NULL,  // ImageHandle(
  VOID
);

EFI_STATUS
EFIAPI
};(
  VOID
);

EFI_STATUS
EFIAPI
declarations for protocol function table(
  VOID
);

EFI_STATUS
EFIAPI
- Function table for protocol interface(
  VOID
);

EFI_STATUS
EFIAPI
- Alternative function table for protocol interface(
  VOID
);

EFI_STATUS
EFIAPI
mProtocolFuncTable[2];(
  VOID
);

EFI_STATUS
EFIAPI
error level filtering(
  VOID
);

EFI_STATUS
EFIAPI
CMOS index 0x4B to determine debug level(
  VOID
);

EFI_STATUS
EFIAPI
(0x70, (IoRead8 (0x70) & 0x80) | 0x4B);(
  VOID
);

EFI_STATUS
EFIAPI
ImageHandle and SystemTable(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
HOB list(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
PCI Express base address from PCD(
  VOID
);

EFI_STATUS
EFIAPI
= ((UINT64 (*)(UINTN))GetPcdProtocol ()->GetPcdValue (PcdPciExpressBaseAddress))(5);(
  VOID
);

EFI_STATUS
EFIAPI
PCI Express MMIO access(
  VOID
);

EFI_STATUS
EFIAPI
((INT8)*((UINT8 *)PciExpressLibGetPciExpressAddress (PCI_EXPRESS_LIB_ADDRESS (0, 0, 0, 0))) >= 0) {(
  VOID
);

EFI_STATUS
EFIAPI
calibration: use RDTSC to calibrate a ~1ms delay(
  VOID
);

EFI_STATUS
EFIAPI
= GetCallerEflags ();(
  VOID
);

EFI_STATUS
EFIAPI
((((CurrentTsc + 357 - (UINTN)IoRead32 (TIMER_PORT)) & 0x800000) == 0)) {(
  VOID
);

EFI_STATUS
EFIAPI
the variable; create it if it doesn't exist(
  VOID
);

EFI_STATUS
EFIAPI
= gRT->QueryVariableInfo (VariableName, VendorGuid, 0, 0, 0);(
  VOID
);

EFI_STATUS
EFIAPI
doesn't exist; attempt to create it(
  VOID
);

EFI_STATUS
EFIAPI
= gRT->SetVariable (VariableName, VendorGuid, Attributes, DataSize, Data);(
  VOID
);

EFI_STATUS
EFIAPI
write to the variable with the same data(
  VOID
);

EFI_STATUS
EFIAPI
doesn't exist; create and write(
  VOID
);

EFI_STATUS
EFIAPI
TCG protocol(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, &TcgProtocol);(
  VOID
);

EFI_STATUS
EFIAPI
TcgInterfaceVar to check interface state(
  VOID
);

EFI_STATUS
EFIAPI
= sizeof (TcgInterface);(
  VOID
);

EFI_STATUS
EFIAPI
INTERNALPERBIOSFLAGS(
  VOID
);

EFI_STATUS
EFIAPI
= sizeof (InternalFlags);(
  VOID
);

EFI_STATUS
EFIAPI
flags not found; set defaults(
  VOID
);

EFI_STATUS
EFIAPI
bit 4 in flags(
  VOID
);

EFI_STATUS
EFIAPI
internal flags to output buffer(
  VOID
);

EFI_STATUS
EFIAPI
(Flags, InternalFlags, 6);(
  VOID
);

EFI_STATUS
EFIAPI
TCG protocols(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, (VOID **)&TcgProtocol);(
  VOID
);

EFI_STATUS
EFIAPI
TcgInterfaceVar to check if TCG interface is active(
  VOID
);

EFI_STATUS
EFIAPI
interface is active; write flags to INTERNALPERBIOSFLAGS(
  VOID
);

EFI_STATUS
EFIAPI
(InternalFlags, Flags, sizeof (InternalFlags));(
  VOID
);

EFI_STATUS
EFIAPI
|= 1;(
  VOID
);

EFI_STATUS
EFIAPI
INTERNALPERBIOSFLAGS again with actual flags(
  VOID
);

EFI_STATUS
EFIAPI
= TpmNvFlagWriteVariable ((
  VOID
);

EFI_STATUS
EFIAPI
TCG Config protocol(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol (&gEfiTcgConfigProtocolGuid, NULL, (VOID **)&TcgConfigProtocol);(
  VOID
);

EFI_STATUS
EFIAPI
TPM NV registers at physical address 0xFED40F00 for(
  VOID
);

EFI_STATUS
EFIAPI
3 entries (12 bytes total, 4 bytes per entry).(
  VOID
);

EFI_STATUS
EFIAPI
(Index = 0; Index < 0xC; Index += 4) {(
  VOID
);

EFI_STATUS
EFIAPI
against known manufacturer flag table(
  VOID
);

EFI_STATUS
EFIAPI
(*(UINT16 *)((UINT8 *)&ManufacturerCheckValue + Index)     == TpmManufacturerId &&(
  VOID
);

EFI_STATUS
EFIAPI
match found; register driver binding(
  VOID
);

EFI_STATUS
EFIAPI
gBS->InstallMultipleProtocolInterfaces ((
  VOID
);

EFI_STATUS
EFIAPI
manufacturer match; try reading existing flags(
  VOID
);

EFI_STATUS
EFIAPI
(DefaultFlags, sizeof (DefaultFlags));(
  VOID
);

EFI_STATUS
EFIAPI
to read flags; set defaults(
  VOID
);

EFI_STATUS
EFIAPI
1, flags byte 0 = 1(
  VOID
);

EFI_STATUS
EFIAPI
the driver binding protocol(
  VOID
);

EFI_STATUS
EFIAPI
UEFI boot/runtime services and hardware abstraction(
  VOID
);

EFI_STATUS
EFIAPI
(ImageHandle, SystemTable);(
  VOID
);

EFI_STATUS
EFIAPI
the main TCG NV flag sample logic(
  VOID
);

EFI_STATUS
EFIAPI
AmiTcgNvflagSampleDriver (ImageHandle, SystemTable);(
  VOID
);

#endif /* __AMITCGNVFLAGSAMPLE_H__ */