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

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __BMCLANCONFIG_H__
#define __BMCLANCONFIG_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
InitializeBmcLanConfig(
  VOID
);

EFI_STATUS
EFIAPI
ReadUnaligned64(
  VOID
);

EFI_STATUS
EFIAPI
IsGuidMatch(
  VOID
);

EFI_STATUS
EFIAPI
IpmiSendCommandWithRetry(
  VOID
);

EFI_STATUS
EFIAPI
IpmiSetLanConfigParamBytes(
  VOID
);

EFI_STATUS
EFIAPI
IpmiGetLanConfigParamBytes(
  VOID
);

EFI_STATUS
EFIAPI
IpmiGetChannelNumber(
  VOID
);

EFI_STATUS
EFIAPI
GetLanChannelNumbers(
  VOID
);

EFI_STATUS
EFIAPI
AsciiIpv4AddrToBytes(
  VOID
);

EFI_STATUS
EFIAPI
AsciiMacAddrToBytes(
  VOID
);

EFI_STATUS
EFIAPI
IpmiSetLanConfigParams(
  VOID
);

EFI_STATUS
EFIAPI
_ModuleEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
LAN Configuration Parameter Selectors(
  VOID
);

EFI_STATUS
EFIAPI
IP address (4 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
mask (4 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
gateway IP (4 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
gateway MAC (6 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
LAN network function(
  VOID
);

EFI_STATUS
EFIAPI
Application network function(
  VOID
);

EFI_STATUS
EFIAPI
LUN(
  VOID
);

EFI_STATUS
EFIAPI
protocol pointers (stored in .data section, runtime BSS)(
  VOID
);

EFI_STATUS
EFIAPI
IPMI transport protocol interface, located by LocateProtocol()(
  VOID
);

EFI_STATUS
EFIAPI
the GUID at unk_1F20 ({0x36232936, ...}).(
  VOID
);

EFI_STATUS
EFIAPI
*mIpmiTransport = NULL;  // qword_23F0(
  VOID
);

EFI_STATUS
EFIAPI
HOB list pointer, located from the system table configuration table(
  VOID
);

EFI_STATUS
EFIAPI
// The debug output protocol, located from HOB(
  VOID
);

EFI_STATUS
EFIAPI
PCD protocol interface(
  VOID
);

EFI_STATUS
EFIAPI
//(
  VOID
);

EFI_STATUS
EFIAPI
declarations(
  VOID
);

EFI_STATUS
EFIAPI
InitializeBmcLanConfig ((
  VOID
);

EFI_STATUS
EFIAPI
helper functions (MdePkg library wrappers)(
  VOID
);

EFI_STATUS
EFIAPI
from end to beginning.(
  VOID
);

EFI_STATUS
EFIAPI
= (UINT8 *)Source + Length - 1;(
  VOID
);

EFI_STATUS
EFIAPI
overlap or Destination starts before Source.(
  VOID
);

EFI_STATUS
EFIAPI
from beginning, using qmemcpy for aligned 8-byte chunks.(
  VOID
);

EFI_STATUS
EFIAPI
= Length >> 3;(
  VOID
);

EFI_STATUS
EFIAPI
list and protocol locator functions(
  VOID
);

EFI_STATUS
EFIAPI
pool for the HOB protocol lookup, using BootServices.(
  VOID
);

EFI_STATUS
EFIAPI
the HOB list size is 16 bytes or less (platform-specific check)(
  VOID
);

EFI_STATUS
EFIAPI
LocateProtocol for the debug output protocol instead.(
  VOID
);

EFI_STATUS
EFIAPI
(gBS->CalculateEfiHobListSize (mHobList) <= sizeof (UINT64) + sizeof (UINT64)) {(
  VOID
);

EFI_STATUS
EFIAPI
Transport Protocol Command Functions(
  VOID
);

EFI_STATUS
EFIAPI
[1:0] of second byte = busy flag from BMC(
  VOID
);

EFI_STATUS
EFIAPI
LAN Configuration Parameters command:(
  VOID
);

EFI_STATUS
EFIAPI
= 1;(
  VOID
);

EFI_STATUS
EFIAPI
LAN Configuration Parameters(
  VOID
);

EFI_STATUS
EFIAPI
format: bit 7 = parameter revision flag(
  VOID
);

EFI_STATUS
EFIAPI
bit 7 set: value is byte[1] | ((byte[2] & 0x3F) << 8)(
  VOID
);

EFI_STATUS
EFIAPI
bit 7 clear: parameter is not supported / invalid(
  VOID
);

EFI_STATUS
EFIAPI
(ResponseBuffer[0] & 0x80) {(
  VOID
);

EFI_STATUS
EFIAPI
Channel Discovery(
  VOID
);

EFI_STATUS
EFIAPI
the IPMI transport's capabilities for max channels and medium type.(
  VOID
);

EFI_STATUS
EFIAPI
= ((EFI_IPMI_TRANSPORT_PROTOCOL *)IpmiProtocol)->GetMaxChannels (185);(
  VOID
);

EFI_STATUS
EFIAPI
candidate channels 1 through 11(
  VOID
);

EFI_STATUS
EFIAPI
{(
  VOID
);

EFI_STATUS
EFIAPI
command: Get Channel Number(
  VOID
);

EFI_STATUS
EFIAPI
= IPMI_CC_SUCCESS;(
  VOID
);

EFI_STATUS
EFIAPI
code(
  VOID
);

EFI_STATUS
EFIAPI
type bits [6:0] = 4 means this channel supports the(
  VOID
);

EFI_STATUS
EFIAPI
LAN (NC-SI or USB-over-LAN) medium.(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_INFO, "%a: Channel Medium Type: %x\n", "GetLanChannelNumber", ResponseByte & 0x7F));(
  VOID
);

EFI_STATUS
EFIAPI
channel buffer already has the correct values from the scan(
  VOID
);

EFI_STATUS
EFIAPI
this is effectively a length adjustment.(
  VOID
);

EFI_STATUS
EFIAPI
(ChannelBuffer, ChannelBuffer, *ChannelCount);(
  VOID
);

EFI_STATUS
EFIAPI
String Parsers for IPMI Configuration(
  VOID
);

EFI_STATUS
EFIAPI
from last octet (parse backwards)(
  VOID
);

EFI_STATUS
EFIAPI
string length (cap at 15 chars to avoid pathological inputs)(
  VOID
);

EFI_STATUS
EFIAPI
= 0;(
  VOID
);

EFI_STATUS
EFIAPI
value ranges: max 3 digits, max value 255(
  VOID
);

EFI_STATUS
EFIAPI
(DigitCount > 2) {(
  VOID
);

EFI_STATUS
EFIAPI
leading null characters (padding)(
  VOID
);

EFI_STATUS
EFIAPI
NextChar;(
  VOID
);

EFI_STATUS
EFIAPI
out output on parse failure(
  VOID
);

EFI_STATUS
EFIAPI
from last byte (parse backwards)(
  VOID
);

EFI_STATUS
EFIAPI
separator: commit the current byte(
  VOID
);

EFI_STATUS
EFIAPI
(!HasDigits || MacString[Index + 1] == L'-') {(
  VOID
);

EFI_STATUS
EFIAPI
of string: commit final byte(
  VOID
);

EFI_STATUS
EFIAPI
(HasDigits) {(
  VOID
);

EFI_STATUS
EFIAPI
hex nibble(
  VOID
);

EFI_STATUS
EFIAPI
= TRUE;(
  VOID
);

EFI_STATUS
EFIAPI
LAN Configuration (Parameter Block Programming)(
  VOID
);

EFI_STATUS
EFIAPI
3: Station IP Address (4 bytes at offset 1)(
  VOID
);

EFI_STATUS
EFIAPI
((
  VOID
);

EFI_STATUS
EFIAPI
6: Subnet Mask (4 bytes at offset 5)(
  VOID
);

EFI_STATUS
EFIAPI
12: Default Gateway IP (4 bytes at offset 9)(
  VOID
);

EFI_STATUS
EFIAPI
13: Default Gateway MAC (6 bytes at offset 13)(
  VOID
);

EFI_STATUS
EFIAPI
Entry Point: InitializeBmcLanConfig(
  VOID
);

EFI_STATUS
EFIAPI
the IPMI Transport Protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
active LAN channels(
  VOID
);

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

EFI_STATUS
EFIAPI
each discovered LAN channel(
  VOID
);

EFI_STATUS
EFIAPI
(Index = 0; Index < ChannelCount; Index++) {(
  VOID
);

EFI_STATUS
EFIAPI
configuration data is referenced from the "ServerSetup"(
  VOID
);

EFI_STATUS
EFIAPI
variable (string at 0x1940). Each channel has a 19-byte(
  VOID
);

EFI_STATUS
EFIAPI
block programmed via IpmiSetLanConfigParams().(
  VOID
);

EFI_STATUS
EFIAPI
dump of configured parameters(
  VOID
);

EFI_STATUS
EFIAPI
((EFI_D_INFO, "#########################\n"));(
  VOID
);

EFI_STATUS
EFIAPI
UEFI Module Entry Point(
  VOID
);

EFI_STATUS
EFIAPI
(0x350)(
  VOID
);

EFI_STATUS
EFIAPI
global pointers.(
  VOID
);

EFI_STATUS
EFIAPI
EFIAPI(
  VOID
);

EFI_STATUS
EFIAPI
global service table pointers with assertions(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
HOB list for debug protocol access(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
BMC LAN configuration(
  VOID
);

EFI_STATUS
EFIAPI
InitializeBmcLanConfig ();(
  VOID
);

#endif /* __BMCLANCONFIG_H__ */