Newer
Older
AMI-Aptio-BIOS-Reversed / MdeModulePkg / Universal / LockBox / SmmLockBox / SmmLockBox / SmmLockBox.h
@Ajax Dong Ajax Dong 2 days ago 7 KB Full restructure
/** @file
  SmmLockBox.h -- Header for SmmLockBox

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SMMLOCKBOX_H__
#define __SMMLOCKBOX_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
SmmLockBoxHandler(
  VOID
);

EFI_STATUS
EFIAPI
LockBoxLock(
  VOID
);

EFI_STATUS
EFIAPI
LockBoxSave(
  VOID
);

EFI_STATUS
EFIAPI
LockBoxUpdate(
  VOID
);

EFI_STATUS
EFIAPI
LockBoxRestore(
  VOID
);

EFI_STATUS
EFIAPI
LockBoxSetAttributes(
  VOID
);

EFI_STATUS
EFIAPI
LockBoxRestoreAllInPlace(
  VOID
);

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
ProcessLibraryConstructorList(
  VOID
);

EFI_STATUS
EFIAPI
RegisterSmmLockBoxHandler(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxSaveLockBox(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxUpdateLockBox(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxRestoreLockBox(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxSetLockBoxAttributes(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxRestoreAllLockBoxInPlace(
  VOID
);

EFI_STATUS
EFIAPI
InternalBaseLibIsListValid(
  VOID
);

EFI_STATUS
EFIAPI
InsertTailList(
  VOID
);

EFI_STATUS
EFIAPI
CompareGuid(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
SmmBufferValidation(
  VOID
);

EFI_STATUS
EFIAPI
LogMessage(
  VOID
);

EFI_STATUS
EFIAPI
AssertEfiError(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxDestructor(
  VOID
);

EFI_STATUS
EFIAPI
SMM driver provides LockBox save/restore services within SMM.(
  VOID
);

EFI_STATUS
EFIAPI
registers an SMI handler that processes LockBox commands sent(
  VOID
);

EFI_STATUS
EFIAPI
the SMM Communication Buffer protocol.(
  VOID
);

EFI_STATUS
EFIAPI
Range: 0x2C0 - 0x16C0 (26 functions)(
  VOID
);

EFI_STATUS
EFIAPI
Protocol GUIDs (defined in .rdata at 0x2540-0x2590)(
  VOID
);

EFI_STATUS
EFIAPI
Variables (defined in .data segment)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_BOOT_SERVICES          *gBootServices;           // 0x25C0(
  VOID
);

EFI_STATUS
EFIAPI
EFI_RUNTIME_SERVICES       *gRuntimeServices;        // 0x25D0(
  VOID
);

EFI_STATUS
EFIAPI
UINT64                      gSmmDebug2;              // 0x25E0 (SMM Debug2 protocol)(
  VOID
);

EFI_STATUS
EFIAPI
(AMI SMM Buffer Validation)(
  VOID
);

EFI_STATUS
EFIAPI
(boolean, set by LockBox lock)(
  VOID
);

EFI_STATUS
EFIAPI
(boolean)(
  VOID
);

EFI_STATUS
EFIAPI
(module init status)(
  VOID
);

EFI_STATUS
EFIAPI
//-------------------------------------------------------------------------(
  VOID
);

EFI_STATUS
EFIAPI
Declarations(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
all library constructors (UEFI Boot/Runtime/SMM services tables)(
  VOID
);

EFI_STATUS
EFIAPI
(sub_540)(
  VOID
);

EFI_STATUS
EFIAPI
all library global pointers:(
  VOID
);

EFI_STATUS
EFIAPI
locates SMM Base2 Protocol and SMM Buffer Validation Protocol.(
  VOID
);

EFI_STATUS
EFIAPI
SMM Base2 Protocol(
  VOID
);

EFI_STATUS
EFIAPI
SMM System Table from SMM Base2 Protocol(
  VOID
);

EFI_STATUS
EFIAPI
AMI SMM Buffer Validation Protocol(
  VOID
);

EFI_STATUS
EFIAPI
LockBox Communication Configuration Table(
  VOID
);

EFI_STATUS
EFIAPI
LockBox Context(
  VOID
);

EFI_STATUS
EFIAPI
the SMM configuration table for the LockBox context.(
  VOID
);

EFI_STATUS
EFIAPI
NULL if not installed.(
  VOID
);

EFI_STATUS
EFIAPI
SMI Handler (sub_C7C)(
  VOID
);

EFI_STATUS
EFIAPI
SmmLockBoxHandler as the SMI handler for the(
  VOID
);

EFI_STATUS
EFIAPI
SMM Communication protocol, plus a SW dispatch callback(
  VOID
);

EFI_STATUS
EFIAPI
the main communication handler via SMM Base2(
  VOID
);

EFI_STATUS
EFIAPI
the lock callback via SW dispatch(
  VOID
);

EFI_STATUS
EFIAPI
protocol to make the interface available(
  VOID
);

EFI_STATUS
EFIAPI
(sub_988)(
  VOID
);

EFI_STATUS
EFIAPI
SMI handler for LockBox commands.(
  VOID
);

EFI_STATUS
EFIAPI
to sub-handlers based on Command field:(
  VOID
);

EFI_STATUS
EFIAPI
-> SaveLockBox(
  VOID
);

EFI_STATUS
EFIAPI
-> UpdateLockBox(
  VOID
);

EFI_STATUS
EFIAPI
-> RestoreLockBox(
  VOID
);

EFI_STATUS
EFIAPI
-> SetLockBoxAttributes(
  VOID
);

EFI_STATUS
EFIAPI
-> RestoreAllLockBoxInPlace(
  VOID
);

EFI_STATUS
EFIAPI
layout:(
  VOID
);

EFI_STATUS
EFIAPI
minimum buffer size(
  VOID
);

EFI_STATUS
EFIAPI
buffer is not in SMRAM or overflow(
  VOID
);

EFI_STATUS
EFIAPI
return status(
  VOID
);

EFI_STATUS
EFIAPI
as processed(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1128)(
  VOID
);

EFI_STATUS
EFIAPI
a data buffer into SMRAM as a new LockBox entry.(
  VOID
);

EFI_STATUS
EFIAPI
if already exists(
  VOID
);

EFI_STATUS
EFIAPI
SMRAM pages for the data(
  VOID
);

EFI_STATUS
EFIAPI
the entry structure(
  VOID
);

EFI_STATUS
EFIAPI
data to SMRAM(
  VOID
);

EFI_STATUS
EFIAPI
entry(
  VOID
);

EFI_STATUS
EFIAPI
into queue(
  VOID
);

EFI_STATUS
EFIAPI
(sub_135C)(
  VOID
);

EFI_STATUS
EFIAPI
a portion of an existing LockBox entry at a given offset.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1468)(
  VOID
);

EFI_STATUS
EFIAPI
data from a LockBox entry back to a caller-provided buffer.(
  VOID
);

EFI_STATUS
EFIAPI
use the saved SmramBuffer address (restore-in-place)(
  VOID
);

EFI_STATUS
EFIAPI
required size(
  VOID
);

EFI_STATUS
EFIAPI
data out of SMRAM(
  VOID
);

EFI_STATUS
EFIAPI
(sub_8AC)(
  VOID
);

EFI_STATUS
EFIAPI
the attributes on an existing LockBox entry.(
  VOID
);

EFI_STATUS
EFIAPI
only currently supported attribute is bit 0:(
  VOID
);

EFI_STATUS
EFIAPI
(0x1)(
  VOID
);

EFI_STATUS
EFIAPI
header (0x28 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
attributes (only bit 0 is valid)(
  VOID
);

EFI_STATUS
EFIAPI
(from sub_988[command=5])(
  VOID
);

EFI_STATUS
EFIAPI
the LockBox queue and for each entry with the(
  VOID
);

EFI_STATUS
EFIAPI
attribute, copies the SMRAM data to the(
  VOID
);

EFI_STATUS
EFIAPI
buffer address (stored in the entry).(
  VOID
);

EFI_STATUS
EFIAPI
when restore-in-place was requested(
  VOID
);

EFI_STATUS
EFIAPI
saved destination(
  VOID
);

EFI_STATUS
EFIAPI
(sub_10B0)(
  VOID
);

EFI_STATUS
EFIAPI
the LockBox queue searching for an entry with matching GUID.(
  VOID
);

EFI_STATUS
EFIAPI
pointer to the entry, or NULL if not found.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_15C8)(
  VOID
);

EFI_STATUS
EFIAPI
a linked list has non-null forward/back links.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1634)(
  VOID
);

EFI_STATUS
EFIAPI
doubly-linked list insert at tail.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1560)(
  VOID
);

EFI_STATUS
EFIAPI
two EFI_GUID structures.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_1688)(
  VOID
);

EFI_STATUS
EFIAPI
a 64-bit value from a potentially unaligned address.(
  VOID
);

EFI_STATUS
EFIAPI
Validation (sub_F98)(
  VOID
);

EFI_STATUS
EFIAPI
that Buffer+Length is NOT in SMRAM and does not overflow.(
  VOID
);

EFI_STATUS
EFIAPI
the AMI SMM Buffer Validation Protocol if available.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_C70)(
  VOID
);

EFI_STATUS
EFIAPI
the gLocked flag, preventing any further SAVE/UPDATE operations.(
  VOID
);

EFI_STATUS
EFIAPI
is called when a SW dispatch event fires (S3 resume, etc.)(
  VOID
);

EFI_STATUS
EFIAPI
Messages (sub_DE8 - DEBUG wrapper)(
  VOID
);

EFI_STATUS
EFIAPI
DEBUG print via SMM Debug2 protocol.(
  VOID
);

EFI_STATUS
EFIAPI
CMOS 0x4C for debug level filtering.(
  VOID
);

EFI_STATUS
EFIAPI
CMOS for debug level(
  VOID
);

EFI_STATUS
EFIAPI
the SMM Debug2 protocol to print(
  VOID
);

EFI_STATUS
EFIAPI
helper(
  VOID
);

EFI_STATUS
EFIAPI
an assertion failure when Status is an error.(
  VOID
);

EFI_STATUS
EFIAPI
(sub_824)(
  VOID
);

EFI_STATUS
EFIAPI
the LockBox communication configuration table.(
  VOID
);

EFI_STATUS
EFIAPI
on module exit/destruction.(
  VOID
);

#endif /* __SMMLOCKBOX_H__ */