Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / NVRAM / NvramSmm / NvramSmm.h
@Ajax Dong Ajax Dong 2 days ago 11 KB Restructure the repo
/** @file
  NvramSmm.h -- Header for NvramSmm

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __NVRAMSMM_H__
#define __NVRAMSMM_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
NvramCoreInit(
  VOID
);

EFI_STATUS
EFIAPI
SmiNvramCommHandler(
  VOID
);

EFI_STATUS
EFIAPI
SmiNvramUpdateHandler(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeGetVariable(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeSetVariable(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeGetNextVariableName(
  VOID
);

EFI_STATUS
EFIAPI
RuntimeQueryVariableInfo(
  VOID
);

EFI_STATUS
EFIAPI
SecureBootSetVariable(
  VOID
);

EFI_STATUS
EFIAPI
SecureBootGetVariable(
  VOID
);

EFI_STATUS
EFIAPI
NvramSyncCallbackSetup(
  VOID
);

EFI_STATUS
EFIAPI
GetFvHeaderSize(
  VOID
);

EFI_STATUS
EFIAPI
VarStoreInit(
  VOID
);

EFI_STATUS
EFIAPI
NvramHobRetrieve(
  VOID
);

EFI_STATUS
EFIAPI
path: e:\hs\Build\HR6N0XMLK\DEBUG_VS2015\X64\AmiModulePkg\NVRAM\NvramSmm\DEBUG(
  VOID
);

EFI_STATUS
EFIAPI
files: NvramSmm.c, NvramDxeCommon.c, NvramSmi.c, AuthService.c(
  VOID
);

EFI_STATUS
EFIAPI
State (from .data section)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_SYSTEM_TABLE               *gST = NULL;                         // 0x11660(
  VOID
);

EFI_STATUS
EFIAPI
EFI_RUNTIME_SERVICES           *gRT = NULL;                         // 0x11678(
  VOID
);

EFI_STATUS
EFIAPI
VOID                           *gDS = NULL;                         // 0x11758(
  VOID
);

EFI_STATUS
EFIAPI
VOID                           *gMmst;                              // 0x116F0(
  VOID
);

EFI_STATUS
EFIAPI
VOID                           *gSmmBufferValidation = NULL;         // 0x11750(
  VOID
);

EFI_STATUS
EFIAPI
UINT64                          gNvramStoreSize = 0;                // 0x115D8(
  VOID
);

EFI_STATUS
EFIAPI
UINT8                           gVarStoreInitFlags = 0;             // 0x11C20(
  VOID
);

EFI_STATUS
EFIAPI
EFI_RUNTIME_SERVICES           *gRuntimeServicesOverride = NULL;    // 0x116E8(
  VOID
);

EFI_STATUS
EFIAPI
UINTN                           gDriverNvramBufferSize = 0;         // 0x11F18(
  VOID
);

EFI_STATUS
EFIAPI
UINT64                          gMailboxNvramBase = 0;              // 0x11F28(
  VOID
);

EFI_STATUS
EFIAPI
UINT32                          gMailboxNvramFlags = 0;             // 0x11F38(
  VOID
);

EFI_STATUS
EFIAPI
UINT64                          gMailboxVarStoreSize = 0;           // 0x11F48(
  VOID
);

EFI_STATUS
EFIAPI
BOOLEAN                         gSmiProcessing = FALSE;             // 0x11768(
  VOID
);

EFI_STATUS
EFIAPI
VAR_STORE_INFO                  gVarStoreArray[?];                  // 0x11C38(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
all UEFI/SMM plumbing(
  VOID
);

EFI_STATUS
EFIAPI
status variable(
  VOID
);

EFI_STATUS
EFIAPI
SmmBase2 protocol(
  VOID
);

EFI_STATUS
EFIAPI
SMM System Table(
  VOID
);

EFI_STATUS
EFIAPI
SMM memory allocation protocol(
  VOID
);

EFI_STATUS
EFIAPI
SMRAM ranges(
  VOID
);

EFI_STATUS
EFIAPI
PCIE segment bus table(
  VOID
);

EFI_STATUS
EFIAPI
AmiCryptoLib(
  VOID
);

EFI_STATUS
EFIAPI
heap memory manager(
  VOID
);

EFI_STATUS
EFIAPI
SMM buffer validation protocol(
  VOID
);

EFI_STATUS
EFIAPI
DxeServicesTable(
  VOID
);

EFI_STATUS
EFIAPI
through to SMM protocol install / notification init (returned from Init)(
  VOID
);

EFI_STATUS
EFIAPI
Initialization (sub_10F8)(
  VOID
);

EFI_STATUS
EFIAPI
that NVRAM store size at least matches HOB pattern(
  VOID
);

EFI_STATUS
EFIAPI
NVRAM HOB from HOB list(
  VOID
);

EFI_STATUS
EFIAPI
NvramMailBox variable to get mailbox memory region info(
  VOID
);

EFI_STATUS
EFIAPI
mailbox NVRAM base/size details from the variable(
  VOID
);

EFI_STATUS
EFIAPI
0(
  VOID
);

EFI_STATUS
EFIAPI
8(
  VOID
);

EFI_STATUS
EFIAPI
60(
  VOID
);

EFI_STATUS
EFIAPI
736(
  VOID
);

EFI_STATUS
EFIAPI
744(
  VOID
);

EFI_STATUS
EFIAPI
the variable(
  VOID
);

EFI_STATUS
EFIAPI
that VarStoreInfo NVRAM sizes match mailbox(
  VOID
);

EFI_STATUS
EFIAPI
VarStoreInfo NVRAM data from mailbox into working buffer(
  VOID
);

EFI_STATUS
EFIAPI
simulation mode, also copy NvInfo data from mailbox(
  VOID
);

EFI_STATUS
EFIAPI
DMA buffer for SMI communication (0x40000 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
buffer header(
  VOID
);

EFI_STATUS
EFIAPI
starts at +24(
  VOID
);

EFI_STATUS
EFIAPI
size(
  VOID
);

EFI_STATUS
EFIAPI
SMI handler for NVRAM variable access(
  VOID
);

EFI_STATUS
EFIAPI
notification callback on SMM ReadyToLock(
  VOID
);

EFI_STATUS
EFIAPI
runtime variable services(
  VOID
);

EFI_STATUS
EFIAPI
variable change callbacks for variable sync(
  VOID
);

EFI_STATUS
EFIAPI
additional callbacks for DmiArray variable change(
  VOID
);

EFI_STATUS
EFIAPI
SMM communication protocol for variable sync(
  VOID
);

EFI_STATUS
EFIAPI
NVRAM Communication Handler (sub_6AE4)(
  VOID
);

EFI_STATUS
EFIAPI
buffer address with SMM buffer validation protocol(
  VOID
);

EFI_STATUS
EFIAPI
the buffer pointer to 8-byte boundary(
  VOID
);

EFI_STATUS
EFIAPI
SMI processing flag(
  VOID
);

EFI_STATUS
EFIAPI
command code at offset 0(
  VOID
);

EFI_STATUS
EFIAPI
0: GetVariable operation(
  VOID
);

EFI_STATUS
EFIAPI
layout: +0x00: cmd, +0x08: NameSize, +0x10: DataSize(
  VOID
);

EFI_STATUS
EFIAPI
variable read with sub_5580(
  VOID
);

EFI_STATUS
EFIAPI
1: SetVariable operation(
  VOID
);

EFI_STATUS
EFIAPI
layout: +0x00: cmd, +0x08: NameLength, +0x10: DataSize(
  VOID
);

EFI_STATUS
EFIAPI
handles the actual set(
  VOID
);

EFI_STATUS
EFIAPI
2: GetNextVariableName(
  VOID
);

EFI_STATUS
EFIAPI
3: QueryVariableInfo(
  VOID
);

EFI_STATUS
EFIAPI
4: Variable write with auth(
  VOID
);

EFI_STATUS
EFIAPI
complete notification(
  VOID
);

EFI_STATUS
EFIAPI
status back to command code location(
  VOID
);

EFI_STATUS
EFIAPI
NVRAM Update Handler (sub_5FAC and sub_5E44)(
  VOID
);

EFI_STATUS
EFIAPI
// Validate comm buffer(
  VOID
);

EFI_STATUS
EFIAPI
size match(
  VOID
);

EFI_STATUS
EFIAPI
that source buffer has a valid FV header(
  VOID
);

EFI_STATUS
EFIAPI
if FV header size is consistent(
  VOID
);

EFI_STATUS
EFIAPI
the data aligns with store parameters(
  VOID
);

EFI_STATUS
EFIAPI
to allocate bigger temp buffer (3x)(
  VOID
);

EFI_STATUS
EFIAPI
source NVRAM data(
  VOID
);

EFI_STATUS
EFIAPI
that data is not all 0xFF (empty erased)(
  VOID
);

EFI_STATUS
EFIAPI
for active NVRAM (FV header + GUID match)(
  VOID
);

EFI_STATUS
EFIAPI
size matches the data in the FV(
  VOID
);

EFI_STATUS
EFIAPI
from temp to working store(
  VOID
);

EFI_STATUS
EFIAPI
up store pointers for the migration(
  VOID
);

EFI_STATUS
EFIAPI
address(
  VOID
);

EFI_STATUS
EFIAPI
store parameters(
  VOID
);

EFI_STATUS
EFIAPI
Fill header calculation(
  VOID
);

EFI_STATUS
EFIAPI
up the variable enumeration(
  VOID
);

EFI_STATUS
EFIAPI
to find space and move(
  VOID
);

EFI_STATUS
EFIAPI
collection / flush path(
  VOID
);

EFI_STATUS
EFIAPI
old store entries(
  VOID
);

EFI_STATUS
EFIAPI
deleted(
  VOID
);

EFI_STATUS
EFIAPI
GC path(
  VOID
);

EFI_STATUS
EFIAPI
this point the GC reclaimed space(
  VOID
);

EFI_STATUS
EFIAPI
Variable Service Overrides(
  VOID
);

EFI_STATUS
EFIAPI
to SMI via SMI_NVRAM_CMD_GET_VARIABLE command(
  VOID
);

EFI_STATUS
EFIAPI
non-SMM context, sends SMI to enter SMM first.(
  VOID
);

EFI_STATUS
EFIAPI
declaration: actual implementation at sub_5580.(
  VOID
);

EFI_STATUS
EFIAPI
to SMI via SMI_NVRAM_CMD_SET_VARIABLE command(
  VOID
);

EFI_STATUS
EFIAPI
declaration: actual implementation at sub_5654.(
  VOID
);

EFI_STATUS
EFIAPI
via SMI_NVRAM_CMD_GET_NEXT_VARIABLE(
  VOID
);

EFI_STATUS
EFIAPI
declaration: actual implementation at sub_F54.(
  VOID
);

EFI_STATUS
EFIAPI
via SMI_NVRAM_CMD_QUERY_VARIABLE_INFO(
  VOID
);

EFI_STATUS
EFIAPI
declaration: actual implementation at sub_5D34.(
  VOID
);

EFI_STATUS
EFIAPI
Aware Variable Services(
  VOID
);

EFI_STATUS
EFIAPI
variable type from vendor GUID(
  VOID
);

EFI_STATUS
EFIAPI
DEBUG(((
  VOID
);

EFI_STATUS
EFIAPI
the variable to the actual NVRAM store(
  VOID
);

EFI_STATUS
EFIAPI
SecureBootMode transitions(
  VOID
);

EFI_STATUS
EFIAPI
type: handle PK/KEK changes(
  VOID
);

EFI_STATUS
EFIAPI
mode -> set to secure boot mode 0(
  VOID
);

EFI_STATUS
EFIAPI
mode -> set to 3(
  VOID
);

EFI_STATUS
EFIAPI
physically present(
  VOID
);

EFI_STATUS
EFIAPI
mode(
  VOID
);

EFI_STATUS
EFIAPI
DeploymentModeNv and VendorKeysNv, reject access(
  VOID
);

EFI_STATUS
EFIAPI
Synchronization Callbacks(
  VOID
);

EFI_STATUS
EFIAPI
disable flag variable(
  VOID
);

EFI_STATUS
EFIAPI
disable flag(
  VOID
);

EFI_STATUS
EFIAPI
sync from Setup to other config variables(
  VOID
);

EFI_STATUS
EFIAPI
fields from Setup to variables(
  VOID
);

EFI_STATUS
EFIAPI
SocketIioConfig(
  VOID
);

EFI_STATUS
EFIAPI
SRIOVEnable between IntelSetup and Setup(
  VOID
);

EFI_STATUS
EFIAPI
Storage Helper Functions(
  VOID
);

EFI_STATUS
EFIAPI
for FV header signature at offset 40(
  VOID
);

EFI_STATUS
EFIAPI
header length at offset 48(
  VOID
);

EFI_STATUS
EFIAPI
FV header only(
  VOID
);

EFI_STATUS
EFIAPI
header present at ExtHeaderOffset(
  VOID
);

EFI_STATUS
EFIAPI
aligned total size(
  VOID
);

EFI_STATUS
EFIAPI
from end, working backwards(
  VOID
);

EFI_STATUS
EFIAPI
from flags field(
  VOID
);

EFI_STATUS
EFIAPI
to locate existing variable data(
  VOID
);

EFI_STATUS
EFIAPI
for valid flash store(
  VOID
);

EFI_STATUS
EFIAPI
existing data(
  VOID
);

EFI_STATUS
EFIAPI
HOB Retrieval (sub_644C)(
  VOID
);

EFI_STATUS
EFIAPI
for NVRAM HOB(
  VOID
);

EFI_STATUS
EFIAPI
HOB found, run in simulation mode(
  VOID
);

EFI_STATUS
EFIAPI
+48 = NVRAM size(
  VOID
);

EFI_STATUS
EFIAPI
+24 = store address(
  VOID
);

EFI_STATUS
EFIAPI
that store fits in the GCD descriptor(
  VOID
);

EFI_STATUS
EFIAPI
working buffer for NVRAM image(
  VOID
);

EFI_STATUS
EFIAPI
no real store, fill with 0xFF (simulation)(
  VOID
);

EFI_STATUS
EFIAPI
store from actual flash(
  VOID
);

EFI_STATUS
EFIAPI
initialization: discover GCD descriptor(
  VOID
);

EFI_STATUS
EFIAPI
boundaries(
  VOID
);

EFI_STATUS
EFIAPI
variable store info from working buffer(
  VOID
);

EFI_STATUS
EFIAPI
info pointer to the variable store array entry(
  VOID
);

EFI_STATUS
EFIAPI
up callback table for for for for for for...(
  VOID
);

EFI_STATUS
EFIAPI
as initialized(
  VOID
);

EFI_STATUS
EFIAPI
the driver's NVRAM working buffer (3x store size for GC)(
  VOID
);

EFI_STATUS
EFIAPI
"StdDefaults" if present for first-boot defaults(
  VOID
);

EFI_STATUS
EFIAPI
default variable values from HOB or FV(
  VOID
);

EFI_STATUS
EFIAPI
defaults flag(
  VOID
);

EFI_STATUS
EFIAPI
defaults(
  VOID
);

EFI_STATUS
EFIAPI
actual maximum NVRAM size across all stores(
  VOID
);

EFI_STATUS
EFIAPI
allocate driver buffer with larger size(
  VOID
);

EFI_STATUS
EFIAPI
Init (sub_68384)(
  VOID
);

EFI_STATUS
EFIAPI
the NVRAM HOB from HOB list(
  VOID
);

EFI_STATUS
EFIAPI
HOB list looking for NVRAM HOB data structure(
  VOID
);

EFI_STATUS
EFIAPI
driver's NVRAM working buffer(
  VOID
);

EFI_STATUS
EFIAPI
the store from from HOB(
  VOID
);

EFI_STATUS
EFIAPI
up VarStore array entry(
  VOID
);

EFI_STATUS
EFIAPI
working comparison buffer(
  VOID
);

EFI_STATUS
EFIAPI
all stores fit in the working buffer(
  VOID
);

#endif /* __NVRAMSMM_H__ */