Newer
Older
AMI-Aptio-BIOS-Reversed / AmiNetworkPkg / UefiNetworkStack / PxeBcDxe / UefiPxeBcDxe.h
@Ajax Dong Ajax Dong 2 days ago 9 KB Full restructure
/** @file
  UefiPxeBcDxe.h -- Header for UefiPxeBcDxe

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __UEFIPXEBCDXE_H__
#define __UEFIPXEBCDXE_H__

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

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
PxeBcDebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDriverEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDriverBindingSupported(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDriverBindingStart(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDriverBindingStop(
  VOID
);

EFI_STATUS
EFIAPI
PXeBcStart(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcStop(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDhcp(
  VOID
);

EFI_STATUS
EFIAPI
PXeBcDiscover(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcMtftp(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcUdpWrite(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcUdpRead(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcSetIpFilters(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcArp(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcSetParameters(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcSetStationIp(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcSetPackets(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcCheckIpv6Support(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcCreateChildren(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDestroyChild(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcWaitForEsc(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcPrintMacAddr(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcModeReset(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcBuildDhcp4Options(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcSaveBootFile(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcBootPrompt(
  VOID
);

EFI_STATUS
EFIAPI
variables(
  VOID
);

EFI_STATUS
EFIAPI
gImageHandle   = NULL;(
  VOID
);

EFI_STATUS
EFIAPI
configuration - timeout values read from NVRAM(
  VOID
);

EFI_STATUS
EFIAPI
n257           = 0;   // Default PXE timeout(
  VOID
);

EFI_STATUS
EFIAPI
timeout(
  VOID
);

EFI_STATUS
EFIAPI
GUIDs (defined in external .rdata section)(
  VOID
);

EFI_STATUS
EFIAPI
are referenced via offsets into .rdata at known locations.(
  VOID
);

EFI_STATUS
EFIAPI
GUIDs match the standard UEFI PXE Base Code protocol GUID(
  VOID
);

EFI_STATUS
EFIAPI
declarations(
  VOID
);

EFI_STATUS
EFIAPI
PxeBcDebugPrint ((
  VOID
);

EFI_STATUS
EFIAPI
global state via UefiBootServicesTableLib constructor(
  VOID
);

EFI_STATUS
EFIAPI
= UefiBootServicesTableLibConstructor (ImageHandle, SystemTable);(
  VOID
);

EFI_STATUS
EFIAPI
required HII protocols(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, &gHiiConfigRouting);(
  VOID
);

EFI_STATUS
EFIAPI
DPC protocol and LNV Send IPMI Command library(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol (&gEfiDpcProtocolGuid, NULL, &gDpcProtocol);(
  VOID
);

EFI_STATUS
EFIAPI
protocol is optional; try to install our own(
  VOID
);

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

EFI_STATUS
EFIAPI
NetworkStackVar NVRAM variable for configuration(
  VOID
);

EFI_STATUS
EFIAPI
for PXE boot pre-context variable(
  VOID
);

EFI_STATUS
EFIAPI
(!PxeBcPreBootContextValid ()) {(
  VOID
);

EFI_STATUS
EFIAPI
the driver binding and component name protocols(
  VOID
);

EFI_STATUS
EFIAPI
the unload handler(
  VOID
);

EFI_STATUS
EFIAPI
gBS->HandleProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
Binding Protocol(
  VOID
);

EFI_STATUS
EFIAPI
if the controller has the Network Interface Identifier Protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
for IPv6 support(
  VOID
);

EFI_STATUS
EFIAPI
(!PxeBcCheckpvv6Support (ControllerHandle, &Ipv6Supported)) {(
  VOID
);

EFI_STATUS
EFIAPI
the private data structure(
  VOID
);

EFI_STATUS
EFIAPI
= AllocateZeroPool (sizeof (PXEBC_PRIVATE_DATA));(
  VOID
);

EFI_STATUS
EFIAPI
timeout configuration from NVRAM(
  VOID
);

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

EFI_STATUS
EFIAPI
the children (open UDP4, DHCP4, ARP, etc.)(
  VOID
);

EFI_STATUS
EFIAPI
= PxeBcCreateChildren (Private, FALSE);(
  VOID
);

EFI_STATUS
EFIAPI
the PXE Base Code Protocol on a new child handle(
  VOID
);

EFI_STATUS
EFIAPI
the callback for pre-boot context(
  VOID
);

EFI_STATUS
EFIAPI
(Private);(
  VOID
);

EFI_STATUS
EFIAPI
mode structure(
  VOID
);

EFI_STATUS
EFIAPI
(UseIpv6) {(
  VOID
);

EFI_STATUS
EFIAPI
the receive filter to promiscuous(
  VOID
);

EFI_STATUS
EFIAPI
(This, NULL);(
  VOID
);

EFI_STATUS
EFIAPI
the PXE mode state(
  VOID
);

EFI_STATUS
EFIAPI
media status(
  VOID
);

EFI_STATUS
EFIAPI
(!PxeBcCheckMediaStatus (Private)) {(
  VOID
);

EFI_STATUS
EFIAPI
cache state(
  VOID
);

EFI_STATUS
EFIAPI
= PxeBcDhcp6Solicit (Private, Private->Dhcp6, NULL);(
  VOID
);

EFI_STATUS
EFIAPI
the advertises and select best offer(
  VOID
);

EFI_STATUS
EFIAPI
= PxeBcDhcp6SelectOffer (Private);(
  VOID
);

EFI_STATUS
EFIAPI
= PxeBcDhcp4Discover (Private, Private->Dhcp4, NULL);(
  VOID
);

EFI_STATUS
EFIAPI
boot server type(
  VOID
);

EFI_STATUS
EFIAPI
((Type < 1 || Type > 3) && Type != 5) {(
  VOID
);

EFI_STATUS
EFIAPI
mode state to boot server discovery(
  VOID
);

EFI_STATUS
EFIAPI
boot server discovery via DHCP or DNS(
  VOID
);

EFI_STATUS
EFIAPI
(Private->Mode->UsingIpv6) {(
  VOID
);

EFI_STATUS
EFIAPI
the buffer size(
  VOID
);

EFI_STATUS
EFIAPI
(*BufferSize < 0x200) {(
  VOID
);

EFI_STATUS
EFIAPI
to IPv4 or IPv6 implementation(
  VOID
);

EFI_STATUS
EFIAPI
flag/address combinations(
  VOID
);

EFI_STATUS
EFIAPI
((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_MULTICAST) &&(
  VOID
);

EFI_STATUS
EFIAPI
write not supported on IPv6(
  VOID
);

EFI_STATUS
EFIAPI
EFI_INVALID_PARAMETER;(
  VOID
);

EFI_STATUS
EFIAPI
to appropriate UDP write path(
  VOID
);

EFI_STATUS
EFIAPI
the filter(
  VOID
);

EFI_STATUS
EFIAPI
(NewFilter->Filters == EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS ||(
  VOID
);

EFI_STATUS
EFIAPI
multicast group addresses(
  VOID
);

EFI_STATUS
EFIAPI
ApplyIpFilter (Private, NewFilter);(
  VOID
);

EFI_STATUS
EFIAPI
the ARP protocol if available(
  VOID
);

EFI_STATUS
EFIAPI
(Private->Arp != NULL && !Private->Mode->UsingIpv6) {(
  VOID
);

EFI_STATUS
EFIAPI
IPv6, use ND (Neighbor Discovery) instead of ARP(
  VOID
);

EFI_STATUS
EFIAPI
EFI_NO_MAPPING;(
  VOID
);

EFI_STATUS
EFIAPI
the mode parameters if provided(
  VOID
);

EFI_STATUS
EFIAPI
(NewAutoArp != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
TTL is invalid(
  VOID
);

EFI_STATUS
EFIAPI
UsingIpv6, NewSubnetMask is ignored(
  VOID
);

EFI_STATUS
EFIAPI
set station IP to multicast(
  VOID
);

EFI_STATUS
EFIAPI
the configuration(
  VOID
);

EFI_STATUS
EFIAPI
flags(
  VOID
);

EFI_STATUS
EFIAPI
(NewDhcpDiscoverValid != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
packet data(
  VOID
);

EFI_STATUS
EFIAPI
(NewDhcpDiscover != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
helper functions(
  VOID
);

EFI_STATUS
EFIAPI
to open the IPv6 stack protocol(
  VOID
);

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

EFI_STATUS
EFIAPI
if the interface actually has an IPv6 address configured(
  VOID
);

EFI_STATUS
EFIAPI
= CheckIpv6AddressAvailable (ImageHandle);(
  VOID
);

EFI_STATUS
EFIAPI
DHCP6 service binding(
  VOID
);

EFI_STATUS
EFIAPI
DHCP6 child(
  VOID
);

EFI_STATUS
EFIAPI
= Private->Dhcp6->CreateChild (Private->Dhcp6, &Private->Dhcp6ChildHandle);(
  VOID
);

EFI_STATUS
EFIAPI
UDP6 service binding(
  VOID
);

EFI_STATUS
EFIAPI
DHCP4 service binding(
  VOID
);

EFI_STATUS
EFIAPI
DHCP4 child(
  VOID
);

EFI_STATUS
EFIAPI
= Private->Dhcp4->CreateChild (Private->Dhcp4, &Private->Dhcp4ChildHandle);(
  VOID
);

EFI_STATUS
EFIAPI
UDP4 service binding(
  VOID
);

EFI_STATUS
EFIAPI
UDP4 read/write tokens(
  VOID
);

EFI_STATUS
EFIAPI
if started(
  VOID
);

EFI_STATUS
EFIAPI
(Private->Mode != NULL && Private->Mode->Started) {(
  VOID
);

EFI_STATUS
EFIAPI
DHCP and UDP children(
  VOID
);

EFI_STATUS
EFIAPI
(Private->Udp4 != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
the mode buffer(
  VOID
);

EFI_STATUS
EFIAPI
(Private->Mode != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
the private data itself(
  VOID
);

EFI_STATUS
EFIAPI
in 100ms increments(
  VOID
);

EFI_STATUS
EFIAPI
= TimeoutSeconds * 10;(
  VOID
);

EFI_STATUS
EFIAPI
if key is available(
  VOID
);

EFI_STATUS
EFIAPI
= gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);(
  VOID
);

EFI_STATUS
EFIAPI
}(
  VOID
);

EFI_STATUS
EFIAPI
IPv6 capability flags(
  VOID
);

EFI_STATUS
EFIAPI
= Mode->Ipv6Available;(
  VOID
);

EFI_STATUS
EFIAPI
the mode structure (size ~10424 bytes)(
  VOID
);

EFI_STATUS
EFIAPI
(Mode, sizeof (EFI_PXE_BASE_CODE_MODE));(
  VOID
);

EFI_STATUS
EFIAPI
IPv6 flags(
  VOID
);

EFI_STATUS
EFIAPI
DHCP cache(
  VOID
);

EFI_STATUS
EFIAPI
file info(
  VOID
);

EFI_STATUS
EFIAPI
tokens(
  VOID
);

EFI_STATUS
EFIAPI
(Private->Udp4ReceiveToken != NULL) {(
  VOID
);

EFI_STATUS
EFIAPI
57 (0x39): PXE Client ID / Class ID(
  VOID
);

EFI_STATUS
EFIAPI
(Count < OptCount) {(
  VOID
);

EFI_STATUS
EFIAPI
type(
  VOID
);

EFI_STATUS
EFIAPI
OptList[Count]->Data[2]   = 0;    // reserved(
  VOID
);

EFI_STATUS
EFIAPI
the Boot#### variable(
  VOID
);

EFI_STATUS
EFIAPI
function reads the current BootCurrent variable, constructs a(
  VOID
);

EFI_STATUS
EFIAPI
Boot#### variable pointing to the downloaded NBP file, and(
  VOID
);

EFI_STATUS
EFIAPI
it to NVRAM so that subsequent boots can load the same file(
  VOID
);

EFI_STATUS
EFIAPI
doing PXE again.(
  VOID
);

EFI_STATUS
EFIAPI
boot prompt and wait for ESC to abort(
  VOID
);

EFI_STATUS
EFIAPI
function handles the "Press ESC key to abort PXE boot" prompt(
  VOID
);

EFI_STATUS
EFIAPI
the DHCP/PXE discovery phase.(
  VOID
);

EFI_STATUS
EFIAPI
((DEBUG_INFO, "\n>>Start PXE over %s\n"(
  VOID
);

#endif /* __UEFIPXEBCDXE_H__ */