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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __SMBIOSTYPE39_H__
#define __SMBIOSTYPE39_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
InternalReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
AsciiStrLen(
  VOID
);

EFI_STATUS
EFIAPI
StrLen(
  VOID
);

EFI_STATUS
EFIAPI
EfiGetSystemConfigurationTable(
  VOID
);

EFI_STATUS
EFIAPI
SendHeciPowerSupplyCommand(
  VOID
);

EFI_STATUS
EFIAPI
GetHobList(
  VOID
);

EFI_STATUS
EFIAPI
FreePoolOrBuffer(
  VOID
);

EFI_STATUS
EFIAPI
DebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
InstallSmbiosType39Structure(
  VOID
);

EFI_STATUS
EFIAPI
SmbiosType39EntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
data(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle  = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
definitions (referenced from global data section)(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID  gEfiSmbiosProtocolGuid;(
  VOID
);

EFI_STATUS
EFIAPI
command message for power supply queries(
  VOID
);

EFI_STATUS
EFIAPI
= HECI_GROUP_ID << 8 | 0x0A(
  VOID
);

EFI_STATUS
EFIAPI
command byte(
  VOID
);

EFI_STATUS
EFIAPI
data (varies per command)(
  VOID
);

EFI_STATUS
EFIAPI
command template: GroupId = 0x8A0A(
  VOID
);

EFI_STATUS
EFIAPI
FWS (Firmware Status) register bits(
  VOID
);

EFI_STATUS
EFIAPI
out 8 bytes at a time, then remaining bytes(
  VOID
);

EFI_STATUS
EFIAPI
(Buffer, Length);(
  VOID
);

EFI_STATUS
EFIAPI
exceeded(
  VOID
);

EFI_STATUS
EFIAPI
buffers do not overlap in a way that would cause corruption(
  VOID
);

EFI_STATUS
EFIAPI
((UINTN)((CHAR8 *)Destination - Source) > AsciiStrLen (Source));(
  VOID
);

EFI_STATUS
EFIAPI
the HECI request header(
  VOID
);

EFI_STATUS
EFIAPI
Request.Command  = Command;(
  VOID
);

EFI_STATUS
EFIAPI
bay index in low byte(
  VOID
);

EFI_STATUS
EFIAPI
the command via HECI with the default buffer size(
  VOID
);

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

EFI_STATUS
EFIAPI
response: if HeciMsg[1] is non-zero but not 0xA3, no data available(
  VOID
);

EFI_STATUS
EFIAPI
(Response[1] != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
the returned data to the caller's buffer(
  VOID
);

EFI_STATUS
EFIAPI
= &Response[3];(
  VOID
);

EFI_STATUS
EFIAPI
31 pages for PCD protocol usage(
  VOID
);

EFI_STATUS
EFIAPI
= EFI_SIZE_TO_PAGES (31);(
  VOID
);

EFI_STATUS
EFIAPI
enough pages - return NULL(
  VOID
);

EFI_STATUS
EFIAPI
NULL;(
  VOID
);

EFI_STATUS
EFIAPI
the PCD protocol(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
CMOS to determine current debug level(
  VOID
);

EFI_STATUS
EFIAPI
= IoRead8 (0x70);(
  VOID
);

EFI_STATUS
EFIAPI
the error mask based on the debug level(
  VOID
);

EFI_STATUS
EFIAPI
(DebugLevel > 3) {(
  VOID
);

EFI_STATUS
EFIAPI
the INVALID string length for fallback(
  VOID
);

EFI_STATUS
EFIAPI
= AsciiStrLen ("INVALID");(
  VOID
);

EFI_STATUS
EFIAPI
the SMBIOS protocol(
  VOID
);

EFI_STATUS
EFIAPI
= (SMBIOS_TABLE_TYPE39 *)(UINTN)GetSmbiosProtocol ();(
  VOID
);

EFI_STATUS
EFIAPI
the notification event(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->CloseEvent (Event);(
  VOID
);

EFI_STATUS
EFIAPI
the HECI protocol(
  VOID
);

EFI_STATUS
EFIAPI
= GetHeciProtocol ();(
  VOID
);

EFI_STATUS
EFIAPI
ME firmware status to determine if ME is in normal mode(
  VOID
);

EFI_STATUS
EFIAPI
= 512;(
  VOID
);

EFI_STATUS
EFIAPI
is not in S0/M0 normal operation state(
  VOID
);

EFI_STATUS
EFIAPI
((DEBUG_INFO, "MeFs1.Bits.CurrentState == %d\n", CurrentMeState));(
  VOID
);

EFI_STATUS
EFIAPI
power supply bays (0 and 1)(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
1: Get Device Name (command = 0x9A, -102 signed)(
  VOID
);

EFI_STATUS
EFIAPI
(DeviceName, "INVALID");(
  VOID
);

EFI_STATUS
EFIAPI
2: Get Manufacturer (command = 0x99, -103 signed)(
  VOID
);

EFI_STATUS
EFIAPI
3: Get Serial Number (command = 0x62, -98 signed as 0x9E)(
  VOID
);

EFI_STATUS
EFIAPI
4: Get Asset Tag (command = 0xF1, -15 signed)(
  VOID
);

EFI_STATUS
EFIAPI
tag command(
  VOID
);

EFI_STATUS
EFIAPI
5: Get Model Part Number (command = 0x9B, -101 signed)(
  VOID
);

EFI_STATUS
EFIAPI
6: Get Revision Level (command = 0xA7, -89 signed)(
  VOID
);

EFI_STATUS
EFIAPI
7: Get Max Power Capacity(
  VOID
);

EFI_STATUS
EFIAPI
request parameter(
  VOID
);

EFI_STATUS
EFIAPI
8: Get Power Supply Present / Status(
  VOID
);

EFI_STATUS
EFIAPI
as capacity command(
  VOID
);

EFI_STATUS
EFIAPI
= Unknown(
  VOID
);

EFI_STATUS
EFIAPI
power supply status based on response byte(
  VOID
);

EFI_STATUS
EFIAPI
bit 1 of response[2] is clear -> status = 1 (Present, Unknown)(
  VOID
);

EFI_STATUS
EFIAPI
bit 1 of response[2] is set   -> status = 3 (Present, Good)(
  VOID
);

EFI_STATUS
EFIAPI
= ((PsuResponse[2] & 0x02) != 0) ? 1 : 3;(
  VOID
);

EFI_STATUS
EFIAPI
9: Allocate and build SMBIOS Type 39 record(
  VOID
);

EFI_STATUS
EFIAPI
= AsciiStrLen (DeviceName)(
  VOID
);

EFI_STATUS
EFIAPI
in the SMBIOS Type 39 record fields(
  VOID
);

EFI_STATUS
EFIAPI
power unit group (2 = "From the Mapping to the Power Unit Group")(
  VOID
);

EFI_STATUS
EFIAPI
the power supply status flags(
  VOID
);

EFI_STATUS
EFIAPI
0   = Power Supply Present(
  VOID
);

EFI_STATUS
EFIAPI
6-7 = Power Supply Status (00=Unknown, 01=OK, 10=Non-critical, 11=Critical)(
  VOID
);

EFI_STATUS
EFIAPI
= (PowerSupplyPresent & 1) | ((PowerSupplyStatus & 7) << 6);(
  VOID
);

EFI_STATUS
EFIAPI
fill the string area.(
  VOID
);

EFI_STATUS
EFIAPI
are packed as null-terminated ASCII after the fixed structure.(
  VOID
);

EFI_STATUS
EFIAPI
= (CHAR8 *)(SmbiosRecord + 1);(
  VOID
);

EFI_STATUS
EFIAPI
10: Add the Type 39 record via SMBIOS protocol(
  VOID
);

EFI_STATUS
EFIAPI
allocated buffers(
  VOID
);

EFI_STATUS
EFIAPI
(StringBuffer);(
  VOID
);

EFI_STATUS
EFIAPI
to the next supply bay(
  VOID
);

EFI_STATUS
EFIAPI
+= 2;(
  VOID
);

EFI_STATUS
EFIAPI
global variables(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
HOB list and PCD protocol(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
up the DXE Services Table via system configuration(
  VOID
);

EFI_STATUS
EFIAPI
= EfiGetSystemConfigurationTable ((
  VOID
);

EFI_STATUS
EFIAPI
up the MM PCI base protocol (for MMIO PCI config access)(
  VOID
);

EFI_STATUS
EFIAPI
a callback on the SMBIOS protocol installation(
  VOID
);

EFI_STATUS
EFIAPI
SMBIOS protocol becomes available, InstallSmbiosType39Structure(
  VOID
);

EFI_STATUS
EFIAPI
be called.(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->CreateEvent ((
  VOID
);

#endif /* __SMBIOSTYPE39_H__ */