Newer
Older
AMI-Aptio-BIOS-Reversed / LenovoServerPkg / InventoryApp / InventoryApp.h
/** @file
  InventoryApp.h -- Header for InventoryApp

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __INVENTORYAPP_H__
#define __INVENTORYAPP_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
HexStringToUint64(
  VOID
);

EFI_STATUS
EFIAPI
UnicodeStrLen(
  VOID
);

EFI_STATUS
EFIAPI
UnicodeStrSize(
  VOID
);

EFI_STATUS
EFIAPI
UnicodeSPrintEx(
  VOID
);

EFI_STATUS
EFIAPI
InventoryDebugAssert(
  VOID
);

EFI_STATUS
EFIAPI
InventoryDebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
AsciiHexCharToUint(
  VOID
);

EFI_STATUS
EFIAPI
size: 0x51a0 bytes(
  VOID
);

EFI_STATUS
EFIAPI
module is a UEFI Shell-based System Inventory Diagnostic Tool.(
  VOID
);

EFI_STATUS
EFIAPI
locates the gSystemInventoryProtocol (or gBmcSystemInventoryProtocol)(
  VOID
);

EFI_STATUS
EFIAPI
dumps inventory data for CPU, DIMM, PCIe, and HDD subsystems.(
  VOID
);

EFI_STATUS
EFIAPI
paths: e:\hs\MdePkg\Library\...(
  VOID
);

EFI_STATUS
EFIAPI
variables(
  VOID
);

EFI_STATUS
EFIAPI
EFI_SYSTEM_TABLE      *gST;                   // 0x4EE8(
  VOID
);

EFI_STATUS
EFIAPI
EFI_RUNTIME_SERVICES  *gRT;                   // 0x4F00(
  VOID
);

EFI_STATUS
EFIAPI
(secondary copy)(
  VOID
);

EFI_STATUS
EFIAPI
(argument count)(
  VOID
);

EFI_STATUS
EFIAPI
(argument vector pointer)(
  VOID
);

EFI_STATUS
EFIAPI
(HOB list pointer)(
  VOID
);

EFI_STATUS
EFIAPI
(debug output flag)(
  VOID
);

EFI_STATUS
EFIAPI
(output buffer)(
  VOID
);

EFI_STATUS
EFIAPI
Inventory Protocol GUIDs(
  VOID
);

EFI_STATUS
EFIAPI
= gSystemInventoryProtocolGuid(
  VOID
);

EFI_STATUS
EFIAPI
= gSystemInventoryProtocol (protocol instance)(
  VOID
);

EFI_STATUS
EFIAPI
= gSystemInventoryProtocol + 0 (HOB GUID data)(
  VOID
);

EFI_STATUS
EFIAPI
= gSystemInventoryProtocol + 8(
  VOID
);

EFI_STATUS
EFIAPI
Layout (size = 3402 = 0xD4A bytes)(
  VOID
);

EFI_STATUS
EFIAPI
Size  Field(
  VOID
);

EFI_STATUS
EFIAPI
85    BiosAndMEVersionInfo  (BIOS/ME version info)(
  VOID
);

EFI_STATUS
EFIAPI
1     BmcDeviceInfoParamaterSelector(
  VOID
);

EFI_STATUS
EFIAPI
1     CpuCount(
  VOID
);

EFI_STATUS
EFIAPI
170   CpuInfo[]  (85 bytes per CPU, max 2 CPUs)(
  VOID
);

EFI_STATUS
EFIAPI
1     DimmCount(
  VOID
);

EFI_STATUS
EFIAPI
2016  DimmInfo[] (84 bytes per DIMM, max 24 DIMMs)(
  VOID
);

EFI_STATUS
EFIAPI
1     PciCount(
  VOID
);

EFI_STATUS
EFIAPI
76    PciInfo[]  (19 bytes per slot, max 4 slots)(
  VOID
);

EFI_STATUS
EFIAPI
1     HddCount(
  VOID
);

EFI_STATUS
EFIAPI
1050  HddInfo[]  (75 bytes per HDD, max 14 HDDs)(
  VOID
);

EFI_STATUS
EFIAPI
(85 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
1     CoreCount(
  VOID
);

EFI_STATUS
EFIAPI
1     ThreadCount(
  VOID
);

EFI_STATUS
EFIAPI
13    CpuVendor (string)(
  VOID
);

EFI_STATUS
EFIAPI
30    CpuFamilyName (string)(
  VOID
);

EFI_STATUS
EFIAPI
30    CpuModelIdName (string)(
  VOID
);

EFI_STATUS
EFIAPI
10    Stepping (string)(
  VOID
);

EFI_STATUS
EFIAPI
MaxFrequency (UINT32, value in MHz)(
  VOID
);

EFI_STATUS
EFIAPI
(84 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
1     DimmSlotIndex(
  VOID
);

EFI_STATUS
EFIAPI
1     NodeNumber(
  VOID
);

EFI_STATUS
EFIAPI
1     ChannelNumber(
  VOID
);

EFI_STATUS
EFIAPI
10    DimmType (string)(
  VOID
);

EFI_STATUS
EFIAPI
10    DdrVoltage (string)(
  VOID
);

EFI_STATUS
EFIAPI
4     DimmFreq (UINT32, value in MHz)(
  VOID
);

EFI_STATUS
EFIAPI
4     DimmSize (UINT32, value in MB)(
  VOID
);

/// checked for non-zero)
EFI_STATUS
EFIAPI
2     (DWORD checksum/active field(
  VOID
);

EFI_STATUS
EFIAPI
4     (unused padding?)(
  VOID
);

EFI_STATUS
EFIAPI
10    ManufacturerIdName (string)(
  VOID
);

EFI_STATUS
EFIAPI
4     SerialNumber (4 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
35    PartNumber (string)(
  VOID
);

EFI_STATUS
EFIAPI
(19 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
1     SlotIndex(
  VOID
);

EFI_STATUS
EFIAPI
1     PciType(
  VOID
);

EFI_STATUS
EFIAPI
1     BusNumber(
  VOID
);

EFI_STATUS
EFIAPI
1     DevFun(
  VOID
);

EFI_STATUS
EFIAPI
2     VendorId(
  VOID
);

EFI_STATUS
EFIAPI
2     DeviceId(
  VOID
);

EFI_STATUS
EFIAPI
2     SubSystemVendorId(
  VOID
);

EFI_STATUS
EFIAPI
2     SubSystemId(
  VOID
);

EFI_STATUS
EFIAPI
1     InterfaceType(
  VOID
);

EFI_STATUS
EFIAPI
1     SubClassCode(
  VOID
);

EFI_STATUS
EFIAPI
1     BaseClassCode(
  VOID
);

EFI_STATUS
EFIAPI
1     LinkSpeed(
  VOID
);

EFI_STATUS
EFIAPI
1     LinkWidth(
  VOID
);

EFI_STATUS
EFIAPI
2     (unused/checksum, checked for non-zero)(
  VOID
);

EFI_STATUS
EFIAPI
(75 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
1     DriveIndex(
  VOID
);

EFI_STATUS
EFIAPI
68    VendorId (string)(
  VOID
);

EFI_STATUS
EFIAPI
4     DriveSize (UINT32, in MB)(
  VOID
);

EFI_STATUS
EFIAPI
1     MediaType(
  VOID
);

EFI_STATUS
EFIAPI
1     Formfactor(
  VOID
);

EFI_STATUS
EFIAPI
1     SlotNumber(
  VOID
);

EFI_STATUS
EFIAPI
1     DeviceState(
  VOID
);

EFI_STATUS
EFIAPI
(UINT32 checksum at offset 65, checked for non-zero)(
  VOID
);

EFI_STATUS
EFIAPI
protocol, and dumps inventory data for the requested(
  VOID
);

EFI_STATUS
EFIAPI
(cpu/dimm/pci/hdd).(
  VOID
);

EFI_STATUS
EFIAPI
modes (based on Argc/Argv):(
  VOID
);

EFI_STATUS
EFIAPI
global protocol pointers(
  VOID
);

EFI_STATUS
EFIAPI
HOB list(
  VOID
);

EFI_STATUS
EFIAPI
cached system table copies(
  VOID
);

EFI_STATUS
EFIAPI
alternate protocol(
  VOID
);

EFI_STATUS
EFIAPI
OffsetsTable = *Argv;      // argv(
  VOID
);

EFI_STATUS
EFIAPI
struct layout info only(
  VOID
);

/// show full struct layout
EFI_STATUS
EFIAPI
for "debug" keyword(
  VOID
);

EFI_STATUS
EFIAPI
by category below(
  VOID
);

EFI_STATUS
EFIAPI
to CpuCount(
  VOID
);

EFI_STATUS
EFIAPI
to DimmCount(
  VOID
);

EFI_STATUS
EFIAPI
to PciCount(
  VOID
);

EFI_STATUS
EFIAPI
to HddCount(
  VOID
);

EFI_STATUS
EFIAPI
for CPU with indexed (argc==3) path...(
  VOID
);

EFI_STATUS
EFIAPI
debug flag(
  VOID
);

EFI_STATUS
EFIAPI
function: HexStringToUint64 (
  VOID
);

EFI_STATUS
EFIAPI
EDK2 implementation(
  VOID
);

EFI_STATUS
EFIAPI
leading whitespace and '0x' prefix(
  VOID
);

EFI_STATUS
EFIAPI
alignment, validates range, converts hex digits(
  VOID
);

EFI_STATUS
EFIAPI
function: UnicodeStrLen (
  VOID
);

EFI_STATUS
EFIAPI
if (!String[++Length])(
  VOID
);

EFI_STATUS
EFIAPI
sentinel(
  VOID
);

EFI_STATUS
EFIAPI
function: UnicodeStrSize (
  VOID
);

EFI_STATUS
EFIAPI
check, alignment check, length cap at 0xF4240(
  VOID
);

EFI_STATUS
EFIAPI
function: UnicodeStrCmp (
  VOID
);

EFI_STATUS
EFIAPI
UnicodeStrSize for validation, then character-by-character comparison(
  VOID
);

EFI_STATUS
EFIAPI
function: UnicodeSPrintEx (
  VOID
);

EFI_STATUS
EFIAPI
format string parser supporting:(
  VOID
);

EFI_STATUS
EFIAPI
function: StatusCodeToString (
  VOID
);

EFI_STATUS
EFIAPI
string names for:(
  VOID
);

EFI_STATUS
EFIAPI
function: GetHobListFromSystemTable (
  VOID
);

EFI_STATUS
EFIAPI
HOB list from gST->HobList.Raw(
  VOID
);

EFI_STATUS
EFIAPI
back to searching SystemTable configuration table(
  VOID
);

EFI_STATUS
EFIAPI
on failure(
  VOID
);

EFI_STATUS
EFIAPI
function: InventoryDebugAssert (
  VOID
);

EFI_STATUS
EFIAPI
through to EFI_DEBUGGER_PROTOCOL assertion handler(
  VOID
);

EFI_STATUS
EFIAPI
function: LocateDebugSupportProtocol (
  VOID
);

EFI_STATUS
EFIAPI
gBS->AllocatePool, gBS->LocateProtocol to find the debug protocol(
  VOID
);

EFI_STATUS
EFIAPI
in qword_4F08(
  VOID
);

EFI_STATUS
EFIAPI
function: InventoryDebugPrintIfEnabled (
  VOID
);

EFI_STATUS
EFIAPI
error level against platform configuration (CMOS-based)(
  VOID
);

EFI_STATUS
EFIAPI
function: AsciiHexCharToUint (
  VOID
);

EFI_STATUS
EFIAPI
return Char - 55;  // 'A' - 10(
  VOID
);

EFI_STATUS
EFIAPI
function: Uint64ToString (
  VOID
);

EFI_STATUS
EFIAPI
function: AsciiStrHexToUintn (
  VOID
);

EFI_STATUS
EFIAPI
function: UnicodeValueToString (
  VOID
);

EFI_STATUS
EFIAPI
function: UnicodeSPrintBounded (
  VOID
);

EFI_STATUS
EFIAPI
function: GetPlatformErrorLevel (
  VOID
);

EFI_STATUS
EFIAPI
CMOS port 0x70/0x71 to read debug level from CMOS index 0x4B.(
  VOID
);

EFI_STATUS
EFIAPI
reads hardware register 0xFDAF0490 on certain CMOS values.(
  VOID
);

EFI_STATUS
EFIAPI
function: ReadUnaligned64 (
  VOID
);

EFI_STATUS
EFIAPI
function: HobGuidMatches (
  VOID
);

#endif /* __INVENTORYAPP_H__ */