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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __IPMIDEVICEAMOUNT_H__
#define __IPMIDEVICEAMOUNT_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int8 *v3; // r13(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v5; // rax(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int64 v8; // r12(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v10; // rax(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v12; // rax(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v14; // r12(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v16; // rax(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int64 v18; // r13(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v20; // r14(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v22; // rax(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v24; // rax(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v26; // r15(
  VOID
);

EFI_STATUS
EFIAPI
unsigned int v28; // r15d(
  VOID
);

EFI_STATUS
EFIAPI
_QWORD *v30; // r10(
  VOID
);

EFI_STATUS
EFIAPI
// NOTE: Full decompilation was too large for IDA output.(
  VOID
);

EFI_STATUS
EFIAPI
function appears to be the outermost dispatcher.(
  VOID
);

EFI_STATUS
EFIAPI
- capacity GB integer part(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v9;             // rdi - status(
  VOID
);

EFI_STATUS
EFIAPI
- loop index(
  VOID
);

EFI_STATUS
EFIAPI
- offset into handle buffer(
  VOID
);

EFI_STATUS
EFIAPI
- status (OpenProtocol for ATA)(
  VOID
);

EFI_STATUS
EFIAPI
- line number for assert(
  VOID
);

EFI_STATUS
EFIAPI
- status(
  VOID
);

EFI_STATUS
EFIAPI
- swap index(
  VOID
);

EFI_STATUS
EFIAPI
- loop counter for model swap(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v20;            // r8(
  VOID
);

EFI_STATUS
EFIAPI
- temp for byte swap(
  VOID
);

EFI_STATUS
EFIAPI
- trim loop(
  VOID
);

EFI_STATUS
EFIAPI
- capacity sectors(
  VOID
);

EFI_STATUS
EFIAPI
- capacity in bytes(
  VOID
);

EFI_STATUS
EFIAPI
- capacity fractional GB(
  VOID
);

EFI_STATUS
EFIAPI
pool for model string buffer (256 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
pool for capacity string buffer (256 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
the ATA Pass Thru protocol on the controller handle(
  VOID
);

EFI_STATUS
EFIAPI
get the list of available ports/devices(
  VOID
);

EFI_STATUS
EFIAPI
if port is enabled (bit 3 of attributes)(
  VOID
);

EFI_STATUS
EFIAPI
ATA protocol interface on this port(
  VOID
);

EFI_STATUS
EFIAPI
if device matches expected GUID (unk_2CC0)(
  VOID
);

EFI_STATUS
EFIAPI
device type info (HDD vs SSD detection)(
  VOID
);

EFI_STATUS
EFIAPI
IDENTIFY data buffer (512 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
the IDENTIFY buffer(
  VOID
);

EFI_STATUS
EFIAPI
IDENTIFY DEVICE command via ATA Pass Thru(
  VOID
);

EFI_STATUS
EFIAPI
model name from ATA IDENTIFY data (byte-swapped)(
  VOID
);

EFI_STATUS
EFIAPI
model name is in words 27-46 (54 bytes), byte-swapped(
  VOID
);

EFI_STATUS
EFIAPI
trailing spaces from model name(
  VOID
);

EFI_STATUS
EFIAPI
model name as ASCII string(
  VOID
);

EFI_STATUS
EFIAPI
capacity(
  VOID
);

EFI_STATUS
EFIAPI
does not support LBA - use ATAPI fallback(
  VOID
);

EFI_STATUS
EFIAPI
sectors to GB (sector size = 512 bytes = << 9)(
  VOID
);

EFI_STATUS
EFIAPI
bytes(
  VOID
);

EFI_STATUS
EFIAPI
integer part(
  VOID
);

EFI_STATUS
EFIAPI
fractional part (1 decimal)(
  VOID
);

EFI_STATUS
EFIAPI
as SSD or HDD(
  VOID
);

EFI_STATUS
EFIAPI
count(
  VOID
);

EFI_STATUS
EFIAPI
total capacity(
  VOID
);

EFI_STATUS
EFIAPI
IDENTIFY buffer(
  VOID
);

EFI_STATUS
EFIAPI
on failure(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v10;             // rbx - status(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v18;             // rax - status from sub_A24(
  VOID
);

EFI_STATUS
EFIAPI
all handles supporting ATA Pass Thru protocol(
  VOID
);

EFI_STATUS
EFIAPI
&unk_2D00,      // ATA Pass Thru GUID(
  VOID
);

EFI_STATUS
EFIAPI
ATA Pass Thru protocol on this handle(
  VOID
);

EFI_STATUS
EFIAPI
Block IO protocol to get device topology info(
  VOID
);

EFI_STATUS
EFIAPI
device location (SATA port, bus, device, function)(
  VOID
);

EFI_STATUS
EFIAPI
the ATA controller port(
  VOID
);

EFI_STATUS
EFIAPI
print: SATA controller location(
  VOID
);

EFI_STATUS
EFIAPI
devices on this controller(
  VOID
);

EFI_STATUS
EFIAPI
HDD count(
  VOID
);

EFI_STATUS
EFIAPI
HDD capacity(
  VOID
);

EFI_STATUS
EFIAPI
SSD count(
  VOID
);

EFI_STATUS
EFIAPI
SSD capacity(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int8 v2;      // r15(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v4;              // rdx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v6;              // rbx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v8;              // rbx(
  VOID
);

EFI_STATUS
EFIAPI
char v10;                // r8(
  VOID
);

EFI_STATUS
EFIAPI
_BYTE *v12;              // rdx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 n0x7FFF;         // rdx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v16;             // r8(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v18;             // rdi(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int8 v20;     // r14(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int8 v22;     // si(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int8 v24;     // di(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int8 *v26;    // rbx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v28;             // r9(
  VOID
);

EFI_STATUS
EFIAPI
__int64 result;          // rax(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v32;             // rax(
  VOID
);

EFI_STATUS
EFIAPI
function registers a ReadyToBoot callback that reads CPU(
  VOID
);

EFI_STATUS
EFIAPI
HDD and SSD counts to the BMC.(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int64 n0xF4240; // rdi - counter, max 1,000,000(
  VOID
);

EFI_STATUS
EFIAPI
_WORD *v2; // rbx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v4; // r8(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v6; // r10(
  VOID
);

EFI_STATUS
EFIAPI
unsigned __int64 n3; // rdi(
  VOID
);

EFI_STATUS
EFIAPI
__int16 v10; // dx(
  VOID
);

EFI_STATUS
EFIAPI
result = SSD_1;(
  VOID
);

EFI_STATUS
EFIAPI
first 5 characters for "SSD" pattern match(
  VOID
);

EFI_STATUS
EFIAPI
with known SSD model prefix table(
  VOID
);

EFI_STATUS
EFIAPI
wide chars(
  VOID
);

EFI_STATUS
EFIAPI
next SSD keyword pattern(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v3; // rcx(
  VOID
);

EFI_STATUS
EFIAPI
__int64 v5; // r9(
  VOID
);

EFI_STATUS
EFIAPI
comparison - checks all 4 fields of the GUID structure(
  VOID
);

EFI_STATUS
EFIAPI
current time formatted as a string buffer(
  VOID
);

EFI_STATUS
EFIAPI
for debug/timestamp output(
  VOID
);

EFI_STATUS
EFIAPI
va_list va; // [rsp+48h] [rbp+10h] BYREF(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint or similar UEFI debug output function(
  VOID
);

EFI_STATUS
EFIAPI
UEFI ASSERT implementation:(
  VOID
);

EFI_STATUS
EFIAPI
gBS->CreateEventEx(EVT_NOTIFY_SIGNAL, TPL_CALLBACK, sub_10C0, ...)(
  VOID
);

EFI_STATUS
EFIAPI
gBS->RegisterProtocolNotify(...)(
  VOID
);

EFI_STATUS
EFIAPI
UEFI libraries:(
  VOID
);

EFI_STATUS
EFIAPI
gBS->SetMem() or BaseMemoryLib SetMem()(
  VOID
);

EFI_STATUS
EFIAPI
ASCII string to uppercase(
  VOID
);

EFI_STATUS
EFIAPI
CPU information via HOB or SMBIOS(
  VOID
);

EFI_STATUS
EFIAPI
UnicodeSPrint(dst, size, fmt, ...)(
  VOID
);

EFI_STATUS
EFIAPI
serial/console print implementation with format string support(
  VOID
);

EFI_STATUS
EFIAPI
current serial port configuration(
  VOID
);

#endif /* __IPMIDEVICEAMOUNT_H__ */