File ovmf-NetworkPkg-Apply-uncrustify-changes-UefiPxeBcDxe-par.patch of Package ovmf.42234
From c5c6effe42ecde3ea0af567011898121154e5727 Mon Sep 17 00:00:00 2001
From: Chun-Yi Lee <jlee@suse.com>
Date: Fri, 7 Feb 2025 14:15:39 +0800
Subject: [PATCH] NetworkPkg: Apply uncrustify changes UefiPxeBcDxe part
Upstream git commit in edk2: d1050b9dff1cace252aff86630bfdb59dff5f507
This is the UefiPxeBcDxe part in 'd1050b9dff1c NetworkPkg: Apply uncrustify changes'
---
NetworkPkg/UefiPxeBcDxe/ComponentName.c | 27 +-
NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c | 392 +++++-----
NetworkPkg/UefiPxeBcDxe/PxeBcBoot.h | 35 +-
NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c | 618 ++++++++-------
NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h | 215 +++---
NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c | 973 ++++++++++++------------
NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.h | 137 ++--
NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 365 +++++----
NetworkPkg/UefiPxeBcDxe/PxeBcDriver.h | 7 +-
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c | 692 +++++++++--------
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h | 240 +++---
NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c | 570 +++++++-------
NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h | 67 +-
NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c | 506 ++++++------
NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h | 194 +++--
15 files changed, 2504 insertions(+), 2534 deletions(-)
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/ComponentName.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/ComponentName.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/ComponentName.c
@@ -62,7 +62,6 @@ PxeBcComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user-readable name of the controller
that is being managed by a driver.
@@ -141,11 +140,10 @@ PxeBcComponentNameGetControllerName (
OUT CHAR16 **ControllerName
);
-
//
// EFI Component Name Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPxeBcComponentName = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPxeBcComponentName = {
PxeBcComponentNameGetDriverName,
PxeBcComponentNameGetControllerName,
"eng"
@@ -154,13 +152,13 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPON
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPxeBcComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) PxeBcComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) PxeBcComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPxeBcComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)PxeBcComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)PxeBcComponentNameGetControllerName,
"en"
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPxeBcDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPxeBcDriverNameTable[] = {
{
"eng;en",
L"UEFI PXE Base Code Driver"
@@ -171,7 +169,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICOD
}
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPxeBcControllerNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPxeBcControllerNameTable[] = {
{
"eng;en",
L"PXE Controller"
@@ -229,7 +227,7 @@ PxeBcComponentNameGetDriverName (
OUT CHAR16 **DriverName
)
{
- return LookupUnicodeString2(
+ return LookupUnicodeString2 (
Language,
This->SupportedLanguages,
mPxeBcDriverNameTable,
@@ -238,7 +236,6 @@ PxeBcComponentNameGetDriverName (
);
}
-
/**
Retrieves a Unicode string that is the user-readable name of the controller
that is being managed by a driver.
@@ -317,11 +314,11 @@ PxeBcComponentNameGetControllerName (
OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
- EFI_HANDLE NicHandle;
- PXEBC_PRIVATE_PROTOCOL *Id;
+ EFI_STATUS Status;
+ EFI_HANDLE NicHandle;
+ PXEBC_PRIVATE_PROTOCOL *Id;
- if (ControllerHandle == NULL || ChildHandle != NULL) {
+ if ((ControllerHandle == NULL) || (ChildHandle != NULL)) {
return EFI_UNSUPPORTED;
}
@@ -339,7 +336,7 @@ PxeBcComponentNameGetControllerName (
Status = gBS->OpenProtocol (
NicHandle,
&gEfiCallerIdGuid,
- (VOID **) &Id,
+ (VOID **)&Id,
NULL,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c
@@ -16,7 +16,6 @@
#include "PxeBcImpl.h"
-
/**
Display the string of the boot item.
@@ -28,27 +27,26 @@
**/
VOID
PxeBcDisplayBootItem (
- IN UINT8 *Str,
- IN UINT8 Len
+ IN UINT8 *Str,
+ IN UINT8 Len
)
{
- UINT8 Tmp;
+ UINT8 Tmp;
//
// Cut off the chars behind 70th.
//
- Len = (UINT8) MIN (PXEBC_DISPLAY_MAX_LINE, Len);
- Tmp = Str[Len];
- Str[Len] = 0;
+ Len = (UINT8)MIN (PXEBC_DISPLAY_MAX_LINE, Len);
+ Tmp = Str[Len];
+ Str[Len] = 0;
AsciiPrint ("%a \n", Str);
//
// Restore the original 70th char.
//
- Str[Len] = Tmp;
+ Str[Len] = Tmp;
}
-
/**
Select and maintain the boot prompt if needed.
@@ -63,22 +61,22 @@ PxeBcDisplayBootItem (
**/
EFI_STATUS
PxeBcSelectBootPrompt (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- PXEBC_DHCP_PACKET_CACHE *Cache;
- PXEBC_VENDOR_OPTION *VendorOpt;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_EVENT TimeoutEvent;
- EFI_EVENT DescendEvent;
- EFI_INPUT_KEY InputKey;
- EFI_STATUS Status;
- UINT32 OfferType;
- UINT8 Timeout;
- UINT8 *Prompt;
- UINT8 PromptLen;
- INT32 SecCol;
- INT32 SecRow;
+ PXEBC_DHCP_PACKET_CACHE *Cache;
+ PXEBC_VENDOR_OPTION *VendorOpt;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_EVENT TimeoutEvent;
+ EFI_EVENT DescendEvent;
+ EFI_INPUT_KEY InputKey;
+ EFI_STATUS Status;
+ UINT32 OfferType;
+ UINT8 Timeout;
+ UINT8 *Prompt;
+ UINT8 PromptLen;
+ INT32 SecCol;
+ INT32 SecRow;
TimeoutEvent = NULL;
DescendEvent = NULL;
@@ -89,7 +87,7 @@ PxeBcSelectBootPrompt (
//
// Only DhcpPxe10 and ProxyPxe10 offer needs boot prompt.
//
- if (OfferType != PxeOfferTypeProxyPxe10 && OfferType != PxeOfferTypeDhcpPxe10) {
+ if ((OfferType != PxeOfferTypeProxyPxe10) && (OfferType != PxeOfferTypeDhcpPxe10)) {
return EFI_NOT_FOUND;
}
@@ -106,7 +104,8 @@ PxeBcSelectBootPrompt (
// - a boot file name has been presented in the initial DHCP or ProxyDHCP offer packet.
//
if (IS_DISABLE_PROMPT_MENU (VendorOpt->DiscoverCtrl) &&
- Cache->Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL) {
+ (Cache->Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL))
+ {
return EFI_ABORTED;
}
@@ -116,7 +115,7 @@ PxeBcSelectBootPrompt (
Timeout = VendorOpt->MenuPrompt->Timeout;
Prompt = VendorOpt->MenuPrompt->Prompt;
- PromptLen = (UINT8) (VendorOpt->MenuPromptLen - 1);
+ PromptLen = (UINT8)(VendorOpt->MenuPromptLen - 1);
//
// The valid scope of Timeout refers to PXE2.1 spec.
@@ -124,6 +123,7 @@ PxeBcSelectBootPrompt (
if (Timeout == 0) {
return EFI_TIMEOUT;
}
+
if (Timeout == 255) {
return EFI_SUCCESS;
}
@@ -191,46 +191,43 @@ PxeBcSelectBootPrompt (
gST->ConOut->SetCursorPosition (gST->ConOut, SecCol + PromptLen, SecRow);
AsciiPrint ("(%d) ", Timeout--);
}
+
if (gST->ConIn->ReadKeyStroke (gST->ConIn, &InputKey) == EFI_NOT_READY) {
gBS->Stall (10 * TICKS_PER_MS);
continue;
}
+
//
// Parse the input key by user.
// If <F8> or <Ctrl> + <M> is pressed, return success to display the boot menu.
//
if (InputKey.ScanCode == 0) {
-
switch (InputKey.UnicodeChar) {
+ case CTRL ('c'):
+ Status = EFI_ABORTED;
+ break;
- case CTRL ('c'):
- Status = EFI_ABORTED;
- break;
-
- case CTRL ('m'):
- case 'm':
- case 'M':
- Status = EFI_SUCCESS;
- break;
+ case CTRL ('m'):
+ case 'm':
+ case 'M':
+ Status = EFI_SUCCESS;
+ break;
- default:
- continue;
+ default:
+ continue;
}
-
} else {
-
switch (InputKey.ScanCode) {
+ case SCAN_F8:
+ Status = EFI_SUCCESS;
+ break;
- case SCAN_F8:
- Status = EFI_SUCCESS;
- break;
-
- case SCAN_ESC:
- Status = EFI_ABORTED;
- break;
+ case SCAN_ESC:
+ Status = EFI_ABORTED;
+ break;
- default:
- continue;
+ default:
+ continue;
}
}
@@ -240,12 +237,13 @@ PxeBcSelectBootPrompt (
//
// Reset the cursor on the screen.
//
- gST->ConOut->SetCursorPosition (gST->ConOut, 0 , SecRow + 1);
+ gST->ConOut->SetCursorPosition (gST->ConOut, 0, SecRow + 1);
ON_EXIT:
if (DescendEvent != NULL) {
gBS->CloseEvent (DescendEvent);
}
+
if (TimeoutEvent != NULL) {
gBS->CloseEvent (TimeoutEvent);
}
@@ -253,7 +251,6 @@ ON_EXIT:
return Status;
}
-
/**
Select the boot menu by user's input.
@@ -268,26 +265,26 @@ ON_EXIT:
**/
EFI_STATUS
PxeBcSelectBootMenu (
- IN PXEBC_PRIVATE_DATA *Private,
- OUT UINT16 *Type,
- IN BOOLEAN UseDefaultItem
+ IN PXEBC_PRIVATE_DATA *Private,
+ OUT UINT16 *Type,
+ IN BOOLEAN UseDefaultItem
)
{
- EFI_PXE_BASE_CODE_MODE *Mode;
- PXEBC_DHCP_PACKET_CACHE *Cache;
- PXEBC_VENDOR_OPTION *VendorOpt;
- EFI_INPUT_KEY InputKey;
- UINT32 OfferType;
- UINT8 MenuSize;
- UINT8 MenuNum;
- INT32 TopRow;
- UINT16 Select;
- UINT16 LastSelect;
- UINT8 Index;
- BOOLEAN Finish;
- CHAR8 Blank[PXEBC_DISPLAY_MAX_LINE];
- PXEBC_BOOT_MENU_ENTRY *MenuItem;
- PXEBC_BOOT_MENU_ENTRY *MenuArray[PXEBC_MENU_MAX_NUM];
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ PXEBC_DHCP_PACKET_CACHE *Cache;
+ PXEBC_VENDOR_OPTION *VendorOpt;
+ EFI_INPUT_KEY InputKey;
+ UINT32 OfferType;
+ UINT8 MenuSize;
+ UINT8 MenuNum;
+ INT32 TopRow;
+ UINT16 Select;
+ UINT16 LastSelect;
+ UINT8 Index;
+ BOOLEAN Finish;
+ CHAR8 Blank[PXEBC_DISPLAY_MAX_LINE];
+ PXEBC_BOOT_MENU_ENTRY *MenuItem;
+ PXEBC_BOOT_MENU_ENTRY *MenuArray[PXEBC_MENU_MAX_NUM];
Finish = FALSE;
Select = 0;
@@ -311,10 +308,10 @@ PxeBcSelectBootMenu (
//
// Display the boot menu on the screen.
//
- SetMem (Blank, sizeof(Blank), ' ');
+ SetMem (Blank, sizeof (Blank), ' ');
- MenuSize = VendorOpt->BootMenuLen;
- MenuItem = VendorOpt->BootMenu;
+ MenuSize = VendorOpt->BootMenuLen;
+ MenuItem = VendorOpt->BootMenu;
if (MenuSize == 0) {
return EFI_DEVICE_ERROR;
@@ -322,9 +319,9 @@ PxeBcSelectBootMenu (
while (MenuSize > 0 && Index < PXEBC_MENU_MAX_NUM) {
ASSERT (MenuItem != NULL);
- MenuArray[Index] = MenuItem;
- MenuSize = (UINT8) (MenuSize - (MenuItem->DescLen + 3));
- MenuItem = (PXEBC_BOOT_MENU_ENTRY *) ((UINT8 *) MenuItem + MenuItem->DescLen + 3);
+ MenuArray[Index] = MenuItem;
+ MenuSize = (UINT8)(MenuSize - (MenuItem->DescLen + 3));
+ MenuItem = (PXEBC_BOOT_MENU_ENTRY *)((UINT8 *)MenuItem + MenuItem->DescLen + 3);
Index++;
}
@@ -367,60 +364,62 @@ PxeBcSelectBootMenu (
if (InputKey.ScanCode == 0) {
switch (InputKey.UnicodeChar) {
- case CTRL ('c'):
- InputKey.ScanCode = SCAN_ESC;
- break;
+ case CTRL ('c'):
+ InputKey.ScanCode = SCAN_ESC;
+ break;
- case CTRL ('j'): /* linefeed */
- case CTRL ('m'): /* return */
- Finish = TRUE;
- break;
+ case CTRL ('j'): /* linefeed */
+ case CTRL ('m'): /* return */
+ Finish = TRUE;
+ break;
- case CTRL ('i'): /* tab */
- case ' ':
- case 'd':
- case 'D':
- InputKey.ScanCode = SCAN_DOWN;
- break;
+ case CTRL ('i'): /* tab */
+ case ' ':
+ case 'd':
+ case 'D':
+ InputKey.ScanCode = SCAN_DOWN;
+ break;
- case CTRL ('h'): /* backspace */
- case 'u':
- case 'U':
- InputKey.ScanCode = SCAN_UP;
- break;
+ case CTRL ('h'): /* backspace */
+ case 'u':
+ case 'U':
+ InputKey.ScanCode = SCAN_UP;
+ break;
- default:
- InputKey.ScanCode = 0;
+ default:
+ InputKey.ScanCode = 0;
}
}
switch (InputKey.ScanCode) {
- case SCAN_LEFT:
- case SCAN_UP:
- if (Select != 0) {
- Select--;
- }
- break;
+ case SCAN_LEFT:
+ case SCAN_UP:
+ if (Select != 0) {
+ Select--;
+ }
- case SCAN_DOWN:
- case SCAN_RIGHT:
- if (++Select == MenuNum) {
- Select--;
- }
- break;
+ break;
- case SCAN_PAGE_UP:
- case SCAN_HOME:
- Select = 0;
- break;
-
- case SCAN_PAGE_DOWN:
- case SCAN_END:
- Select = (UINT16) (MenuNum - 1);
- break;
+ case SCAN_DOWN:
+ case SCAN_RIGHT:
+ if (++Select == MenuNum) {
+ Select--;
+ }
- case SCAN_ESC:
- return EFI_ABORTED;
+ break;
+
+ case SCAN_PAGE_UP:
+ case SCAN_HOME:
+ Select = 0;
+ break;
+
+ case SCAN_PAGE_DOWN:
+ case SCAN_END:
+ Select = (UINT16)(MenuNum - 1);
+ break;
+
+ case SCAN_ESC:
+ return EFI_ABORTED;
}
//
@@ -447,7 +446,6 @@ PxeBcSelectBootMenu (
return EFI_SUCCESS;
}
-
/**
Parse out the boot information from the last Dhcp4 reply packet.
@@ -460,8 +458,8 @@ PxeBcSelectBootMenu (
**/
EFI_STATUS
PxeBcDhcp4BootInfo (
- IN OUT PXEBC_PRIVATE_DATA *Private,
- OUT UINT64 *BufferSize
+ IN OUT PXEBC_PRIVATE_DATA *Private,
+ OUT UINT64 *BufferSize
)
{
EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
@@ -499,7 +497,7 @@ PxeBcDhcp4BootInfo (
VendorOpt = &Cache4->VendorOpt;
if (IS_DISABLE_PROMPT_MENU (VendorOpt->DiscoverCtrl) && IS_VALID_BOOT_SERVERS (VendorOpt->BitMap)) {
Entry = VendorOpt->BootSvr;
- if (VendorOpt->BootSvrLen >= sizeof (PXEBC_BOOT_SVR_ENTRY) && Entry->IpCnt > 0) {
+ if ((VendorOpt->BootSvrLen >= sizeof (PXEBC_BOOT_SVR_ENTRY)) && (Entry->IpCnt > 0)) {
CopyMem (
&Private->ServerIp,
&Entry->IpAddr[0],
@@ -507,6 +505,7 @@ PxeBcDhcp4BootInfo (
);
}
}
+
if (Private->ServerIp.Addr[0] == 0) {
//
// ServerIp.Addr[0] equals zero means we failed to get IP address from boot server list.
@@ -518,6 +517,7 @@ PxeBcDhcp4BootInfo (
sizeof (EFI_IPv4_ADDRESS)
);
}
+
if (Private->ServerIp.Addr[0] == 0) {
//
// Still failed , use the IP address from option 54.
@@ -539,7 +539,7 @@ PxeBcDhcp4BootInfo (
// Parse the boot file size by option.
//
CopyMem (&Value, Cache4->OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN]->Data, sizeof (Value));
- Value = NTOHS (Value);
+ Value = NTOHS (Value);
//
// The field of boot file size is 512 bytes in unit.
//
@@ -565,7 +565,7 @@ PxeBcDhcp4BootInfo (
//
// Save the value of boot file size.
//
- Private->BootFileSize = (UINTN) *BufferSize;
+ Private->BootFileSize = (UINTN)*BufferSize;
//
// Display all the information: boot server address, boot file name and boot file size.
@@ -578,7 +578,6 @@ PxeBcDhcp4BootInfo (
return Status;
}
-
/**
Parse out the boot information from the last Dhcp6 reply packet.
@@ -592,8 +591,8 @@ PxeBcDhcp4BootInfo (
**/
EFI_STATUS
PxeBcDhcp6BootInfo (
- IN OUT PXEBC_PRIVATE_DATA *Private,
- OUT UINT64 *BufferSize
+ IN OUT PXEBC_PRIVATE_DATA *Private,
+ OUT UINT64 *BufferSize
)
{
EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
@@ -628,7 +627,6 @@ PxeBcDhcp6BootInfo (
return Status;
}
-
//
// Parse (m)tftp server ip address and bootfile name.
//
@@ -636,7 +634,7 @@ PxeBcDhcp6BootInfo (
Private,
&Private->BootFileName,
&Private->ServerIp.v6,
- (CHAR8 *) (Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL]->Data),
+ (CHAR8 *)(Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL]->Data),
NTOHS (Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL]->OpLen)
);
if (EFI_ERROR (Status)) {
@@ -650,10 +648,11 @@ PxeBcDhcp6BootInfo (
//
// Parse it out if have the boot file parameter option.
//
- Status = PxeBcExtractBootFileParam ((CHAR8 *) Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_PARAM]->Data, &Value);
+ Status = PxeBcExtractBootFileParam ((CHAR8 *)Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_PARAM]->Data, &Value);
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// The field of boot file size is 512 bytes in unit.
//
@@ -679,7 +678,7 @@ PxeBcDhcp6BootInfo (
//
// Save the value of boot file size.
//
- Private->BootFileSize = (UINTN) *BufferSize;
+ Private->BootFileSize = (UINTN)*BufferSize;
//
// Display all the information: boot server address, boot file name and boot file size.
@@ -692,7 +691,6 @@ PxeBcDhcp6BootInfo (
return Status;
}
-
/**
Extract the discover information and boot server entry from the
cached packets if unspecified.
@@ -712,17 +710,17 @@ PxeBcExtractDiscoverInfo (
IN PXEBC_PRIVATE_DATA *Private,
IN UINT16 Type,
IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO **DiscoverInfo,
- OUT PXEBC_BOOT_SVR_ENTRY **BootEntry,
- OUT EFI_PXE_BASE_CODE_SRVLIST **SrvList
+ OUT PXEBC_BOOT_SVR_ENTRY **BootEntry,
+ OUT EFI_PXE_BASE_CODE_SRVLIST **SrvList
)
{
- EFI_PXE_BASE_CODE_MODE *Mode;
- PXEBC_DHCP4_PACKET_CACHE *Cache4;
- PXEBC_VENDOR_OPTION *VendorOpt;
- PXEBC_BOOT_SVR_ENTRY *Entry;
- BOOLEAN IsFound;
- EFI_PXE_BASE_CODE_DISCOVER_INFO *Info;
- UINT16 Index;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ PXEBC_DHCP4_PACKET_CACHE *Cache4;
+ PXEBC_VENDOR_OPTION *VendorOpt;
+ PXEBC_BOOT_SVR_ENTRY *Entry;
+ BOOLEAN IsFound;
+ EFI_PXE_BASE_CODE_DISCOVER_INFO *Info;
+ UINT16 Index;
Mode = Private->PxeBc.Mode;
Info = *DiscoverInfo;
@@ -739,7 +737,7 @@ PxeBcExtractDiscoverInfo (
//
CopyMem (&Info->SrvList[0].IpAddr, &Private->ServerIp, sizeof (EFI_IP_ADDRESS));
- *SrvList = Info->SrvList;
+ *SrvList = Info->SrvList;
} else {
Entry = NULL;
IsFound = FALSE;
@@ -758,8 +756,8 @@ PxeBcExtractDiscoverInfo (
//
Info->UseMCast = (BOOLEAN) !IS_DISABLE_MCAST_DISCOVER (VendorOpt->DiscoverCtrl);
Info->UseBCast = (BOOLEAN) !IS_DISABLE_BCAST_DISCOVER (VendorOpt->DiscoverCtrl);
- Info->MustUseList = (BOOLEAN) IS_ENABLE_USE_SERVER_LIST (VendorOpt->DiscoverCtrl);
- Info->UseUCast = (BOOLEAN) IS_VALID_BOOT_SERVERS (VendorOpt->BitMap);
+ Info->MustUseList = (BOOLEAN)IS_ENABLE_USE_SERVER_LIST (VendorOpt->DiscoverCtrl);
+ Info->UseUCast = (BOOLEAN)IS_VALID_BOOT_SERVERS (VendorOpt->BitMap);
if (Info->UseMCast) {
//
@@ -773,11 +771,12 @@ PxeBcExtractDiscoverInfo (
if (Info->UseUCast) {
Entry = VendorOpt->BootSvr;
- while (((UINT8) (Entry - VendorOpt->BootSvr)) < VendorOpt->BootSvrLen) {
+ while (((UINT8)(Entry - VendorOpt->BootSvr)) < VendorOpt->BootSvrLen) {
if (Entry->Type == HTONS (Type)) {
IsFound = TRUE;
break;
}
+
Entry = GET_NEXT_BOOT_SVR_ENTRY (Entry);
}
@@ -790,7 +789,8 @@ PxeBcExtractDiscoverInfo (
*DiscoverInfo = AllocatePool (sizeof (*Info) + (Info->IpCnt - 1) * sizeof (**SrvList));
if (*DiscoverInfo == NULL) {
return EFI_OUT_OF_RESOURCES;
- }
+ }
+
CopyMem (*DiscoverInfo, Info, sizeof (*Info));
Info = *DiscoverInfo;
}
@@ -798,7 +798,7 @@ PxeBcExtractDiscoverInfo (
for (Index = 0; Index < Info->IpCnt; Index++) {
CopyMem (&Info->SrvList[Index].IpAddr, &Entry->IpAddr[Index], sizeof (EFI_IPv4_ADDRESS));
Info->SrvList[Index].AcceptAnyResponse = !Info->MustUseList;
- Info->SrvList[Index].Type = NTOHS (Entry->Type);
+ Info->SrvList[Index].Type = NTOHS (Entry->Type);
}
}
@@ -809,7 +809,6 @@ PxeBcExtractDiscoverInfo (
return EFI_SUCCESS;
}
-
/**
Build the discover packet and send out for boot server.
@@ -829,13 +828,13 @@ PxeBcExtractDiscoverInfo (
**/
EFI_STATUS
PxeBcDiscoverBootServer (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT16 Type,
- IN UINT16 *Layer,
- IN BOOLEAN UseBis,
- IN EFI_IP_ADDRESS *DestIp,
- IN UINT16 IpCount,
- IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT16 Type,
+ IN UINT16 *Layer,
+ IN BOOLEAN UseBis,
+ IN EFI_IP_ADDRESS *DestIp,
+ IN UINT16 IpCount,
+ IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
)
{
if (Private->PxeBc.Mode->UsingIpv6) {
@@ -859,7 +858,6 @@ PxeBcDiscoverBootServer (
}
}
-
/**
Discover all the boot information for boot file.
@@ -874,8 +872,8 @@ PxeBcDiscoverBootServer (
**/
EFI_STATUS
PxeBcDiscoverBootFile (
- IN OUT PXEBC_PRIVATE_DATA *Private,
- OUT UINT64 *BufferSize
+ IN OUT PXEBC_PRIVATE_DATA *Private,
+ OUT UINT64 *BufferSize
)
{
EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
@@ -917,7 +915,6 @@ PxeBcDiscoverBootFile (
}
if (!EFI_ERROR (Status)) {
-
if (Type == EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP) {
//
// Local boot(PXE bootstrap server) need abort
@@ -929,7 +926,7 @@ PxeBcDiscoverBootFile (
// Start to discover the boot server to get (m)tftp server ip address, bootfile
// name and bootfile size.
//
- UseBis = (BOOLEAN) (Mode->BisSupported && Mode->BisDetected);
+ UseBis = (BOOLEAN)(Mode->BisSupported && Mode->BisDetected);
Status = PxeBc->Discover (PxeBc, Type, &Layer, UseBis, NULL);
if (EFI_ERROR (Status)) {
return Status;
@@ -953,6 +950,7 @@ PxeBcDiscoverBootFile (
Private->PxeReply.Dhcp4.Packet.Ack.Length
);
}
+
Mode->ProxyOfferReceived = TRUE;
}
}
@@ -969,7 +967,6 @@ PxeBcDiscoverBootFile (
return Status;
}
-
/**
Install PxeBaseCodeCallbackProtocol if not installed before.
@@ -982,8 +979,8 @@ PxeBcDiscoverBootFile (
**/
EFI_STATUS
PxeBcInstallCallback (
- IN OUT PXEBC_PRIVATE_DATA *Private,
- OUT BOOLEAN *NewMakeCallback
+ IN OUT PXEBC_PRIVATE_DATA *Private,
+ OUT BOOLEAN *NewMakeCallback
)
{
EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
@@ -996,10 +993,9 @@ PxeBcInstallCallback (
Status = gBS->HandleProtocol (
Private->Controller,
&gEfiPxeBaseCodeCallbackProtocolGuid,
- (VOID **) &Private->PxeBcCallback
+ (VOID **)&Private->PxeBcCallback
);
if (Status == EFI_UNSUPPORTED) {
-
CopyMem (
&Private->LoadFileCallback,
&gPxeBcCallBackTemplate,
@@ -1016,7 +1012,7 @@ PxeBcInstallCallback (
&Private->LoadFileCallback
);
- (*NewMakeCallback) = (BOOLEAN) (Status == EFI_SUCCESS);
+ (*NewMakeCallback) = (BOOLEAN)(Status == EFI_SUCCESS);
Status = PxeBc->SetParameters (PxeBc, NULL, NULL, NULL, NULL, NewMakeCallback);
if (EFI_ERROR (Status)) {
@@ -1028,7 +1024,6 @@ PxeBcInstallCallback (
return EFI_SUCCESS;
}
-
/**
Uninstall PxeBaseCodeCallbackProtocol.
@@ -1039,29 +1034,27 @@ PxeBcInstallCallback (
**/
VOID
PxeBcUninstallCallback (
- IN PXEBC_PRIVATE_DATA *Private,
- IN BOOLEAN NewMakeCallback
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN BOOLEAN NewMakeCallback
)
{
- EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
+ EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
PxeBc = &Private->PxeBc;
if (NewMakeCallback) {
-
NewMakeCallback = FALSE;
PxeBc->SetParameters (PxeBc, NULL, NULL, NULL, NULL, &NewMakeCallback);
gBS->UninstallProtocolInterface (
- Private->Controller,
- &gEfiPxeBaseCodeCallbackProtocolGuid,
- &Private->LoadFileCallback
- );
+ Private->Controller,
+ &gEfiPxeBaseCodeCallbackProtocolGuid,
+ &Private->LoadFileCallback
+ );
}
}
-
/**
Download one of boot file in the list, and it's special for IPv6.
@@ -1078,15 +1071,15 @@ PxeBcUninstallCallback (
**/
EFI_STATUS
PxeBcReadBootFileList (
- IN PXEBC_PRIVATE_DATA *Private,
- IN OUT UINT64 *BufferSize,
- IN VOID *Buffer OPTIONAL
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN OUT UINT64 *BufferSize,
+ IN VOID *Buffer OPTIONAL
)
{
- EFI_STATUS Status;
- EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
+ EFI_STATUS Status;
+ EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
- PxeBc = &Private->PxeBc;
+ PxeBc = &Private->PxeBc;
//
// Try to download the boot file if everything is ready.
@@ -1104,16 +1097,13 @@ PxeBcReadBootFileList (
NULL,
FALSE
);
-
-
} else {
- Status = EFI_BUFFER_TOO_SMALL;
+ Status = EFI_BUFFER_TOO_SMALL;
}
return Status;
}
-
/**
Load boot file into user buffer.
@@ -1130,17 +1120,17 @@ PxeBcReadBootFileList (
**/
EFI_STATUS
PxeBcLoadBootFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer OPTIONAL
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer OPTIONAL
)
{
- BOOLEAN NewMakeCallback;
- UINT64 RequiredSize;
- UINT64 CurrentSize;
- EFI_STATUS Status;
- EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
- EFI_PXE_BASE_CODE_MODE *PxeBcMode;
+ BOOLEAN NewMakeCallback;
+ UINT64 RequiredSize;
+ UINT64 CurrentSize;
+ EFI_STATUS Status;
+ EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
+ EFI_PXE_BASE_CODE_MODE *PxeBcMode;
NewMakeCallback = FALSE;
PxeBc = &Private->PxeBc;
@@ -1152,7 +1142,7 @@ PxeBcLoadBootFile (
// Install pxebc callback protocol if hasn't been installed yet.
//
Status = PxeBcInstallCallback (Private, &NewMakeCallback);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -1175,7 +1165,7 @@ PxeBcLoadBootFile (
//
// Get the right buffer size of the bootfile required.
//
- if (CurrentSize < RequiredSize || Buffer == NULL) {
+ if ((CurrentSize < RequiredSize) || (Buffer == NULL)) {
//
// It's buffer too small if the size of user buffer is smaller than the required.
//
@@ -1183,8 +1173,9 @@ PxeBcLoadBootFile (
Status = EFI_BUFFER_TOO_SMALL;
goto ON_EXIT;
}
+
CurrentSize = RequiredSize;
- } else if (RequiredSize == 0 && PxeBcMode->UsingIpv6) {
+ } else if ((RequiredSize == 0) && PxeBcMode->UsingIpv6) {
//
// Try to download another bootfile in list if failed to get the filesize of the last one.
// It's special for the case of IPv6.
@@ -1192,7 +1183,7 @@ PxeBcLoadBootFile (
Status = PxeBcReadBootFileList (Private, &CurrentSize, Buffer);
goto ON_EXIT;
}
- } else if (CurrentSize < Private->BootFileSize || Buffer == NULL ) {
+ } else if ((CurrentSize < Private->BootFileSize) || (Buffer == NULL)) {
//
// It's buffer too small if the size of user buffer is smaller than the required.
//
@@ -1227,13 +1218,13 @@ PxeBcLoadBootFile (
}
ON_EXIT:
- *BufferSize = (UINTN) CurrentSize;
- PxeBcUninstallCallback(Private, NewMakeCallback);
+ *BufferSize = (UINTN)CurrentSize;
+ PxeBcUninstallCallback (Private, NewMakeCallback);
if (Status == EFI_SUCCESS) {
AsciiPrint ("\n NBP file downloaded successfully.\n");
return EFI_SUCCESS;
- } else if (Status == EFI_BUFFER_TOO_SMALL && Buffer != NULL) {
+ } else if ((Status == EFI_BUFFER_TOO_SMALL) && (Buffer != NULL)) {
AsciiPrint ("\n PXE-E05: Buffer size is smaller than the requested file.\n");
} else if (Status == EFI_DEVICE_ERROR) {
AsciiPrint ("\n PXE-E07: Network device error.\n");
@@ -1259,4 +1250,3 @@ ON_EXIT:
return Status;
}
-
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.h
@@ -16,12 +16,11 @@
#ifndef __EFI_PXEBC_BOOT_H__
#define __EFI_PXEBC_BOOT_H__
-#define PXEBC_DISPLAY_MAX_LINE 70
-#define PXEBC_DEFAULT_UDP_OVERHEAD_SIZE 8
-#define PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE 4
-
-#define PXEBC_IS_SIZE_OVERFLOWED(x) ((sizeof (UINTN) < sizeof (UINT64)) && ((x) > 0xFFFFFFFF))
+#define PXEBC_DISPLAY_MAX_LINE 70
+#define PXEBC_DEFAULT_UDP_OVERHEAD_SIZE 8
+#define PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE 4
+#define PXEBC_IS_SIZE_OVERFLOWED(x) ((sizeof (UINTN) < sizeof (UINT64)) && ((x) > 0xFFFFFFFF))
/**
Extract the discover information and boot server entry from the
@@ -42,11 +41,10 @@ PxeBcExtractDiscoverInfo (
IN PXEBC_PRIVATE_DATA *Private,
IN UINT16 Type,
IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO **DiscoverInfo,
- OUT PXEBC_BOOT_SVR_ENTRY **BootEntry,
- OUT EFI_PXE_BASE_CODE_SRVLIST **SrvList
+ OUT PXEBC_BOOT_SVR_ENTRY **BootEntry,
+ OUT EFI_PXE_BASE_CODE_SRVLIST **SrvList
);
-
/**
Build the discover packet and send out for boot.
@@ -66,16 +64,15 @@ PxeBcExtractDiscoverInfo (
**/
EFI_STATUS
PxeBcDiscoverBootServer (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT16 Type,
- IN UINT16 *Layer,
- IN BOOLEAN UseBis,
- IN EFI_IP_ADDRESS *DestIp,
- IN UINT16 IpCount,
- IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT16 Type,
+ IN UINT16 *Layer,
+ IN BOOLEAN UseBis,
+ IN EFI_IP_ADDRESS *DestIp,
+ IN UINT16 IpCount,
+ IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
);
-
/**
Load boot file into user buffer.
@@ -92,9 +89,9 @@ PxeBcDiscoverBootServer (
**/
EFI_STATUS
PxeBcLoadBootFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer OPTIONAL
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer OPTIONAL
);
#endif
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c
@@ -18,7 +18,7 @@
//
// This is a map from the interested DHCP4 option tags' index to the tag value.
//
-UINT8 mInterestedDhcp4Tags[PXEBC_DHCP4_TAG_INDEX_MAX] = {
+UINT8 mInterestedDhcp4Tags[PXEBC_DHCP4_TAG_INDEX_MAX] = {
DHCP4_TAG_BOOTFILE_LEN,
DHCP4_TAG_VENDOR,
DHCP4_TAG_OVERLOAD,
@@ -31,8 +31,7 @@ UINT8 mInterestedDhcp4Tags[PXEBC_DHCP4_T
//
// There are 4 times retries with the value of 4, 8, 16 and 32, refers to PXE2.1 spec.
//
-UINT32 mPxeDhcpTimeout[4] = {4, 8, 16, 32};
-
+UINT32 mPxeDhcpTimeout[4] = { 4, 8, 16, 32 };
/**
Parse a certain dhcp4 option by OptTag in Buffer, and return with start pointer.
@@ -47,19 +46,18 @@ UINT32 mPxeDhcpTimeout[4] = {4, 8, 16, 3
**/
EFI_DHCP4_PACKET_OPTION *
PxeBcParseDhcp4Options (
- IN UINT8 *Buffer,
- IN UINT32 Length,
- IN UINT8 OptTag
+ IN UINT8 *Buffer,
+ IN UINT32 Length,
+ IN UINT8 OptTag
)
{
- EFI_DHCP4_PACKET_OPTION *Option;
- UINT32 Offset;
+ EFI_DHCP4_PACKET_OPTION *Option;
+ UINT32 Offset;
- Option = (EFI_DHCP4_PACKET_OPTION *) Buffer;
- Offset = 0;
+ Option = (EFI_DHCP4_PACKET_OPTION *)Buffer;
+ Offset = 0;
while (Offset < Length && Option->OpCode != DHCP4_TAG_EOP) {
-
if (Option->OpCode == OptTag) {
//
// Found the required option.
@@ -76,7 +74,7 @@ PxeBcParseDhcp4Options (
Offset += Option->Length + 2;
}
- Option = (EFI_DHCP4_PACKET_OPTION *) (Buffer + Offset);
+ Option = (EFI_DHCP4_PACKET_OPTION *)(Buffer + Offset);
}
return NULL;
@@ -92,18 +90,18 @@ PxeBcParseDhcp4Options (
**/
VOID
PxeBcParseVendorOptions (
- IN EFI_DHCP4_PACKET_OPTION *Dhcp4Option,
- IN PXEBC_VENDOR_OPTION *VendorOption
+ IN EFI_DHCP4_PACKET_OPTION *Dhcp4Option,
+ IN PXEBC_VENDOR_OPTION *VendorOption
)
{
- UINT32 *BitMap;
- UINT8 VendorOptionLen;
- EFI_DHCP4_PACKET_OPTION *PxeOption;
- UINT8 Offset;
+ UINT32 *BitMap;
+ UINT8 VendorOptionLen;
+ EFI_DHCP4_PACKET_OPTION *PxeOption;
+ UINT8 Offset;
BitMap = VendorOption->BitMap;
VendorOptionLen = Dhcp4Option->Length;
- PxeOption = (EFI_DHCP4_PACKET_OPTION *) &Dhcp4Option->Data[0];
+ PxeOption = (EFI_DHCP4_PACKET_OPTION *)&Dhcp4Option->Data[0];
Offset = 0;
ASSERT (PxeOption != NULL);
@@ -113,84 +111,83 @@ PxeBcParseVendorOptions (
// Parse all the interesting PXE vendor options one by one.
//
switch (PxeOption->OpCode) {
+ case PXEBC_VENDOR_TAG_MTFTP_IP:
- case PXEBC_VENDOR_TAG_MTFTP_IP:
-
- CopyMem (&VendorOption->MtftpIp, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS));
- break;
+ CopyMem (&VendorOption->MtftpIp, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS));
+ break;
- case PXEBC_VENDOR_TAG_MTFTP_CPORT:
+ case PXEBC_VENDOR_TAG_MTFTP_CPORT:
- CopyMem (&VendorOption->MtftpCPort, PxeOption->Data, sizeof (VendorOption->MtftpCPort));
- break;
+ CopyMem (&VendorOption->MtftpCPort, PxeOption->Data, sizeof (VendorOption->MtftpCPort));
+ break;
- case PXEBC_VENDOR_TAG_MTFTP_SPORT:
+ case PXEBC_VENDOR_TAG_MTFTP_SPORT:
- CopyMem (&VendorOption->MtftpSPort, PxeOption->Data, sizeof (VendorOption->MtftpSPort));
- break;
+ CopyMem (&VendorOption->MtftpSPort, PxeOption->Data, sizeof (VendorOption->MtftpSPort));
+ break;
- case PXEBC_VENDOR_TAG_MTFTP_TIMEOUT:
+ case PXEBC_VENDOR_TAG_MTFTP_TIMEOUT:
- VendorOption->MtftpTimeout = *PxeOption->Data;
- break;
+ VendorOption->MtftpTimeout = *PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_MTFTP_DELAY:
+ case PXEBC_VENDOR_TAG_MTFTP_DELAY:
- VendorOption->MtftpDelay = *PxeOption->Data;
- break;
+ VendorOption->MtftpDelay = *PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_DISCOVER_CTRL:
+ case PXEBC_VENDOR_TAG_DISCOVER_CTRL:
- VendorOption->DiscoverCtrl = *PxeOption->Data;
- break;
+ VendorOption->DiscoverCtrl = *PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_DISCOVER_MCAST:
+ case PXEBC_VENDOR_TAG_DISCOVER_MCAST:
- CopyMem (&VendorOption->DiscoverMcastIp, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS));
- break;
+ CopyMem (&VendorOption->DiscoverMcastIp, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS));
+ break;
- case PXEBC_VENDOR_TAG_BOOT_SERVERS:
+ case PXEBC_VENDOR_TAG_BOOT_SERVERS:
- VendorOption->BootSvrLen = PxeOption->Length;
- VendorOption->BootSvr = (PXEBC_BOOT_SVR_ENTRY *) PxeOption->Data;
- break;
+ VendorOption->BootSvrLen = PxeOption->Length;
+ VendorOption->BootSvr = (PXEBC_BOOT_SVR_ENTRY *)PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_BOOT_MENU:
+ case PXEBC_VENDOR_TAG_BOOT_MENU:
- VendorOption->BootMenuLen = PxeOption->Length;
- VendorOption->BootMenu = (PXEBC_BOOT_MENU_ENTRY *) PxeOption->Data;
- break;
+ VendorOption->BootMenuLen = PxeOption->Length;
+ VendorOption->BootMenu = (PXEBC_BOOT_MENU_ENTRY *)PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_MENU_PROMPT:
+ case PXEBC_VENDOR_TAG_MENU_PROMPT:
- VendorOption->MenuPromptLen = PxeOption->Length;
- VendorOption->MenuPrompt = (PXEBC_MENU_PROMPT *) PxeOption->Data;
- break;
+ VendorOption->MenuPromptLen = PxeOption->Length;
+ VendorOption->MenuPrompt = (PXEBC_MENU_PROMPT *)PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_MCAST_ALLOC:
+ case PXEBC_VENDOR_TAG_MCAST_ALLOC:
- CopyMem (&VendorOption->McastIpBase, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS));
- CopyMem (&VendorOption->McastIpBlock, PxeOption->Data + 4, sizeof (VendorOption->McastIpBlock));
- CopyMem (&VendorOption->McastIpRange, PxeOption->Data + 6, sizeof (VendorOption->McastIpRange));
- break;
+ CopyMem (&VendorOption->McastIpBase, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS));
+ CopyMem (&VendorOption->McastIpBlock, PxeOption->Data + 4, sizeof (VendorOption->McastIpBlock));
+ CopyMem (&VendorOption->McastIpRange, PxeOption->Data + 6, sizeof (VendorOption->McastIpRange));
+ break;
- case PXEBC_VENDOR_TAG_CREDENTIAL_TYPES:
+ case PXEBC_VENDOR_TAG_CREDENTIAL_TYPES:
- VendorOption->CredTypeLen = PxeOption->Length;
- VendorOption->CredType = (UINT32 *) PxeOption->Data;
- break;
+ VendorOption->CredTypeLen = PxeOption->Length;
+ VendorOption->CredType = (UINT32 *)PxeOption->Data;
+ break;
- case PXEBC_VENDOR_TAG_BOOT_ITEM:
+ case PXEBC_VENDOR_TAG_BOOT_ITEM:
- CopyMem (&VendorOption->BootSrvType, PxeOption->Data, sizeof (VendorOption->BootSrvType));
- CopyMem (&VendorOption->BootSrvLayer, PxeOption->Data + 2, sizeof (VendorOption->BootSrvLayer));
- break;
+ CopyMem (&VendorOption->BootSrvType, PxeOption->Data, sizeof (VendorOption->BootSrvType));
+ CopyMem (&VendorOption->BootSrvLayer, PxeOption->Data + 2, sizeof (VendorOption->BootSrvLayer));
+ break;
- default:
- //
- // Not interesting PXE vendor options.
- //
- break;
+ default:
+ //
+ // Not interesting PXE vendor options.
+ //
+ break;
}
//
@@ -204,14 +201,13 @@ PxeBcParseVendorOptions (
if (PxeOption->OpCode == DHCP4_TAG_PAD) {
Offset++;
} else {
- Offset = (UINT8) (Offset + PxeOption->Length + 2);
+ Offset = (UINT8)(Offset + PxeOption->Length + 2);
}
- PxeOption = (EFI_DHCP4_PACKET_OPTION *) (Dhcp4Option->Data + Offset);
+ PxeOption = (EFI_DHCP4_PACKET_OPTION *)(Dhcp4Option->Data + Offset);
}
}
-
/**
Build the options buffer for the DHCPv4 request packet.
@@ -232,34 +228,34 @@ PxeBcBuildDhcp4Options (
IN BOOLEAN NeedMsgType
)
{
- UINT32 Index;
- PXEBC_DHCP4_OPTION_ENTRY OptEnt;
- UINT16 Value;
+ UINT32 Index;
+ PXEBC_DHCP4_OPTION_ENTRY OptEnt;
+ UINT16 Value;
Index = 0;
- OptList[0] = (EFI_DHCP4_PACKET_OPTION *) Buffer;
+ OptList[0] = (EFI_DHCP4_PACKET_OPTION *)Buffer;
if (NeedMsgType) {
//
// Append message type.
//
- OptList[Index]->OpCode = DHCP4_TAG_MSG_TYPE;
- OptList[Index]->Length = 1;
- OptEnt.Mesg = (PXEBC_DHCP4_OPTION_MESG *) OptList[Index]->Data;
- OptEnt.Mesg->Type = PXEBC_DHCP4_MSG_TYPE_REQUEST;
+ OptList[Index]->OpCode = DHCP4_TAG_MSG_TYPE;
+ OptList[Index]->Length = 1;
+ OptEnt.Mesg = (PXEBC_DHCP4_OPTION_MESG *)OptList[Index]->Data;
+ OptEnt.Mesg->Type = PXEBC_DHCP4_MSG_TYPE_REQUEST;
Index++;
- OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
//
// Append max message size.
//
- OptList[Index]->OpCode = DHCP4_TAG_MAXMSG;
- OptList[Index]->Length = (UINT8) sizeof (PXEBC_DHCP4_OPTION_MAX_MESG_SIZE);
- OptEnt.MaxMesgSize = (PXEBC_DHCP4_OPTION_MAX_MESG_SIZE *) OptList[Index]->Data;
- Value = NTOHS (PXEBC_DHCP4_PACKET_MAX_SIZE);
+ OptList[Index]->OpCode = DHCP4_TAG_MAXMSG;
+ OptList[Index]->Length = (UINT8)sizeof (PXEBC_DHCP4_OPTION_MAX_MESG_SIZE);
+ OptEnt.MaxMesgSize = (PXEBC_DHCP4_OPTION_MAX_MESG_SIZE *)OptList[Index]->Data;
+ Value = NTOHS (PXEBC_DHCP4_PACKET_MAX_SIZE);
CopyMem (&OptEnt.MaxMesgSize->Size, &Value, sizeof (UINT16));
Index++;
- OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
}
//
@@ -267,7 +263,7 @@ PxeBcBuildDhcp4Options (
//
OptList[Index]->OpCode = DHCP4_TAG_PARA_LIST;
OptList[Index]->Length = 35;
- OptEnt.Para = (PXEBC_DHCP4_OPTION_PARA *) OptList[Index]->Data;
+ OptEnt.Para = (PXEBC_DHCP4_OPTION_PARA *)OptList[Index]->Data;
OptEnt.Para->ParaList[0] = DHCP4_TAG_NETMASK;
OptEnt.Para->ParaList[1] = DHCP4_TAG_TIME_OFFSET;
OptEnt.Para->ParaList[2] = DHCP4_TAG_ROUTER;
@@ -304,19 +300,19 @@ PxeBcBuildDhcp4Options (
OptEnt.Para->ParaList[33] = 0x86;
OptEnt.Para->ParaList[34] = 0x87;
Index++;
- OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
//
// Append UUID/Guid-based client identifier option
//
- OptList[Index]->OpCode = DHCP4_TAG_UUID;
- OptList[Index]->Length = (UINT8) sizeof (PXEBC_DHCP4_OPTION_UUID);
- OptEnt.Uuid = (PXEBC_DHCP4_OPTION_UUID *) OptList[Index]->Data;
- OptEnt.Uuid->Type = 0;
+ OptList[Index]->OpCode = DHCP4_TAG_UUID;
+ OptList[Index]->Length = (UINT8)sizeof (PXEBC_DHCP4_OPTION_UUID);
+ OptEnt.Uuid = (PXEBC_DHCP4_OPTION_UUID *)OptList[Index]->Data;
+ OptEnt.Uuid->Type = 0;
Index++;
- OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
- if (EFI_ERROR (NetLibGetSystemGuid ((EFI_GUID *) OptEnt.Uuid->Guid))) {
+ if (EFI_ERROR (NetLibGetSystemGuid ((EFI_GUID *)OptEnt.Uuid->Guid))) {
//
// Zero the Guid to indicate NOT programable if failed to get system Guid.
//
@@ -326,9 +322,9 @@ PxeBcBuildDhcp4Options (
//
// Append client network device interface option
//
- OptList[Index]->OpCode = DHCP4_TAG_UNDI;
- OptList[Index]->Length = (UINT8) sizeof (PXEBC_DHCP4_OPTION_UNDI);
- OptEnt.Undi = (PXEBC_DHCP4_OPTION_UNDI *) OptList[Index]->Data;
+ OptList[Index]->OpCode = DHCP4_TAG_UNDI;
+ OptList[Index]->Length = (UINT8)sizeof (PXEBC_DHCP4_OPTION_UNDI);
+ OptEnt.Undi = (PXEBC_DHCP4_OPTION_UNDI *)OptList[Index]->Data;
if (Private->Nii != NULL) {
OptEnt.Undi->Type = Private->Nii->Type;
@@ -346,20 +342,20 @@ PxeBcBuildDhcp4Options (
//
// Append client system architecture option
//
- OptList[Index]->OpCode = DHCP4_TAG_ARCH;
- OptList[Index]->Length = (UINT8) sizeof (PXEBC_DHCP4_OPTION_ARCH);
- OptEnt.Arch = (PXEBC_DHCP4_OPTION_ARCH *) OptList[Index]->Data;
- Value = HTONS (EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE);
+ OptList[Index]->OpCode = DHCP4_TAG_ARCH;
+ OptList[Index]->Length = (UINT8)sizeof (PXEBC_DHCP4_OPTION_ARCH);
+ OptEnt.Arch = (PXEBC_DHCP4_OPTION_ARCH *)OptList[Index]->Data;
+ Value = HTONS (EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE);
CopyMem (&OptEnt.Arch->Type, &Value, sizeof (UINT16));
Index++;
- OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP_OPTION (OptList[Index - 1]);
//
// Append vendor class identify option
//
- OptList[Index]->OpCode = DHCP4_TAG_VENDOR_CLASS_ID;
- OptList[Index]->Length = (UINT8) sizeof (PXEBC_DHCP4_OPTION_CLID);
- OptEnt.Clid = (PXEBC_DHCP4_OPTION_CLID *) OptList[Index]->Data;
+ OptList[Index]->OpCode = DHCP4_TAG_VENDOR_CLASS_ID;
+ OptList[Index]->Length = (UINT8)sizeof (PXEBC_DHCP4_OPTION_CLID);
+ OptEnt.Clid = (PXEBC_DHCP4_OPTION_CLID *)OptList[Index]->Data;
CopyMem (
OptEnt.Clid,
DEFAULT_CLASS_ID_DATA,
@@ -382,7 +378,6 @@ PxeBcBuildDhcp4Options (
return Index;
}
-
/**
Create a template DHCPv4 packet as a seed.
@@ -392,32 +387,31 @@ PxeBcBuildDhcp4Options (
**/
VOID
PxeBcSeedDhcp4Packet (
- OUT EFI_DHCP4_PACKET *Seed,
- IN EFI_UDP4_PROTOCOL *Udp4
+ OUT EFI_DHCP4_PACKET *Seed,
+ IN EFI_UDP4_PROTOCOL *Udp4
)
{
- EFI_SIMPLE_NETWORK_MODE Mode;
- EFI_DHCP4_HEADER *Header;
+ EFI_SIMPLE_NETWORK_MODE Mode;
+ EFI_DHCP4_HEADER *Header;
//
// Get IfType and HwAddressSize from SNP mode data.
//
Udp4->GetModeData (Udp4, NULL, NULL, NULL, &Mode);
- Seed->Size = sizeof (EFI_DHCP4_PACKET);
- Seed->Length = sizeof (Seed->Dhcp4);
- Header = &Seed->Dhcp4.Header;
+ Seed->Size = sizeof (EFI_DHCP4_PACKET);
+ Seed->Length = sizeof (Seed->Dhcp4);
+ Header = &Seed->Dhcp4.Header;
ZeroMem (Header, sizeof (EFI_DHCP4_HEADER));
- Header->OpCode = PXEBC_DHCP4_OPCODE_REQUEST;
- Header->HwType = Mode.IfType;
- Header->HwAddrLen = (UINT8) Mode.HwAddressSize;
+ Header->OpCode = PXEBC_DHCP4_OPCODE_REQUEST;
+ Header->HwType = Mode.IfType;
+ Header->HwAddrLen = (UINT8)Mode.HwAddressSize;
CopyMem (Header->ClientHwAddr, &Mode.CurrentAddress, Header->HwAddrLen);
Seed->Dhcp4.Magik = PXEBC_DHCP4_MAGIC;
Seed->Dhcp4.Option[0] = DHCP4_TAG_EOP;
}
-
/**
Cache the DHCPv4 packet.
@@ -430,8 +424,8 @@ PxeBcSeedDhcp4Packet (
**/
EFI_STATUS
PxeBcCacheDhcp4Packet (
- IN EFI_DHCP4_PACKET *Dst,
- IN EFI_DHCP4_PACKET *Src
+ IN EFI_DHCP4_PACKET *Dst,
+ IN EFI_DHCP4_PACKET *Src
)
{
if (Dst->Size < Src->Length) {
@@ -444,7 +438,6 @@ PxeBcCacheDhcp4Packet (
return EFI_SUCCESS;
}
-
/**
Parse the cached DHCPv4 packet, including all the options.
@@ -456,21 +449,21 @@ PxeBcCacheDhcp4Packet (
**/
EFI_STATUS
PxeBcParseDhcp4Packet (
- IN PXEBC_DHCP4_PACKET_CACHE *Cache4
+ IN PXEBC_DHCP4_PACKET_CACHE *Cache4
)
{
- EFI_DHCP4_PACKET *Offer;
- EFI_DHCP4_PACKET_OPTION **Options;
- EFI_DHCP4_PACKET_OPTION *Option;
- PXEBC_OFFER_TYPE OfferType;
- UINTN Index;
- BOOLEAN IsProxyOffer;
- BOOLEAN IsPxeOffer;
- UINT8 *Ptr8;
- BOOLEAN FileFieldOverloaded;
+ EFI_DHCP4_PACKET *Offer;
+ EFI_DHCP4_PACKET_OPTION **Options;
+ EFI_DHCP4_PACKET_OPTION *Option;
+ PXEBC_OFFER_TYPE OfferType;
+ UINTN Index;
+ BOOLEAN IsProxyOffer;
+ BOOLEAN IsPxeOffer;
+ UINT8 *Ptr8;
+ BOOLEAN FileFieldOverloaded;
- IsProxyOffer = FALSE;
- IsPxeOffer = FALSE;
+ IsProxyOffer = FALSE;
+ IsPxeOffer = FALSE;
FileFieldOverloaded = FALSE;
ZeroMem (Cache4->OptList, sizeof (Cache4->OptList));
@@ -490,6 +483,7 @@ PxeBcParseDhcp4Packet (
mInterestedDhcp4Tags[Index]
);
}
+
//
// Second, Check if bootfilename and serverhostname is overloaded to carry DHCP options refers to rfc-2132.
// If yes, try to parse options from the BootFileName field, then ServerName field.
@@ -501,18 +495,19 @@ PxeBcParseDhcp4Packet (
for (Index = 0; Index < PXEBC_DHCP4_TAG_INDEX_MAX; Index++) {
if (Options[Index] == NULL) {
Options[Index] = PxeBcParseDhcp4Options (
- (UINT8 *) Offer->Dhcp4.Header.BootFileName,
+ (UINT8 *)Offer->Dhcp4.Header.BootFileName,
sizeof (Offer->Dhcp4.Header.BootFileName),
mInterestedDhcp4Tags[Index]
);
}
}
}
+
if ((Option->Data[0] & PXEBC_DHCP4_OVERLOAD_SERVER_NAME) != 0) {
for (Index = 0; Index < PXEBC_DHCP4_TAG_INDEX_MAX; Index++) {
if (Options[Index] == NULL) {
Options[Index] = PxeBcParseDhcp4Options (
- (UINT8 *) Offer->Dhcp4.Header.ServerName,
+ (UINT8 *)Offer->Dhcp4.Header.ServerName,
sizeof (Offer->Dhcp4.Header.ServerName),
mInterestedDhcp4Tags[Index]
);
@@ -533,7 +528,8 @@ PxeBcParseDhcp4Packet (
//
Option = Options[PXEBC_DHCP4_TAG_INDEX_CLASS_ID];
if ((Option != NULL) && (Option->Length >= 9) &&
- (CompareMem (Option->Data, DEFAULT_CLASS_ID_DATA, 9) == 0)) {
+ (CompareMem (Option->Data, DEFAULT_CLASS_ID_DATA, 9) == 0))
+ {
IsPxeOffer = TRUE;
}
@@ -541,7 +537,7 @@ PxeBcParseDhcp4Packet (
// Parse PXE vendor options in this offer, and store the contents/pointers.
//
Option = Options[PXEBC_DHCP4_TAG_INDEX_VENDOR];
- if (IsPxeOffer && Option != NULL) {
+ if (IsPxeOffer && (Option != NULL)) {
PxeBcParseVendorOptions (Option, &Cache4->VendorOpt);
}
@@ -555,33 +551,32 @@ PxeBcParseDhcp4Packet (
// RFC 2132, Section 9.5 does not strictly state Bootfile name (option 67) is null
// terminated string. So force to append null terminated character at the end of string.
//
- Ptr8 = (UINT8*)&Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE]->Data[0];
+ Ptr8 = (UINT8 *)&Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE]->Data[0];
Ptr8 += Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE]->Length;
if (*(Ptr8 - 1) != '\0') {
*Ptr8 = '\0';
}
- } else if (!FileFieldOverloaded && Offer->Dhcp4.Header.BootFileName[0] != 0) {
+ } else if (!FileFieldOverloaded && (Offer->Dhcp4.Header.BootFileName[0] != 0)) {
//
// If the bootfile is not present and bootfilename is present in DHCPv4 packet, just parse it.
// Do not count dhcp option header here, or else will destroy the serverhostname.
//
Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] = (EFI_DHCP4_PACKET_OPTION *)
- (&Offer->Dhcp4.Header.BootFileName[0] -
- OFFSET_OF (EFI_DHCP4_PACKET_OPTION, Data[0]));
-
+ (&Offer->Dhcp4.Header.BootFileName[0] -
+ OFFSET_OF (EFI_DHCP4_PACKET_OPTION, Data[0]));
}
//
// Determine offer type of the DHCPv4 packet.
//
Option = Options[PXEBC_DHCP4_TAG_INDEX_MSG_TYPE];
- if (Option == NULL || Option->Data[0] == 0) {
+ if ((Option == NULL) || (Option->Data[0] == 0)) {
//
// It's a Bootp offer.
//
OfferType = PxeOfferTypeBootp;
- Option = Cache4->OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE];
+ Option = Cache4->OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE];
if (Option == NULL) {
//
// If the Bootp offer without bootfilename, discard it.
@@ -589,7 +584,6 @@ PxeBcParseDhcp4Packet (
return EFI_DEVICE_ERROR;
}
} else {
-
if (IS_VALID_DISCOVER_VENDOR_OPTION (Cache4->VendorOpt.BitMap)) {
//
// It's a PXE10 offer with PXEClient and discover vendor option.
@@ -619,7 +613,6 @@ PxeBcParseDhcp4Packet (
return EFI_SUCCESS;
}
-
/**
Cache the DHCPv4 ack packet, and parse it on demand.
@@ -633,9 +626,9 @@ PxeBcParseDhcp4Packet (
**/
EFI_STATUS
PxeBcCopyDhcp4Ack (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP4_PACKET *Ack,
- IN BOOLEAN Verified
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP4_PACKET *Ack,
+ IN BOOLEAN Verified
)
{
EFI_PXE_BASE_CODE_MODE *Mode;
@@ -660,7 +653,6 @@ PxeBcCopyDhcp4Ack (
return EFI_SUCCESS;
}
-
/**
Cache the DHCPv4 proxy offer packet according to the received order.
@@ -673,8 +665,8 @@ PxeBcCopyDhcp4Ack (
**/
EFI_STATUS
PxeBcCopyProxyOffer (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT32 OfferIndex
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT32 OfferIndex
)
{
EFI_PXE_BASE_CODE_MODE *Mode;
@@ -691,7 +683,7 @@ PxeBcCopyProxyOffer (
// Cache the proxy offer packet and parse it.
//
Status = PxeBcCacheDhcp4Packet (&Private->ProxyOffer.Dhcp4.Packet.Offer, Offer);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -706,7 +698,6 @@ PxeBcCopyProxyOffer (
return EFI_SUCCESS;
}
-
/**
Retry to request bootfile name by the BINL offer.
@@ -719,8 +710,8 @@ PxeBcCopyProxyOffer (
**/
EFI_STATUS
PxeBcRetryBinlOffer (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT32 Index
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT32 Index
)
{
EFI_DHCP4_PACKET *Offer;
@@ -730,8 +721,10 @@ PxeBcRetryBinlOffer (
EFI_DHCP4_PACKET *Reply;
ASSERT (Index < PXEBC_OFFER_MAX_NUM);
- ASSERT (Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeDhcpBinl ||
- Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeProxyBinl);
+ ASSERT (
+ Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeDhcpBinl ||
+ Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeProxyBinl
+ );
Offer = &Private->OfferBuffer[Index].Dhcp4.Packet.Offer;
@@ -780,9 +773,10 @@ PxeBcRetryBinlOffer (
return Status;
}
- if (Cache4->OfferType != PxeOfferTypeProxyPxe10 &&
- Cache4->OfferType != PxeOfferTypeProxyWfm11a &&
- Cache4->OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] == NULL) {
+ if ((Cache4->OfferType != PxeOfferTypeProxyPxe10) &&
+ (Cache4->OfferType != PxeOfferTypeProxyWfm11a) &&
+ (Cache4->OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] == NULL))
+ {
//
// This BINL ack doesn't have discovery option set or multicast option set
// or bootfile name specified.
@@ -799,7 +793,6 @@ PxeBcRetryBinlOffer (
return EFI_SUCCESS;
}
-
/**
Cache all the received DHCPv4 offers, and set OfferIndex and OfferCount.
@@ -812,8 +805,8 @@ PxeBcRetryBinlOffer (
**/
EFI_STATUS
PxeBcCacheDhcp4Offer (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP4_PACKET *RcvdOffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP4_PACKET *RcvdOffer
)
{
PXEBC_DHCP4_PACKET_CACHE *Cache4;
@@ -829,7 +822,7 @@ PxeBcCacheDhcp4Offer (
// Cache the content of DHCPv4 packet firstly.
//
Status = PxeBcCacheDhcp4Packet (Offer, RcvdOffer);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -870,8 +863,9 @@ PxeBcCacheDhcp4Offer (
//
Private->OfferIndex[OfferType][Private->OfferCount[OfferType]] = Private->OfferNum;
Private->OfferCount[OfferType]++;
- } else if ((OfferType == PxeOfferTypeProxyPxe10 || OfferType == PxeOfferTypeProxyWfm11a) &&
- Private->OfferCount[OfferType] < 1) {
+ } else if (((OfferType == PxeOfferTypeProxyPxe10) || (OfferType == PxeOfferTypeProxyWfm11a)) &&
+ (Private->OfferCount[OfferType] < 1))
+ {
//
// Only cache the first PXE10/WFM11a offer, and discard the others.
//
@@ -894,7 +888,6 @@ PxeBcCacheDhcp4Offer (
return EFI_SUCCESS;
}
-
/**
Select an DHCPv4 offer, and record SelectIndex and SelectProxyType.
@@ -903,12 +896,12 @@ PxeBcCacheDhcp4Offer (
**/
VOID
PxeBcSelectDhcp4Offer (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- UINT32 Index;
- UINT32 OfferIndex;
- EFI_DHCP4_PACKET *Offer;
+ UINT32 Index;
+ UINT32 OfferIndex;
+ EFI_DHCP4_PACKET *Offer;
Private->SelectIndex = 0;
@@ -921,43 +914,40 @@ PxeBcSelectDhcp4Offer (
// 1. DhcpPxe10 offer
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpPxe10][0] + 1;
-
} else if (Private->OfferCount[PxeOfferTypeDhcpWfm11a] > 0) {
//
// 2. DhcpWfm11a offer
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpWfm11a][0] + 1;
-
- } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 &&
- Private->OfferCount[PxeOfferTypeProxyPxe10] > 0) {
+ } else if ((Private->OfferCount[PxeOfferTypeDhcpOnly] > 0) &&
+ (Private->OfferCount[PxeOfferTypeProxyPxe10] > 0))
+ {
//
// 3. DhcpOnly offer and ProxyPxe10 offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpOnly][0] + 1;
Private->SelectProxyType = PxeOfferTypeProxyPxe10;
-
- } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 &&
- Private->OfferCount[PxeOfferTypeProxyWfm11a] > 0) {
+ } else if ((Private->OfferCount[PxeOfferTypeDhcpOnly] > 0) &&
+ (Private->OfferCount[PxeOfferTypeProxyWfm11a] > 0))
+ {
//
// 4. DhcpOnly offer and ProxyWfm11a offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpOnly][0] + 1;
Private->SelectProxyType = PxeOfferTypeProxyWfm11a;
-
} else if (Private->OfferCount[PxeOfferTypeDhcpBinl] > 0) {
//
// 5. DhcpBinl offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpBinl][0] + 1;
-
- } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 &&
- Private->OfferCount[PxeOfferTypeProxyBinl] > 0) {
+ } else if ((Private->OfferCount[PxeOfferTypeDhcpOnly] > 0) &&
+ (Private->OfferCount[PxeOfferTypeProxyBinl] > 0))
+ {
//
// 6. DhcpOnly offer and ProxyBinl offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpOnly][0] + 1;
Private->SelectProxyType = PxeOfferTypeProxyBinl;
-
} else {
//
// 7. DhcpOnly offer with bootfilename.
@@ -969,13 +959,15 @@ PxeBcSelectDhcp4Offer (
break;
}
}
+
//
// 8. Bootp offer with bootfilename.
//
OfferIndex = Private->OfferIndex[PxeOfferTypeBootp][0];
- if (Private->SelectIndex == 0 &&
- Private->OfferCount[PxeOfferTypeBootp] > 0 &&
- Private->OfferBuffer[OfferIndex].Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL) {
+ if ((Private->SelectIndex == 0) &&
+ (Private->OfferCount[PxeOfferTypeBootp] > 0) &&
+ (Private->OfferBuffer[OfferIndex].Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL))
+ {
Private->SelectIndex = OfferIndex + 1;
}
}
@@ -984,7 +976,6 @@ PxeBcSelectDhcp4Offer (
// Select offer by received order.
//
for (Index = 0; Index < Private->OfferNum; Index++) {
-
Offer = &Private->OfferBuffer[Index].Dhcp4.Packet.Offer;
if (IS_PROXY_DHCP_OFFER (Offer)) {
@@ -995,8 +986,9 @@ PxeBcSelectDhcp4Offer (
}
if (!Private->IsProxyRecved &&
- Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeDhcpOnly &&
- Private->OfferBuffer[Index].Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] == NULL) {
+ (Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeDhcpOnly) &&
+ (Private->OfferBuffer[Index].Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] == NULL))
+ {
//
// Skip if DhcpOnly offer without any other proxy offers or bootfilename.
//
@@ -1012,7 +1004,6 @@ PxeBcSelectDhcp4Offer (
}
}
-
/**
Handle the DHCPv4 offer packet.
@@ -1026,7 +1017,7 @@ PxeBcSelectDhcp4Offer (
**/
EFI_STATUS
PxeBcHandleDhcp4Offer (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
PXEBC_DHCP4_PACKET_CACHE *Cache4;
@@ -1041,11 +1032,11 @@ PxeBcHandleDhcp4Offer (
EFI_DHCP4_PACKET *Ack;
ASSERT (Private->SelectIndex > 0);
- SelectIndex = (UINT32) (Private->SelectIndex - 1);
+ SelectIndex = (UINT32)(Private->SelectIndex - 1);
ASSERT (SelectIndex < PXEBC_OFFER_MAX_NUM);
- Cache4 = &Private->OfferBuffer[SelectIndex].Dhcp4;
- Options = Cache4->OptList;
- Status = EFI_SUCCESS;
+ Cache4 = &Private->OfferBuffer[SelectIndex].Dhcp4;
+ Options = Cache4->OptList;
+ Status = EFI_SUCCESS;
if (Cache4->OfferType == PxeOfferTypeDhcpBinl) {
//
@@ -1055,7 +1046,6 @@ PxeBcHandleDhcp4Offer (
Status = EFI_NO_RESPONSE;
}
} else if (Cache4->OfferType == PxeOfferTypeDhcpOnly) {
-
if (Private->IsProxyRecved) {
//
// DhcpOnly offer is selected, so need try to request bootfile name.
@@ -1080,6 +1070,7 @@ PxeBcHandleDhcp4Offer (
break;
}
}
+
if (Index == Private->OfferCount[Private->SelectProxyType]) {
Status = EFI_NO_RESPONSE;
}
@@ -1122,7 +1113,7 @@ PxeBcHandleDhcp4Offer (
}
}
- if (!EFI_ERROR (Status) && Private->SelectProxyType != PxeOfferTypeProxyBinl) {
+ if (!EFI_ERROR (Status) && (Private->SelectProxyType != PxeOfferTypeProxyBinl)) {
//
// Success to try to request by a ProxyPxe10 or ProxyWfm11a offer, copy and parse it.
//
@@ -1157,13 +1148,13 @@ PxeBcHandleDhcp4Offer (
if (EFI_ERROR (Status)) {
return Status;
}
+
Mode->DhcpDiscoverValid = TRUE;
}
return Status;
}
-
/**
EFI_DHCP4_CALLBACK is provided by the consumer of the EFI DHCPv4 Protocol driver
to intercept events that occurred in the configuration process.
@@ -1187,12 +1178,12 @@ PxeBcHandleDhcp4Offer (
EFI_STATUS
EFIAPI
PxeBcDhcp4CallBack (
- IN EFI_DHCP4_PROTOCOL *This,
- IN VOID *Context,
- IN EFI_DHCP4_STATE CurrentState,
- IN EFI_DHCP4_EVENT Dhcp4Event,
- IN EFI_DHCP4_PACKET *Packet OPTIONAL,
- OUT EFI_DHCP4_PACKET **NewPacket OPTIONAL
+ IN EFI_DHCP4_PROTOCOL *This,
+ IN VOID *Context,
+ IN EFI_DHCP4_STATE CurrentState,
+ IN EFI_DHCP4_EVENT Dhcp4Event,
+ IN EFI_DHCP4_PACKET *Packet OPTIONAL,
+ OUT EFI_DHCP4_PACKET **NewPacket OPTIONAL
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -1206,13 +1197,14 @@ PxeBcDhcp4CallBack (
if ((Dhcp4Event != Dhcp4RcvdOffer) &&
(Dhcp4Event != Dhcp4SelectOffer) &&
(Dhcp4Event != Dhcp4SendDiscover) &&
- (Dhcp4Event != Dhcp4RcvdAck)) {
+ (Dhcp4Event != Dhcp4RcvdAck))
+ {
return EFI_SUCCESS;
}
- Private = (PXEBC_PRIVATE_DATA *) Context;
- Mode = Private->PxeBc.Mode;
- Callback = Private->PxeBcCallback;
+ Private = (PXEBC_PRIVATE_DATA *)Context;
+ Mode = Private->PxeBc.Mode;
+ Callback = Private->PxeBcCallback;
//
// Override the Maximum DHCP Message Size.
@@ -1230,15 +1222,15 @@ PxeBcDhcp4CallBack (
//
// Callback to user if any packets sent or received.
//
- if (Dhcp4Event != Dhcp4SelectOffer && Callback != NULL) {
- Received = (BOOLEAN) (Dhcp4Event == Dhcp4RcvdOffer || Dhcp4Event == Dhcp4RcvdAck);
- Status = Callback->Callback (
- Callback,
- Private->Function,
- Received,
- Packet->Length,
- (EFI_PXE_BASE_CODE_PACKET *) &Packet->Dhcp4
- );
+ if ((Dhcp4Event != Dhcp4SelectOffer) && (Callback != NULL)) {
+ Received = (BOOLEAN)(Dhcp4Event == Dhcp4RcvdOffer || Dhcp4Event == Dhcp4RcvdAck);
+ Status = Callback->Callback (
+ Callback,
+ Private->Function,
+ Received,
+ Packet->Length,
+ (EFI_PXE_BASE_CODE_PACKET *)&Packet->Dhcp4
+ );
if (Status != EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE) {
return EFI_ABORTED;
}
@@ -1358,37 +1350,37 @@ PxeBcDhcp4CallBack (
**/
EFI_STATUS
PxeBcDhcp4Discover (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT16 Type,
- IN UINT16 *Layer,
- IN BOOLEAN UseBis,
- IN EFI_IP_ADDRESS *DestIp,
- IN UINT16 IpCount,
- IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT16 Type,
+ IN UINT16 *Layer,
+ IN BOOLEAN UseBis,
+ IN EFI_IP_ADDRESS *DestIp,
+ IN UINT16 IpCount,
+ IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
)
{
- EFI_PXE_BASE_CODE_UDP_PORT Sport;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_DHCP4_PROTOCOL *Dhcp4;
- EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN Token;
- BOOLEAN IsBCast;
- EFI_STATUS Status;
- UINT16 RepIndex;
- UINT16 SrvIndex;
- UINT16 TryIndex;
- EFI_DHCP4_LISTEN_POINT ListenPoint;
- EFI_DHCP4_PACKET *Response;
- UINT8 Buffer[PXEBC_DHCP4_OPTION_MAX_SIZE];
- EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_OPTION_MAX_NUM];
- UINT32 OptCount;
- EFI_DHCP4_PACKET_OPTION *PxeOpt;
- PXEBC_OPTION_BOOT_ITEM *PxeBootItem;
- UINT8 VendorOptLen;
- UINT32 Xid;
-
- Mode = Private->PxeBc.Mode;
- Dhcp4 = Private->Dhcp4;
- Status = EFI_SUCCESS;
+ EFI_PXE_BASE_CODE_UDP_PORT Sport;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_DHCP4_PROTOCOL *Dhcp4;
+ EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN Token;
+ BOOLEAN IsBCast;
+ EFI_STATUS Status;
+ UINT16 RepIndex;
+ UINT16 SrvIndex;
+ UINT16 TryIndex;
+ EFI_DHCP4_LISTEN_POINT ListenPoint;
+ EFI_DHCP4_PACKET *Response;
+ UINT8 Buffer[PXEBC_DHCP4_OPTION_MAX_SIZE];
+ EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_OPTION_MAX_NUM];
+ UINT32 OptCount;
+ EFI_DHCP4_PACKET_OPTION *PxeOpt;
+ PXEBC_OPTION_BOOT_ITEM *PxeBootItem;
+ UINT8 VendorOptLen;
+ UINT32 Xid;
+
+ Mode = Private->PxeBc.Mode;
+ Dhcp4 = Private->Dhcp4;
+ Status = EFI_SUCCESS;
ZeroMem (&Token, sizeof (EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN));
@@ -1403,7 +1395,7 @@ PxeBcDhcp4Discover (
IsBCast = FALSE;
}
- if (!UseBis && Layer != NULL) {
+ if (!UseBis && (Layer != NULL)) {
*Layer &= EFI_PXE_BASE_CODE_BOOT_LAYER_MASK;
}
@@ -1416,23 +1408,23 @@ PxeBcDhcp4Discover (
//
// Add vendor option of PXE_BOOT_ITEM
//
- VendorOptLen = (UINT8) ((sizeof (EFI_DHCP4_PACKET_OPTION) - 1) * 2 + sizeof (PXEBC_OPTION_BOOT_ITEM) + 1);
+ VendorOptLen = (UINT8)((sizeof (EFI_DHCP4_PACKET_OPTION) - 1) * 2 + sizeof (PXEBC_OPTION_BOOT_ITEM) + 1);
OptList[OptCount] = AllocateZeroPool (VendorOptLen);
if (OptList[OptCount] == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- OptList[OptCount]->OpCode = DHCP4_TAG_VENDOR;
- OptList[OptCount]->Length = (UINT8) (VendorOptLen - 2);
- PxeOpt = (EFI_DHCP4_PACKET_OPTION *) OptList[OptCount]->Data;
- PxeOpt->OpCode = PXEBC_VENDOR_TAG_BOOT_ITEM;
- PxeOpt->Length = (UINT8) sizeof (PXEBC_OPTION_BOOT_ITEM);
- PxeBootItem = (PXEBC_OPTION_BOOT_ITEM *) PxeOpt->Data;
- PxeBootItem->Type = HTONS (Type);
- PxeOpt->Data[PxeOpt->Length] = DHCP4_TAG_EOP;
+ OptList[OptCount]->OpCode = DHCP4_TAG_VENDOR;
+ OptList[OptCount]->Length = (UINT8)(VendorOptLen - 2);
+ PxeOpt = (EFI_DHCP4_PACKET_OPTION *)OptList[OptCount]->Data;
+ PxeOpt->OpCode = PXEBC_VENDOR_TAG_BOOT_ITEM;
+ PxeOpt->Length = (UINT8)sizeof (PXEBC_OPTION_BOOT_ITEM);
+ PxeBootItem = (PXEBC_OPTION_BOOT_ITEM *)PxeOpt->Data;
+ PxeBootItem->Type = HTONS (Type);
+ PxeOpt->Data[PxeOpt->Length] = DHCP4_TAG_EOP;
if (Layer != NULL) {
- PxeBootItem->Layer = HTONS (*Layer);
+ PxeBootItem->Layer = HTONS (*Layer);
}
OptCount++;
@@ -1476,7 +1468,7 @@ PxeBcDhcp4Discover (
//
Xid = NET_RANDOM (NetRandomInitSeed ());
Token.Packet->Dhcp4.Header.Xid = HTONL (Xid);
- Token.Packet->Dhcp4.Header.Reserved = HTONS ((UINT16) ((IsBCast) ? 0x8000 : 0x0));
+ Token.Packet->Dhcp4.Header.Reserved = HTONS ((UINT16)((IsBCast) ? 0x8000 : 0x0));
CopyMem (&Token.Packet->Dhcp4.Header.ClientAddr, &Private->StationIp, sizeof (EFI_IPv4_ADDRESS));
Token.RemotePort = Sport;
@@ -1490,20 +1482,19 @@ PxeBcDhcp4Discover (
CopyMem (&Token.GatewayAddress, &Private->GatewayIp, sizeof (EFI_IPv4_ADDRESS));
if (!IsBCast) {
- Token.ListenPointCount = 1;
- Token.ListenPoints = &ListenPoint;
- Token.ListenPoints[0].ListenPort = PXEBC_BS_DISCOVER_PORT;
- CopyMem (&Token.ListenPoints[0].ListenAddress, &Private->StationIp, sizeof(EFI_IPv4_ADDRESS));
- CopyMem (&Token.ListenPoints[0].SubnetMask, &Private->SubnetMask, sizeof(EFI_IPv4_ADDRESS));
+ Token.ListenPointCount = 1;
+ Token.ListenPoints = &ListenPoint;
+ Token.ListenPoints[0].ListenPort = PXEBC_BS_DISCOVER_PORT;
+ CopyMem (&Token.ListenPoints[0].ListenAddress, &Private->StationIp, sizeof (EFI_IPv4_ADDRESS));
+ CopyMem (&Token.ListenPoints[0].SubnetMask, &Private->SubnetMask, sizeof (EFI_IPv4_ADDRESS));
}
//
// Send out the request packet to discover the bootfile.
//
for (TryIndex = 1; TryIndex <= PXEBC_BOOT_REQUEST_RETRIES; TryIndex++) {
-
- Token.TimeoutValue = (UINT16) (PXEBC_BOOT_REQUEST_TIMEOUT * TryIndex);
- Token.Packet->Dhcp4.Header.Seconds = (UINT16) (PXEBC_BOOT_REQUEST_TIMEOUT * (TryIndex - 1));
+ Token.TimeoutValue = (UINT16)(PXEBC_BOOT_REQUEST_TIMEOUT * TryIndex);
+ Token.Packet->Dhcp4.Header.Seconds = (UINT16)(PXEBC_BOOT_REQUEST_TIMEOUT * (TryIndex - 1));
Status = Dhcp4->TransmitReceive (Dhcp4, &Token);
if (Token.Status != EFI_TIMEOUT) {
@@ -1519,10 +1510,9 @@ PxeBcDhcp4Discover (
}
if (!EFI_ERROR (Status)) {
-
- RepIndex = 0;
- SrvIndex = 0;
- Response = Token.ResponseList;
+ RepIndex = 0;
+ SrvIndex = 0;
+ Response = Token.ResponseList;
//
// Find the right PXE Reply according to server address.
//
@@ -1530,7 +1520,7 @@ PxeBcDhcp4Discover (
if (Response->Length > PXEBC_DHCP4_PACKET_MAX_SIZE) {
SrvIndex = 0;
RepIndex++;
- Response = (EFI_DHCP4_PACKET *) ((UINT8 *) Response + Response->Size);
+ Response = (EFI_DHCP4_PACKET *)((UINT8 *)Response + Response->Size);
continue;
}
@@ -1538,10 +1528,13 @@ PxeBcDhcp4Discover (
if (SrvList[SrvIndex].AcceptAnyResponse) {
break;
}
+
if ((SrvList[SrvIndex].Type == Type) &&
- EFI_IP4_EQUAL (&Response->Dhcp4.Header.ServerAddr, &SrvList[SrvIndex].IpAddr)) {
+ EFI_IP4_EQUAL (&Response->Dhcp4.Header.ServerAddr, &SrvList[SrvIndex].IpAddr))
+ {
break;
}
+
SrvIndex++;
}
@@ -1551,7 +1544,7 @@ PxeBcDhcp4Discover (
SrvIndex = 0;
RepIndex++;
- Response = (EFI_DHCP4_PACKET *) ((UINT8 *) Response + Response->Size);
+ Response = (EFI_DHCP4_PACKET *)((UINT8 *)Response + Response->Size);
}
if (RepIndex < Token.ResponseCount) {
@@ -1561,13 +1554,14 @@ PxeBcDhcp4Discover (
//
if (Private->IsDoDiscover) {
Status = PxeBcCacheDhcp4Packet (&Private->PxeReply.Dhcp4.Packet.Ack, Response);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
+
CopyMem (&Mode->PxeDiscover, &Token.Packet->Dhcp4, Token.Packet->Length);
} else {
Status = PxeBcCacheDhcp4Packet (&Private->ProxyOffer.Dhcp4.Packet.Offer, Response);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
}
@@ -1578,14 +1572,17 @@ PxeBcDhcp4Discover (
Status = EFI_NOT_FOUND;
}
}
+
ON_EXIT:
if (Token.ResponseList != NULL) {
FreePool (Token.ResponseList);
}
+
if (Token.Packet != NULL) {
FreePool (Token.Packet);
}
+
return Status;
}
@@ -1600,22 +1597,22 @@ ON_EXIT:
**/
EFI_STATUS
PxeBcSetIp4Policy (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- EFI_STATUS Status;
- EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2;
- EFI_IP4_CONFIG2_POLICY Policy;
- UINTN DataSize;
+ EFI_STATUS Status;
+ EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2;
+ EFI_IP4_CONFIG2_POLICY Policy;
+ UINTN DataSize;
Ip4Config2 = Private->Ip4Config2;
- DataSize = sizeof (EFI_IP4_CONFIG2_POLICY);
- Status = Ip4Config2->GetData (
- Ip4Config2,
- Ip4Config2DataTypePolicy,
- &DataSize,
- &Policy
- );
+ DataSize = sizeof (EFI_IP4_CONFIG2_POLICY);
+ Status = Ip4Config2->GetData (
+ Ip4Config2,
+ Ip4Config2DataTypePolicy,
+ &DataSize,
+ &Policy
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1633,7 +1630,7 @@ PxeBcSetIp4Policy (
}
}
- return EFI_SUCCESS;
+ return EFI_SUCCESS;
}
/**
@@ -1648,28 +1645,28 @@ PxeBcSetIp4Policy (
**/
EFI_STATUS
PxeBcDhcp4Dora (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP4_PROTOCOL *Dhcp4
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP4_PROTOCOL *Dhcp4
)
{
- EFI_PXE_BASE_CODE_MODE *PxeMode;
- EFI_DHCP4_CONFIG_DATA Config;
- EFI_DHCP4_MODE_DATA Mode;
- EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_OPTION_MAX_NUM];
- UINT8 Buffer[PXEBC_DHCP4_OPTION_MAX_SIZE];
- UINT32 OptCount;
- EFI_STATUS Status;
+ EFI_PXE_BASE_CODE_MODE *PxeMode;
+ EFI_DHCP4_CONFIG_DATA Config;
+ EFI_DHCP4_MODE_DATA Mode;
+ EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_OPTION_MAX_NUM];
+ UINT8 Buffer[PXEBC_DHCP4_OPTION_MAX_SIZE];
+ UINT32 OptCount;
+ EFI_STATUS Status;
ASSERT (Dhcp4 != NULL);
- Status = EFI_SUCCESS;
- PxeMode = Private->PxeBc.Mode;
+ Status = EFI_SUCCESS;
+ PxeMode = Private->PxeBc.Mode;
//
// Build option list for the request packet.
//
OptCount = PxeBcBuildDhcp4Options (Private, OptList, Buffer, FALSE);
- ASSERT (OptCount> 0);
+ ASSERT (OptCount > 0);
ZeroMem (&Mode, sizeof (EFI_DHCP4_MODE_DATA));
ZeroMem (&Config, sizeof (EFI_DHCP4_CONFIG_DATA));
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h
@@ -16,17 +16,17 @@
#ifndef __EFI_PXEBC_DHCP4_H__
#define __EFI_PXEBC_DHCP4_H__
-#define PXEBC_DHCP4_OPTION_MAX_NUM 16
-#define PXEBC_DHCP4_OPTION_MAX_SIZE 312
-#define PXEBC_DHCP4_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))
-#define PXEBC_DHCP4_S_PORT 67
-#define PXEBC_DHCP4_C_PORT 68
-#define PXEBC_BS_DOWNLOAD_PORT 69
-#define PXEBC_BS_DISCOVER_PORT 4011
-#define PXEBC_DHCP4_OPCODE_REQUEST 1
-#define PXEBC_DHCP4_OPCODE_REPLY 2
-#define PXEBC_DHCP4_MSG_TYPE_REQUEST 3
-#define PXEBC_DHCP4_MAGIC 0x63538263 // network byte order
+#define PXEBC_DHCP4_OPTION_MAX_NUM 16
+#define PXEBC_DHCP4_OPTION_MAX_SIZE 312
+#define PXEBC_DHCP4_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))
+#define PXEBC_DHCP4_S_PORT 67
+#define PXEBC_DHCP4_C_PORT 68
+#define PXEBC_BS_DOWNLOAD_PORT 69
+#define PXEBC_BS_DISCOVER_PORT 4011
+#define PXEBC_DHCP4_OPCODE_REQUEST 1
+#define PXEBC_DHCP4_OPCODE_REPLY 2
+#define PXEBC_DHCP4_MSG_TYPE_REQUEST 3
+#define PXEBC_DHCP4_MAGIC 0x63538263 // network byte order
//
// Sub-Options in Dhcp Vendor Option
@@ -45,24 +45,23 @@
#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES 12
#define PXEBC_VENDOR_TAG_BOOT_ITEM 71
-#define PXEBC_BOOT_REQUEST_TIMEOUT 1
-#define PXEBC_BOOT_REQUEST_RETRIES 4
-
-#define PXEBC_DHCP4_OVERLOAD_FILE 1
-#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME 2
+#define PXEBC_BOOT_REQUEST_TIMEOUT 1
+#define PXEBC_BOOT_REQUEST_RETRIES 4
+#define PXEBC_DHCP4_OVERLOAD_FILE 1
+#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME 2
//
// The array index of the DHCP4 option tag interested
//
-#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN 0
-#define PXEBC_DHCP4_TAG_INDEX_VENDOR 1
-#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD 2
-#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE 3
-#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID 4
-#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID 5
-#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE 6
-#define PXEBC_DHCP4_TAG_INDEX_MAX 7
+#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN 0
+#define PXEBC_DHCP4_TAG_INDEX_VENDOR 1
+#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD 2
+#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE 3
+#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID 4
+#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID 5
+#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE 6
+#define PXEBC_DHCP4_TAG_INDEX_MAX 7
//
// Dhcp4 and Dhcp6 share this definition, and corresponding
@@ -85,12 +84,12 @@ typedef enum {
PxeOfferTypeMax
} PXEBC_OFFER_TYPE;
-#define BIT(x) (1 << x)
-#define CTRL(x) (0x1F & (x))
-#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000"
-#define DEFAULT_UNDI_TYPE 1
-#define DEFAULT_UNDI_MAJOR 3
-#define DEFAULT_UNDI_MINOR 0
+#define BIT(x) (1 << x)
+#define CTRL(x) (0x1F & (x))
+#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000"
+#define DEFAULT_UNDI_TYPE 1
+#define DEFAULT_UNDI_MAJOR 3
+#define DEFAULT_UNDI_MINOR 0
#define MTFTP_VENDOR_OPTION_BIT_MAP \
(BIT (PXEBC_VENDOR_TAG_MTFTP_IP) | \
@@ -163,122 +162,120 @@ typedef enum {
#define IS_DISABLE_PROMPT_MENU(x) \
(((x) & BIT (3)) == BIT (3))
-
#pragma pack(1)
typedef struct {
- UINT8 ParaList[135];
+ UINT8 ParaList[135];
} PXEBC_DHCP4_OPTION_PARA;
typedef struct {
- UINT16 Size;
+ UINT16 Size;
} PXEBC_DHCP4_OPTION_MAX_MESG_SIZE;
typedef struct {
- UINT8 Type;
- UINT8 MajorVer;
- UINT8 MinorVer;
+ UINT8 Type;
+ UINT8 MajorVer;
+ UINT8 MinorVer;
} PXEBC_DHCP4_OPTION_UNDI;
typedef struct {
- UINT8 Type;
+ UINT8 Type;
} PXEBC_DHCP4_OPTION_MESG;
typedef struct {
- UINT16 Type;
+ UINT16 Type;
} PXEBC_DHCP4_OPTION_ARCH;
typedef struct {
- UINT8 ClassIdentifier[10];
- UINT8 ArchitecturePrefix[5];
- UINT8 ArchitectureType[5];
- UINT8 Lit3[1];
- UINT8 InterfaceName[4];
- UINT8 Lit4[1];
- UINT8 UndiMajor[3];
- UINT8 UndiMinor[3];
+ UINT8 ClassIdentifier[10];
+ UINT8 ArchitecturePrefix[5];
+ UINT8 ArchitectureType[5];
+ UINT8 Lit3[1];
+ UINT8 InterfaceName[4];
+ UINT8 Lit4[1];
+ UINT8 UndiMajor[3];
+ UINT8 UndiMinor[3];
} PXEBC_DHCP4_OPTION_CLID;
typedef struct {
- UINT8 Type;
- UINT8 Guid[16];
+ UINT8 Type;
+ UINT8 Guid[16];
} PXEBC_DHCP4_OPTION_UUID;
typedef struct {
- UINT16 Type;
- UINT16 Layer;
+ UINT16 Type;
+ UINT16 Layer;
} PXEBC_OPTION_BOOT_ITEM;
#pragma pack()
typedef union {
- PXEBC_DHCP4_OPTION_PARA *Para;
- PXEBC_DHCP4_OPTION_UNDI *Undi;
- PXEBC_DHCP4_OPTION_ARCH *Arch;
- PXEBC_DHCP4_OPTION_CLID *Clid;
- PXEBC_DHCP4_OPTION_UUID *Uuid;
- PXEBC_DHCP4_OPTION_MESG *Mesg;
- PXEBC_DHCP4_OPTION_MAX_MESG_SIZE *MaxMesgSize;
+ PXEBC_DHCP4_OPTION_PARA *Para;
+ PXEBC_DHCP4_OPTION_UNDI *Undi;
+ PXEBC_DHCP4_OPTION_ARCH *Arch;
+ PXEBC_DHCP4_OPTION_CLID *Clid;
+ PXEBC_DHCP4_OPTION_UUID *Uuid;
+ PXEBC_DHCP4_OPTION_MESG *Mesg;
+ PXEBC_DHCP4_OPTION_MAX_MESG_SIZE *MaxMesgSize;
} PXEBC_DHCP4_OPTION_ENTRY;
#pragma pack(1)
typedef struct {
- UINT16 Type;
- UINT8 IpCnt;
- EFI_IPv4_ADDRESS IpAddr[1];
+ UINT16 Type;
+ UINT8 IpCnt;
+ EFI_IPv4_ADDRESS IpAddr[1];
} PXEBC_BOOT_SVR_ENTRY;
typedef struct {
- UINT16 Type;
- UINT8 DescLen;
- UINT8 DescStr[1];
+ UINT16 Type;
+ UINT8 DescLen;
+ UINT8 DescStr[1];
} PXEBC_BOOT_MENU_ENTRY;
typedef struct {
- UINT8 Timeout;
- UINT8 Prompt[1];
+ UINT8 Timeout;
+ UINT8 Prompt[1];
} PXEBC_MENU_PROMPT;
#pragma pack()
typedef struct {
- UINT32 BitMap[8];
- EFI_IPv4_ADDRESS MtftpIp;
- UINT16 MtftpCPort;
- UINT16 MtftpSPort;
- UINT8 MtftpTimeout;
- UINT8 MtftpDelay;
- UINT8 DiscoverCtrl;
- EFI_IPv4_ADDRESS DiscoverMcastIp;
- EFI_IPv4_ADDRESS McastIpBase;
- UINT16 McastIpBlock;
- UINT16 McastIpRange;
- UINT16 BootSrvType;
- UINT16 BootSrvLayer;
- PXEBC_BOOT_SVR_ENTRY *BootSvr;
- UINT8 BootSvrLen;
- PXEBC_BOOT_MENU_ENTRY *BootMenu;
- UINT8 BootMenuLen;
- PXEBC_MENU_PROMPT *MenuPrompt;
- UINT8 MenuPromptLen;
- UINT32 *CredType;
- UINT8 CredTypeLen;
+ UINT32 BitMap[8];
+ EFI_IPv4_ADDRESS MtftpIp;
+ UINT16 MtftpCPort;
+ UINT16 MtftpSPort;
+ UINT8 MtftpTimeout;
+ UINT8 MtftpDelay;
+ UINT8 DiscoverCtrl;
+ EFI_IPv4_ADDRESS DiscoverMcastIp;
+ EFI_IPv4_ADDRESS McastIpBase;
+ UINT16 McastIpBlock;
+ UINT16 McastIpRange;
+ UINT16 BootSrvType;
+ UINT16 BootSrvLayer;
+ PXEBC_BOOT_SVR_ENTRY *BootSvr;
+ UINT8 BootSvrLen;
+ PXEBC_BOOT_MENU_ENTRY *BootMenu;
+ UINT8 BootMenuLen;
+ PXEBC_MENU_PROMPT *MenuPrompt;
+ UINT8 MenuPromptLen;
+ UINT32 *CredType;
+ UINT8 CredTypeLen;
} PXEBC_VENDOR_OPTION;
#define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_PACKET_MAX_SIZE)
typedef union {
- EFI_DHCP4_PACKET Offer;
- EFI_DHCP4_PACKET Ack;
- UINT8 Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];
+ EFI_DHCP4_PACKET Offer;
+ EFI_DHCP4_PACKET Ack;
+ UINT8 Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];
} PXEBC_DHCP4_PACKET;
typedef struct {
- PXEBC_DHCP4_PACKET Packet;
- PXEBC_OFFER_TYPE OfferType;
- EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_TAG_INDEX_MAX];
- PXEBC_VENDOR_OPTION VendorOpt;
+ PXEBC_DHCP4_PACKET Packet;
+ PXEBC_OFFER_TYPE OfferType;
+ EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_TAG_INDEX_MAX];
+ PXEBC_VENDOR_OPTION VendorOpt;
} PXEBC_DHCP4_PACKET_CACHE;
-
/**
Create a template DHCPv4 packet as a seed.
@@ -288,11 +285,10 @@ typedef struct {
**/
VOID
PxeBcSeedDhcp4Packet (
- OUT EFI_DHCP4_PACKET *Seed,
- IN EFI_UDP4_PROTOCOL *Udp4
+ OUT EFI_DHCP4_PACKET *Seed,
+ IN EFI_UDP4_PROTOCOL *Udp4
);
-
/**
Parse the cached DHCPv4 packet, including all the options.
@@ -304,10 +300,9 @@ PxeBcSeedDhcp4Packet (
**/
EFI_STATUS
PxeBcParseDhcp4Packet (
- IN PXEBC_DHCP4_PACKET_CACHE *Cache4
+ IN PXEBC_DHCP4_PACKET_CACHE *Cache4
);
-
/**
Build and send out the request packet for the bootfile, and parse the reply.
@@ -327,13 +322,13 @@ PxeBcParseDhcp4Packet (
**/
EFI_STATUS
PxeBcDhcp4Discover (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT16 Type,
- IN UINT16 *Layer,
- IN BOOLEAN UseBis,
- IN EFI_IP_ADDRESS *DestIp,
- IN UINT16 IpCount,
- IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT16 Type,
+ IN UINT16 *Layer,
+ IN BOOLEAN UseBis,
+ IN EFI_IP_ADDRESS *DestIp,
+ IN UINT16 IpCount,
+ IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
);
/**
@@ -347,10 +342,9 @@ PxeBcDhcp4Discover (
**/
EFI_STATUS
PxeBcSetIp4Policy (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
);
-
/**
Start the D.O.R.A DHCPv4 process to acquire the IPv4 address and other PXE boot information.
@@ -363,9 +357,8 @@ PxeBcSetIp4Policy (
**/
EFI_STATUS
PxeBcDhcp4Dora (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP4_PROTOCOL *Dhcp4
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP4_PROTOCOL *Dhcp4
);
#endif
-
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c
@@ -21,7 +21,9 @@
//
// ALL_DHCP_Relay_Agents_and_Servers address: FF02::1:2
//
-EFI_IPv6_ADDRESS mAllDhcpRelayAndServersAddress = {{0xFF, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2}};
+EFI_IPv6_ADDRESS mAllDhcpRelayAndServersAddress = {
+ { 0xFF, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2 }
+};
/**
Parse out a DHCPv6 option by OptTag, and find the position in buffer.
@@ -36,35 +38,32 @@ EFI_IPv6_ADDRESS mAllDhcpRelayAndServe
**/
EFI_DHCP6_PACKET_OPTION *
PxeBcParseDhcp6Options (
- IN UINT8 *Buffer,
- IN UINT32 Length,
- IN UINT16 OptTag
+ IN UINT8 *Buffer,
+ IN UINT32 Length,
+ IN UINT16 OptTag
)
{
- EFI_DHCP6_PACKET_OPTION *Option;
- UINT32 Offset;
+ EFI_DHCP6_PACKET_OPTION *Option;
+ UINT32 Offset;
- Option = (EFI_DHCP6_PACKET_OPTION *) Buffer;
- Offset = 0;
+ Option = (EFI_DHCP6_PACKET_OPTION *)Buffer;
+ Offset = 0;
//
// OpLen and OpCode here are both stored in network order.
//
while (Offset < Length) {
-
if (NTOHS (Option->OpCode) == OptTag) {
-
return Option;
}
- Offset += (NTOHS(Option->OpLen) + 4);
- Option = (EFI_DHCP6_PACKET_OPTION *) (Buffer + Offset);
+ Offset += (NTOHS (Option->OpLen) + 4);
+ Option = (EFI_DHCP6_PACKET_OPTION *)(Buffer + Offset);
}
return NULL;
}
-
/**
Build the options buffer for the DHCPv6 request packet.
@@ -77,70 +76,70 @@ PxeBcParseDhcp6Options (
**/
UINT32
PxeBcBuildDhcp6Options (
- IN PXEBC_PRIVATE_DATA *Private,
- OUT EFI_DHCP6_PACKET_OPTION **OptList,
- IN UINT8 *Buffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ OUT EFI_DHCP6_PACKET_OPTION **OptList,
+ IN UINT8 *Buffer
)
{
- PXEBC_DHCP6_OPTION_ENTRY OptEnt;
- UINT32 Index;
- UINT16 Value;
+ PXEBC_DHCP6_OPTION_ENTRY OptEnt;
+ UINT32 Index;
+ UINT16 Value;
- Index = 0;
- OptList[0] = (EFI_DHCP6_PACKET_OPTION *) Buffer;
+ Index = 0;
+ OptList[0] = (EFI_DHCP6_PACKET_OPTION *)Buffer;
//
// Append client option request option
//
- OptList[Index]->OpCode = HTONS (DHCP6_OPT_ORO);
- OptList[Index]->OpLen = HTONS (8);
- OptEnt.Oro = (PXEBC_DHCP6_OPTION_ORO *) OptList[Index]->Data;
- OptEnt.Oro->OpCode[0] = HTONS(DHCP6_OPT_BOOT_FILE_URL);
- OptEnt.Oro->OpCode[1] = HTONS(DHCP6_OPT_BOOT_FILE_PARAM);
- OptEnt.Oro->OpCode[2] = HTONS(DHCP6_OPT_DNS_SERVERS);
- OptEnt.Oro->OpCode[3] = HTONS(DHCP6_OPT_VENDOR_CLASS);
+ OptList[Index]->OpCode = HTONS (DHCP6_OPT_ORO);
+ OptList[Index]->OpLen = HTONS (8);
+ OptEnt.Oro = (PXEBC_DHCP6_OPTION_ORO *)OptList[Index]->Data;
+ OptEnt.Oro->OpCode[0] = HTONS (DHCP6_OPT_BOOT_FILE_URL);
+ OptEnt.Oro->OpCode[1] = HTONS (DHCP6_OPT_BOOT_FILE_PARAM);
+ OptEnt.Oro->OpCode[2] = HTONS (DHCP6_OPT_DNS_SERVERS);
+ OptEnt.Oro->OpCode[3] = HTONS (DHCP6_OPT_VENDOR_CLASS);
Index++;
- OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);
//
// Append client network device interface option
//
- OptList[Index]->OpCode = HTONS (DHCP6_OPT_UNDI);
- OptList[Index]->OpLen = HTONS ((UINT16)3);
- OptEnt.Undi = (PXEBC_DHCP6_OPTION_UNDI *) OptList[Index]->Data;
+ OptList[Index]->OpCode = HTONS (DHCP6_OPT_UNDI);
+ OptList[Index]->OpLen = HTONS ((UINT16)3);
+ OptEnt.Undi = (PXEBC_DHCP6_OPTION_UNDI *)OptList[Index]->Data;
if (Private->Nii != NULL) {
- OptEnt.Undi->Type = Private->Nii->Type;
- OptEnt.Undi->MajorVer = Private->Nii->MajorVer;
- OptEnt.Undi->MinorVer = Private->Nii->MinorVer;
+ OptEnt.Undi->Type = Private->Nii->Type;
+ OptEnt.Undi->MajorVer = Private->Nii->MajorVer;
+ OptEnt.Undi->MinorVer = Private->Nii->MinorVer;
} else {
- OptEnt.Undi->Type = DEFAULT_UNDI_TYPE;
- OptEnt.Undi->MajorVer = DEFAULT_UNDI_MAJOR;
- OptEnt.Undi->MinorVer = DEFAULT_UNDI_MINOR;
+ OptEnt.Undi->Type = DEFAULT_UNDI_TYPE;
+ OptEnt.Undi->MajorVer = DEFAULT_UNDI_MAJOR;
+ OptEnt.Undi->MinorVer = DEFAULT_UNDI_MINOR;
}
Index++;
- OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);
//
// Append client system architecture option
//
- OptList[Index]->OpCode = HTONS (DHCP6_OPT_ARCH);
- OptList[Index]->OpLen = HTONS ((UINT16) sizeof (PXEBC_DHCP6_OPTION_ARCH));
- OptEnt.Arch = (PXEBC_DHCP6_OPTION_ARCH *) OptList[Index]->Data;
- Value = HTONS (EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE);
+ OptList[Index]->OpCode = HTONS (DHCP6_OPT_ARCH);
+ OptList[Index]->OpLen = HTONS ((UINT16)sizeof (PXEBC_DHCP6_OPTION_ARCH));
+ OptEnt.Arch = (PXEBC_DHCP6_OPTION_ARCH *)OptList[Index]->Data;
+ Value = HTONS (EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE);
CopyMem (&OptEnt.Arch->Type, &Value, sizeof (UINT16));
Index++;
- OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);
+ OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);
//
// Append vendor class option to store the PXE class identifier.
//
OptList[Index]->OpCode = HTONS (DHCP6_OPT_VENDOR_CLASS);
- OptList[Index]->OpLen = HTONS ((UINT16) sizeof (PXEBC_DHCP6_OPTION_VENDOR_CLASS));
- OptEnt.VendorClass = (PXEBC_DHCP6_OPTION_VENDOR_CLASS *) OptList[Index]->Data;
+ OptList[Index]->OpLen = HTONS ((UINT16)sizeof (PXEBC_DHCP6_OPTION_VENDOR_CLASS));
+ OptEnt.VendorClass = (PXEBC_DHCP6_OPTION_VENDOR_CLASS *)OptList[Index]->Data;
OptEnt.VendorClass->Vendor = HTONL (PXEBC_DHCP6_ENTERPRISE_NUM);
- OptEnt.VendorClass->ClassLen = HTONS ((UINT16) sizeof (PXEBC_CLASS_ID));
+ OptEnt.VendorClass->ClassLen = HTONS ((UINT16)sizeof (PXEBC_CLASS_ID));
CopyMem (
&OptEnt.VendorClass->ClassId,
DEFAULT_CLASS_ID_DATA,
@@ -175,7 +174,6 @@ PxeBcBuildDhcp6Options (
return Index;
}
-
/**
Cache the DHCPv6 packet.
@@ -188,8 +186,8 @@ PxeBcBuildDhcp6Options (
**/
EFI_STATUS
PxeBcCacheDhcp6Packet (
- IN EFI_DHCP6_PACKET *Dst,
- IN EFI_DHCP6_PACKET *Src
+ IN EFI_DHCP6_PACKET *Dst,
+ IN EFI_DHCP6_PACKET *Src
)
{
if (Dst->Size < Src->Length) {
@@ -240,22 +238,22 @@ PxeBcFreeBootFileOption (
**/
EFI_STATUS
PxeBcDns6 (
- IN PXEBC_PRIVATE_DATA *Private,
- IN CHAR16 *HostName,
- OUT EFI_IPv6_ADDRESS *IpAddress
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN CHAR16 *HostName,
+ OUT EFI_IPv6_ADDRESS *IpAddress
)
{
- EFI_STATUS Status;
- EFI_DNS6_PROTOCOL *Dns6;
- EFI_DNS6_CONFIG_DATA Dns6ConfigData;
- EFI_DNS6_COMPLETION_TOKEN Token;
- EFI_HANDLE Dns6Handle;
- EFI_IPv6_ADDRESS *DnsServerList;
- BOOLEAN IsDone;
-
- Dns6 = NULL;
- Dns6Handle = NULL;
- DnsServerList = Private->DnsServer;
+ EFI_STATUS Status;
+ EFI_DNS6_PROTOCOL *Dns6;
+ EFI_DNS6_CONFIG_DATA Dns6ConfigData;
+ EFI_DNS6_COMPLETION_TOKEN Token;
+ EFI_HANDLE Dns6Handle;
+ EFI_IPv6_ADDRESS *DnsServerList;
+ BOOLEAN IsDone;
+
+ Dns6 = NULL;
+ Dns6Handle = NULL;
+ DnsServerList = Private->DnsServer;
ZeroMem (&Token, sizeof (EFI_DNS6_COMPLETION_TOKEN));
//
@@ -274,7 +272,7 @@ PxeBcDns6 (
Status = gBS->OpenProtocol (
Dns6Handle,
&gEfiDns6ProtocolGuid,
- (VOID **) &Dns6,
+ (VOID **)&Dns6,
Private->Image,
Private->Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -337,10 +335,12 @@ PxeBcDns6 (
Status = EFI_DEVICE_ERROR;
goto Exit;
}
- if (Token.RspData.H2AData->IpCount == 0 || Token.RspData.H2AData->IpList == NULL) {
+
+ if ((Token.RspData.H2AData->IpCount == 0) || (Token.RspData.H2AData->IpList == NULL)) {
Status = EFI_DEVICE_ERROR;
goto Exit;
}
+
//
// We just return the first IPv6 address from DNS protocol.
//
@@ -354,10 +354,12 @@ Exit:
if (Token.Event != NULL) {
gBS->CloseEvent (Token.Event);
}
+
if (Token.RspData.H2AData != NULL) {
if (Token.RspData.H2AData->IpList != NULL) {
FreePool (Token.RspData.H2AData->IpList);
}
+
FreePool (Token.RspData.H2AData);
}
@@ -404,26 +406,26 @@ Exit:
**/
EFI_STATUS
PxeBcExtractBootFileUrl (
- IN PXEBC_PRIVATE_DATA *Private,
- OUT UINT8 **FileName,
- IN OUT EFI_IPv6_ADDRESS *SrvAddr,
- IN CHAR8 *BootFile,
- IN UINT16 Length
- )
-{
- UINT16 PrefixLen;
- CHAR8 *BootFileNamePtr;
- CHAR8 *BootFileName;
- UINT16 BootFileNameLen;
- CHAR8 *TmpStr;
- CHAR8 TmpChar;
- CHAR8 *ServerAddressOption;
- CHAR8 *ServerAddress;
- CHAR8 *ModeStr;
- CHAR16 *HostName;
- BOOLEAN IpExpressedUrl;
- UINTN Len;
- EFI_STATUS Status;
+ IN PXEBC_PRIVATE_DATA *Private,
+ OUT UINT8 **FileName,
+ IN OUT EFI_IPv6_ADDRESS *SrvAddr,
+ IN CHAR8 *BootFile,
+ IN UINT16 Length
+ )
+{
+ UINT16 PrefixLen;
+ CHAR8 *BootFileNamePtr;
+ CHAR8 *BootFileName;
+ UINT16 BootFileNameLen;
+ CHAR8 *TmpStr;
+ CHAR8 TmpChar;
+ CHAR8 *ServerAddressOption;
+ CHAR8 *ServerAddress;
+ CHAR8 *ModeStr;
+ CHAR16 *HostName;
+ BOOLEAN IpExpressedUrl;
+ UINTN Len;
+ EFI_STATUS Status;
IpExpressedUrl = TRUE;
//
@@ -446,17 +448,18 @@ PxeBcExtractBootFileUrl (
// As an example where the BOOTFILE_NAME is the EFI loader and
// SERVER_ADDRESS is the ASCII encoding of an IPV6 address.
//
- PrefixLen = (UINT16) AsciiStrLen (PXEBC_DHCP6_BOOT_FILE_URL_PREFIX);
+ PrefixLen = (UINT16)AsciiStrLen (PXEBC_DHCP6_BOOT_FILE_URL_PREFIX);
- if (Length <= PrefixLen ||
- CompareMem (BootFile, PXEBC_DHCP6_BOOT_FILE_URL_PREFIX, PrefixLen) != 0) {
+ if ((Length <= PrefixLen) ||
+ (CompareMem (BootFile, PXEBC_DHCP6_BOOT_FILE_URL_PREFIX, PrefixLen) != 0))
+ {
return EFI_NOT_FOUND;
}
BootFile = BootFile + PrefixLen;
- Length = (UINT16) (Length - PrefixLen);
+ Length = (UINT16)(Length - PrefixLen);
- TmpStr = (CHAR8 *) AllocateZeroPool (Length + 1);
+ TmpStr = (CHAR8 *)AllocateZeroPool (Length + 1);
if (TmpStr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -469,7 +472,7 @@ PxeBcExtractBootFileUrl (
//
ServerAddressOption = TmpStr;
if (*ServerAddressOption == PXEBC_ADDR_START_DELIMITER) {
- ServerAddressOption ++;
+ ServerAddressOption++;
ServerAddress = ServerAddressOption;
while (*ServerAddress != '\0' && *ServerAddress != PXEBC_ADDR_END_DELIMITER) {
ServerAddress++;
@@ -490,10 +493,9 @@ PxeBcExtractBootFileUrl (
FreePool (TmpStr);
return Status;
}
-
} else {
IpExpressedUrl = FALSE;
- ServerAddress = ServerAddressOption;
+ ServerAddress = ServerAddressOption;
while (*ServerAddress != '\0' && *ServerAddress != PXEBC_TFTP_URL_SEPARATOR) {
ServerAddress++;
}
@@ -502,14 +504,16 @@ PxeBcExtractBootFileUrl (
FreePool (TmpStr);
return EFI_INVALID_PARAMETER;
}
+
*ServerAddress = '\0';
- Len = AsciiStrSize (ServerAddressOption);
+ Len = AsciiStrSize (ServerAddressOption);
HostName = AllocateZeroPool (Len * sizeof (CHAR16));
if (HostName == NULL) {
FreePool (TmpStr);
return EFI_OUT_OF_RESOURCES;
}
+
AsciiStrToUnicodeStrS (
ServerAddressOption,
HostName,
@@ -519,7 +523,7 @@ PxeBcExtractBootFileUrl (
//
// Perform DNS resolution.
//
- Status = PxeBcDns6 (Private,HostName, SrvAddr);
+ Status = PxeBcDns6 (Private, HostName, SrvAddr);
if (EFI_ERROR (Status)) {
FreePool (TmpStr);
return Status;
@@ -529,23 +533,24 @@ PxeBcExtractBootFileUrl (
//
// Get the part of BOOTFILE_NAME string.
//
- BootFileNamePtr = (CHAR8*)((UINTN)ServerAddress + 1);
+ BootFileNamePtr = (CHAR8 *)((UINTN)ServerAddress + 1);
if (IpExpressedUrl) {
if (*BootFileNamePtr != PXEBC_TFTP_URL_SEPARATOR) {
FreePool (TmpStr);
return EFI_INVALID_PARAMETER;
}
+
++BootFileNamePtr;
}
- BootFileNameLen = (UINT16)(Length - (UINT16) ((UINTN)BootFileNamePtr - (UINTN)TmpStr) + 1);
- if (BootFileNameLen != 0 || FileName != NULL) {
+ BootFileNameLen = (UINT16)(Length - (UINT16)((UINTN)BootFileNamePtr - (UINTN)TmpStr) + 1);
+ if ((BootFileNameLen != 0) || (FileName != NULL)) {
//
// Remove trailing mode=octet if present and ignore. All other modes are
// invalid for netboot6, so reject them.
//
ModeStr = AsciiStrStr (BootFileNamePtr, ";mode=octet");
- if (ModeStr != NULL && *(ModeStr + AsciiStrLen (";mode=octet")) == '\0') {
+ if ((ModeStr != NULL) && (*(ModeStr + AsciiStrLen (";mode=octet")) == '\0')) {
*ModeStr = '\0';
} else if (AsciiStrStr (BootFileNamePtr, ";mode=") != NULL) {
return EFI_INVALID_PARAMETER;
@@ -554,30 +559,32 @@ PxeBcExtractBootFileUrl (
//
// Extract boot file name from URL.
//
- BootFileName = (CHAR8 *) AllocateZeroPool (BootFileNameLen);
+ BootFileName = (CHAR8 *)AllocateZeroPool (BootFileNameLen);
if (BootFileName == NULL) {
FreePool (TmpStr);
return EFI_OUT_OF_RESOURCES;
}
- *FileName = (UINT8*) BootFileName;
+
+ *FileName = (UINT8 *)BootFileName;
//
// Decode percent-encoding in boot file name.
//
while (*BootFileNamePtr != '\0') {
if (*BootFileNamePtr == '%') {
- TmpChar = *(BootFileNamePtr+ 3);
+ TmpChar = *(BootFileNamePtr+ 3);
*(BootFileNamePtr+ 3) = '\0';
- *BootFileName = (UINT8) AsciiStrHexToUintn ((CHAR8*)(BootFileNamePtr + 1));
+ *BootFileName = (UINT8)AsciiStrHexToUintn ((CHAR8 *)(BootFileNamePtr + 1));
BootFileName++;
*(BootFileNamePtr+ 3) = TmpChar;
- BootFileNamePtr += 3;
+ BootFileNamePtr += 3;
} else {
*BootFileName = *BootFileNamePtr;
BootFileName++;
BootFileNamePtr++;
}
}
+
*BootFileName = '\0';
}
@@ -586,7 +593,6 @@ PxeBcExtractBootFileUrl (
return EFI_SUCCESS;
}
-
/**
Parse the Boot File Parameter option.
@@ -599,14 +605,14 @@ PxeBcExtractBootFileUrl (
**/
EFI_STATUS
PxeBcExtractBootFileParam (
- IN CHAR8 *BootFilePara,
- OUT UINT16 *BootFileSize
+ IN CHAR8 *BootFilePara,
+ OUT UINT16 *BootFileSize
)
{
- UINT16 Length;
- UINT8 Index;
- UINT8 Digit;
- UINT32 Size;
+ UINT16 Length;
+ UINT8 Index;
+ UINT8 Digit;
+ UINT32 Size;
CopyMem (&Length, BootFilePara, sizeof (UINT16));
Length = NTOHS (Length);
@@ -614,7 +620,7 @@ PxeBcExtractBootFileParam (
//
// The BootFile Size should be 1~5 byte ASCII strings
//
- if (Length < 1 || Length > 5) {
+ if ((Length < 1) || (Length > 5)) {
return EFI_NOT_FOUND;
}
@@ -636,11 +642,10 @@ PxeBcExtractBootFileParam (
return EFI_NOT_FOUND;
}
- *BootFileSize = (UINT16) Size;
+ *BootFileSize = (UINT16)Size;
return EFI_SUCCESS;
}
-
/**
Parse the cached DHCPv6 packet, including all the options.
@@ -655,15 +660,15 @@ PxeBcParseDhcp6Packet (
IN PXEBC_DHCP6_PACKET_CACHE *Cache6
)
{
- EFI_DHCP6_PACKET *Offer;
- EFI_DHCP6_PACKET_OPTION **Options;
- EFI_DHCP6_PACKET_OPTION *Option;
- PXEBC_OFFER_TYPE OfferType;
- BOOLEAN IsProxyOffer;
- BOOLEAN IsPxeOffer;
- UINT32 Offset;
- UINT32 Length;
- UINT32 EnterpriseNum;
+ EFI_DHCP6_PACKET *Offer;
+ EFI_DHCP6_PACKET_OPTION **Options;
+ EFI_DHCP6_PACKET_OPTION *Option;
+ PXEBC_OFFER_TYPE OfferType;
+ BOOLEAN IsProxyOffer;
+ BOOLEAN IsPxeOffer;
+ UINT32 Offset;
+ UINT32 Length;
+ UINT32 EnterpriseNum;
IsProxyOffer = TRUE;
IsPxeOffer = FALSE;
@@ -672,15 +677,14 @@ PxeBcParseDhcp6Packet (
ZeroMem (Cache6->OptList, sizeof (Cache6->OptList));
- Option = (EFI_DHCP6_PACKET_OPTION *) (Offer->Dhcp6.Option);
- Offset = 0;
- Length = GET_DHCP6_OPTION_SIZE (Offer);
+ Option = (EFI_DHCP6_PACKET_OPTION *)(Offer->Dhcp6.Option);
+ Offset = 0;
+ Length = GET_DHCP6_OPTION_SIZE (Offer);
//
// OpLen and OpCode here are both stored in network order, since they are from original packet.
//
while (Offset < Length) {
-
if (NTOHS (Option->OpCode) == DHCP6_OPT_IA_NA) {
Options[PXEBC_DHCP6_IDX_IA_NA] = Option;
} else if (NTOHS (Option->OpCode) == DHCP6_OPT_BOOT_FILE_URL) {
@@ -697,7 +701,7 @@ PxeBcParseDhcp6Packet (
}
Offset += (NTOHS (Option->OpLen) + 4);
- Option = (EFI_DHCP6_PACKET_OPTION *) (Offer->Dhcp6.Option + Offset);
+ Option = (EFI_DHCP6_PACKET_OPTION *)(Offer->Dhcp6.Option + Offset);
}
//
@@ -711,7 +715,7 @@ PxeBcParseDhcp6Packet (
NTOHS (Option->OpLen),
DHCP6_OPT_STATUS_CODE
);
- if ((Option != NULL && Option->Data[0] == 0) || (Option == NULL)) {
+ if (((Option != NULL) && (Option->Data[0] == 0)) || (Option == NULL)) {
IsProxyOffer = FALSE;
}
}
@@ -720,12 +724,13 @@ PxeBcParseDhcp6Packet (
// The offer with "PXEClient" is a pxe offer.
//
Option = Options[PXEBC_DHCP6_IDX_VENDOR_CLASS];
- EnterpriseNum = HTONL(PXEBC_DHCP6_ENTERPRISE_NUM);
+ EnterpriseNum = HTONL (PXEBC_DHCP6_ENTERPRISE_NUM);
- if (Option != NULL &&
- NTOHS(Option->OpLen) >= 13 &&
- CompareMem (Option->Data, &EnterpriseNum, sizeof (UINT32)) == 0 &&
- CompareMem (&Option->Data[6], DEFAULT_CLASS_ID_DATA, 9) == 0) {
+ if ((Option != NULL) &&
+ (NTOHS (Option->OpLen) >= 13) &&
+ (CompareMem (Option->Data, &EnterpriseNum, sizeof (UINT32)) == 0) &&
+ (CompareMem (&Option->Data[6], DEFAULT_CLASS_ID_DATA, 9) == 0))
+ {
IsPxeOffer = TRUE;
}
@@ -749,7 +754,6 @@ PxeBcParseDhcp6Packet (
return EFI_SUCCESS;
}
-
/**
Cache the DHCPv6 ack packet, and parse it on demand.
@@ -763,9 +767,9 @@ PxeBcParseDhcp6Packet (
**/
EFI_STATUS
PxeBcCopyDhcp6Ack (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP6_PACKET *Ack,
- IN BOOLEAN Verified
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP6_PACKET *Ack,
+ IN BOOLEAN Verified
)
{
EFI_PXE_BASE_CODE_MODE *Mode;
@@ -790,7 +794,6 @@ PxeBcCopyDhcp6Ack (
return EFI_SUCCESS;
}
-
/**
Cache the DHCPv6 proxy offer packet according to the received order.
@@ -803,12 +806,12 @@ PxeBcCopyDhcp6Ack (
**/
EFI_STATUS
PxeBcCopyDhcp6Proxy (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT32 OfferIndex
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT32 OfferIndex
)
{
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_DHCP6_PACKET *Offer;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_DHCP6_PACKET *Offer;
EFI_STATUS Status;
ASSERT (OfferIndex < Private->OfferNum);
@@ -821,9 +824,10 @@ PxeBcCopyDhcp6Proxy (
// Cache the proxy offer packet and parse it.
//
Status = PxeBcCacheDhcp6Packet (&Private->ProxyOffer.Dhcp6.Packet.Offer, Offer);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
+
PxeBcParseDhcp6Packet (&Private->ProxyOffer.Dhcp6);
//
@@ -848,33 +852,33 @@ PxeBcCopyDhcp6Proxy (
**/
UINT8 *
PxeBcDhcp6SeekOption (
- IN UINT8 *Buf,
- IN UINT32 SeekLen,
- IN UINT16 OptType
+ IN UINT8 *Buf,
+ IN UINT32 SeekLen,
+ IN UINT16 OptType
)
{
- UINT8 *Cursor;
- UINT8 *Option;
- UINT16 DataLen;
- UINT16 OpCode;
+ UINT8 *Cursor;
+ UINT8 *Option;
+ UINT16 DataLen;
+ UINT16 OpCode;
Option = NULL;
Cursor = Buf;
while (Cursor < Buf + SeekLen) {
- OpCode = ReadUnaligned16 ((UINT16 *) Cursor);
+ OpCode = ReadUnaligned16 ((UINT16 *)Cursor);
if (OpCode == HTONS (OptType)) {
Option = Cursor;
break;
}
- DataLen = NTOHS (ReadUnaligned16 ((UINT16 *) (Cursor + 2)));
+
+ DataLen = NTOHS (ReadUnaligned16 ((UINT16 *)(Cursor + 2)));
Cursor += (DataLen + 4);
}
return Option;
}
-
/**
Build and send out the request packet for the bootfile, and parse the reply.
@@ -889,34 +893,34 @@ PxeBcDhcp6SeekOption (
**/
EFI_STATUS
PxeBcRequestBootService (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT32 Index
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT32 Index
)
{
- EFI_PXE_BASE_CODE_UDP_PORT SrcPort;
- EFI_PXE_BASE_CODE_UDP_PORT DestPort;
- EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
- EFI_PXE_BASE_CODE_DHCPV6_PACKET *Discover;
- UINTN DiscoverLen;
- EFI_DHCP6_PACKET *Request;
- UINTN RequestLen;
- EFI_DHCP6_PACKET *Reply;
- UINT8 *RequestOpt;
- UINT8 *DiscoverOpt;
- UINTN ReadSize;
- UINT16 OpFlags;
- UINT16 OpCode;
- UINT16 OpLen;
- EFI_STATUS Status;
- EFI_DHCP6_PACKET *IndexOffer;
- UINT8 *Option;
-
- PxeBc = &Private->PxeBc;
- Request = Private->Dhcp6Request;
- IndexOffer = &Private->OfferBuffer[Index].Dhcp6.Packet.Offer;
- SrcPort = PXEBC_BS_DISCOVER_PORT;
- DestPort = PXEBC_BS_DISCOVER_PORT;
- OpFlags = 0;
+ EFI_PXE_BASE_CODE_UDP_PORT SrcPort;
+ EFI_PXE_BASE_CODE_UDP_PORT DestPort;
+ EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
+ EFI_PXE_BASE_CODE_DHCPV6_PACKET *Discover;
+ UINTN DiscoverLen;
+ EFI_DHCP6_PACKET *Request;
+ UINTN RequestLen;
+ EFI_DHCP6_PACKET *Reply;
+ UINT8 *RequestOpt;
+ UINT8 *DiscoverOpt;
+ UINTN ReadSize;
+ UINT16 OpFlags;
+ UINT16 OpCode;
+ UINT16 OpLen;
+ EFI_STATUS Status;
+ EFI_DHCP6_PACKET *IndexOffer;
+ UINT8 *Option;
+
+ PxeBc = &Private->PxeBc;
+ Request = Private->Dhcp6Request;
+ IndexOffer = &Private->OfferBuffer[Index].Dhcp6.Packet.Offer;
+ SrcPort = PXEBC_BS_DISCOVER_PORT;
+ DestPort = PXEBC_BS_DISCOVER_PORT;
+ OpFlags = 0;
if (Request == NULL) {
return EFI_DEVICE_ERROR;
@@ -953,19 +957,20 @@ PxeBcRequestBootService (
//
// Add Server ID Option.
//
- OpLen = NTOHS (((EFI_DHCP6_PACKET_OPTION *) Option)->OpLen);
+ OpLen = NTOHS (((EFI_DHCP6_PACKET_OPTION *)Option)->OpLen);
CopyMem (DiscoverOpt, Option, OpLen + 4);
DiscoverOpt += (OpLen + 4);
DiscoverLen += (OpLen + 4);
}
while (RequestLen < Request->Length) {
- OpCode = NTOHS (((EFI_DHCP6_PACKET_OPTION *) RequestOpt)->OpCode);
- OpLen = NTOHS (((EFI_DHCP6_PACKET_OPTION *) RequestOpt)->OpLen);
- if (OpCode != EFI_DHCP6_IA_TYPE_NA &&
- OpCode != EFI_DHCP6_IA_TYPE_TA &&
- OpCode != DHCP6_OPT_SERVER_ID
- ) {
+ OpCode = NTOHS (((EFI_DHCP6_PACKET_OPTION *)RequestOpt)->OpCode);
+ OpLen = NTOHS (((EFI_DHCP6_PACKET_OPTION *)RequestOpt)->OpLen);
+ if ((OpCode != EFI_DHCP6_IA_TYPE_NA) &&
+ (OpCode != EFI_DHCP6_IA_TYPE_TA) &&
+ (OpCode != DHCP6_OPT_SERVER_ID)
+ )
+ {
//
// Copy all the options except IA option and Server ID
//
@@ -973,6 +978,7 @@ PxeBcRequestBootService (
DiscoverOpt += (OpLen + 4);
DiscoverLen += (OpLen + 4);
}
+
RequestOpt += (OpLen + 4);
RequestLen += (OpLen + 4);
}
@@ -987,7 +993,7 @@ PxeBcRequestBootService (
);
if (Option != NULL) {
CalcElapsedTime (Private);
- WriteUnaligned16 ((UINT16*)(Option + 4), HTONS((UINT16) Private->ElapsedTime));
+ WriteUnaligned16 ((UINT16 *)(Option + 4), HTONS ((UINT16)Private->ElapsedTime));
}
Status = PxeBc->UdpWrite (
@@ -1001,7 +1007,7 @@ PxeBcRequestBootService (
NULL,
NULL,
&DiscoverLen,
- (VOID *) Discover
+ (VOID *)Discover
);
if (EFI_ERROR (Status)) {
@@ -1012,8 +1018,8 @@ PxeBcRequestBootService (
// Cache the right PXE reply packet here, set valid flag later.
// Especially for PXE discover packet, store it into mode data here.
//
- Reply = &Private->ProxyOffer.Dhcp6.Packet.Offer;
- ReadSize = (UINTN) Reply->Size;
+ Reply = &Private->ProxyOffer.Dhcp6.Packet.Offer;
+ ReadSize = (UINTN)Reply->Size;
//
// Start Udp6Read instance
@@ -1033,7 +1039,7 @@ PxeBcRequestBootService (
NULL,
NULL,
&ReadSize,
- (VOID *) &Reply->Dhcp6
+ (VOID *)&Reply->Dhcp6
);
//
// Stop Udp6Read instance
@@ -1047,12 +1053,11 @@ PxeBcRequestBootService (
//
// Update length
//
- Reply->Length = (UINT32) ReadSize;
+ Reply->Length = (UINT32)ReadSize;
return EFI_SUCCESS;
}
-
/**
Retry to request bootfile name by the BINL offer.
@@ -1075,8 +1080,10 @@ PxeBcRetryDhcp6Binl (
EFI_STATUS Status;
ASSERT (Index < PXEBC_OFFER_MAX_NUM);
- ASSERT (Private->OfferBuffer[Index].Dhcp6.OfferType == PxeOfferTypeDhcpBinl ||
- Private->OfferBuffer[Index].Dhcp6.OfferType == PxeOfferTypeProxyBinl);
+ ASSERT (
+ Private->OfferBuffer[Index].Dhcp6.OfferType == PxeOfferTypeDhcpBinl ||
+ Private->OfferBuffer[Index].Dhcp6.OfferType == PxeOfferTypeProxyBinl
+ );
Mode = Private->PxeBc.Mode;
Private->IsDoDiscover = FALSE;
@@ -1099,7 +1106,7 @@ PxeBcRetryDhcp6Binl (
Private,
&Private->BootFileName,
&Private->ServerIp.v6,
- (CHAR8 *) (Offer->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL]->Data),
+ (CHAR8 *)(Offer->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL]->Data),
NTOHS (Offer->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL]->OpLen)
);
if (EFI_ERROR (Status)) {
@@ -1122,9 +1129,10 @@ PxeBcRetryDhcp6Binl (
return Status;
}
- if (Cache6->OfferType != PxeOfferTypeProxyPxe10 &&
- Cache6->OfferType != PxeOfferTypeProxyWfm11a &&
- Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL] == NULL) {
+ if ((Cache6->OfferType != PxeOfferTypeProxyPxe10) &&
+ (Cache6->OfferType != PxeOfferTypeProxyWfm11a) &&
+ (Cache6->OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL] == NULL))
+ {
//
// This BINL ack doesn't have discovery option set or multicast option set
// or bootfile name specified.
@@ -1142,7 +1150,6 @@ PxeBcRetryDhcp6Binl (
return EFI_SUCCESS;
}
-
/**
Cache all the received DHCPv6 offers, and set OfferIndex and OfferCount.
@@ -1154,8 +1161,8 @@ PxeBcRetryDhcp6Binl (
**/
EFI_STATUS
PxeBcCacheDhcp6Offer (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP6_PACKET *RcvdOffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP6_PACKET *RcvdOffer
)
{
PXEBC_DHCP6_PACKET_CACHE *Cache6;
@@ -1200,8 +1207,9 @@ PxeBcCacheDhcp6Offer (
//
Private->OfferIndex[OfferType][Private->OfferCount[OfferType]] = Private->OfferNum;
Private->OfferCount[OfferType]++;
- } else if ((OfferType == PxeOfferTypeProxyPxe10 || OfferType == PxeOfferTypeProxyWfm11a) &&
- Private->OfferCount[OfferType] < 1) {
+ } else if (((OfferType == PxeOfferTypeProxyPxe10) || (OfferType == PxeOfferTypeProxyWfm11a)) &&
+ (Private->OfferCount[OfferType] < 1))
+ {
//
// Only cache the first PXE10/WFM11a offer, and discard the others.
//
@@ -1223,7 +1231,6 @@ PxeBcCacheDhcp6Offer (
return EFI_SUCCESS;
}
-
/**
Select an DHCPv6 offer, and record SelectIndex and SelectProxyType.
@@ -1232,12 +1239,12 @@ PxeBcCacheDhcp6Offer (
**/
VOID
PxeBcSelectDhcp6Offer (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- UINT32 Index;
- UINT32 OfferIndex;
- PXEBC_OFFER_TYPE OfferType;
+ UINT32 Index;
+ UINT32 OfferIndex;
+ PXEBC_OFFER_TYPE OfferType;
Private->SelectIndex = 0;
@@ -1250,43 +1257,40 @@ PxeBcSelectDhcp6Offer (
// 1. DhcpPxe10 offer
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpPxe10][0] + 1;
-
} else if (Private->OfferCount[PxeOfferTypeDhcpWfm11a] > 0) {
//
// 2. DhcpWfm11a offer
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpWfm11a][0] + 1;
-
- } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 &&
- Private->OfferCount[PxeOfferTypeProxyPxe10] > 0) {
+ } else if ((Private->OfferCount[PxeOfferTypeDhcpOnly] > 0) &&
+ (Private->OfferCount[PxeOfferTypeProxyPxe10] > 0))
+ {
//
// 3. DhcpOnly offer and ProxyPxe10 offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpOnly][0] + 1;
Private->SelectProxyType = PxeOfferTypeProxyPxe10;
-
- } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 &&
- Private->OfferCount[PxeOfferTypeProxyWfm11a] > 0) {
+ } else if ((Private->OfferCount[PxeOfferTypeDhcpOnly] > 0) &&
+ (Private->OfferCount[PxeOfferTypeProxyWfm11a] > 0))
+ {
//
// 4. DhcpOnly offer and ProxyWfm11a offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpOnly][0] + 1;
Private->SelectProxyType = PxeOfferTypeProxyWfm11a;
-
} else if (Private->OfferCount[PxeOfferTypeDhcpBinl] > 0) {
//
// 5. DhcpBinl offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpBinl][0] + 1;
-
- } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 &&
- Private->OfferCount[PxeOfferTypeProxyBinl] > 0) {
+ } else if ((Private->OfferCount[PxeOfferTypeDhcpOnly] > 0) &&
+ (Private->OfferCount[PxeOfferTypeProxyBinl] > 0))
+ {
//
// 6. DhcpOnly offer and ProxyBinl offer.
//
Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpOnly][0] + 1;
Private->SelectProxyType = PxeOfferTypeProxyBinl;
-
} else {
//
// 7. DhcpOnly offer with bootfilename.
@@ -1304,7 +1308,6 @@ PxeBcSelectDhcp6Offer (
// Select offer by received order.
//
for (Index = 0; Index < Private->OfferNum; Index++) {
-
OfferType = Private->OfferBuffer[Index].Dhcp6.OfferType;
if (IS_PROXY_OFFER (OfferType)) {
@@ -1315,8 +1318,9 @@ PxeBcSelectDhcp6Offer (
}
if (!Private->IsProxyRecved &&
- OfferType == PxeOfferTypeDhcpOnly &&
- Private->OfferBuffer[Index].Dhcp6.OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL] == NULL) {
+ (OfferType == PxeOfferTypeDhcpOnly) &&
+ (Private->OfferBuffer[Index].Dhcp6.OptList[PXEBC_DHCP6_IDX_BOOT_FILE_URL] == NULL))
+ {
//
// Skip if DhcpOnly offer without any other proxy offers or bootfilename.
//
@@ -1329,7 +1333,6 @@ PxeBcSelectDhcp6Offer (
}
}
-
/**
Handle the DHCPv6 offer packet.
@@ -1343,21 +1346,21 @@ PxeBcSelectDhcp6Offer (
**/
EFI_STATUS
PxeBcHandleDhcp6Offer (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- PXEBC_DHCP6_PACKET_CACHE *Cache6;
- EFI_STATUS Status;
- PXEBC_OFFER_TYPE OfferType;
- UINT32 ProxyIndex;
- UINT32 SelectIndex;
- UINT32 Index;
+ PXEBC_DHCP6_PACKET_CACHE *Cache6;
+ EFI_STATUS Status;
+ PXEBC_OFFER_TYPE OfferType;
+ UINT32 ProxyIndex;
+ UINT32 SelectIndex;
+ UINT32 Index;
ASSERT (Private->SelectIndex > 0);
- SelectIndex = (UINT32) (Private->SelectIndex - 1);
+ SelectIndex = (UINT32)(Private->SelectIndex - 1);
ASSERT (SelectIndex < PXEBC_OFFER_MAX_NUM);
- Cache6 = &Private->OfferBuffer[SelectIndex].Dhcp6;
- Status = EFI_SUCCESS;
+ Cache6 = &Private->OfferBuffer[SelectIndex].Dhcp6;
+ Status = EFI_SUCCESS;
//
// First try to cache DNS server address if DHCP6 offer provides.
@@ -1367,6 +1370,7 @@ PxeBcHandleDhcp6Offer (
if (Private->DnsServer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (Private->DnsServer, Cache6->OptList[PXEBC_DHCP6_IDX_DNS_SERVER]->Data, sizeof (EFI_IPv6_ADDRESS));
}
@@ -1378,7 +1382,6 @@ PxeBcHandleDhcp6Offer (
Status = EFI_NO_RESPONSE;
}
} else if (Cache6->OfferType == PxeOfferTypeDhcpOnly) {
-
if (Private->IsProxyRecved) {
//
// DhcpOnly offer is selected, so need try to request bootfilename.
@@ -1396,12 +1399,12 @@ PxeBcHandleDhcp6Offer (
// Try all the cached ProxyBinl offer one by one to request bootfilename.
//
for (Index = 0; Index < Private->OfferCount[Private->SelectProxyType]; Index++) {
-
ProxyIndex = Private->OfferIndex[Private->SelectProxyType][Index];
if (!EFI_ERROR (PxeBcRetryDhcp6Binl (Private, ProxyIndex))) {
break;
}
}
+
if (Index == Private->OfferCount[Private->SelectProxyType]) {
Status = EFI_NO_RESPONSE;
}
@@ -1418,7 +1421,6 @@ PxeBcHandleDhcp6Offer (
Status = EFI_NO_RESPONSE;
for (Index = 0; Index < Private->OfferNum; Index++) {
-
OfferType = Private->OfferBuffer[Index].Dhcp6.OfferType;
if (!IS_PROXY_OFFER (OfferType)) {
@@ -1444,7 +1446,7 @@ PxeBcHandleDhcp6Offer (
}
}
- if (!EFI_ERROR (Status) && Private->SelectProxyType != PxeOfferTypeProxyBinl) {
+ if (!EFI_ERROR (Status) && (Private->SelectProxyType != PxeOfferTypeProxyBinl)) {
//
// Success to try to request by a ProxyPxe10 or ProxyWfm11a offer, copy and parse it.
//
@@ -1462,14 +1464,13 @@ PxeBcHandleDhcp6Offer (
//
// All PXE boot information is ready by now.
//
- Status = PxeBcCopyDhcp6Ack (Private, &Private->DhcpAck.Dhcp6.Packet.Ack, TRUE);
+ Status = PxeBcCopyDhcp6Ack (Private, &Private->DhcpAck.Dhcp6.Packet.Ack, TRUE);
Private->PxeBc.Mode->DhcpDiscoverValid = TRUE;
}
return Status;
}
-
/**
Unregister the address by Ip6Config protocol.
@@ -1478,7 +1479,7 @@ PxeBcHandleDhcp6Offer (
**/
VOID
PxeBcUnregisterIp6Address (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
if (Private->Ip6Policy != PXEBC_IP6_POLICY_MAX) {
@@ -1506,18 +1507,18 @@ PxeBcUnregisterIp6Address (
**/
EFI_STATUS
PxeBcCheckRouteTable (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINTN TimeOutInSecond,
- OUT EFI_IPv6_ADDRESS *GatewayAddr
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINTN TimeOutInSecond,
+ OUT EFI_IPv6_ADDRESS *GatewayAddr
)
{
- EFI_STATUS Status;
- EFI_IP6_PROTOCOL *Ip6;
- EFI_IP6_MODE_DATA Ip6ModeData;
- UINTN Index;
- EFI_EVENT TimeOutEvt;
- UINTN RetryCount;
- BOOLEAN GatewayIsFound;
+ EFI_STATUS Status;
+ EFI_IP6_PROTOCOL *Ip6;
+ EFI_IP6_MODE_DATA Ip6ModeData;
+ UINTN Index;
+ EFI_EVENT TimeOutEvt;
+ UINTN RetryCount;
+ BOOLEAN GatewayIsFound;
ASSERT (GatewayAddr != NULL);
ASSERT (Private != NULL);
@@ -1548,23 +1549,28 @@ PxeBcCheckRouteTable (
if (Ip6ModeData.AddressList != NULL) {
FreePool (Ip6ModeData.AddressList);
}
+
if (Ip6ModeData.GroupTable != NULL) {
FreePool (Ip6ModeData.GroupTable);
}
+
if (Ip6ModeData.RouteTable != NULL) {
FreePool (Ip6ModeData.RouteTable);
}
+
if (Ip6ModeData.NeighborCache != NULL) {
FreePool (Ip6ModeData.NeighborCache);
}
+
if (Ip6ModeData.PrefixTable != NULL) {
FreePool (Ip6ModeData.PrefixTable);
}
+
if (Ip6ModeData.IcmpTypeList != NULL) {
FreePool (Ip6ModeData.IcmpTypeList);
}
- if (GatewayIsFound || RetryCount == TimeOutInSecond) {
+ if (GatewayIsFound || (RetryCount == TimeOutInSecond)) {
break;
}
@@ -1590,6 +1596,7 @@ PxeBcCheckRouteTable (
if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
+
while (EFI_ERROR (gBS->CheckEvent (TimeOutEvt))) {
Ip6->Poll (Ip6);
}
@@ -1621,29 +1628,29 @@ ON_EXIT:
**/
EFI_STATUS
PxeBcRegisterIp6Address (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_IPv6_ADDRESS *Address
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_IPv6_ADDRESS *Address
)
{
- EFI_IP6_PROTOCOL *Ip6;
- EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
- EFI_IP6_CONFIG_POLICY Policy;
- EFI_IP6_CONFIG_MANUAL_ADDRESS CfgAddr;
- EFI_IPv6_ADDRESS GatewayAddr;
- UINTN DataSize;
- EFI_EVENT MappedEvt;
- EFI_STATUS Status;
- BOOLEAN NoGateway;
- EFI_IPv6_ADDRESS *Ip6Addr;
- UINTN Index;
-
- Status = EFI_SUCCESS;
- MappedEvt = NULL;
- Ip6Addr = NULL;
- DataSize = sizeof (EFI_IP6_CONFIG_POLICY);
- Ip6Cfg = Private->Ip6Cfg;
- Ip6 = Private->Ip6;
- NoGateway = FALSE;
+ EFI_IP6_PROTOCOL *Ip6;
+ EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
+ EFI_IP6_CONFIG_POLICY Policy;
+ EFI_IP6_CONFIG_MANUAL_ADDRESS CfgAddr;
+ EFI_IPv6_ADDRESS GatewayAddr;
+ UINTN DataSize;
+ EFI_EVENT MappedEvt;
+ EFI_STATUS Status;
+ BOOLEAN NoGateway;
+ EFI_IPv6_ADDRESS *Ip6Addr;
+ UINTN Index;
+
+ Status = EFI_SUCCESS;
+ MappedEvt = NULL;
+ Ip6Addr = NULL;
+ DataSize = sizeof (EFI_IP6_CONFIG_POLICY);
+ Ip6Cfg = Private->Ip6Cfg;
+ Ip6 = Private->Ip6;
+ NoGateway = FALSE;
ZeroMem (&CfgAddr, sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS));
CopyMem (&CfgAddr.Address, Address, sizeof (EFI_IPv6_ADDRESS));
@@ -1669,7 +1676,7 @@ PxeBcRegisterIp6Address (
Status = Ip6Cfg->SetData (
Ip6Cfg,
Ip6ConfigDataTypePolicy,
- sizeof(EFI_IP6_CONFIG_POLICY),
+ sizeof (EFI_IP6_CONFIG_POLICY),
&Policy
);
if (EFI_ERROR (Status)) {
@@ -1695,22 +1702,22 @@ PxeBcRegisterIp6Address (
}
Private->IsAddressOk = FALSE;
- Status = Ip6Cfg->RegisterDataNotify (
- Ip6Cfg,
- Ip6ConfigDataTypeManualAddress,
- MappedEvt
- );
- if (EFI_ERROR(Status)) {
+ Status = Ip6Cfg->RegisterDataNotify (
+ Ip6Cfg,
+ Ip6ConfigDataTypeManualAddress,
+ MappedEvt
+ );
+ if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
Status = Ip6Cfg->SetData (
Ip6Cfg,
Ip6ConfigDataTypeManualAddress,
- sizeof(EFI_IP6_CONFIG_MANUAL_ADDRESS),
+ sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS),
&CfgAddr
);
- if (EFI_ERROR(Status) && Status != EFI_NOT_READY) {
+ if (EFI_ERROR (Status) && (Status != EFI_NOT_READY)) {
goto ON_EXIT;
} else if (Status == EFI_NOT_READY) {
//
@@ -1719,17 +1726,18 @@ PxeBcRegisterIp6Address (
while (!Private->IsAddressOk) {
Ip6->Poll (Ip6);
}
+
//
// Check whether the IP6 address setting is successed.
//
DataSize = 0;
- Status = Ip6Cfg->GetData (
- Ip6Cfg,
- Ip6ConfigDataTypeManualAddress,
- &DataSize,
- NULL
- );
- if (Status != EFI_BUFFER_TOO_SMALL || DataSize == 0) {
+ Status = Ip6Cfg->GetData (
+ Ip6Cfg,
+ Ip6ConfigDataTypeManualAddress,
+ &DataSize,
+ NULL
+ );
+ if ((Status != EFI_BUFFER_TOO_SMALL) || (DataSize == 0)) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}
@@ -1738,11 +1746,12 @@ PxeBcRegisterIp6Address (
if (Ip6Addr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
Status = Ip6Cfg->GetData (
Ip6Cfg,
Ip6ConfigDataTypeManualAddress,
&DataSize,
- (VOID*) Ip6Addr
+ (VOID *)Ip6Addr
);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
@@ -1754,6 +1763,7 @@ PxeBcRegisterIp6Address (
break;
}
}
+
if (Index == DataSize / sizeof (EFI_IPv6_ADDRESS)) {
Status = EFI_ABORTED;
goto ON_EXIT;
@@ -1784,9 +1794,11 @@ ON_EXIT:
);
gBS->CloseEvent (MappedEvt);
}
+
if (Ip6Addr != NULL) {
FreePool (Ip6Addr);
}
+
return Status;
}
@@ -1801,16 +1813,16 @@ ON_EXIT:
**/
EFI_STATUS
PxeBcSetIp6Policy (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- EFI_IP6_CONFIG_POLICY Policy;
- EFI_STATUS Status;
- EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
- UINTN DataSize;
+ EFI_IP6_CONFIG_POLICY Policy;
+ EFI_STATUS Status;
+ EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
+ UINTN DataSize;
- Ip6Cfg = Private->Ip6Cfg;
- DataSize = sizeof (EFI_IP6_CONFIG_POLICY);
+ Ip6Cfg = Private->Ip6Cfg;
+ DataSize = sizeof (EFI_IP6_CONFIG_POLICY);
//
// Get and store the current policy of IP6 driver.
@@ -1830,7 +1842,7 @@ PxeBcSetIp6Policy (
Status = Ip6Cfg->SetData (
Ip6Cfg,
Ip6ConfigDataTypePolicy,
- sizeof(EFI_IP6_CONFIG_POLICY),
+ sizeof (EFI_IP6_CONFIG_POLICY),
&Policy
);
if (EFI_ERROR (Status)) {
@@ -1855,12 +1867,12 @@ PxeBcSetIp6Policy (
**/
EFI_STATUS
PxeBcSetIp6Address (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- EFI_STATUS Status;
- EFI_DHCP6_PROTOCOL *Dhcp6;
-
+ EFI_STATUS Status;
+ EFI_DHCP6_PROTOCOL *Dhcp6;
+
Dhcp6 = Private->Dhcp6;
CopyMem (&Private->StationIp.v6, &Private->TmpStationIp.v6, sizeof (EFI_IPv6_ADDRESS));
@@ -1906,47 +1918,48 @@ PxeBcSetIp6Address (
EFI_STATUS
EFIAPI
PxeBcDhcp6CallBack (
- IN EFI_DHCP6_PROTOCOL *This,
- IN VOID *Context,
- IN EFI_DHCP6_STATE CurrentState,
- IN EFI_DHCP6_EVENT Dhcp6Event,
- IN EFI_DHCP6_PACKET *Packet,
- OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL
+ IN EFI_DHCP6_PROTOCOL *This,
+ IN VOID *Context,
+ IN EFI_DHCP6_STATE CurrentState,
+ IN EFI_DHCP6_EVENT Dhcp6Event,
+ IN EFI_DHCP6_PACKET *Packet,
+ OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;
- EFI_DHCP6_PACKET *SelectAd;
- EFI_STATUS Status;
- BOOLEAN Received;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;
+ EFI_DHCP6_PACKET *SelectAd;
+ EFI_STATUS Status;
+ BOOLEAN Received;
if ((Dhcp6Event != Dhcp6RcvdAdvertise) &&
(Dhcp6Event != Dhcp6SelectAdvertise) &&
(Dhcp6Event != Dhcp6SendSolicit) &&
(Dhcp6Event != Dhcp6SendRequest) &&
- (Dhcp6Event != Dhcp6RcvdReply)) {
+ (Dhcp6Event != Dhcp6RcvdReply))
+ {
return EFI_SUCCESS;
}
ASSERT (Packet != NULL);
- Private = (PXEBC_PRIVATE_DATA *) Context;
- Mode = Private->PxeBc.Mode;
- Callback = Private->PxeBcCallback;
+ Private = (PXEBC_PRIVATE_DATA *)Context;
+ Mode = Private->PxeBc.Mode;
+ Callback = Private->PxeBcCallback;
//
// Callback to user when any traffic ocurred if has.
//
- if (Dhcp6Event != Dhcp6SelectAdvertise && Callback != NULL) {
- Received = (BOOLEAN) (Dhcp6Event == Dhcp6RcvdAdvertise || Dhcp6Event == Dhcp6RcvdReply);
- Status = Callback->Callback (
- Callback,
- Private->Function,
- Received,
- Packet->Length,
- (EFI_PXE_BASE_CODE_PACKET *) &Packet->Dhcp6
- );
+ if ((Dhcp6Event != Dhcp6SelectAdvertise) && (Callback != NULL)) {
+ Received = (BOOLEAN)(Dhcp6Event == Dhcp6RcvdAdvertise || Dhcp6Event == Dhcp6RcvdReply);
+ Status = Callback->Callback (
+ Callback,
+ Private->Function,
+ Received,
+ Packet->Length,
+ (EFI_PXE_BASE_CODE_PACKET *)&Packet->Dhcp6
+ );
if (Status != EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE) {
return EFI_ABORTED;
}
@@ -1955,105 +1968,114 @@ PxeBcDhcp6CallBack (
Status = EFI_SUCCESS;
switch (Dhcp6Event) {
+ case Dhcp6SendSolicit:
+ if (Packet->Length > PXEBC_DHCP6_PACKET_MAX_SIZE) {
+ //
+ // If the to be sent packet exceeds the maximum length, abort the DHCP process.
+ //
+ Status = EFI_ABORTED;
+ break;
+ }
- case Dhcp6SendSolicit:
- if (Packet->Length > PXEBC_DHCP6_PACKET_MAX_SIZE) {
//
- // If the to be sent packet exceeds the maximum length, abort the DHCP process.
+ // Record the first Solicate msg time
//
- Status = EFI_ABORTED;
- break;
- }
-
- //
- // Record the first Solicate msg time
- //
- if (Private->SolicitTimes == 0) {
- CalcElapsedTime (Private);
- Private->SolicitTimes++;
- }
- //
- // Cache the dhcp discover packet to mode data directly.
- //
- CopyMem (&Mode->DhcpDiscover.Dhcpv4, &Packet->Dhcp6, Packet->Length);
- break;
+ if (Private->SolicitTimes == 0) {
+ CalcElapsedTime (Private);
+ Private->SolicitTimes++;
+ }
- case Dhcp6RcvdAdvertise:
- Status = EFI_NOT_READY;
- if (Packet->Length > PXEBC_DHCP6_PACKET_MAX_SIZE) {
//
- // Ignore the incoming packets which exceed the maximum length.
+ // Cache the dhcp discover packet to mode data directly.
//
+ CopyMem (&Mode->DhcpDiscover.Dhcpv4, &Packet->Dhcp6, Packet->Length);
break;
- }
- if (Private->OfferNum < PXEBC_OFFER_MAX_NUM) {
+
+ case Dhcp6RcvdAdvertise:
+ Status = EFI_NOT_READY;
+ if (Packet->Length > PXEBC_DHCP6_PACKET_MAX_SIZE) {
+ //
+ // Ignore the incoming packets which exceed the maximum length.
+ //
+ break;
+ }
+
+ if (Private->OfferNum < PXEBC_OFFER_MAX_NUM) {
+ //
+ // Cache the dhcp offers to OfferBuffer[] for select later, and record
+ // the OfferIndex and OfferCount.
+ //
+ PxeBcCacheDhcp6Offer (Private, Packet);
+ }
+
+ break;
+
+ case Dhcp6SendRequest:
+ if (Packet->Length > PXEBC_DHCP6_PACKET_MAX_SIZE) {
+ //
+ // If the to be sent packet exceeds the maximum length, abort the DHCP process.
+ //
+ Status = EFI_ABORTED;
+ break;
+ }
+
//
- // Cache the dhcp offers to OfferBuffer[] for select later, and record
- // the OfferIndex and OfferCount.
+ // Store the request packet as seed packet for discover.
//
- PxeBcCacheDhcp6Offer (Private, Packet);
- }
- break;
+ if (Private->Dhcp6Request != NULL) {
+ FreePool (Private->Dhcp6Request);
+ }
+
+ Private->Dhcp6Request = AllocateZeroPool (Packet->Size);
+ if (Private->Dhcp6Request != NULL) {
+ CopyMem (Private->Dhcp6Request, Packet, Packet->Size);
+ }
- case Dhcp6SendRequest:
- if (Packet->Length > PXEBC_DHCP6_PACKET_MAX_SIZE) {
+ break;
+
+ case Dhcp6SelectAdvertise:
//
- // If the to be sent packet exceeds the maximum length, abort the DHCP process.
+ // Select offer by the default policy or by order, and record the SelectIndex
+ // and SelectProxyType.
//
- Status = EFI_ABORTED;
- break;
- }
-
- //
- // Store the request packet as seed packet for discover.
- //
- if (Private->Dhcp6Request != NULL) {
- FreePool (Private->Dhcp6Request);
- }
- Private->Dhcp6Request = AllocateZeroPool (Packet->Size);
- if (Private->Dhcp6Request != NULL) {
- CopyMem (Private->Dhcp6Request, Packet, Packet->Size);
- }
- break;
+ PxeBcSelectDhcp6Offer (Private);
- case Dhcp6SelectAdvertise:
- //
- // Select offer by the default policy or by order, and record the SelectIndex
- // and SelectProxyType.
- //
- PxeBcSelectDhcp6Offer (Private);
+ if (Private->SelectIndex == 0) {
+ Status = EFI_ABORTED;
+ } else {
+ ASSERT (NewPacket != NULL);
+ SelectAd = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp6.Packet.Offer;
+ *NewPacket = AllocateZeroPool (SelectAd->Size);
+ ASSERT (*NewPacket != NULL);
+ if (*NewPacket == NULL) {
+ return EFI_ABORTED;
+ }
- if (Private->SelectIndex == 0) {
- Status = EFI_ABORTED;
- } else {
- ASSERT (NewPacket != NULL);
- SelectAd = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp6.Packet.Offer;
- *NewPacket = AllocateZeroPool (SelectAd->Size);
- ASSERT (*NewPacket != NULL);
- CopyMem (*NewPacket, SelectAd, SelectAd->Size);
- }
- break;
+ CopyMem (*NewPacket, SelectAd, SelectAd->Size);
+ }
- case Dhcp6RcvdReply:
- //
- // Cache the dhcp ack to Private->Dhcp6Ack, but it's not the final ack in mode data
- // without verification.
- //
- ASSERT (Private->SelectIndex != 0);
- Status = PxeBcCopyDhcp6Ack (Private, Packet, FALSE);
- if (EFI_ERROR (Status)) {
- Status = EFI_ABORTED;
- }
- break;
+ break;
- default:
- ASSERT (0);
+ case Dhcp6RcvdReply:
+ //
+ // Cache the dhcp ack to Private->Dhcp6Ack, but it's not the final ack in mode data
+ // without verification.
+ //
+ ASSERT (Private->SelectIndex != 0);
+ Status = PxeBcCopyDhcp6Ack (Private, Packet, FALSE);
+ if (EFI_ERROR (Status)) {
+ Status = EFI_ABORTED;
+ }
+
+ break;
+
+ default:
+ ASSERT (0);
}
return Status;
}
-
/**
Build and send out the request packet for the bootfile, and parse the reply.
@@ -2071,37 +2093,37 @@ PxeBcDhcp6CallBack (
**/
EFI_STATUS
PxeBcDhcp6Discover (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT16 Type,
- IN UINT16 *Layer,
- IN BOOLEAN UseBis,
- IN EFI_IP_ADDRESS *DestIp
- )
-{
- EFI_PXE_BASE_CODE_UDP_PORT SrcPort;
- EFI_PXE_BASE_CODE_UDP_PORT DestPort;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
- EFI_PXE_BASE_CODE_DHCPV6_PACKET *Discover;
- UINTN DiscoverLen;
- EFI_DHCP6_PACKET *Request;
- UINTN RequestLen;
- EFI_DHCP6_PACKET *Reply;
- UINT8 *RequestOpt;
- UINT8 *DiscoverOpt;
- UINTN ReadSize;
- UINT16 OpCode;
- UINT16 OpLen;
- UINT32 Xid;
- EFI_STATUS Status;
-
- PxeBc = &Private->PxeBc;
- Mode = PxeBc->Mode;
- Request = Private->Dhcp6Request;
- SrcPort = PXEBC_BS_DISCOVER_PORT;
- DestPort = PXEBC_BS_DISCOVER_PORT;
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT16 Type,
+ IN UINT16 *Layer,
+ IN BOOLEAN UseBis,
+ IN EFI_IP_ADDRESS *DestIp
+ )
+{
+ EFI_PXE_BASE_CODE_UDP_PORT SrcPort;
+ EFI_PXE_BASE_CODE_UDP_PORT DestPort;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_PXE_BASE_CODE_PROTOCOL *PxeBc;
+ EFI_PXE_BASE_CODE_DHCPV6_PACKET *Discover;
+ UINTN DiscoverLen;
+ EFI_DHCP6_PACKET *Request;
+ UINTN RequestLen;
+ EFI_DHCP6_PACKET *Reply;
+ UINT8 *RequestOpt;
+ UINT8 *DiscoverOpt;
+ UINTN ReadSize;
+ UINT16 OpCode;
+ UINT16 OpLen;
+ UINT32 Xid;
+ EFI_STATUS Status;
+
+ PxeBc = &Private->PxeBc;
+ Mode = PxeBc->Mode;
+ Request = Private->Dhcp6Request;
+ SrcPort = PXEBC_BS_DISCOVER_PORT;
+ DestPort = PXEBC_BS_DISCOVER_PORT;
- if (!UseBis && Layer != NULL) {
+ if (!UseBis && (Layer != NULL)) {
*Layer &= EFI_PXE_BASE_CODE_BOOT_LAYER_MASK;
}
@@ -2126,10 +2148,11 @@ PxeBcDhcp6Discover (
RequestLen = DiscoverLen;
while (RequestLen < Request->Length) {
- OpCode = NTOHS (((EFI_DHCP6_PACKET_OPTION *) RequestOpt)->OpCode);
- OpLen = NTOHS (((EFI_DHCP6_PACKET_OPTION *) RequestOpt)->OpLen);
- if (OpCode != EFI_DHCP6_IA_TYPE_NA &&
- OpCode != EFI_DHCP6_IA_TYPE_TA) {
+ OpCode = NTOHS (((EFI_DHCP6_PACKET_OPTION *)RequestOpt)->OpCode);
+ OpLen = NTOHS (((EFI_DHCP6_PACKET_OPTION *)RequestOpt)->OpLen);
+ if ((OpCode != EFI_DHCP6_IA_TYPE_NA) &&
+ (OpCode != EFI_DHCP6_IA_TYPE_TA))
+ {
//
// Copy all the options except IA option.
//
@@ -2137,6 +2160,7 @@ PxeBcDhcp6Discover (
DiscoverOpt += (OpLen + 4);
DiscoverLen += (OpLen + 4);
}
+
RequestOpt += (OpLen + 4);
RequestLen += (OpLen + 4);
}
@@ -2152,7 +2176,7 @@ PxeBcDhcp6Discover (
NULL,
NULL,
&DiscoverLen,
- (VOID *) Discover
+ (VOID *)Discover
);
if (EFI_ERROR (Status)) {
return Status;
@@ -2168,7 +2192,8 @@ PxeBcDhcp6Discover (
} else {
Reply = &Private->ProxyOffer.Dhcp6.Packet.Offer;
}
- ReadSize = (UINTN) Reply->Size;
+
+ ReadSize = (UINTN)Reply->Size;
//
// Start Udp6Read instance
@@ -2188,7 +2213,7 @@ PxeBcDhcp6Discover (
NULL,
NULL,
&ReadSize,
- (VOID *) &Reply->Dhcp6
+ (VOID *)&Reply->Dhcp6
);
//
// Stop Udp6Read instance
@@ -2201,7 +2226,6 @@ PxeBcDhcp6Discover (
return EFI_SUCCESS;
}
-
/**
Start the DHCPv6 S.A.R.R. process to acquire the IPv6 address and other PXE boot information.
@@ -2214,35 +2238,35 @@ PxeBcDhcp6Discover (
**/
EFI_STATUS
PxeBcDhcp6Sarr (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP6_PROTOCOL *Dhcp6
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP6_PROTOCOL *Dhcp6
)
{
- EFI_PXE_BASE_CODE_MODE *PxeMode;
- EFI_DHCP6_CONFIG_DATA Config;
- EFI_DHCP6_MODE_DATA Mode;
- EFI_DHCP6_RETRANSMISSION *Retransmit;
- EFI_DHCP6_PACKET_OPTION *OptList[PXEBC_DHCP6_OPTION_MAX_NUM];
- UINT8 Buffer[PXEBC_DHCP6_OPTION_MAX_SIZE];
- UINT32 OptCount;
- EFI_STATUS Status;
- EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
- EFI_STATUS TimerStatus;
- EFI_EVENT Timer;
- UINT64 GetMappingTimeOut;
- UINTN DataSize;
- EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS DadXmits;
-
- Status = EFI_SUCCESS;
- PxeMode = Private->PxeBc.Mode;
- Ip6Cfg = Private->Ip6Cfg;
- Timer = NULL;
+ EFI_PXE_BASE_CODE_MODE *PxeMode;
+ EFI_DHCP6_CONFIG_DATA Config;
+ EFI_DHCP6_MODE_DATA Mode;
+ EFI_DHCP6_RETRANSMISSION *Retransmit;
+ EFI_DHCP6_PACKET_OPTION *OptList[PXEBC_DHCP6_OPTION_MAX_NUM];
+ UINT8 Buffer[PXEBC_DHCP6_OPTION_MAX_SIZE];
+ UINT32 OptCount;
+ EFI_STATUS Status;
+ EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
+ EFI_STATUS TimerStatus;
+ EFI_EVENT Timer;
+ UINT64 GetMappingTimeOut;
+ UINTN DataSize;
+ EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS DadXmits;
+
+ Status = EFI_SUCCESS;
+ PxeMode = Private->PxeBc.Mode;
+ Ip6Cfg = Private->Ip6Cfg;
+ Timer = NULL;
//
// Build option list for the request packet.
//
- OptCount = PxeBcBuildDhcp6Options (Private, OptList, Buffer);
- ASSERT (OptCount> 0);
+ OptCount = PxeBcBuildDhcp6Options (Private, OptList, Buffer);
+ ASSERT (OptCount > 0);
Retransmit = AllocateZeroPool (sizeof (EFI_DHCP6_RETRANSMISSION));
if (Retransmit == NULL) {
@@ -2285,7 +2309,6 @@ PxeBcDhcp6Sarr (
ZeroMem (Private->OfferCount, sizeof (Private->OfferCount));
ZeroMem (Private->OfferIndex, sizeof (Private->OfferIndex));
-
//
// Start DHCPv6 S.A.R.R. process to acquire IPv6 address.
//
@@ -2301,12 +2324,12 @@ PxeBcDhcp6Sarr (
// Get Duplicate Address Detection Transmits count.
//
DataSize = sizeof (EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS);
- Status = Ip6Cfg->GetData (
- Ip6Cfg,
- Ip6ConfigDataTypeDupAddrDetectTransmits,
- &DataSize,
- &DadXmits
- );
+ Status = Ip6Cfg->GetData (
+ Ip6Cfg,
+ Ip6ConfigDataTypeDupAddrDetectTransmits,
+ &DataSize,
+ &DadXmits
+ );
if (EFI_ERROR (Status)) {
Dhcp6->Configure (Dhcp6, NULL);
return Status;
@@ -2319,7 +2342,7 @@ PxeBcDhcp6Sarr (
}
GetMappingTimeOut = TICKS_PER_SECOND * DadXmits.DupAddrDetectTransmits + PXEBC_DAD_ADDITIONAL_DELAY;
- Status = gBS->SetTimer (Timer, TimerRelative, GetMappingTimeOut);
+ Status = gBS->SetTimer (Timer, TimerRelative, GetMappingTimeOut);
if (EFI_ERROR (Status)) {
gBS->CloseEvent (Timer);
Dhcp6->Configure (Dhcp6, NULL);
@@ -2327,7 +2350,6 @@ PxeBcDhcp6Sarr (
}
do {
-
TimerStatus = gBS->CheckEvent (Timer);
if (!EFI_ERROR (TimerStatus)) {
Status = Dhcp6->Start (Dhcp6);
@@ -2336,10 +2358,12 @@ PxeBcDhcp6Sarr (
gBS->CloseEvent (Timer);
}
+
if (EFI_ERROR (Status)) {
if (Status == EFI_ICMP_ERROR) {
PxeMode->IcmpErrorReceived = TRUE;
}
+
Dhcp6->Configure (Dhcp6, NULL);
return Status;
}
@@ -2365,9 +2389,11 @@ PxeBcDhcp6Sarr (
if (Mode.ClientId != NULL) {
FreePool (Mode.ClientId);
}
+
if (Mode.Ia != NULL) {
FreePool (Mode.Ia);
}
+
//
// Check the selected offer whether BINL retry is needed.
//
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.h
@@ -16,25 +16,24 @@
#ifndef __EFI_PXEBC_DHCP6_H__
#define __EFI_PXEBC_DHCP6_H__
-#define PXEBC_DHCP6_OPTION_MAX_NUM 16
-#define PXEBC_DHCP6_OPTION_MAX_SIZE 312
-#define PXEBC_DHCP6_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))
-#define PXEBC_IP6_POLICY_MAX 0xff
-#define PXEBC_IP6_ROUTE_TABLE_TIMEOUT 10
-
-#define PXEBC_DHCP6_S_PORT 547
-#define PXEBC_DHCP6_C_PORT 546
-
-#define PXEBC_DHCP6_ENTERPRISE_NUM 343 // TODO: IANA TBD: temporarily using Intel's
-#define PXEBC_DHCP6_MAX_BOOT_FILE_SIZE 65535 // It's a limitation of bit length, 65535*512 bytes.
-
-
-#define PXEBC_DHCP6_IDX_IA_NA 0
-#define PXEBC_DHCP6_IDX_BOOT_FILE_URL 1
-#define PXEBC_DHCP6_IDX_BOOT_FILE_PARAM 2
-#define PXEBC_DHCP6_IDX_VENDOR_CLASS 3
-#define PXEBC_DHCP6_IDX_DNS_SERVER 4
-#define PXEBC_DHCP6_IDX_MAX 5
+#define PXEBC_DHCP6_OPTION_MAX_NUM 16
+#define PXEBC_DHCP6_OPTION_MAX_SIZE 312
+#define PXEBC_DHCP6_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))
+#define PXEBC_IP6_POLICY_MAX 0xff
+#define PXEBC_IP6_ROUTE_TABLE_TIMEOUT 10
+
+#define PXEBC_DHCP6_S_PORT 547
+#define PXEBC_DHCP6_C_PORT 546
+
+#define PXEBC_DHCP6_ENTERPRISE_NUM 343 // TODO: IANA TBD: temporarily using Intel's
+#define PXEBC_DHCP6_MAX_BOOT_FILE_SIZE 65535 // It's a limitation of bit length, 65535*512 bytes.
+
+#define PXEBC_DHCP6_IDX_IA_NA 0
+#define PXEBC_DHCP6_IDX_BOOT_FILE_URL 1
+#define PXEBC_DHCP6_IDX_BOOT_FILE_PARAM 2
+#define PXEBC_DHCP6_IDX_VENDOR_CLASS 3
+#define PXEBC_DHCP6_IDX_DNS_SERVER 4
+#define PXEBC_DHCP6_IDX_MAX 5
#define PXEBC_DHCP6_BOOT_FILE_URL_PREFIX "tftp://"
#define PXEBC_TFTP_URL_SEPARATOR '/'
@@ -53,69 +52,67 @@
(Type) == PxeOfferTypeProxyPxe10 || \
(Type) == PxeOfferTypeProxyWfm11a)
-
#pragma pack(1)
typedef struct {
- UINT16 OpCode[256];
+ UINT16 OpCode[256];
} PXEBC_DHCP6_OPTION_ORO;
typedef struct {
- UINT8 Type;
- UINT8 MajorVer;
- UINT8 MinorVer;
+ UINT8 Type;
+ UINT8 MajorVer;
+ UINT8 MinorVer;
} PXEBC_DHCP6_OPTION_UNDI;
typedef struct {
- UINT16 Type;
+ UINT16 Type;
} PXEBC_DHCP6_OPTION_ARCH;
typedef struct {
- UINT8 ClassIdentifier[10];
- UINT8 ArchitecturePrefix[5];
- UINT8 ArchitectureType[5];
- UINT8 Lit3[1];
- UINT8 InterfaceName[4];
- UINT8 Lit4[1];
- UINT8 UndiMajor[3];
- UINT8 UndiMinor[3];
+ UINT8 ClassIdentifier[10];
+ UINT8 ArchitecturePrefix[5];
+ UINT8 ArchitectureType[5];
+ UINT8 Lit3[1];
+ UINT8 InterfaceName[4];
+ UINT8 Lit4[1];
+ UINT8 UndiMajor[3];
+ UINT8 UndiMinor[3];
} PXEBC_CLASS_ID;
typedef struct {
- UINT32 Vendor;
- UINT16 ClassLen;
- PXEBC_CLASS_ID ClassId;
+ UINT32 Vendor;
+ UINT16 ClassLen;
+ PXEBC_CLASS_ID ClassId;
} PXEBC_DHCP6_OPTION_VENDOR_CLASS;
#pragma pack()
typedef union {
- PXEBC_DHCP6_OPTION_ORO *Oro;
- PXEBC_DHCP6_OPTION_UNDI *Undi;
- PXEBC_DHCP6_OPTION_ARCH *Arch;
- PXEBC_DHCP6_OPTION_VENDOR_CLASS *VendorClass;
+ PXEBC_DHCP6_OPTION_ORO *Oro;
+ PXEBC_DHCP6_OPTION_UNDI *Undi;
+ PXEBC_DHCP6_OPTION_ARCH *Arch;
+ PXEBC_DHCP6_OPTION_VENDOR_CLASS *VendorClass;
} PXEBC_DHCP6_OPTION_ENTRY;
typedef struct {
- LIST_ENTRY Link;
- EFI_DHCP6_PACKET_OPTION *Option;
- UINT8 Precedence;
+ LIST_ENTRY Link;
+ EFI_DHCP6_PACKET_OPTION *Option;
+ UINT8 Precedence;
} PXEBC_DHCP6_OPTION_NODE;
#define PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE (OFFSET_OF (EFI_DHCP6_PACKET, Dhcp6) + PXEBC_DHCP6_PACKET_MAX_SIZE)
typedef union {
- EFI_DHCP6_PACKET Offer;
- EFI_DHCP6_PACKET Ack;
- UINT8 Buffer[PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE];
+ EFI_DHCP6_PACKET Offer;
+ EFI_DHCP6_PACKET Ack;
+ UINT8 Buffer[PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE];
} PXEBC_DHCP6_PACKET;
typedef struct {
- PXEBC_DHCP6_PACKET Packet;
- PXEBC_OFFER_TYPE OfferType;
- EFI_DHCP6_PACKET_OPTION *OptList[PXEBC_DHCP6_IDX_MAX];
+ PXEBC_DHCP6_PACKET Packet;
+ PXEBC_OFFER_TYPE OfferType;
+ EFI_DHCP6_PACKET_OPTION *OptList[PXEBC_DHCP6_IDX_MAX];
} PXEBC_DHCP6_PACKET_CACHE;
-
/**
Free all the nodes in the boot file list.
@@ -144,14 +141,13 @@ PxeBcFreeBootFileOption (
**/
EFI_STATUS
PxeBcExtractBootFileUrl (
- IN PXEBC_PRIVATE_DATA *Private,
- OUT UINT8 **FileName,
- IN OUT EFI_IPv6_ADDRESS *SrvAddr,
- IN CHAR8 *BootFile,
- IN UINT16 Length
+ IN PXEBC_PRIVATE_DATA *Private,
+ OUT UINT8 **FileName,
+ IN OUT EFI_IPv6_ADDRESS *SrvAddr,
+ IN CHAR8 *BootFile,
+ IN UINT16 Length
);
-
/**
Parse the Boot File Parameter option.
@@ -164,11 +160,10 @@ PxeBcExtractBootFileUrl (
**/
EFI_STATUS
PxeBcExtractBootFileParam (
- IN CHAR8 *BootFilePara,
- OUT UINT16 *BootFileSize
+ IN CHAR8 *BootFilePara,
+ OUT UINT16 *BootFileSize
);
-
/**
Parse the cached DHCPv6 packet, including all the options.
@@ -183,7 +178,6 @@ PxeBcParseDhcp6Packet (
IN PXEBC_DHCP6_PACKET_CACHE *Cache6
);
-
/**
Register the ready address by Ip6Config protocol.
@@ -196,11 +190,10 @@ PxeBcParseDhcp6Packet (
**/
EFI_STATUS
PxeBcRegisterIp6Address (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_IPv6_ADDRESS *Address
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_IPv6_ADDRESS *Address
);
-
/**
Unregister the address by Ip6Config protocol.
@@ -209,10 +202,9 @@ PxeBcRegisterIp6Address (
**/
VOID
PxeBcUnregisterIp6Address (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
);
-
/**
Build and send out the request packet for the bootfile, and parse the reply.
@@ -230,11 +222,11 @@ PxeBcUnregisterIp6Address (
**/
EFI_STATUS
PxeBcDhcp6Discover (
- IN PXEBC_PRIVATE_DATA *Private,
- IN UINT16 Type,
- IN UINT16 *Layer,
- IN BOOLEAN UseBis,
- IN EFI_IP_ADDRESS *DestIp
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN UINT16 Type,
+ IN UINT16 *Layer,
+ IN BOOLEAN UseBis,
+ IN EFI_IP_ADDRESS *DestIp
);
/**
@@ -248,7 +240,7 @@ PxeBcDhcp6Discover (
**/
EFI_STATUS
PxeBcSetIp6Policy (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
);
/**
@@ -262,7 +254,7 @@ PxeBcSetIp6Policy (
**/
EFI_STATUS
PxeBcSetIp6Address (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
);
/**
@@ -277,9 +269,8 @@ PxeBcSetIp6Address (
**/
EFI_STATUS
PxeBcDhcp6Sarr (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_DHCP6_PROTOCOL *Dhcp6
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_DHCP6_PROTOCOL *Dhcp6
);
#endif
-
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c
@@ -16,8 +16,7 @@
#include "PxeBcImpl.h"
-
-EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding = {
PxeBcIp4DriverBindingSupported,
PxeBcIp4DriverBindingStart,
PxeBcIp4DriverBindingStop,
@@ -26,7 +25,7 @@ EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4Dri
NULL
};
-EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding = {
PxeBcIp6DriverBindingSupported,
PxeBcIp6DriverBindingStart,
PxeBcIp6DriverBindingStop,
@@ -45,10 +44,10 @@ EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6Dri
**/
EFI_HANDLE
PxeBcGetNicByIp4Children (
- IN EFI_HANDLE ControllerHandle
+ IN EFI_HANDLE ControllerHandle
)
{
- EFI_HANDLE NicHandle;
+ EFI_HANDLE NicHandle;
NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiArpProtocolGuid);
if (NicHandle == NULL) {
@@ -70,7 +69,6 @@ PxeBcGetNicByIp4Children (
return NicHandle;
}
-
/**
Get the Nic handle using any child handle in the IPv6 stack.
@@ -81,10 +79,10 @@ PxeBcGetNicByIp4Children (
**/
EFI_HANDLE
PxeBcGetNicByIp6Children (
- IN EFI_HANDLE ControllerHandle
+ IN EFI_HANDLE ControllerHandle
)
{
- EFI_HANDLE NicHandle;
+ EFI_HANDLE NicHandle;
NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiIp6ProtocolGuid);
if (NicHandle == NULL) {
@@ -103,7 +101,6 @@ PxeBcGetNicByIp6Children (
return NicHandle;
}
-
/**
Destroy the opened instances based on IPv4.
@@ -117,7 +114,7 @@ PxeBcDestroyIp4Children (
IN PXEBC_PRIVATE_DATA *Private
)
{
- ASSERT(Private != NULL);
+ ASSERT (Private != NULL);
if (Private->ArpChild != NULL) {
//
@@ -181,11 +178,11 @@ PxeBcDestroyIp4Children (
// Close Udp4 for PxeBc->UdpRead and destroy the instance.
//
gBS->CloseProtocol (
- Private->Udp4ReadChild,
- &gEfiUdp4ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Udp4ReadChild,
+ &gEfiUdp4ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
@@ -200,11 +197,11 @@ PxeBcDestroyIp4Children (
// Close Mtftp4 for PxeBc->Mtftp4 and destroy the instance.
//
gBS->CloseProtocol (
- Private->Mtftp4Child,
- &gEfiMtftp4ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Mtftp4Child,
+ &gEfiMtftp4ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
@@ -219,11 +216,11 @@ PxeBcDestroyIp4Children (
// Close Dhcp4 for PxeBc->Dhcp4 and destroy the instance.
//
gBS->CloseProtocol (
- Private->Dhcp4Child,
- &gEfiDhcp4ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Dhcp4Child,
+ &gEfiDhcp4ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
@@ -272,19 +269,19 @@ PxeBcDestroyIp4Children (
Private->Snp
);
}
+
FreePool (Private->Ip4Nic);
}
- Private->ArpChild = NULL;
- Private->Ip4Child = NULL;
- Private->Udp4WriteChild = NULL;
- Private->Udp4ReadChild = NULL;
- Private->Mtftp4Child = NULL;
- Private->Dhcp4Child = NULL;
- Private->Ip4Nic = NULL;
+ Private->ArpChild = NULL;
+ Private->Ip4Child = NULL;
+ Private->Udp4WriteChild = NULL;
+ Private->Udp4ReadChild = NULL;
+ Private->Mtftp4Child = NULL;
+ Private->Dhcp4Child = NULL;
+ Private->Ip4Nic = NULL;
}
-
/**
Destroy the opened instances based on IPv6.
@@ -298,18 +295,18 @@ PxeBcDestroyIp6Children (
IN PXEBC_PRIVATE_DATA *Private
)
{
- ASSERT(Private != NULL);
+ ASSERT (Private != NULL);
if (Private->Ip6Child != NULL) {
//
// Close Ip6 for Ip6->Ip6Config and destroy the instance.
//
gBS->CloseProtocol (
- Private->Ip6Child,
- &gEfiIp6ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Ip6Child,
+ &gEfiIp6ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
@@ -342,11 +339,11 @@ PxeBcDestroyIp6Children (
// Close Udp6 for PxeBc->UdpRead and destroy the instance.
//
gBS->CloseProtocol (
- Private->Udp6ReadChild,
- &gEfiUdp6ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Udp6ReadChild,
+ &gEfiUdp6ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
This->DriverBindingHandle,
@@ -360,11 +357,11 @@ PxeBcDestroyIp6Children (
// Close Mtftp6 for PxeBc->Mtftp and destroy the instance.
//
gBS->CloseProtocol (
- Private->Mtftp6Child,
- &gEfiMtftp6ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Mtftp6Child,
+ &gEfiMtftp6ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
@@ -379,11 +376,11 @@ PxeBcDestroyIp6Children (
// Close Dhcp6 for PxeBc->Dhcp and destroy the instance.
//
gBS->CloseProtocol (
- Private->Dhcp6Child,
- &gEfiDhcp6ProtocolGuid,
- This->DriverBindingHandle,
- Private->Controller
- );
+ Private->Dhcp6Child,
+ &gEfiDhcp6ProtocolGuid,
+ This->DriverBindingHandle,
+ Private->Controller
+ );
NetLibDestroyServiceChild (
Private->Controller,
@@ -430,6 +427,7 @@ PxeBcDestroyIp6Children (
Private->Snp
);
}
+
FreePool (Private->Ip6Nic);
}
@@ -455,20 +453,20 @@ PxeBcDestroyIp6Children (
**/
EFI_STATUS
PxeBcCheckIpv6Support (
- IN EFI_HANDLE ControllerHandle,
- IN PXEBC_PRIVATE_DATA *Private,
- OUT BOOLEAN *Ipv6Support
+ IN EFI_HANDLE ControllerHandle,
+ IN PXEBC_PRIVATE_DATA *Private,
+ OUT BOOLEAN *Ipv6Support
)
{
- EFI_HANDLE Handle;
- EFI_ADAPTER_INFORMATION_PROTOCOL *Aip;
- EFI_STATUS Status;
- EFI_GUID *InfoTypesBuffer;
- UINTN InfoTypeBufferCount;
- UINTN TypeIndex;
- BOOLEAN Supported;
- VOID *InfoBlock;
- UINTN InfoBlockSize;
+ EFI_HANDLE Handle;
+ EFI_ADAPTER_INFORMATION_PROTOCOL *Aip;
+ EFI_STATUS Status;
+ EFI_GUID *InfoTypesBuffer;
+ UINTN InfoTypeBufferCount;
+ UINTN TypeIndex;
+ BOOLEAN Supported;
+ VOID *InfoBlock;
+ UINTN InfoBlockSize;
ASSERT (Private != NULL && Ipv6Support != NULL);
@@ -496,16 +494,16 @@ PxeBcCheckIpv6Support (
Status = gBS->HandleProtocol (
Handle,
&gEfiAdapterInformationProtocolGuid,
- (VOID *) &Aip
+ (VOID *)&Aip
);
- if (EFI_ERROR (Status) || Aip == NULL) {
+ if (EFI_ERROR (Status) || (Aip == NULL)) {
return EFI_NOT_FOUND;
}
InfoTypesBuffer = NULL;
InfoTypeBufferCount = 0;
- Status = Aip->GetSupportedTypes (Aip, &InfoTypesBuffer, &InfoTypeBufferCount);
- if (EFI_ERROR (Status) || InfoTypesBuffer == NULL) {
+ Status = Aip->GetSupportedTypes (Aip, &InfoTypesBuffer, &InfoTypeBufferCount);
+ if (EFI_ERROR (Status) || (InfoTypesBuffer == NULL)) {
FreePool (InfoTypesBuffer);
return EFI_NOT_FOUND;
}
@@ -528,16 +526,15 @@ PxeBcCheckIpv6Support (
//
InfoBlock = NULL;
InfoBlockSize = 0;
- Status = Aip->GetInformation (Aip, &gEfiAdapterInfoUndiIpv6SupportGuid, &InfoBlock, &InfoBlockSize);
- if (EFI_ERROR (Status) || InfoBlock == NULL) {
+ Status = Aip->GetInformation (Aip, &gEfiAdapterInfoUndiIpv6SupportGuid, &InfoBlock, &InfoBlockSize);
+ if (EFI_ERROR (Status) || (InfoBlock == NULL)) {
FreePool (InfoBlock);
return EFI_NOT_FOUND;
}
- *Ipv6Support = ((EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT *) InfoBlock)->Ipv6Support;
+ *Ipv6Support = ((EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT *)InfoBlock)->Ipv6Support;
FreePool (InfoBlock);
return EFI_SUCCESS;
-
}
/**
@@ -558,14 +555,14 @@ PxeBcCreateIp4Children (
IN PXEBC_PRIVATE_DATA *Private
)
{
- EFI_STATUS Status;
- IPv4_DEVICE_PATH Ip4Node;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_UDP4_CONFIG_DATA *Udp4CfgData;
- EFI_IP4_CONFIG_DATA *Ip4CfgData;
- EFI_IP4_MODE_DATA Ip4ModeData;
- PXEBC_PRIVATE_PROTOCOL *Id;
- EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
+ EFI_STATUS Status;
+ IPv4_DEVICE_PATH Ip4Node;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_UDP4_CONFIG_DATA *Udp4CfgData;
+ EFI_IP4_CONFIG_DATA *Ip4CfgData;
+ EFI_IP4_MODE_DATA Ip4ModeData;
+ PXEBC_PRIVATE_PROTOCOL *Id;
+ EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
if (Private->Ip4Nic != NULL) {
//
@@ -590,7 +587,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->Dhcp4Child,
&gEfiDhcp4ProtocolGuid,
- (VOID **) &Private->Dhcp4,
+ (VOID **)&Private->Dhcp4,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -615,7 +612,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->Mtftp4Child,
&gEfiMtftp4ProtocolGuid,
- (VOID **) &Private->Mtftp4,
+ (VOID **)&Private->Mtftp4,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -640,7 +637,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->Udp4ReadChild,
&gEfiUdp4ProtocolGuid,
- (VOID **) &Private->Udp4Read,
+ (VOID **)&Private->Udp4Read,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -665,7 +662,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->Udp4WriteChild,
&gEfiUdp4ProtocolGuid,
- (VOID **) &Private->Udp4Write,
+ (VOID **)&Private->Udp4Write,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -690,7 +687,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->ArpChild,
&gEfiArpProtocolGuid,
- (VOID **) &Private->Arp,
+ (VOID **)&Private->Arp,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -715,7 +712,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->Ip4Child,
&gEfiIp4ProtocolGuid,
- (VOID **) &Private->Ip4,
+ (VOID **)&Private->Ip4,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -742,13 +739,13 @@ PxeBcCreateIp4Children (
Private->Ip4Nic->Private = Private;
Private->Ip4Nic->Signature = PXEBC_VIRTUAL_NIC_SIGNATURE;
- //
+ //
// Locate Ip4->Ip4Config2 and store it for set IPv4 Policy.
//
Status = gBS->HandleProtocol (
ControllerHandle,
&gEfiIp4Config2ProtocolGuid,
- (VOID **) &Private->Ip4Config2
+ (VOID **)&Private->Ip4Config2
);
if (EFI_ERROR (Status)) {
goto ON_ERROR;
@@ -817,7 +814,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
Private->Ip4Nic->Controller,
&gEfiSimpleNetworkProtocolGuid,
- (VOID **) &Snp,
+ (VOID **)&Snp,
This->DriverBindingHandle,
Private->Ip4Nic->Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -834,7 +831,7 @@ PxeBcCreateIp4Children (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiCallerIdGuid,
- (VOID **) &Id,
+ (VOID **)&Id,
This->DriverBindingHandle,
Private->Ip4Nic->Controller,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -846,9 +843,9 @@ PxeBcCreateIp4Children (
//
// Set default configure data for Udp4Read and Ip4 instance.
//
- Mode = Private->PxeBc.Mode;
- Udp4CfgData = &Private->Udp4CfgData;
- Ip4CfgData = &Private->Ip4CfgData;
+ Mode = Private->PxeBc.Mode;
+ Udp4CfgData = &Private->Udp4CfgData;
+ Ip4CfgData = &Private->Ip4CfgData;
Udp4CfgData->AcceptBroadcast = FALSE;
Udp4CfgData->AcceptAnyPort = TRUE;
@@ -858,12 +855,12 @@ PxeBcCreateIp4Children (
Udp4CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
Udp4CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME;
- Ip4CfgData->AcceptIcmpErrors = TRUE;
- Ip4CfgData->DefaultProtocol = EFI_IP_PROTO_ICMP;
- Ip4CfgData->TypeOfService = Mode->ToS;
- Ip4CfgData->TimeToLive = Mode->TTL;
- Ip4CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
- Ip4CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME;
+ Ip4CfgData->AcceptIcmpErrors = TRUE;
+ Ip4CfgData->DefaultProtocol = EFI_IP_PROTO_ICMP;
+ Ip4CfgData->TypeOfService = Mode->ToS;
+ Ip4CfgData->TimeToLive = Mode->TTL;
+ Ip4CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
+ Ip4CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME;
return EFI_SUCCESS;
@@ -872,7 +869,6 @@ ON_ERROR:
return Status;
}
-
/**
Create the opened instances based on IPv6.
@@ -891,14 +887,14 @@ PxeBcCreateIp6Children (
IN PXEBC_PRIVATE_DATA *Private
)
{
- EFI_STATUS Status;
- IPv6_DEVICE_PATH Ip6Node;
- EFI_UDP6_CONFIG_DATA *Udp6CfgData;
- EFI_IP6_CONFIG_DATA *Ip6CfgData;
- EFI_IP6_MODE_DATA Ip6ModeData;
- PXEBC_PRIVATE_PROTOCOL *Id;
- EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
- UINTN Index;
+ EFI_STATUS Status;
+ IPv6_DEVICE_PATH Ip6Node;
+ EFI_UDP6_CONFIG_DATA *Udp6CfgData;
+ EFI_IP6_CONFIG_DATA *Ip6CfgData;
+ EFI_IP6_MODE_DATA Ip6ModeData;
+ PXEBC_PRIVATE_PROTOCOL *Id;
+ EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
+ UINTN Index;
if (Private->Ip6Nic != NULL) {
//
@@ -932,7 +928,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
Private->Dhcp6Child,
&gEfiDhcp6ProtocolGuid,
- (VOID **) &Private->Dhcp6,
+ (VOID **)&Private->Dhcp6,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -967,7 +963,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
Private->Mtftp6Child,
&gEfiMtftp6ProtocolGuid,
- (VOID **) &Private->Mtftp6,
+ (VOID **)&Private->Mtftp6,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -992,7 +988,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
Private->Udp6ReadChild,
&gEfiUdp6ProtocolGuid,
- (VOID **) &Private->Udp6Read,
+ (VOID **)&Private->Udp6Read,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -1017,7 +1013,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
Private->Udp6WriteChild,
&gEfiUdp6ProtocolGuid,
- (VOID **) &Private->Udp6Write,
+ (VOID **)&Private->Udp6Write,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -1042,7 +1038,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
Private->Ip6Child,
&gEfiIp6ProtocolGuid,
- (VOID **) &Private->Ip6,
+ (VOID **)&Private->Ip6,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -1091,7 +1087,7 @@ PxeBcCreateIp6Children (
Status = gBS->HandleProtocol (
ControllerHandle,
&gEfiIp6ConfigProtocolGuid,
- (VOID **) &Private->Ip6Cfg
+ (VOID **)&Private->Ip6Cfg
);
if (EFI_ERROR (Status)) {
goto ON_ERROR;
@@ -1101,9 +1097,9 @@ PxeBcCreateIp6Children (
// Create a device path node for Ipv6 virtual nic, and append it.
//
ZeroMem (&Ip6Node, sizeof (IPv6_DEVICE_PATH));
- Ip6Node.Header.Type = MESSAGING_DEVICE_PATH;
- Ip6Node.Header.SubType = MSG_IPv6_DP;
- Ip6Node.PrefixLength = IP6_PREFIX_LENGTH;
+ Ip6Node.Header.Type = MESSAGING_DEVICE_PATH;
+ Ip6Node.Header.SubType = MSG_IPv6_DP;
+ Ip6Node.PrefixLength = IP6_PREFIX_LENGTH;
SetDevicePathNodeLength (&Ip6Node.Header, sizeof (Ip6Node));
@@ -1160,7 +1156,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
Private->Ip6Nic->Controller,
&gEfiSimpleNetworkProtocolGuid,
- (VOID **) &Snp,
+ (VOID **)&Snp,
This->DriverBindingHandle,
Private->Ip6Nic->Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -1177,7 +1173,7 @@ PxeBcCreateIp6Children (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiCallerIdGuid,
- (VOID **) &Id,
+ (VOID **)&Id,
This->DriverBindingHandle,
Private->Ip6Nic->Controller,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -1195,15 +1191,15 @@ PxeBcCreateIp6Children (
//
// Fail to get the data whether UNDI supports IPv6. Set default value.
//
- Private->Mode.Ipv6Available = TRUE;
+ Private->Mode.Ipv6Available = TRUE;
}
if (!Private->Mode.Ipv6Available) {
goto ON_ERROR;
}
- Udp6CfgData = &Private->Udp6CfgData;
- Ip6CfgData = &Private->Ip6CfgData;
+ Udp6CfgData = &Private->Udp6CfgData;
+ Ip6CfgData = &Private->Ip6CfgData;
Udp6CfgData->AcceptAnyPort = TRUE;
Udp6CfgData->AllowDuplicatePort = TRUE;
@@ -1211,11 +1207,11 @@ PxeBcCreateIp6Children (
Udp6CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
Udp6CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME;
- Ip6CfgData->AcceptIcmpErrors = TRUE;
- Ip6CfgData->DefaultProtocol = IP6_ICMP;
- Ip6CfgData->HopLimit = PXEBC_DEFAULT_HOPLIMIT;
- Ip6CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
- Ip6CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME;
+ Ip6CfgData->AcceptIcmpErrors = TRUE;
+ Ip6CfgData->DefaultProtocol = IP6_ICMP;
+ Ip6CfgData->HopLimit = PXEBC_DEFAULT_HOPLIMIT;
+ Ip6CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME;
+ Ip6CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME;
return EFI_SUCCESS;
@@ -1224,7 +1220,6 @@ ON_ERROR:
return Status;
}
-
/**
The entry point for UefiPxeBc driver that installs the driver
binding and component name protocol on its image.
@@ -1239,8 +1234,8 @@ ON_ERROR:
EFI_STATUS
EFIAPI
PxeBcDriverEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -1304,10 +1299,10 @@ PxeBcSupported (
IN UINT8 IpVersion
)
{
- EFI_STATUS Status;
- EFI_GUID *DhcpServiceBindingGuid;
- EFI_GUID *MtftpServiceBindingGuid;
-
+ EFI_STATUS Status;
+ EFI_GUID *DhcpServiceBindingGuid;
+ EFI_GUID *MtftpServiceBindingGuid;
+
if (IpVersion == IP_VERSION_4) {
DhcpServiceBindingGuid = &gEfiDhcp4ServiceBindingProtocolGuid;
MtftpServiceBindingGuid = &gEfiMtftp4ServiceBindingProtocolGuid;
@@ -1320,22 +1315,22 @@ PxeBcSupported (
// Try to open the Mtftp and Dhcp protocol to test whether IP stack is ready.
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- DhcpServiceBindingGuid,
- NULL,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL
- );
+ ControllerHandle,
+ DhcpServiceBindingGuid,
+ NULL,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_TEST_PROTOCOL
+ );
if (!EFI_ERROR (Status)) {
Status = gBS->OpenProtocol (
- ControllerHandle,
- MtftpServiceBindingGuid,
- NULL,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL
- );
+ ControllerHandle,
+ MtftpServiceBindingGuid,
+ NULL,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_TEST_PROTOCOL
+ );
}
//
@@ -1373,20 +1368,20 @@ PxeBcStart (
IN UINT8 IpVersion
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_STATUS Status;
- PXEBC_PRIVATE_PROTOCOL *Id;
- BOOLEAN FirstStart;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ PXEBC_PRIVATE_PROTOCOL *Id;
+ BOOLEAN FirstStart;
FirstStart = FALSE;
- Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiCallerIdGuid,
- (VOID **) &Id,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiCallerIdGuid,
+ (VOID **)&Id,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (!EFI_ERROR (Status)) {
//
// Skip the initialization if the driver has been started already.
@@ -1423,7 +1418,7 @@ PxeBcStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &Private->DevicePath,
+ (VOID **)&Private->DevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1439,7 +1434,7 @@ PxeBcStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiNetworkInterfaceIdentifierProtocolGuid_31,
- (VOID **) &Private->Nii,
+ (VOID **)&Private->Nii,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1467,7 +1462,7 @@ PxeBcStart (
//
// Try to locate SNP protocol.
//
- NetLibGetSnpHandle(ControllerHandle, &Private->Snp);
+ NetLibGetSnpHandle (ControllerHandle, &Private->Snp);
}
if (IpVersion == IP_VERSION_4) {
@@ -1481,6 +1476,7 @@ PxeBcStart (
//
Status = PxeBcCreateIp6Children (This, ControllerHandle, Private);
}
+
if (EFI_ERROR (Status)) {
//
// Failed to start PXE driver if IPv4 and IPv6 stack are both not available.
@@ -1506,14 +1502,13 @@ ON_ERROR:
PxeBcDestroyIp6Children (This, Private);
}
- if (FirstStart && Private != NULL) {
+ if (FirstStart && (Private != NULL)) {
FreePool (Private);
}
return Status;
}
-
/**
Stop this driver on ControllerHandle. This is the worker function for
PxeBcIp4(6)DriverBindingStop.
@@ -1540,12 +1535,12 @@ PxeBcStop (
IN UINT8 IpVersion
)
{
- PXEBC_PRIVATE_DATA *Private;
- PXEBC_VIRTUAL_NIC *VirtualNic;
- EFI_LOAD_FILE_PROTOCOL *LoadFile;
- EFI_STATUS Status;
- EFI_HANDLE NicHandle;
- PXEBC_PRIVATE_PROTOCOL *Id;
+ PXEBC_PRIVATE_DATA *Private;
+ PXEBC_VIRTUAL_NIC *VirtualNic;
+ EFI_LOAD_FILE_PROTOCOL *LoadFile;
+ EFI_STATUS Status;
+ EFI_HANDLE NicHandle;
+ PXEBC_PRIVATE_PROTOCOL *Id;
Private = NULL;
NicHandle = NULL;
@@ -1556,7 +1551,7 @@ PxeBcStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiLoadFileProtocolGuid,
- (VOID **) &LoadFile,
+ (VOID **)&LoadFile,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1570,6 +1565,7 @@ PxeBcStop (
} else {
NicHandle = PxeBcGetNicByIp6Children (ControllerHandle);
}
+
if (NicHandle == NULL) {
return EFI_SUCCESS;
}
@@ -1580,7 +1576,7 @@ PxeBcStop (
Status = gBS->OpenProtocol (
NicHandle,
&gEfiCallerIdGuid,
- (VOID **) &Id,
+ (VOID **)&Id,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1588,8 +1584,8 @@ PxeBcStop (
if (EFI_ERROR (Status)) {
return Status;
}
- Private = PXEBC_PRIVATE_DATA_FROM_ID (Id);
+ Private = PXEBC_PRIVATE_DATA_FROM_ID (Id);
} else {
//
// It's a virtual handle with LoadFileProtocol.
@@ -1597,7 +1593,7 @@ PxeBcStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiLoadFileProtocolGuid,
- (VOID **) &LoadFile,
+ (VOID **)&LoadFile,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1615,20 +1611,19 @@ PxeBcStop (
// Stop functionality of PXE Base Code protocol
//
Status = Private->PxeBc.Stop (&Private->PxeBc);
- if (Status != EFI_SUCCESS && Status != EFI_NOT_STARTED) {
+ if ((Status != EFI_SUCCESS) && (Status != EFI_NOT_STARTED)) {
return Status;
}
-
- if (Private->Ip4Nic != NULL && IpVersion == IP_VERSION_4) {
+ if ((Private->Ip4Nic != NULL) && (IpVersion == IP_VERSION_4)) {
PxeBcDestroyIp4Children (This, Private);
}
- if (Private->Ip6Nic != NULL && IpVersion == IP_VERSION_6) {
+ if ((Private->Ip6Nic != NULL) && (IpVersion == IP_VERSION_6)) {
PxeBcDestroyIp6Children (This, Private);
}
- if (Private->Ip4Nic == NULL && Private->Ip6Nic == NULL) {
+ if ((Private->Ip4Nic == NULL) && (Private->Ip6Nic == NULL)) {
gBS->UninstallProtocolInterface (
NicHandle,
&gEfiCallerIdGuid,
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.h
@@ -16,8 +16,8 @@
#ifndef __EFI_PXEBC_DRIVER_H__
#define __EFI_PXEBC_DRIVER_H__
-extern EFI_COMPONENT_NAME_PROTOCOL gPxeBcComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gPxeBcComponentName2;
+extern EFI_COMPONENT_NAME_PROTOCOL gPxeBcComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gPxeBcComponentName2;
/**
Test to see if this driver supports ControllerHandle. This service
@@ -70,7 +70,6 @@ PxeBcIp4DriverBindingStart (
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
);
-
/**
Stop this driver on ControllerHandle. This service is called by the
EFI boot service DisconnectController(). In order to
@@ -177,5 +176,5 @@ PxeBcIp6DriverBindingStop (
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
);
-#endif
+#endif
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
@@ -15,7 +15,6 @@
#include "PxeBcImpl.h"
-
/**
Enables the use of the PXE Base Code Protocol functions.
@@ -48,8 +47,8 @@
EFI_STATUS
EFIAPI
EfiPxeBcStart (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN BOOLEAN UseIpv6
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN BOOLEAN UseIpv6
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -71,9 +70,9 @@ EfiPxeBcStart (
//
// Detect whether using IPv6 or not, and set it into mode data.
//
- if (UseIpv6 && Mode->Ipv6Available && Mode->Ipv6Supported && Private->Ip6Nic != NULL) {
+ if (UseIpv6 && Mode->Ipv6Available && Mode->Ipv6Supported && (Private->Ip6Nic != NULL)) {
Mode->UsingIpv6 = TRUE;
- } else if (!UseIpv6 && Private->Ip4Nic != NULL) {
+ } else if (!UseIpv6 && (Private->Ip4Nic != NULL)) {
Mode->UsingIpv6 = FALSE;
} else {
return EFI_UNSUPPORTED;
@@ -96,7 +95,7 @@ EfiPxeBcStart (
// Configure block size for TFTP as a default value to handle all link layers.
//
Private->BlockSize = Private->Ip6MaxPacketSize -
- PXEBC_DEFAULT_UDP_OVERHEAD_SIZE - PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE;
+ PXEBC_DEFAULT_UDP_OVERHEAD_SIZE - PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE;
//
// PXE over IPv6 starts here, initialize the fields and list header.
@@ -114,13 +113,13 @@ EfiPxeBcStart (
// Create event and set status for token to capture ICMP6 error message.
//
Private->Icmp6Token.Status = EFI_NOT_READY;
- Status = gBS->CreateEvent (
- EVT_NOTIFY_SIGNAL,
- TPL_NOTIFY,
- PxeBcIcmp6ErrorUpdate,
- Private,
- &Private->Icmp6Token.Event
- );
+ Status = gBS->CreateEvent (
+ EVT_NOTIFY_SIGNAL,
+ TPL_NOTIFY,
+ PxeBcIcmp6ErrorUpdate,
+ Private,
+ &Private->Icmp6Token.Event
+ );
if (EFI_ERROR (Status)) {
goto ON_ERROR;
}
@@ -149,7 +148,7 @@ EfiPxeBcStart (
// Configure block size for TFTP as a default value to handle all link layers.
//
Private->BlockSize = Private->Ip4MaxPacketSize -
- PXEBC_DEFAULT_UDP_OVERHEAD_SIZE - PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE;
+ PXEBC_DEFAULT_UDP_OVERHEAD_SIZE - PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE;
//
// PXE over IPv4 starts here, initialize the fields.
@@ -194,23 +193,23 @@ EfiPxeBcStart (
// Create event and set status for token to capture ICMP error message.
//
Private->Icmp6Token.Status = EFI_NOT_READY;
- Status = gBS->CreateEvent (
- EVT_NOTIFY_SIGNAL,
- TPL_NOTIFY,
- PxeBcIcmpErrorUpdate,
- Private,
- &Private->IcmpToken.Event
- );
+ Status = gBS->CreateEvent (
+ EVT_NOTIFY_SIGNAL,
+ TPL_NOTIFY,
+ PxeBcIcmpErrorUpdate,
+ Private,
+ &Private->IcmpToken.Event
+ );
if (EFI_ERROR (Status)) {
goto ON_ERROR;
}
//
- //DHCP4 service allows only one of its children to be configured in
- //the active state, If the DHCP4 D.O.R.A started by IP4 auto
- //configuration and has not been completed, the Dhcp4 state machine
- //will not be in the right state for the PXE to start a new round D.O.R.A.
- //so we need to switch it's policy to static.
+ // DHCP4 service allows only one of its children to be configured in
+ // the active state, If the DHCP4 D.O.R.A started by IP4 auto
+ // configuration and has not been completed, the Dhcp4 state machine
+ // will not be in the right state for the PXE to start a new round D.O.R.A.
+ // so we need to switch its policy to static.
//
Status = PxeBcSetIp4Policy (Private);
if (EFI_ERROR (Status)) {
@@ -222,7 +221,7 @@ EfiPxeBcStart (
// If PcdTftpBlockSize is set to non-zero, override the default value.
//
if (PcdGet64 (PcdTftpBlockSize) != 0) {
- Private->BlockSize = (UINTN) PcdGet64 (PcdTftpBlockSize);
+ Private->BlockSize = (UINTN)PcdGet64 (PcdTftpBlockSize);
}
//
@@ -250,6 +249,7 @@ ON_ERROR:
gBS->CloseEvent (Private->Icmp6Token.Event);
Private->Icmp6Token.Event = NULL;
}
+
Private->Udp6Read->Configure (Private->Udp6Read, NULL);
Private->Ip6->Configure (Private->Ip6, NULL);
} else {
@@ -257,17 +257,19 @@ ON_ERROR:
gBS->CloseEvent (Private->ArpUpdateEvent);
Private->ArpUpdateEvent = NULL;
}
+
if (Private->IcmpToken.Event != NULL) {
gBS->CloseEvent (Private->IcmpToken.Event);
Private->IcmpToken.Event = NULL;
}
+
Private->Udp4Read->Configure (Private->Udp4Read, NULL);
Private->Ip4->Configure (Private->Ip4, NULL);
}
+
return Status;
}
-
/**
Disable the use of the PXE Base Code Protocol functions.
@@ -288,7 +290,7 @@ ON_ERROR:
EFI_STATUS
EFIAPI
EfiPxeBcStop (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -327,10 +329,12 @@ EfiPxeBcStop (
gBS->CloseEvent (Private->Icmp6Token.Event);
Private->Icmp6Token.Event = NULL;
}
+
if (Private->Dhcp6Request != NULL) {
FreePool (Private->Dhcp6Request);
Private->Dhcp6Request = NULL;
}
+
if (Private->BootFileName != NULL) {
FreePool (Private->BootFileName);
Private->BootFileName = NULL;
@@ -354,10 +358,12 @@ EfiPxeBcStop (
gBS->CloseEvent (Private->ArpUpdateEvent);
Private->ArpUpdateEvent = NULL;
}
+
if (Private->IcmpToken.Event != NULL) {
gBS->CloseEvent (Private->IcmpToken.Event);
Private->IcmpToken.Event = NULL;
}
+
Private->BootFileName = NULL;
}
@@ -384,7 +390,6 @@ EfiPxeBcStop (
return EFI_SUCCESS;
}
-
/**
Attempts to complete a DHCPv4 D.O.R.A. (discover / offer / request / acknowledge) or DHCPv6
S.A.R.R (solicit / advertise / request / reply) sequence.
@@ -416,8 +421,8 @@ EfiPxeBcStop (
EFI_STATUS
EFIAPI
EfiPxeBcDhcp (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN BOOLEAN SortOffers
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN BOOLEAN SortOffers
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -443,7 +448,6 @@ EfiPxeBcDhcp (
}
if (Mode->UsingIpv6) {
-
//
// Stop Udp6Read instance
//
@@ -454,7 +458,6 @@ EfiPxeBcDhcp (
//
Status = PxeBcDhcp6Sarr (Private, Private->Dhcp6);
} else {
-
//
// Stop Udp4Read instance
//
@@ -474,18 +477,18 @@ EfiPxeBcDhcp (
} else {
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
}
+
//
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
// receive filter list emptied and the filter set to EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP.
//
- ZeroMem(&IpFilter, sizeof (EFI_PXE_BASE_CODE_IP_FILTER));
+ ZeroMem (&IpFilter, sizeof (EFI_PXE_BASE_CODE_IP_FILTER));
IpFilter.Filters = EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP;
This->SetIpFilter (This, &IpFilter);
return Status;
}
-
/**
Attempts to complete the PXE Boot Server and/or boot image discovery sequence.
@@ -540,15 +543,15 @@ EfiPxeBcDiscover (
IN EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_PXE_BASE_CODE_DISCOVER_INFO DefaultInfo;
- EFI_PXE_BASE_CODE_SRVLIST *SrvList;
- PXEBC_BOOT_SVR_ENTRY *BootSvrEntry;
- UINT16 Index;
- EFI_STATUS Status;
- EFI_PXE_BASE_CODE_IP_FILTER IpFilter;
- EFI_PXE_BASE_CODE_DISCOVER_INFO *NewCreatedInfo;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_PXE_BASE_CODE_DISCOVER_INFO DefaultInfo;
+ EFI_PXE_BASE_CODE_SRVLIST *SrvList;
+ PXEBC_BOOT_SVR_ENTRY *BootSvrEntry;
+ UINT16 Index;
+ EFI_STATUS Status;
+ EFI_PXE_BASE_CODE_IP_FILTER IpFilter;
+ EFI_PXE_BASE_CODE_DISCOVER_INFO *NewCreatedInfo;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
@@ -575,13 +578,11 @@ EfiPxeBcDiscover (
}
if (Mode->UsingIpv6) {
-
//
// Stop Udp6Read instance
//
Private->Udp6Read->Configure (Private->Udp6Read, NULL);
} else {
-
//
// Stop Udp4Read instance
//
@@ -598,7 +599,8 @@ EfiPxeBcDiscover (
//
if (!Mode->PxeDiscoverValid ||
!Mode->PxeReplyReceived ||
- (!Mode->PxeBisReplyReceived && UseBis)) {
+ (!Mode->PxeBisReplyReceived && UseBis))
+ {
Status = EFI_INVALID_PARAMETER;
goto ON_EXIT;
}
@@ -611,16 +613,16 @@ EfiPxeBcDiscover (
SrvList[0].AcceptAnyResponse = FALSE;
CopyMem (&SrvList->IpAddr, &Private->ServerIp, sizeof (EFI_IP_ADDRESS));
-
} else if (Info == NULL) {
//
// 2. Extract the discover information from the cached packets if unspecified.
//
NewCreatedInfo = &DefaultInfo;
- Status = PxeBcExtractDiscoverInfo (Private, Type, &NewCreatedInfo, &BootSvrEntry, &SrvList);
+ Status = PxeBcExtractDiscoverInfo (Private, Type, &NewCreatedInfo, &BootSvrEntry, &SrvList);
if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
+
ASSERT (NewCreatedInfo != NULL);
Info = NewCreatedInfo;
} else {
@@ -635,6 +637,7 @@ EfiPxeBcDiscover (
break;
}
}
+
if (Index != Info->IpCnt) {
//
// It's invalid if the first server doesn't accecpt any response
@@ -650,7 +653,8 @@ EfiPxeBcDiscover (
// Info and BootSvrEntry/SrvList are all ready by now, so execute discover by UniCast/BroadCast/MultiCast.
//
if ((!Info->UseUCast && !Info->UseBCast && !Info->UseMCast) ||
- (Info->MustUseList && Info->IpCnt == 0)) {
+ (Info->MustUseList && (Info->IpCnt == 0)))
+ {
Status = EFI_INVALID_PARAMETER;
goto ON_EXIT;
}
@@ -670,7 +674,6 @@ EfiPxeBcDiscover (
Info->IpCnt,
SrvList
);
-
} else if (Info->UseBCast) {
//
// Do discover by broadcast, but only valid for IPv4.
@@ -685,7 +688,6 @@ EfiPxeBcDiscover (
Info->IpCnt,
SrvList
);
-
} else if (Info->UseUCast) {
//
// Do discover by unicast.
@@ -708,7 +710,7 @@ EfiPxeBcDiscover (
Info->IpCnt,
SrvList
);
- }
+ }
}
if (!EFI_ERROR (Status)) {
@@ -742,7 +744,7 @@ EfiPxeBcDiscover (
ON_EXIT:
- if (NewCreatedInfo != NULL && NewCreatedInfo != &DefaultInfo) {
+ if ((NewCreatedInfo != NULL) && (NewCreatedInfo != &DefaultInfo)) {
FreePool (NewCreatedInfo);
}
@@ -756,14 +758,13 @@ ON_EXIT:
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
// receive filter list emptied and the filter set to EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP.
//
- ZeroMem(&IpFilter, sizeof (EFI_PXE_BASE_CODE_IP_FILTER));
+ ZeroMem (&IpFilter, sizeof (EFI_PXE_BASE_CODE_IP_FILTER));
IpFilter.Filters = EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP;
This->SetIpFilter (This, &IpFilter);
return Status;
}
-
/**
Used to perform TFTP and MTFTP services.
@@ -830,47 +831,47 @@ ON_EXIT:
EFI_STATUS
EFIAPI
EfiPxeBcMtftp (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,
- IN OUT VOID *BufferPtr OPTIONAL,
- IN BOOLEAN Overwrite,
- IN OUT UINT64 *BufferSize,
- IN UINTN *BlockSize OPTIONAL,
- IN EFI_IP_ADDRESS *ServerIp,
- IN UINT8 *Filename,
- IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL,
- IN BOOLEAN DontUseBuffer
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,
+ IN OUT VOID *BufferPtr OPTIONAL,
+ IN BOOLEAN Overwrite,
+ IN OUT UINT64 *BufferSize,
+ IN UINTN *BlockSize OPTIONAL,
+ IN EFI_IP_ADDRESS *ServerIp,
+ IN UINT8 *Filename,
+ IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL,
+ IN BOOLEAN DontUseBuffer
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_MTFTP4_CONFIG_DATA Mtftp4Config;
- EFI_MTFTP6_CONFIG_DATA Mtftp6Config;
- VOID *Config;
- EFI_STATUS Status;
- EFI_PXE_BASE_CODE_IP_FILTER IpFilter;
-
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_MTFTP4_CONFIG_DATA Mtftp4Config;
+ EFI_MTFTP6_CONFIG_DATA Mtftp6Config;
+ VOID *Config;
+ EFI_STATUS Status;
+ EFI_PXE_BASE_CODE_IP_FILTER IpFilter;
if ((This == NULL) ||
(Filename == NULL) ||
(BufferSize == NULL) ||
(ServerIp == NULL) ||
((BufferPtr == NULL) && DontUseBuffer) ||
- ((BlockSize != NULL) && (*BlockSize < PXE_MTFTP_DEFAULT_BLOCK_SIZE))) {
+ ((BlockSize != NULL) && (*BlockSize < PXE_MTFTP_DEFAULT_BLOCK_SIZE)))
+ {
return EFI_INVALID_PARAMETER;
}
- Config = NULL;
- Status = EFI_DEVICE_ERROR;
- Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);
- Mode = Private->PxeBc.Mode;
+ Config = NULL;
+ Status = EFI_DEVICE_ERROR;
+ Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);
+ Mode = Private->PxeBc.Mode;
if (Mode->UsingIpv6) {
if (!NetIp6IsValidUnicast (&ServerIp->v6)) {
return EFI_INVALID_PARAMETER;
}
} else {
- if (IP4_IS_UNSPECIFIED (NTOHL (ServerIp->Addr[0])) || IP4_IS_LOCAL_BROADCAST (NTOHL (ServerIp->Addr[0]))) {
+ if (IP4_IS_UNSPECIFIED (NTOHL (ServerIp->Addr[0])) || IP4_IS_LOCAL_BROADCAST (NTOHL (ServerIp->Addr[0]))) {
return EFI_INVALID_PARAMETER;
}
}
@@ -880,9 +881,9 @@ EfiPxeBcMtftp (
// Set configuration data for Mtftp6 instance.
//
ZeroMem (&Mtftp6Config, sizeof (EFI_MTFTP6_CONFIG_DATA));
- Config = &Mtftp6Config;
- Mtftp6Config.TimeoutValue = PXEBC_MTFTP_TIMEOUT;
- Mtftp6Config.TryCount = PXEBC_MTFTP_RETRIES;
+ Config = &Mtftp6Config;
+ Mtftp6Config.TimeoutValue = PXEBC_MTFTP_TIMEOUT;
+ Mtftp6Config.TryCount = PXEBC_MTFTP_RETRIES;
CopyMem (&Mtftp6Config.StationIp, &Private->StationIp.v6, sizeof (EFI_IPv6_ADDRESS));
CopyMem (&Mtftp6Config.ServerIp, &ServerIp->v6, sizeof (EFI_IPv6_ADDRESS));
//
@@ -912,80 +913,79 @@ EfiPxeBcMtftp (
Mode->IcmpErrorReceived = FALSE;
switch (Operation) {
+ case EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE:
+ //
+ // Send TFTP request to get file size.
+ //
+ Status = PxeBcTftpGetFileSize (
+ Private,
+ Config,
+ Filename,
+ BlockSize,
+ BufferSize
+ );
- case EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE:
- //
- // Send TFTP request to get file size.
- //
- Status = PxeBcTftpGetFileSize (
- Private,
- Config,
- Filename,
- BlockSize,
- BufferSize
- );
-
- break;
+ break;
- case EFI_PXE_BASE_CODE_TFTP_READ_FILE:
- //
- // Send TFTP request to read file.
- //
- Status = PxeBcTftpReadFile (
- Private,
- Config,
- Filename,
- BlockSize,
- BufferPtr,
- BufferSize,
- DontUseBuffer
- );
+ case EFI_PXE_BASE_CODE_TFTP_READ_FILE:
+ //
+ // Send TFTP request to read file.
+ //
+ Status = PxeBcTftpReadFile (
+ Private,
+ Config,
+ Filename,
+ BlockSize,
+ BufferPtr,
+ BufferSize,
+ DontUseBuffer
+ );
- break;
+ break;
- case EFI_PXE_BASE_CODE_TFTP_WRITE_FILE:
- //
- // Send TFTP request to write file.
- //
- Status = PxeBcTftpWriteFile (
- Private,
- Config,
- Filename,
- Overwrite,
- BlockSize,
- BufferPtr,
- BufferSize
- );
+ case EFI_PXE_BASE_CODE_TFTP_WRITE_FILE:
+ //
+ // Send TFTP request to write file.
+ //
+ Status = PxeBcTftpWriteFile (
+ Private,
+ Config,
+ Filename,
+ Overwrite,
+ BlockSize,
+ BufferPtr,
+ BufferSize
+ );
- break;
+ break;
- case EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY:
- //
- // Send TFTP request to read directory.
- //
- Status = PxeBcTftpReadDirectory (
- Private,
- Config,
- Filename,
- BlockSize,
- BufferPtr,
- BufferSize,
- DontUseBuffer
- );
+ case EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY:
+ //
+ // Send TFTP request to read directory.
+ //
+ Status = PxeBcTftpReadDirectory (
+ Private,
+ Config,
+ Filename,
+ BlockSize,
+ BufferPtr,
+ BufferSize,
+ DontUseBuffer
+ );
- break;
+ break;
- case EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE:
- case EFI_PXE_BASE_CODE_MTFTP_READ_FILE:
- case EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY:
- Status = EFI_UNSUPPORTED;
+ case EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE:
+ case EFI_PXE_BASE_CODE_MTFTP_READ_FILE:
+ case EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY:
+ Status = EFI_UNSUPPORTED;
- break;
+ break;
- default:
- Status = EFI_INVALID_PARAMETER;
+ default:
+ Status = EFI_INVALID_PARAMETER;
- break;
+ break;
}
if (Status == EFI_ICMP_ERROR) {
@@ -1000,18 +1000,18 @@ EfiPxeBcMtftp (
} else {
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
}
+
//
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
// receive filter list emptied and the filter set to EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP.
//
- ZeroMem(&IpFilter, sizeof (EFI_PXE_BASE_CODE_IP_FILTER));
+ ZeroMem (&IpFilter, sizeof (EFI_PXE_BASE_CODE_IP_FILTER));
IpFilter.Filters = EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP;
This->SetIpFilter (This, &IpFilter);
return Status;
}
-
/**
Writes a UDP packet to the network interface.
@@ -1052,27 +1052,27 @@ EfiPxeBcMtftp (
EFI_STATUS
EFIAPI
EfiPxeBcUdpWrite (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN UINT16 OpFlags,
- IN EFI_IP_ADDRESS *DestIp,
- IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort,
- IN EFI_IP_ADDRESS *GatewayIp OPTIONAL,
- IN EFI_IP_ADDRESS *SrcIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL,
- IN UINTN *HeaderSize OPTIONAL,
- IN VOID *HeaderPtr OPTIONAL,
- IN UINTN *BufferSize,
- IN VOID *BufferPtr
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN UINT16 OpFlags,
+ IN EFI_IP_ADDRESS *DestIp,
+ IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort,
+ IN EFI_IP_ADDRESS *GatewayIp OPTIONAL,
+ IN EFI_IP_ADDRESS *SrcIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL,
+ IN UINTN *HeaderSize OPTIONAL,
+ IN VOID *HeaderPtr OPTIONAL,
+ IN UINTN *BufferSize,
+ IN VOID *BufferPtr
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_UDP4_SESSION_DATA Udp4Session;
- EFI_UDP6_SESSION_DATA Udp6Session;
- EFI_STATUS Status;
- BOOLEAN DoNotFragment;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_UDP4_SESSION_DATA Udp4Session;
+ EFI_UDP6_SESSION_DATA Udp6Session;
+ EFI_STATUS Status;
+ BOOLEAN DoNotFragment;
- if (This == NULL || DestIp == NULL || DestPort == NULL) {
+ if ((This == NULL) || (DestIp == NULL) || (DestPort == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1085,19 +1085,20 @@ EfiPxeBcUdpWrite (
DoNotFragment = TRUE;
}
- if (!Mode->UsingIpv6 && GatewayIp != NULL && Mode->SubnetMask.Addr[0] != 0 &&
- !NetIp4IsUnicast (NTOHL (GatewayIp->Addr[0]), EFI_NTOHL(Mode->SubnetMask))) {
+ if (!Mode->UsingIpv6 && (GatewayIp != NULL) && (Mode->SubnetMask.Addr[0] != 0) &&
+ !NetIp4IsUnicast (NTOHL (GatewayIp->Addr[0]), EFI_NTOHL (Mode->SubnetMask)))
+ {
//
// Gateway is provided but it's not a unicast IPv4 address, while it will be ignored for IPv6.
//
return EFI_INVALID_PARAMETER;
}
- if (HeaderSize != NULL && (*HeaderSize == 0 || HeaderPtr == NULL)) {
+ if ((HeaderSize != NULL) && ((*HeaderSize == 0) || (HeaderPtr == NULL))) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize == NULL || (*BufferSize != 0 && BufferPtr == NULL)) {
+ if ((BufferSize == NULL) || ((*BufferSize != 0) && (BufferPtr == NULL))) {
return EFI_INVALID_PARAMETER;
}
@@ -1105,12 +1106,13 @@ EfiPxeBcUdpWrite (
return EFI_NOT_STARTED;
}
- if (!Private->IsAddressOk && SrcIp == NULL) {
+ if (!Private->IsAddressOk && (SrcIp == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (Private->CurSrcPort == 0 ||
- (SrcPort != NULL && *SrcPort != Private->CurSrcPort)) {
+ if ((Private->CurSrcPort == 0) ||
+ ((SrcPort != NULL) && (*SrcPort != Private->CurSrcPort)))
+ {
//
// Reconfigure UDPv4/UDPv6 for UdpWrite if the source port changed.
//
@@ -1163,6 +1165,7 @@ EfiPxeBcUdpWrite (
if (SrcIp != NULL) {
CopyMem (&Udp6Session.SourceAddress, SrcIp, sizeof (EFI_IPv6_ADDRESS));
}
+
if (SrcPort != NULL) {
Udp6Session.SourcePort = *SrcPort;
}
@@ -1186,9 +1189,11 @@ EfiPxeBcUdpWrite (
if (SrcIp != NULL) {
CopyMem (&Udp4Session.SourceAddress, SrcIp, sizeof (EFI_IPv4_ADDRESS));
}
+
if (SrcPort != NULL) {
Udp4Session.SourcePort = *SrcPort;
}
+
//
// Override the gateway information if user specified.
//
@@ -1196,7 +1201,7 @@ EfiPxeBcUdpWrite (
Private->Udp4Write,
&Udp4Session,
Private->UdpTimeOutEvent,
- (EFI_IPv4_ADDRESS *) GatewayIp,
+ (EFI_IPv4_ADDRESS *)GatewayIp,
HeaderSize,
HeaderPtr,
BufferSize,
@@ -1206,7 +1211,6 @@ EfiPxeBcUdpWrite (
gBS->SetTimer (Private->UdpTimeOutEvent, TimerCancel, 0);
-
//
// Reset the UdpWrite instance.
//
@@ -1219,7 +1223,6 @@ EfiPxeBcUdpWrite (
return Status;
}
-
/**
Reads a UDP packet from the network interface.
+
@@ -1260,34 +1263,34 @@ EfiPxeBcUdpWrite (
EFI_STATUS
EFIAPI
EfiPxeBcUdpRead (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN UINT16 OpFlags,
- IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
- IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL,
- IN UINTN *HeaderSize OPTIONAL,
- IN VOID *HeaderPtr OPTIONAL,
- IN OUT UINTN *BufferSize,
- IN VOID *BufferPtr
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN UINT16 OpFlags,
+ IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
+ IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL,
+ IN UINTN *HeaderSize OPTIONAL,
+ IN VOID *HeaderPtr OPTIONAL,
+ IN OUT UINTN *BufferSize,
+ IN VOID *BufferPtr
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_UDP4_COMPLETION_TOKEN Udp4Token;
- EFI_UDP6_COMPLETION_TOKEN Udp6Token;
- EFI_UDP4_RECEIVE_DATA *Udp4Rx;
- EFI_UDP6_RECEIVE_DATA *Udp6Rx;
- EFI_STATUS Status;
- BOOLEAN IsDone;
- BOOLEAN IsMatched;
- UINTN CopiedLen;
- UINTN HeaderLen;
- UINTN HeaderCopiedLen;
- UINTN BufferCopiedLen;
- UINT32 FragmentLength;
- UINTN FragmentIndex;
- UINT8 *FragmentBuffer;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_UDP4_COMPLETION_TOKEN Udp4Token;
+ EFI_UDP6_COMPLETION_TOKEN Udp6Token;
+ EFI_UDP4_RECEIVE_DATA *Udp4Rx;
+ EFI_UDP6_RECEIVE_DATA *Udp6Rx;
+ EFI_STATUS Status;
+ BOOLEAN IsDone;
+ BOOLEAN IsMatched;
+ UINTN CopiedLen;
+ UINTN HeaderLen;
+ UINTN HeaderCopiedLen;
+ UINTN BufferCopiedLen;
+ UINT32 FragmentLength;
+ UINTN FragmentIndex;
+ UINT8 *FragmentBuffer;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
@@ -1300,13 +1303,14 @@ EfiPxeBcUdpRead (
Udp4Rx = NULL;
Udp6Rx = NULL;
- if (((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT) == 0 && DestPort == NULL) ||
- ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP) == 0 && SrcIp == NULL) ||
- ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT) == 0 && SrcPort == NULL)) {
+ if ((((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT) == 0) && (DestPort == NULL)) ||
+ (((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP) == 0) && (SrcIp == NULL)) ||
+ (((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT) == 0) && (SrcPort == NULL)))
+ {
return EFI_INVALID_PARAMETER;
}
- if ((HeaderSize != NULL && *HeaderSize == 0) || (HeaderSize != NULL && HeaderPtr == NULL)) {
+ if (((HeaderSize != NULL) && (*HeaderSize == 0)) || ((HeaderSize != NULL) && (HeaderPtr == NULL))) {
return EFI_INVALID_PARAMETER;
}
@@ -1386,16 +1390,18 @@ EfiPxeBcUdpRead (
}
}
- if (Status == EFI_ICMP_ERROR ||
- Status == EFI_NETWORK_UNREACHABLE ||
- Status == EFI_HOST_UNREACHABLE ||
- Status == EFI_PROTOCOL_UNREACHABLE ||
- Status == EFI_PORT_UNREACHABLE) {
+ if ((Status == EFI_ICMP_ERROR) ||
+ (Status == EFI_NETWORK_UNREACHABLE) ||
+ (Status == EFI_HOST_UNREACHABLE) ||
+ (Status == EFI_PROTOCOL_UNREACHABLE) ||
+ (Status == EFI_PORT_UNREACHABLE))
+ {
//
// Get different return status for icmp error from Udp, refers to UEFI spec.
//
Mode->IcmpErrorReceived = TRUE;
}
+
gBS->SetTimer (Private->UdpTimeOutEvent, TimerCancel, 0);
if (IsMatched) {
@@ -1417,6 +1423,7 @@ EfiPxeBcUdpRead (
if (HeaderSize != NULL) {
*HeaderSize = HeaderLen;
}
+
*BufferSize = Udp6Rx->DataLength - HeaderLen;
HeaderCopiedLen = 0;
@@ -1428,30 +1435,31 @@ EfiPxeBcUdpRead (
//
// Copy the header part of received data.
//
- CopyMem ((UINT8 *) HeaderPtr + HeaderCopiedLen, FragmentBuffer, FragmentLength);
+ CopyMem ((UINT8 *)HeaderPtr + HeaderCopiedLen, FragmentBuffer, FragmentLength);
HeaderCopiedLen += FragmentLength;
} else if (HeaderCopiedLen < HeaderLen) {
//
// Copy the header part of received data.
//
CopiedLen = HeaderLen - HeaderCopiedLen;
- CopyMem ((UINT8 *) HeaderPtr + HeaderCopiedLen, FragmentBuffer, CopiedLen);
+ CopyMem ((UINT8 *)HeaderPtr + HeaderCopiedLen, FragmentBuffer, CopiedLen);
HeaderCopiedLen += CopiedLen;
//
// Copy the other part of received data.
//
- CopyMem ((UINT8 *) BufferPtr + BufferCopiedLen, FragmentBuffer + CopiedLen, FragmentLength - CopiedLen);
+ CopyMem ((UINT8 *)BufferPtr + BufferCopiedLen, FragmentBuffer + CopiedLen, FragmentLength - CopiedLen);
BufferCopiedLen += (FragmentLength - CopiedLen);
} else {
//
// Copy the other part of received data.
//
- CopyMem ((UINT8 *) BufferPtr + BufferCopiedLen, FragmentBuffer, FragmentLength);
+ CopyMem ((UINT8 *)BufferPtr + BufferCopiedLen, FragmentBuffer, FragmentLength);
BufferCopiedLen += FragmentLength;
}
}
}
+
//
// Recycle the receiving buffer after copy to user.
//
@@ -1471,6 +1479,7 @@ EfiPxeBcUdpRead (
if (HeaderSize != NULL) {
*HeaderSize = HeaderLen;
}
+
*BufferSize = Udp4Rx->DataLength - HeaderLen;
HeaderCopiedLen = 0;
@@ -1482,30 +1491,31 @@ EfiPxeBcUdpRead (
//
// Copy the header part of received data.
//
- CopyMem ((UINT8 *) HeaderPtr + HeaderCopiedLen, FragmentBuffer, FragmentLength);
+ CopyMem ((UINT8 *)HeaderPtr + HeaderCopiedLen, FragmentBuffer, FragmentLength);
HeaderCopiedLen += FragmentLength;
} else if (HeaderCopiedLen < HeaderLen) {
//
// Copy the header part of received data.
//
CopiedLen = HeaderLen - HeaderCopiedLen;
- CopyMem ((UINT8 *) HeaderPtr + HeaderCopiedLen, FragmentBuffer, CopiedLen);
+ CopyMem ((UINT8 *)HeaderPtr + HeaderCopiedLen, FragmentBuffer, CopiedLen);
HeaderCopiedLen += CopiedLen;
//
// Copy the other part of received data.
//
- CopyMem ((UINT8 *) BufferPtr + BufferCopiedLen, FragmentBuffer + CopiedLen, FragmentLength - CopiedLen);
+ CopyMem ((UINT8 *)BufferPtr + BufferCopiedLen, FragmentBuffer + CopiedLen, FragmentLength - CopiedLen);
BufferCopiedLen += (FragmentLength - CopiedLen);
} else {
//
// Copy the other part of received data.
//
- CopyMem ((UINT8 *) BufferPtr + BufferCopiedLen, FragmentBuffer, FragmentLength);
+ CopyMem ((UINT8 *)BufferPtr + BufferCopiedLen, FragmentBuffer, FragmentLength);
BufferCopiedLen += FragmentLength;
}
}
}
+
//
// Recycle the receiving buffer after copy to user.
//
@@ -1524,7 +1534,6 @@ EfiPxeBcUdpRead (
return Status;
}
-
/**
Updates the IP receive filters of a network device and enables software filtering.
@@ -1560,22 +1569,22 @@ EfiPxeBcUdpRead (
EFI_STATUS
EFIAPI
EfiPxeBcSetIpFilter (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter
)
{
- EFI_STATUS Status;
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- EFI_UDP4_CONFIG_DATA *Udp4Cfg;
- EFI_UDP6_CONFIG_DATA *Udp6Cfg;
- UINTN Index;
- BOOLEAN NeedPromiscuous;
- BOOLEAN AcceptPromiscuous;
- BOOLEAN AcceptBroadcast;
- BOOLEAN MultiCastUpdate;
+ EFI_STATUS Status;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ EFI_UDP4_CONFIG_DATA *Udp4Cfg;
+ EFI_UDP6_CONFIG_DATA *Udp6Cfg;
+ UINTN Index;
+ BOOLEAN NeedPromiscuous;
+ BOOLEAN AcceptPromiscuous;
+ BOOLEAN AcceptBroadcast;
+ BOOLEAN MultiCastUpdate;
- if (This == NULL || NewFilter == NULL) {
+ if ((This == NULL) || (NewFilter == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1591,22 +1600,26 @@ EfiPxeBcSetIpFilter (
for (Index = 0; Index < NewFilter->IpCnt; Index++) {
ASSERT (Index < EFI_PXE_BASE_CODE_MAX_IPCNT);
if (!Mode->UsingIpv6 &&
- IP4_IS_LOCAL_BROADCAST (EFI_IP4 (NewFilter->IpList[Index].v4))) {
+ IP4_IS_LOCAL_BROADCAST (EFI_IP4 (NewFilter->IpList[Index].v4)))
+ {
//
// IPv4 broadcast address should not be in IP filter.
//
return EFI_INVALID_PARAMETER;
}
+
if (Mode->UsingIpv6) {
- if ((NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP) != 0 &&
- NetIp6IsValidUnicast (&NewFilter->IpList[Index].v6)) {
+ if (((NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP) != 0) &&
+ NetIp6IsValidUnicast (&NewFilter->IpList[Index].v6))
+ {
NeedPromiscuous = TRUE;
}
- } else if ((EFI_NTOHL(Mode->StationIp) != 0) &&
- (EFI_NTOHL(Mode->SubnetMask) != 0) &&
- IP4_NET_EQUAL(EFI_NTOHL(Mode->StationIp), EFI_NTOHL(NewFilter->IpList[Index].v4), EFI_NTOHL(Mode->SubnetMask.v4)) &&
- NetIp4IsUnicast (EFI_IP4 (NewFilter->IpList[Index].v4), EFI_NTOHL(Mode->SubnetMask)) &&
- ((NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP) != 0)) {
+ } else if ((EFI_NTOHL (Mode->StationIp) != 0) &&
+ (EFI_NTOHL (Mode->SubnetMask) != 0) &&
+ IP4_NET_EQUAL (EFI_NTOHL (Mode->StationIp), EFI_NTOHL (NewFilter->IpList[Index].v4), EFI_NTOHL (Mode->SubnetMask.v4)) &&
+ NetIp4IsUnicast (EFI_IP4 (NewFilter->IpList[Index].v4), EFI_NTOHL (Mode->SubnetMask)) &&
+ ((NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP) != 0))
+ {
NeedPromiscuous = TRUE;
}
}
@@ -1616,8 +1629,9 @@ EfiPxeBcSetIpFilter (
MultiCastUpdate = FALSE;
if (NeedPromiscuous ||
- (NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS) != 0 ||
- (NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST) != 0) {
+ ((NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS) != 0) ||
+ ((NewFilter->Filters & EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST) != 0))
+ {
//
// Configure UDPv4/UDPv6 as promiscuous mode to receive all packets.
//
@@ -1626,7 +1640,7 @@ EfiPxeBcSetIpFilter (
//
// Configure UDPv4 to receive all broadcast packets.
//
- AcceptBroadcast = TRUE;
+ AcceptBroadcast = TRUE;
}
//
@@ -1651,7 +1665,8 @@ EfiPxeBcSetIpFilter (
//
Udp4Cfg = &Private->Udp4CfgData;
if ((AcceptPromiscuous != Udp4Cfg->AcceptPromiscuous) ||
- (AcceptBroadcast != Udp4Cfg->AcceptBroadcast) || MultiCastUpdate) {
+ (AcceptBroadcast != Udp4Cfg->AcceptBroadcast) || MultiCastUpdate)
+ {
//
// Clear the UDP4 instance configuration, all joined groups will be left
// during the operation.
@@ -1663,7 +1678,7 @@ EfiPxeBcSetIpFilter (
//
Udp4Cfg->AcceptPromiscuous = AcceptPromiscuous;
Udp4Cfg->AcceptBroadcast = AcceptBroadcast;
- Status = Private->Udp4Read->Configure (Private->Udp4Read, Udp4Cfg);
+ Status = Private->Udp4Read->Configure (Private->Udp4Read, Udp4Cfg);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1701,7 +1716,7 @@ EfiPxeBcSetIpFilter (
// Configure the UDP instance with the new configuration.
//
Udp6Cfg->AcceptPromiscuous = AcceptPromiscuous;
- Status = Private->Udp6Read->Configure (Private->Udp6Read, Udp6Cfg);
+ Status = Private->Udp6Read->Configure (Private->Udp6Read, Udp6Cfg);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1733,7 +1748,6 @@ EfiPxeBcSetIpFilter (
return Status;
}
-
/**
Uses the ARP protocol to resolve a MAC address. It is not supported for IPv6.
@@ -1762,9 +1776,9 @@ EfiPxeBcSetIpFilter (
EFI_STATUS
EFIAPI
EfiPxeBcArp (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN EFI_IP_ADDRESS *IpAddr,
- IN EFI_MAC_ADDRESS *MacAddr OPTIONAL
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN EFI_IP_ADDRESS *IpAddr,
+ IN EFI_MAC_ADDRESS *MacAddr OPTIONAL
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -1775,7 +1789,7 @@ EfiPxeBcArp (
EFI_MAC_ADDRESS ZeroMac;
BOOLEAN IsResolved;
- if (This == NULL || IpAddr == NULL) {
+ if ((This == NULL) || (IpAddr == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1829,7 +1843,7 @@ EfiPxeBcArp (
// If AutoArp is TRUE, try to send Arp request on initiative.
//
Status = Private->Arp->Request (Private->Arp, &IpAddr->v4, ResolvedEvent, &TempMac);
- if (EFI_ERROR (Status) && Status != EFI_NOT_READY) {
+ if (EFI_ERROR (Status) && (Status != EFI_NOT_READY)) {
goto ON_EXIT;
}
@@ -1838,6 +1852,7 @@ EfiPxeBcArp (
break;
}
}
+
if (CompareMem (&TempMac, &ZeroMac, sizeof (EFI_MAC_ADDRESS)) != 0) {
Status = EFI_SUCCESS;
} else {
@@ -1848,7 +1863,7 @@ EfiPxeBcArp (
//
// Copy the Mac address to user if needed.
//
- if (MacAddr != NULL && !EFI_ERROR (Status)) {
+ if ((MacAddr != NULL) && !EFI_ERROR (Status)) {
CopyMem (MacAddr, &TempMac, sizeof (EFI_MAC_ADDRESS));
}
@@ -1856,10 +1871,10 @@ ON_EXIT:
if (ResolvedEvent != NULL) {
gBS->CloseEvent (ResolvedEvent);
}
+
return Status;
}
-
/**
Updates the parameters that affect the operation of the PXE Base Code Protocol.
@@ -1895,12 +1910,12 @@ ON_EXIT:
EFI_STATUS
EFIAPI
EfiPxeBcSetParameters (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN BOOLEAN *NewAutoArp OPTIONAL,
- IN BOOLEAN *NewSendGUID OPTIONAL,
- IN UINT8 *NewTTL OPTIONAL,
- IN UINT8 *NewToS OPTIONAL,
- IN BOOLEAN *NewMakeCallback OPTIONAL
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN BOOLEAN *NewAutoArp OPTIONAL,
+ IN BOOLEAN *NewSendGUID OPTIONAL,
+ IN UINT8 *NewTTL OPTIONAL,
+ IN UINT8 *NewToS OPTIONAL,
+ IN BOOLEAN *NewMakeCallback OPTIONAL
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -1927,7 +1942,7 @@ EfiPxeBcSetParameters (
Status = gBS->HandleProtocol (
Private->Controller,
&gEfiPxeBaseCodeCallbackProtocolGuid,
- (VOID **) &Private->PxeBcCallback
+ (VOID **)&Private->PxeBcCallback
);
if (EFI_ERROR (Status) || (Private->PxeBcCallback->Callback == NULL)) {
@@ -1936,6 +1951,7 @@ EfiPxeBcSetParameters (
} else {
Private->PxeBcCallback = NULL;
}
+
Mode->MakeCallbacks = *NewMakeCallback;
}
@@ -1961,7 +1977,6 @@ EfiPxeBcSetParameters (
return EFI_SUCCESS;
}
-
/**
Updates the station IP address and/or subnet mask values of a network device.
@@ -1986,9 +2001,9 @@ EfiPxeBcSetParameters (
EFI_STATUS
EFIAPI
EfiPxeBcSetStationIP (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN EFI_IP_ADDRESS *NewStationIp OPTIONAL,
- IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN EFI_IP_ADDRESS *NewStationIp OPTIONAL,
+ IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL
)
{
EFI_STATUS Status;
@@ -2000,7 +2015,7 @@ EfiPxeBcSetStationIP (
return EFI_INVALID_PARAMETER;
}
- if (NewStationIp != NULL && !NetIp6IsValidUnicast (&NewStationIp->v6)) {
+ if ((NewStationIp != NULL) && !NetIp6IsValidUnicast (&NewStationIp->v6)) {
return EFI_INVALID_PARAMETER;
}
@@ -2009,15 +2024,17 @@ EfiPxeBcSetStationIP (
Status = EFI_SUCCESS;
if (!Mode->UsingIpv6 &&
- NewSubnetMask != NULL &&
- !IP4_IS_VALID_NETMASK (NTOHL (NewSubnetMask->Addr[0]))) {
+ (NewSubnetMask != NULL) &&
+ !IP4_IS_VALID_NETMASK (NTOHL (NewSubnetMask->Addr[0])))
+ {
return EFI_INVALID_PARAMETER;
}
- if (!Mode->UsingIpv6 && NewStationIp != NULL) {
- if (IP4_IS_UNSPECIFIED(NTOHL (NewStationIp->Addr[0])) ||
- IP4_IS_LOCAL_BROADCAST(NTOHL (NewStationIp->Addr[0])) ||
- (NewSubnetMask != NULL && NewSubnetMask->Addr[0] != 0 && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0])))) {
+ if (!Mode->UsingIpv6 && (NewStationIp != NULL)) {
+ if (IP4_IS_UNSPECIFIED (NTOHL (NewStationIp->Addr[0])) ||
+ IP4_IS_LOCAL_BROADCAST (NTOHL (NewStationIp->Addr[0])) ||
+ ((NewSubnetMask != NULL) && (NewSubnetMask->Addr[0] != 0) && !NetIp4IsUnicast (NTOHL (NewStationIp->Addr[0]), NTOHL (NewSubnetMask->Addr[0]))))
+ {
return EFI_INVALID_PARAMETER;
}
}
@@ -2026,7 +2043,7 @@ EfiPxeBcSetStationIP (
return EFI_NOT_STARTED;
}
- if (Mode->UsingIpv6 && NewStationIp != NULL) {
+ if (Mode->UsingIpv6 && (NewStationIp != NULL)) {
//
// Set the IPv6 address by Ip6Config protocol.
//
@@ -2062,9 +2079,9 @@ EfiPxeBcSetStationIP (
CopyMem (&Private->StationIp, NewStationIp, sizeof (EFI_IP_ADDRESS));
}
- if (!Mode->UsingIpv6 && NewSubnetMask != NULL) {
+ if (!Mode->UsingIpv6 && (NewSubnetMask != NULL)) {
CopyMem (&Mode->SubnetMask, NewSubnetMask, sizeof (EFI_IP_ADDRESS));
- CopyMem (&Private->SubnetMask ,NewSubnetMask, sizeof (EFI_IP_ADDRESS));
+ CopyMem (&Private->SubnetMask, NewSubnetMask, sizeof (EFI_IP_ADDRESS));
}
Status = PxeBcFlushStationIp (Private, NewStationIp, NewSubnetMask);
@@ -2072,7 +2089,6 @@ ON_EXIT:
return Status;
}
-
/**
Updates the contents of the cached DHCP and Discover packets.
@@ -2108,19 +2124,19 @@ ON_EXIT:
EFI_STATUS
EFIAPI
EfiPxeBcSetPackets (
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,
- IN BOOLEAN *NewDhcpDiscoverValid OPTIONAL,
- IN BOOLEAN *NewDhcpAckReceived OPTIONAL,
- IN BOOLEAN *NewProxyOfferReceived OPTIONAL,
- IN BOOLEAN *NewPxeDiscoverValid OPTIONAL,
- IN BOOLEAN *NewPxeReplyReceived OPTIONAL,
- IN BOOLEAN *NewPxeBisReplyReceived OPTIONAL,
- IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover OPTIONAL,
- IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck OPTIONAL,
- IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer OPTIONAL,
- IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover OPTIONAL,
- IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply OPTIONAL,
- IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL
+ IN EFI_PXE_BASE_CODE_PROTOCOL *This,
+ IN BOOLEAN *NewDhcpDiscoverValid OPTIONAL,
+ IN BOOLEAN *NewDhcpAckReceived OPTIONAL,
+ IN BOOLEAN *NewProxyOfferReceived OPTIONAL,
+ IN BOOLEAN *NewPxeDiscoverValid OPTIONAL,
+ IN BOOLEAN *NewPxeReplyReceived OPTIONAL,
+ IN BOOLEAN *NewPxeBisReplyReceived OPTIONAL,
+ IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover OPTIONAL,
+ IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck OPTIONAL,
+ IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer OPTIONAL,
+ IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover OPTIONAL,
+ IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply OPTIONAL,
+ IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -2205,7 +2221,6 @@ EFI_PXE_BASE_CODE_PROTOCOL gPxeBcProtoc
NULL
};
-
/**
Callback function that is invoked when the PXE Base Code Protocol is about to transmit, has
received, or is waiting to receive a packet.
@@ -2243,8 +2258,8 @@ EfiPxeLoadFileCallback (
IN EFI_PXE_BASE_CODE_PACKET *PacketPtr OPTIONAL
)
{
- EFI_INPUT_KEY Key;
- EFI_STATUS Status;
+ EFI_INPUT_KEY Key;
+ EFI_STATUS Status;
//
// Catch Ctrl-C or ESC to abort.
@@ -2252,43 +2267,43 @@ EfiPxeLoadFileCallback (
Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
if (!EFI_ERROR (Status)) {
-
- if (Key.ScanCode == SCAN_ESC || Key.UnicodeChar == (0x1F & 'c')) {
-
+ if ((Key.ScanCode == SCAN_ESC) || (Key.UnicodeChar == (0x1F & 'c'))) {
return EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT;
}
}
+
//
// No print if receive packet
//
if (Received) {
return EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE;
}
+
//
// Print only for three functions
//
switch (Function) {
-
- case EFI_PXE_BASE_CODE_FUNCTION_MTFTP:
- //
- // Print only for open MTFTP packets, not every MTFTP packets
- //
- if (PacketLength != 0 && PacketPtr != NULL) {
- if (PacketPtr->Raw[0x1C] != 0x00 || PacketPtr->Raw[0x1D] != 0x01) {
- return EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE;
+ case EFI_PXE_BASE_CODE_FUNCTION_MTFTP:
+ //
+ // Print only for open MTFTP packets, not every MTFTP packets
+ //
+ if ((PacketLength != 0) && (PacketPtr != NULL)) {
+ if ((PacketPtr->Raw[0x1C] != 0x00) || (PacketPtr->Raw[0x1D] != 0x01)) {
+ return EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE;
+ }
}
- }
- break;
- case EFI_PXE_BASE_CODE_FUNCTION_DHCP:
- case EFI_PXE_BASE_CODE_FUNCTION_DISCOVER:
- break;
+ break;
- default:
- return EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE;
+ case EFI_PXE_BASE_CODE_FUNCTION_DHCP:
+ case EFI_PXE_BASE_CODE_FUNCTION_DISCOVER:
+ break;
+
+ default:
+ return EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE;
}
- if (PacketLength != 0 && PacketPtr != NULL) {
+ if ((PacketLength != 0) && (PacketPtr != NULL)) {
//
// Print '.' when transmit a packet
//
@@ -2298,12 +2313,11 @@ EfiPxeLoadFileCallback (
return EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE;
}
-EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL gPxeBcCallBackTemplate = {
+EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL gPxeBcCallBackTemplate = {
EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_REVISION,
EfiPxeLoadFileCallback
};
-
/**
Causes the driver to load a specified file.
@@ -2335,11 +2349,11 @@ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL gPxe
EFI_STATUS
EFIAPI
EfiPxeLoadFile (
- IN EFI_LOAD_FILE_PROTOCOL *This,
- IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
- IN BOOLEAN BootPolicy,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer OPTIONAL
+ IN EFI_LOAD_FILE_PROTOCOL *This,
+ IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
+ IN BOOLEAN BootPolicy,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer OPTIONAL
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -2349,7 +2363,7 @@ EfiPxeLoadFile (
EFI_STATUS Status;
BOOLEAN MediaPresent;
- if (FilePath == NULL || !IsDevicePathEnd (FilePath)) {
+ if ((FilePath == NULL) || !IsDevicePathEnd (FilePath)) {
return EFI_INVALID_PARAMETER;
}
@@ -2390,7 +2404,7 @@ EfiPxeLoadFile (
// Start Pxe Base Code to initialize PXE boot.
//
Status = PxeBc->Start (PxeBc, UsingIpv6);
- if (Status == EFI_ALREADY_STARTED && UsingIpv6 != PxeBc->Mode->UsingIpv6) {
+ if ((Status == EFI_ALREADY_STARTED) && (UsingIpv6 != PxeBc->Mode->UsingIpv6)) {
//
// PxeBc protocol has already been started but not on the required IP version, restart it.
//
@@ -2399,13 +2413,15 @@ EfiPxeLoadFile (
Status = PxeBc->Start (PxeBc, UsingIpv6);
}
}
- if (Status == EFI_SUCCESS || Status == EFI_ALREADY_STARTED) {
+
+ if ((Status == EFI_SUCCESS) || (Status == EFI_ALREADY_STARTED)) {
Status = PxeBcLoadBootFile (Private, BufferSize, Buffer);
}
- if (Status != EFI_SUCCESS &&
- Status != EFI_UNSUPPORTED &&
- Status != EFI_BUFFER_TOO_SMALL) {
+ if ((Status != EFI_SUCCESS) &&
+ (Status != EFI_UNSUPPORTED) &&
+ (Status != EFI_BUFFER_TOO_SMALL))
+ {
//
// There are three cases, which needn't stop pxebc here.
// 1. success to download file.
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h
@@ -55,9 +55,9 @@
#include <Library/DevicePathLib.h>
#include <Library/PcdLib.h>
-typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA;
-typedef struct _PXEBC_PRIVATE_PROTOCOL PXEBC_PRIVATE_PROTOCOL;
-typedef struct _PXEBC_VIRTUAL_NIC PXEBC_VIRTUAL_NIC;
+typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA;
+typedef struct _PXEBC_PRIVATE_PROTOCOL PXEBC_PRIVATE_PROTOCOL;
+typedef struct _PXEBC_VIRTUAL_NIC PXEBC_VIRTUAL_NIC;
#include "PxeBcDriver.h"
#include "PxeBcDhcp4.h"
@@ -66,126 +66,126 @@ typedef struct _PXEBC_VIRTUAL_NIC PXEB
#include "PxeBcBoot.h"
#include "PxeBcSupport.h"
-#define PXEBC_DEFAULT_HOPLIMIT 64
-#define PXEBC_DEFAULT_LIFETIME 50000 // 50 ms, unit is microsecond
-#define PXEBC_UDP_TIMEOUT 30000000 // 3 seconds, unit is 100nanosecond
-#define PXEBC_DAD_ADDITIONAL_DELAY 30000000 // 3 seconds
-#define PXEBC_MTFTP_TIMEOUT 4
-#define PXEBC_MTFTP_RETRIES 6
-#define PXEBC_DHCP_RETRIES 4 // refers to mPxeDhcpTimeout, also by PXE2.1 spec.
-#define PXEBC_MENU_MAX_NUM 24
-#define PXEBC_OFFER_MAX_NUM 16
-
-#define PXEBC_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'P')
-#define PXEBC_VIRTUAL_NIC_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'V')
-#define PXEBC_PRIVATE_DATA_FROM_PXEBC(a) CR (a, PXEBC_PRIVATE_DATA, PxeBc, PXEBC_PRIVATE_DATA_SIGNATURE)
-#define PXEBC_PRIVATE_DATA_FROM_ID(a) CR (a, PXEBC_PRIVATE_DATA, Id, PXEBC_PRIVATE_DATA_SIGNATURE)
-#define PXEBC_VIRTUAL_NIC_FROM_LOADFILE(a) CR (a, PXEBC_VIRTUAL_NIC, LoadFile, PXEBC_VIRTUAL_NIC_SIGNATURE)
+#define PXEBC_DEFAULT_HOPLIMIT 64
+#define PXEBC_DEFAULT_LIFETIME 50000 // 50 ms, unit is microsecond
+#define PXEBC_UDP_TIMEOUT 30000000 // 3 seconds, unit is 100nanosecond
+#define PXEBC_DAD_ADDITIONAL_DELAY 30000000 // 3 seconds
+#define PXEBC_MTFTP_TIMEOUT 4
+#define PXEBC_MTFTP_RETRIES 6
+#define PXEBC_DHCP_RETRIES 4 // refers to mPxeDhcpTimeout, also by PXE2.1 spec.
+#define PXEBC_MENU_MAX_NUM 24
+#define PXEBC_OFFER_MAX_NUM 16
+
+#define PXEBC_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'P')
+#define PXEBC_VIRTUAL_NIC_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'V')
+#define PXEBC_PRIVATE_DATA_FROM_PXEBC(a) CR (a, PXEBC_PRIVATE_DATA, PxeBc, PXEBC_PRIVATE_DATA_SIGNATURE)
+#define PXEBC_PRIVATE_DATA_FROM_ID(a) CR (a, PXEBC_PRIVATE_DATA, Id, PXEBC_PRIVATE_DATA_SIGNATURE)
+#define PXEBC_VIRTUAL_NIC_FROM_LOADFILE(a) CR (a, PXEBC_VIRTUAL_NIC, LoadFile, PXEBC_VIRTUAL_NIC_SIGNATURE)
typedef union {
- PXEBC_DHCP4_PACKET_CACHE Dhcp4;
- PXEBC_DHCP6_PACKET_CACHE Dhcp6;
+ PXEBC_DHCP4_PACKET_CACHE Dhcp4;
+ PXEBC_DHCP6_PACKET_CACHE Dhcp6;
} PXEBC_DHCP_PACKET_CACHE;
struct _PXEBC_PRIVATE_PROTOCOL {
- UINT64 Reserved;
+ UINT64 Reserved;
};
struct _PXEBC_VIRTUAL_NIC {
- UINT32 Signature;
- EFI_HANDLE Controller;
- EFI_LOAD_FILE_PROTOCOL LoadFile;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- PXEBC_PRIVATE_DATA *Private;
+ UINT32 Signature;
+ EFI_HANDLE Controller;
+ EFI_LOAD_FILE_PROTOCOL LoadFile;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ PXEBC_PRIVATE_DATA *Private;
};
struct _PXEBC_PRIVATE_DATA {
- UINT32 Signature;
- EFI_HANDLE Controller;
- EFI_HANDLE Image;
-
- PXEBC_PRIVATE_PROTOCOL Id;
- EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
-
- PXEBC_VIRTUAL_NIC *Ip4Nic;
- PXEBC_VIRTUAL_NIC *Ip6Nic;
-
- EFI_HANDLE ArpChild;
- EFI_HANDLE Ip4Child;
- EFI_HANDLE Dhcp4Child;
- EFI_HANDLE Mtftp4Child;
- EFI_HANDLE Udp4ReadChild;
- EFI_HANDLE Udp4WriteChild;
-
- EFI_ARP_PROTOCOL *Arp;
- EFI_IP4_PROTOCOL *Ip4;
- EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2;
- EFI_DHCP4_PROTOCOL *Dhcp4;
- EFI_MTFTP4_PROTOCOL *Mtftp4;
- EFI_UDP4_PROTOCOL *Udp4Read;
- EFI_UDP4_PROTOCOL *Udp4Write;
-
- EFI_HANDLE Ip6Child;
- EFI_HANDLE Dhcp6Child;
- EFI_HANDLE Mtftp6Child;
- EFI_HANDLE Udp6ReadChild;
- EFI_HANDLE Udp6WriteChild;
-
- EFI_IP6_PROTOCOL *Ip6;
- EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
- EFI_DHCP6_PROTOCOL *Dhcp6;
- EFI_MTFTP6_PROTOCOL *Mtftp6;
- EFI_UDP6_PROTOCOL *Udp6Read;
- EFI_UDP6_PROTOCOL *Udp6Write;
- EFI_DNS6_PROTOCOL *Dns6;
-
- EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii;
- EFI_PXE_BASE_CODE_PROTOCOL PxeBc;
- EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL LoadFileCallback;
- EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *PxeBcCallback;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
-
- EFI_PXE_BASE_CODE_MODE Mode;
- EFI_PXE_BASE_CODE_FUNCTION Function;
- UINT32 Ip6Policy;
- UINT32 SolicitTimes;
- UINT64 ElapsedTime;
-
- EFI_UDP4_CONFIG_DATA Udp4CfgData;
- EFI_UDP6_CONFIG_DATA Udp6CfgData;
- EFI_IP4_CONFIG_DATA Ip4CfgData;
- EFI_IP6_CONFIG_DATA Ip6CfgData;
-
- EFI_EVENT UdpTimeOutEvent;
- EFI_EVENT ArpUpdateEvent;
- EFI_IP4_COMPLETION_TOKEN IcmpToken;
- EFI_IP6_COMPLETION_TOKEN Icmp6Token;
-
- BOOLEAN IsAddressOk;
- BOOLEAN IsOfferSorted;
- BOOLEAN IsProxyRecved;
- BOOLEAN IsDoDiscover;
-
- EFI_IP_ADDRESS TmpStationIp;
- EFI_IP_ADDRESS StationIp;
- EFI_IP_ADDRESS SubnetMask;
- EFI_IP_ADDRESS GatewayIp;
- EFI_IP_ADDRESS ServerIp;
- EFI_IPv6_ADDRESS *DnsServer;
- UINT16 CurSrcPort;
- UINT32 IaId;
-
- UINT32 Ip4MaxPacketSize;
- UINT32 Ip6MaxPacketSize;
- UINT8 *BootFileName;
- UINTN BootFileSize;
- UINTN BlockSize;
-
- PXEBC_DHCP_PACKET_CACHE ProxyOffer;
- PXEBC_DHCP_PACKET_CACHE DhcpAck;
- PXEBC_DHCP_PACKET_CACHE PxeReply;
- EFI_DHCP6_PACKET *Dhcp6Request;
- EFI_DHCP4_PACKET SeedPacket;
+ UINT32 Signature;
+ EFI_HANDLE Controller;
+ EFI_HANDLE Image;
+
+ PXEBC_PRIVATE_PROTOCOL Id;
+ EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
+
+ PXEBC_VIRTUAL_NIC *Ip4Nic;
+ PXEBC_VIRTUAL_NIC *Ip6Nic;
+
+ EFI_HANDLE ArpChild;
+ EFI_HANDLE Ip4Child;
+ EFI_HANDLE Dhcp4Child;
+ EFI_HANDLE Mtftp4Child;
+ EFI_HANDLE Udp4ReadChild;
+ EFI_HANDLE Udp4WriteChild;
+
+ EFI_ARP_PROTOCOL *Arp;
+ EFI_IP4_PROTOCOL *Ip4;
+ EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2;
+ EFI_DHCP4_PROTOCOL *Dhcp4;
+ EFI_MTFTP4_PROTOCOL *Mtftp4;
+ EFI_UDP4_PROTOCOL *Udp4Read;
+ EFI_UDP4_PROTOCOL *Udp4Write;
+
+ EFI_HANDLE Ip6Child;
+ EFI_HANDLE Dhcp6Child;
+ EFI_HANDLE Mtftp6Child;
+ EFI_HANDLE Udp6ReadChild;
+ EFI_HANDLE Udp6WriteChild;
+
+ EFI_IP6_PROTOCOL *Ip6;
+ EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg;
+ EFI_DHCP6_PROTOCOL *Dhcp6;
+ EFI_MTFTP6_PROTOCOL *Mtftp6;
+ EFI_UDP6_PROTOCOL *Udp6Read;
+ EFI_UDP6_PROTOCOL *Udp6Write;
+ EFI_DNS6_PROTOCOL *Dns6;
+
+ EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii;
+ EFI_PXE_BASE_CODE_PROTOCOL PxeBc;
+ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL LoadFileCallback;
+ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *PxeBcCallback;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+
+ EFI_PXE_BASE_CODE_MODE Mode;
+ EFI_PXE_BASE_CODE_FUNCTION Function;
+ UINT32 Ip6Policy;
+ UINT32 SolicitTimes;
+ UINT64 ElapsedTime;
+
+ EFI_UDP4_CONFIG_DATA Udp4CfgData;
+ EFI_UDP6_CONFIG_DATA Udp6CfgData;
+ EFI_IP4_CONFIG_DATA Ip4CfgData;
+ EFI_IP6_CONFIG_DATA Ip6CfgData;
+
+ EFI_EVENT UdpTimeOutEvent;
+ EFI_EVENT ArpUpdateEvent;
+ EFI_IP4_COMPLETION_TOKEN IcmpToken;
+ EFI_IP6_COMPLETION_TOKEN Icmp6Token;
+
+ BOOLEAN IsAddressOk;
+ BOOLEAN IsOfferSorted;
+ BOOLEAN IsProxyRecved;
+ BOOLEAN IsDoDiscover;
+
+ EFI_IP_ADDRESS TmpStationIp;
+ EFI_IP_ADDRESS StationIp;
+ EFI_IP_ADDRESS SubnetMask;
+ EFI_IP_ADDRESS GatewayIp;
+ EFI_IP_ADDRESS ServerIp;
+ EFI_IPv6_ADDRESS *DnsServer;
+ UINT16 CurSrcPort;
+ UINT32 IaId;
+
+ UINT32 Ip4MaxPacketSize;
+ UINT32 Ip6MaxPacketSize;
+ UINT8 *BootFileName;
+ UINTN BootFileSize;
+ UINTN BlockSize;
+
+ PXEBC_DHCP_PACKET_CACHE ProxyOffer;
+ PXEBC_DHCP_PACKET_CACHE DhcpAck;
+ PXEBC_DHCP_PACKET_CACHE PxeReply;
+ EFI_DHCP6_PACKET *Dhcp6Request;
+ EFI_DHCP4_PACKET SeedPacket;
//
// OfferIndex records the index of DhcpOffer[] buffer, and OfferCount records the num of each type of offer.
@@ -214,12 +214,12 @@ struct _PXEBC_PRIVATE_DATA {
// (OfferIndex is 0-based.)
//
//
- UINT32 SelectIndex;
- UINT32 SelectProxyType;
- PXEBC_DHCP_PACKET_CACHE OfferBuffer[PXEBC_OFFER_MAX_NUM];
- UINT32 OfferNum;
- UINT32 OfferCount[PxeOfferTypeMax];
- UINT32 OfferIndex[PxeOfferTypeMax][PXEBC_OFFER_MAX_NUM];
+ UINT32 SelectIndex;
+ UINT32 SelectProxyType;
+ PXEBC_DHCP_PACKET_CACHE OfferBuffer[PXEBC_OFFER_MAX_NUM];
+ UINT32 OfferNum;
+ UINT32 OfferCount[PxeOfferTypeMax];
+ UINT32 OfferIndex[PxeOfferTypeMax][PXEBC_OFFER_MAX_NUM];
};
extern EFI_PXE_BASE_CODE_PROTOCOL gPxeBcProtocolTemplate;
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c
@@ -15,14 +15,13 @@
#include "PxeBcImpl.h"
-CHAR8 *mMtftpOptions[PXE_MTFTP_OPTION_MAXIMUM_INDEX] = {
+CHAR8 *mMtftpOptions[PXE_MTFTP_OPTION_MAXIMUM_INDEX] = {
"blksize",
"timeout",
"tsize",
"multicast"
};
-
/**
This is a callback function when packets are received or transmitted in Mtftp driver.
@@ -44,30 +43,30 @@ CHAR8 *mMtftpOptions[PXE_MTFTP_OPTION_MA
EFI_STATUS
EFIAPI
PxeBcMtftp6CheckPacket (
- IN EFI_MTFTP6_PROTOCOL *This,
- IN EFI_MTFTP6_TOKEN *Token,
- IN UINT16 PacketLen,
- IN EFI_MTFTP6_PACKET *Packet
+ IN EFI_MTFTP6_PROTOCOL *This,
+ IN EFI_MTFTP6_TOKEN *Token,
+ IN UINT16 PacketLen,
+ IN EFI_MTFTP6_PACKET *Packet
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;
- EFI_STATUS Status;
-
- Private = (PXEBC_PRIVATE_DATA *) Token->Context;
- Callback = Private->PxeBcCallback;
- Status = EFI_SUCCESS;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;
+ EFI_STATUS Status;
+
+ Private = (PXEBC_PRIVATE_DATA *)Token->Context;
+ Callback = Private->PxeBcCallback;
+ Status = EFI_SUCCESS;
if (Packet->OpCode == EFI_MTFTP6_OPCODE_ERROR) {
//
// Store the tftp error message into mode data and set the received flag.
//
Private->Mode.TftpErrorReceived = TRUE;
- Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
+ Private->Mode.TftpError.ErrorCode = (UINT8)Packet->Error.ErrorCode;
AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
PXE_MTFTP_ERROR_STRING_LENGTH,
- (CHAR8 *) Packet->Error.ErrorMessage,
+ (CHAR8 *)Packet->Error.ErrorMessage,
PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';
@@ -78,12 +77,12 @@ PxeBcMtftp6CheckPacket (
// Callback to user if has when received any tftp packet.
//
Status = Callback->Callback (
- Callback,
- Private->Function,
- TRUE,
- PacketLen,
- (EFI_PXE_BASE_CODE_PACKET *) Packet
- );
+ Callback,
+ Private->Function,
+ TRUE,
+ PacketLen,
+ (EFI_PXE_BASE_CODE_PACKET *)Packet
+ );
if (Status != EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE) {
//
// User wants to abort current process if not EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE.
@@ -100,7 +99,6 @@ PxeBcMtftp6CheckPacket (
return Status;
}
-
/**
This function is to get the size of a file using Tftp.
@@ -118,21 +116,21 @@ PxeBcMtftp6CheckPacket (
**/
EFI_STATUS
PxeBcMtftp6GetFileSize (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP6_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP6_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN OUT UINT64 *BufferSize
)
{
- EFI_MTFTP6_PROTOCOL *Mtftp6;
- EFI_MTFTP6_OPTION ReqOpt[2];
- EFI_MTFTP6_PACKET *Packet;
- EFI_MTFTP6_OPTION *Option;
- UINT32 PktLen;
- UINT8 OptBuf[128];
- UINT32 OptCnt;
- EFI_STATUS Status;
+ EFI_MTFTP6_PROTOCOL *Mtftp6;
+ EFI_MTFTP6_OPTION ReqOpt[2];
+ EFI_MTFTP6_PACKET *Packet;
+ EFI_MTFTP6_OPTION *Option;
+ UINT32 PktLen;
+ UINT8 OptBuf[128];
+ UINT32 OptCnt;
+ EFI_STATUS Status;
*BufferSize = 0;
Status = EFI_DEVICE_ERROR;
@@ -151,13 +149,13 @@ PxeBcMtftp6GetFileSize (
//
// Build the required options for get info.
//
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];
PxeBcUintnToAscDec (0, OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
- ReqOpt[0].ValueStr = OptBuf;
+ ReqOpt[0].ValueStr = OptBuf;
if (BlockSize != NULL) {
- ReqOpt[1].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
- ReqOpt[1].ValueStr = (UINT8 *) (ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1);
+ ReqOpt[1].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[1].ValueStr = (UINT8 *)(ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1);
PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1));
OptCnt++;
}
@@ -167,7 +165,7 @@ PxeBcMtftp6GetFileSize (
NULL,
Filename,
NULL,
- (UINT8) OptCnt,
+ (UINT8)OptCnt,
ReqOpt,
&PktLen,
&Packet
@@ -178,15 +176,16 @@ PxeBcMtftp6GetFileSize (
// Store the tftp error message into mode data and set the received flag.
//
Private->Mode.TftpErrorReceived = TRUE;
- Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
+ Private->Mode.TftpError.ErrorCode = (UINT8)Packet->Error.ErrorCode;
AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
PXE_MTFTP_ERROR_STRING_LENGTH,
- (CHAR8 *) Packet->Error.ErrorMessage,
+ (CHAR8 *)Packet->Error.ErrorMessage,
PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';
}
+
goto ON_ERROR;
}
@@ -198,7 +197,7 @@ PxeBcMtftp6GetFileSize (
Mtftp6,
PktLen,
Packet,
- (UINT32 *) &OptCnt,
+ (UINT32 *)&OptCnt,
&Option
);
if (EFI_ERROR (Status)) {
@@ -210,24 +209,26 @@ PxeBcMtftp6GetFileSize (
//
Status = EFI_NOT_FOUND;
while (OptCnt != 0) {
- if (AsciiStrnCmp ((CHAR8 *) Option[OptCnt - 1].OptionStr, "tsize", 5) == 0) {
- *BufferSize = AsciiStrDecimalToUint64 ((CHAR8 *) (Option[OptCnt - 1].ValueStr));
+ if (AsciiStrnCmp ((CHAR8 *)Option[OptCnt - 1].OptionStr, "tsize", 5) == 0) {
+ *BufferSize = AsciiStrDecimalToUint64 ((CHAR8 *)(Option[OptCnt - 1].ValueStr));
Status = EFI_SUCCESS;
}
+
OptCnt--;
}
+
FreePool (Option);
ON_ERROR:
if (Packet != NULL) {
FreePool (Packet);
}
+
Mtftp6->Configure (Mtftp6, NULL);
return Status;
}
-
/**
This function is to get data of a file using Tftp.
@@ -246,21 +247,21 @@ ON_ERROR:
**/
EFI_STATUS
PxeBcMtftp6ReadFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP6_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP6_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
)
{
- EFI_MTFTP6_PROTOCOL *Mtftp6;
- EFI_MTFTP6_TOKEN Token;
- EFI_MTFTP6_OPTION ReqOpt[1];
- UINT32 OptCnt;
- UINT8 OptBuf[128];
- EFI_STATUS Status;
+ EFI_MTFTP6_PROTOCOL *Mtftp6;
+ EFI_MTFTP6_TOKEN Token;
+ EFI_MTFTP6_OPTION ReqOpt[1];
+ UINT32 OptCnt;
+ UINT8 OptBuf[128];
+ EFI_STATUS Status;
Status = EFI_DEVICE_ERROR;
Mtftp6 = Private->Mtftp6;
@@ -273,26 +274,26 @@ PxeBcMtftp6ReadFile (
}
if (BlockSize != NULL) {
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
- Token.Event = NULL;
- Token.OverrideData = NULL;
- Token.Filename = Filename;
- Token.ModeStr = NULL;
- Token.OptionCount = OptCnt;
- Token.OptionList = ReqOpt;
- Token.Context = Private;
+ Token.Event = NULL;
+ Token.OverrideData = NULL;
+ Token.Filename = Filename;
+ Token.ModeStr = NULL;
+ Token.OptionCount = OptCnt;
+ Token.OptionList = ReqOpt;
+ Token.Context = Private;
if (DontUseBuffer) {
- Token.BufferSize = 0;
- Token.Buffer = NULL;
+ Token.BufferSize = 0;
+ Token.Buffer = NULL;
} else {
- Token.BufferSize = *BufferSize;
- Token.Buffer = BufferPtr;
+ Token.BufferSize = *BufferSize;
+ Token.Buffer = BufferPtr;
}
Token.CheckPacket = PxeBcMtftp6CheckPacket;
@@ -310,7 +311,6 @@ PxeBcMtftp6ReadFile (
return Status;
}
-
/**
This function is used to write the data of a file using Tftp.
@@ -329,21 +329,21 @@ PxeBcMtftp6ReadFile (
**/
EFI_STATUS
PxeBcMtftp6WriteFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP6_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN BOOLEAN Overwrite,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP6_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN BOOLEAN Overwrite,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize
)
{
- EFI_MTFTP6_PROTOCOL *Mtftp6;
- EFI_MTFTP6_TOKEN Token;
- EFI_MTFTP6_OPTION ReqOpt[1];
- UINT32 OptCnt;
- UINT8 OptBuf[128];
- EFI_STATUS Status;
+ EFI_MTFTP6_PROTOCOL *Mtftp6;
+ EFI_MTFTP6_TOKEN Token;
+ EFI_MTFTP6_OPTION ReqOpt[1];
+ UINT32 OptCnt;
+ UINT8 OptBuf[128];
+ EFI_STATUS Status;
Status = EFI_DEVICE_ERROR;
Mtftp6 = Private->Mtftp6;
@@ -356,7 +356,7 @@ PxeBcMtftp6WriteFile (
}
if (BlockSize != NULL) {
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
@@ -385,7 +385,6 @@ PxeBcMtftp6WriteFile (
return Status;
}
-
/**
This function is to read the data (file) from a directory using Tftp.
@@ -404,21 +403,21 @@ PxeBcMtftp6WriteFile (
**/
EFI_STATUS
PxeBcMtftp6ReadDirectory (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP6_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP6_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
)
{
- EFI_MTFTP6_PROTOCOL *Mtftp6;
- EFI_MTFTP6_TOKEN Token;
- EFI_MTFTP6_OPTION ReqOpt[1];
- UINT32 OptCnt;
- UINT8 OptBuf[128];
- EFI_STATUS Status;
+ EFI_MTFTP6_PROTOCOL *Mtftp6;
+ EFI_MTFTP6_TOKEN Token;
+ EFI_MTFTP6_OPTION ReqOpt[1];
+ UINT32 OptCnt;
+ UINT8 OptBuf[128];
+ EFI_STATUS Status;
Status = EFI_DEVICE_ERROR;
Mtftp6 = Private->Mtftp6;
@@ -431,26 +430,26 @@ PxeBcMtftp6ReadDirectory (
}
if (BlockSize != NULL) {
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
- Token.Event = NULL;
- Token.OverrideData = NULL;
- Token.Filename = Filename;
- Token.ModeStr = NULL;
- Token.OptionCount = OptCnt;
- Token.OptionList = ReqOpt;
- Token.Context = Private;
+ Token.Event = NULL;
+ Token.OverrideData = NULL;
+ Token.Filename = Filename;
+ Token.ModeStr = NULL;
+ Token.OptionCount = OptCnt;
+ Token.OptionList = ReqOpt;
+ Token.Context = Private;
if (DontUseBuffer) {
- Token.BufferSize = 0;
- Token.Buffer = NULL;
+ Token.BufferSize = 0;
+ Token.Buffer = NULL;
} else {
- Token.BufferSize = *BufferSize;
- Token.Buffer = BufferPtr;
+ Token.BufferSize = *BufferSize;
+ Token.Buffer = BufferPtr;
}
Token.CheckPacket = PxeBcMtftp6CheckPacket;
@@ -468,7 +467,6 @@ PxeBcMtftp6ReadDirectory (
return Status;
}
-
/**
This is a callback function when packets are received or transmitted in Mtftp driver.
@@ -490,30 +488,30 @@ PxeBcMtftp6ReadDirectory (
EFI_STATUS
EFIAPI
PxeBcMtftp4CheckPacket (
- IN EFI_MTFTP4_PROTOCOL *This,
- IN EFI_MTFTP4_TOKEN *Token,
- IN UINT16 PacketLen,
- IN EFI_MTFTP4_PACKET *Packet
+ IN EFI_MTFTP4_PROTOCOL *This,
+ IN EFI_MTFTP4_TOKEN *Token,
+ IN UINT16 PacketLen,
+ IN EFI_MTFTP4_PACKET *Packet
)
{
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;
- EFI_STATUS Status;
-
- Private = (PXEBC_PRIVATE_DATA *) Token->Context;
- Callback = Private->PxeBcCallback;
- Status = EFI_SUCCESS;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *Callback;
+ EFI_STATUS Status;
+
+ Private = (PXEBC_PRIVATE_DATA *)Token->Context;
+ Callback = Private->PxeBcCallback;
+ Status = EFI_SUCCESS;
if (Packet->OpCode == EFI_MTFTP4_OPCODE_ERROR) {
//
// Store the tftp error message into mode data and set the received flag.
//
Private->Mode.TftpErrorReceived = TRUE;
- Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
+ Private->Mode.TftpError.ErrorCode = (UINT8)Packet->Error.ErrorCode;
AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
PXE_MTFTP_ERROR_STRING_LENGTH,
- (CHAR8 *) Packet->Error.ErrorMessage,
+ (CHAR8 *)Packet->Error.ErrorMessage,
PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';
@@ -524,12 +522,12 @@ PxeBcMtftp4CheckPacket (
// Callback to user if has when received any tftp packet.
//
Status = Callback->Callback (
- Callback,
- Private->Function,
- TRUE,
- PacketLen,
- (EFI_PXE_BASE_CODE_PACKET *) Packet
- );
+ Callback,
+ Private->Function,
+ TRUE,
+ PacketLen,
+ (EFI_PXE_BASE_CODE_PACKET *)Packet
+ );
if (Status != EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE) {
//
// User wants to abort current process if not EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE.
@@ -546,7 +544,6 @@ PxeBcMtftp4CheckPacket (
return Status;
}
-
/**
This function is to get size of a file using Tftp.
@@ -564,21 +561,21 @@ PxeBcMtftp4CheckPacket (
**/
EFI_STATUS
PxeBcMtftp4GetFileSize (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP4_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN OUT UINT64 *BufferSize
)
{
- EFI_MTFTP4_PROTOCOL *Mtftp4;
- EFI_MTFTP4_OPTION ReqOpt[2];
- EFI_MTFTP4_PACKET *Packet;
- EFI_MTFTP4_OPTION *Option;
- UINT32 PktLen;
- UINT8 OptBuf[128];
- UINT32 OptCnt;
- EFI_STATUS Status;
+ EFI_MTFTP4_PROTOCOL *Mtftp4;
+ EFI_MTFTP4_OPTION ReqOpt[2];
+ EFI_MTFTP4_PACKET *Packet;
+ EFI_MTFTP4_OPTION *Option;
+ UINT32 PktLen;
+ UINT8 OptBuf[128];
+ UINT32 OptCnt;
+ EFI_STATUS Status;
*BufferSize = 0;
Status = EFI_DEVICE_ERROR;
@@ -597,13 +594,13 @@ PxeBcMtftp4GetFileSize (
//
// Build the required options for get info.
//
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];
PxeBcUintnToAscDec (0, OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
- ReqOpt[0].ValueStr = OptBuf;
+ ReqOpt[0].ValueStr = OptBuf;
if (BlockSize != NULL) {
- ReqOpt[1].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
- ReqOpt[1].ValueStr = (UINT8 *) (ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1);
+ ReqOpt[1].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[1].ValueStr = (UINT8 *)(ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1);
PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1));
OptCnt++;
}
@@ -613,7 +610,7 @@ PxeBcMtftp4GetFileSize (
NULL,
Filename,
NULL,
- (UINT8) OptCnt,
+ (UINT8)OptCnt,
ReqOpt,
&PktLen,
&Packet
@@ -624,15 +621,16 @@ PxeBcMtftp4GetFileSize (
// Store the tftp error message into mode data and set the received flag.
//
Private->Mode.TftpErrorReceived = TRUE;
- Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
+ Private->Mode.TftpError.ErrorCode = (UINT8)Packet->Error.ErrorCode;
AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
PXE_MTFTP_ERROR_STRING_LENGTH,
- (CHAR8 *) Packet->Error.ErrorMessage,
+ (CHAR8 *)Packet->Error.ErrorMessage,
PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';
}
+
goto ON_ERROR;
}
@@ -644,7 +642,7 @@ PxeBcMtftp4GetFileSize (
Mtftp4,
PktLen,
Packet,
- (UINT32 *) &OptCnt,
+ (UINT32 *)&OptCnt,
&Option
);
if (EFI_ERROR (Status)) {
@@ -656,24 +654,26 @@ PxeBcMtftp4GetFileSize (
//
Status = EFI_NOT_FOUND;
while (OptCnt != 0) {
- if (AsciiStrnCmp ((CHAR8 *) Option[OptCnt - 1].OptionStr, "tsize", 5) == 0) {
- *BufferSize = AsciiStrDecimalToUint64 ((CHAR8 *) (Option[OptCnt - 1].ValueStr));
+ if (AsciiStrnCmp ((CHAR8 *)Option[OptCnt - 1].OptionStr, "tsize", 5) == 0) {
+ *BufferSize = AsciiStrDecimalToUint64 ((CHAR8 *)(Option[OptCnt - 1].ValueStr));
Status = EFI_SUCCESS;
}
+
OptCnt--;
}
+
FreePool (Option);
ON_ERROR:
if (Packet != NULL) {
FreePool (Packet);
}
+
Mtftp4->Configure (Mtftp4, NULL);
return Status;
}
-
/**
This function is to read the data of a file using Tftp.
@@ -692,21 +692,21 @@ ON_ERROR:
**/
EFI_STATUS
PxeBcMtftp4ReadFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP4_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
)
{
- EFI_MTFTP4_PROTOCOL *Mtftp4;
- EFI_MTFTP4_TOKEN Token;
- EFI_MTFTP4_OPTION ReqOpt[1];
- UINT32 OptCnt;
- UINT8 OptBuf[128];
- EFI_STATUS Status;
+ EFI_MTFTP4_PROTOCOL *Mtftp4;
+ EFI_MTFTP4_TOKEN Token;
+ EFI_MTFTP4_OPTION ReqOpt[1];
+ UINT32 OptCnt;
+ UINT8 OptBuf[128];
+ EFI_STATUS Status;
Status = EFI_DEVICE_ERROR;
Mtftp4 = Private->Mtftp4;
@@ -719,26 +719,26 @@ PxeBcMtftp4ReadFile (
}
if (BlockSize != NULL) {
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
- Token.Event = NULL;
- Token.OverrideData = NULL;
- Token.Filename = Filename;
- Token.ModeStr = NULL;
- Token.OptionCount = OptCnt;
- Token.OptionList = ReqOpt;
- Token.Context = Private;
+ Token.Event = NULL;
+ Token.OverrideData = NULL;
+ Token.Filename = Filename;
+ Token.ModeStr = NULL;
+ Token.OptionCount = OptCnt;
+ Token.OptionList = ReqOpt;
+ Token.Context = Private;
if (DontUseBuffer) {
- Token.BufferSize = 0;
- Token.Buffer = NULL;
+ Token.BufferSize = 0;
+ Token.Buffer = NULL;
} else {
- Token.BufferSize = *BufferSize;
- Token.Buffer = BufferPtr;
+ Token.BufferSize = *BufferSize;
+ Token.Buffer = BufferPtr;
}
Token.CheckPacket = PxeBcMtftp4CheckPacket;
@@ -756,7 +756,6 @@ PxeBcMtftp4ReadFile (
return Status;
}
-
/**
This function is to write the data of a file using Tftp.
@@ -775,34 +774,34 @@ PxeBcMtftp4ReadFile (
**/
EFI_STATUS
PxeBcMtftp4WriteFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN BOOLEAN Overwrite,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP4_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN BOOLEAN Overwrite,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize
)
{
- EFI_MTFTP4_PROTOCOL *Mtftp4;
- EFI_MTFTP4_TOKEN Token;
- EFI_MTFTP4_OPTION ReqOpt[1];
- UINT32 OptCnt;
- UINT8 OptBuf[128];
- EFI_STATUS Status;
+ EFI_MTFTP4_PROTOCOL *Mtftp4;
+ EFI_MTFTP4_TOKEN Token;
+ EFI_MTFTP4_OPTION ReqOpt[1];
+ UINT32 OptCnt;
+ UINT8 OptBuf[128];
+ EFI_STATUS Status;
Status = EFI_DEVICE_ERROR;
Mtftp4 = Private->Mtftp4;
OptCnt = 0;
Config->InitialServerPort = PXEBC_BS_DOWNLOAD_PORT;
- Status = Mtftp4->Configure (Mtftp4, Config);
+ Status = Mtftp4->Configure (Mtftp4, Config);
if (EFI_ERROR (Status)) {
return Status;
}
if (BlockSize != NULL) {
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
@@ -831,7 +830,6 @@ PxeBcMtftp4WriteFile (
return Status;
}
-
/**
This function is to get data (file) from a directory using Tftp.
@@ -850,21 +848,21 @@ PxeBcMtftp4WriteFile (
**/
EFI_STATUS
PxeBcMtftp4ReadDirectory (
- IN PXEBC_PRIVATE_DATA *Private,
- IN EFI_MTFTP4_CONFIG_DATA *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN EFI_MTFTP4_CONFIG_DATA *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
)
{
- EFI_MTFTP4_PROTOCOL *Mtftp4;
- EFI_MTFTP4_TOKEN Token;
- EFI_MTFTP4_OPTION ReqOpt[1];
- UINT32 OptCnt;
- UINT8 OptBuf[128];
- EFI_STATUS Status;
+ EFI_MTFTP4_PROTOCOL *Mtftp4;
+ EFI_MTFTP4_TOKEN Token;
+ EFI_MTFTP4_OPTION ReqOpt[1];
+ UINT32 OptCnt;
+ UINT8 OptBuf[128];
+ EFI_STATUS Status;
Status = EFI_DEVICE_ERROR;
Mtftp4 = Private->Mtftp4;
@@ -877,26 +875,26 @@ PxeBcMtftp4ReadDirectory (
}
if (BlockSize != NULL) {
- ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
+ ReqOpt[0].OptionStr = (UINT8 *)mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
- Token.Event = NULL;
- Token.OverrideData = NULL;
- Token.Filename = Filename;
- Token.ModeStr = NULL;
- Token.OptionCount = OptCnt;
- Token.OptionList = ReqOpt;
- Token.Context = Private;
+ Token.Event = NULL;
+ Token.OverrideData = NULL;
+ Token.Filename = Filename;
+ Token.ModeStr = NULL;
+ Token.OptionCount = OptCnt;
+ Token.OptionList = ReqOpt;
+ Token.Context = Private;
if (DontUseBuffer) {
- Token.BufferSize = 0;
- Token.Buffer = NULL;
+ Token.BufferSize = 0;
+ Token.Buffer = NULL;
} else {
- Token.BufferSize = *BufferSize;
- Token.Buffer = BufferPtr;
+ Token.BufferSize = *BufferSize;
+ Token.Buffer = BufferPtr;
}
Token.CheckPacket = PxeBcMtftp4CheckPacket;
@@ -914,7 +912,6 @@ PxeBcMtftp4ReadDirectory (
return Status;
}
-
/**
This function is wrapper to get the file size using TFTP.
@@ -932,17 +929,17 @@ PxeBcMtftp4ReadDirectory (
**/
EFI_STATUS
PxeBcTftpGetFileSize (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN OUT UINT64 *BufferSize
)
{
if (Private->PxeBc.Mode->UsingIpv6) {
return PxeBcMtftp6GetFileSize (
Private,
- (EFI_MTFTP6_CONFIG_DATA *) Config,
+ (EFI_MTFTP6_CONFIG_DATA *)Config,
Filename,
BlockSize,
BufferSize
@@ -950,7 +947,7 @@ PxeBcTftpGetFileSize (
} else {
return PxeBcMtftp4GetFileSize (
Private,
- (EFI_MTFTP4_CONFIG_DATA *) Config,
+ (EFI_MTFTP4_CONFIG_DATA *)Config,
Filename,
BlockSize,
BufferSize
@@ -958,7 +955,6 @@ PxeBcTftpGetFileSize (
}
}
-
/**
This function is a wrapper to get file using TFTP.
@@ -977,19 +973,19 @@ PxeBcTftpGetFileSize (
**/
EFI_STATUS
PxeBcTftpReadFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
)
{
if (Private->PxeBc.Mode->UsingIpv6) {
return PxeBcMtftp6ReadFile (
Private,
- (EFI_MTFTP6_CONFIG_DATA *) Config,
+ (EFI_MTFTP6_CONFIG_DATA *)Config,
Filename,
BlockSize,
BufferPtr,
@@ -999,7 +995,7 @@ PxeBcTftpReadFile (
} else {
return PxeBcMtftp4ReadFile (
Private,
- (EFI_MTFTP4_CONFIG_DATA *) Config,
+ (EFI_MTFTP4_CONFIG_DATA *)Config,
Filename,
BlockSize,
BufferPtr,
@@ -1009,7 +1005,6 @@ PxeBcTftpReadFile (
}
}
-
/**
This function is a wrapper to write file using TFTP.
@@ -1028,19 +1023,19 @@ PxeBcTftpReadFile (
**/
EFI_STATUS
PxeBcTftpWriteFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN BOOLEAN Overwrite,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN BOOLEAN Overwrite,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize
)
{
if (Private->PxeBc.Mode->UsingIpv6) {
return PxeBcMtftp6WriteFile (
Private,
- (EFI_MTFTP6_CONFIG_DATA *) Config,
+ (EFI_MTFTP6_CONFIG_DATA *)Config,
Filename,
Overwrite,
BlockSize,
@@ -1050,7 +1045,7 @@ PxeBcTftpWriteFile (
} else {
return PxeBcMtftp4WriteFile (
Private,
- (EFI_MTFTP4_CONFIG_DATA *) Config,
+ (EFI_MTFTP4_CONFIG_DATA *)Config,
Filename,
Overwrite,
BlockSize,
@@ -1060,7 +1055,6 @@ PxeBcTftpWriteFile (
}
}
-
/**
This function is a wrapper to get the data (file) from a directory using TFTP.
@@ -1079,19 +1073,19 @@ PxeBcTftpWriteFile (
**/
EFI_STATUS
PxeBcTftpReadDirectory (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
)
{
if (Private->PxeBc.Mode->UsingIpv6) {
return PxeBcMtftp6ReadDirectory (
Private,
- (EFI_MTFTP6_CONFIG_DATA *) Config,
+ (EFI_MTFTP6_CONFIG_DATA *)Config,
Filename,
BlockSize,
BufferPtr,
@@ -1101,7 +1095,7 @@ PxeBcTftpReadDirectory (
} else {
return PxeBcMtftp4ReadDirectory (
Private,
- (EFI_MTFTP4_CONFIG_DATA *) Config,
+ (EFI_MTFTP4_CONFIG_DATA *)Config,
Filename,
BlockSize,
BufferPtr,
@@ -1110,4 +1104,3 @@ PxeBcTftpReadDirectory (
);
}
}
-
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h
@@ -23,9 +23,8 @@
#define PXE_MTFTP_OPTION_MAXIMUM_INDEX 4
#define PXE_MTFTP_OPTBUF_MAXNUM_INDEX 128
-#define PXE_MTFTP_ERROR_STRING_LENGTH 127 // refer to definition of struct EFI_PXE_BASE_CODE_TFTP_ERROR.
-#define PXE_MTFTP_DEFAULT_BLOCK_SIZE 512 // refer to rfc-1350.
-
+#define PXE_MTFTP_ERROR_STRING_LENGTH 127 // refer to definition of struct EFI_PXE_BASE_CODE_TFTP_ERROR.
+#define PXE_MTFTP_DEFAULT_BLOCK_SIZE 512 // refer to rfc-1350.
/**
This function is wrapper to get the file size using TFTP.
@@ -44,14 +43,13 @@
**/
EFI_STATUS
PxeBcTftpGetFileSize (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN OUT UINT64 *BufferSize
);
-
/**
This function is a wrapper to get a file using TFTP.
@@ -70,16 +68,15 @@ PxeBcTftpGetFileSize (
**/
EFI_STATUS
PxeBcTftpReadFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
);
-
/**
This function is a wrapper to put file with TFTP.
@@ -98,16 +95,15 @@ PxeBcTftpReadFile (
**/
EFI_STATUS
PxeBcTftpWriteFile (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN BOOLEAN Overwrite,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN BOOLEAN Overwrite,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize
);
-
/**
This function is a wrapper to get the data (file) from a directory using TFTP.
@@ -126,12 +122,13 @@ PxeBcTftpWriteFile (
**/
EFI_STATUS
PxeBcTftpReadDirectory (
- IN PXEBC_PRIVATE_DATA *Private,
- IN VOID *Config,
- IN UINT8 *Filename,
- IN UINTN *BlockSize,
- IN UINT8 *BufferPtr,
- IN OUT UINT64 *BufferSize,
- IN BOOLEAN DontUseBuffer
+ IN PXEBC_PRIVATE_DATA *Private,
+ IN VOID *Config,
+ IN UINT8 *Filename,
+ IN UINTN *BlockSize,
+ IN UINT8 *BufferPtr,
+ IN OUT UINT64 *BufferSize,
+ IN BOOLEAN DontUseBuffer
);
+
#endif
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c
@@ -84,7 +84,6 @@ ON_EXIT:
return Status;
}
-
/**
Notify the callback function when an event is triggered.
@@ -95,14 +94,13 @@ ON_EXIT:
VOID
EFIAPI
PxeBcCommonNotify (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- *((BOOLEAN *) Context) = TRUE;
+ *((BOOLEAN *)Context) = TRUE;
}
-
/**
Do arp resolution from arp cache in PxeBcMode.
@@ -117,12 +115,12 @@ PxeBcCommonNotify (
**/
BOOLEAN
PxeBcCheckArpCache (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN EFI_IPv4_ADDRESS *Ip4Addr,
- OUT EFI_MAC_ADDRESS *MacAddress
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN EFI_IPv4_ADDRESS *Ip4Addr,
+ OUT EFI_MAC_ADDRESS *MacAddress
)
{
- UINT32 Index;
+ UINT32 Index;
ASSERT (!Mode->UsingIpv6);
@@ -143,7 +141,6 @@ PxeBcCheckArpCache (
return FALSE;
}
-
/**
Update the arp cache periodically.
@@ -154,8 +151,8 @@ PxeBcCheckArpCache (
VOID
EFIAPI
PxeBcArpCacheUpdate (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -166,7 +163,7 @@ PxeBcArpCacheUpdate (
UINT32 Index;
EFI_STATUS Status;
- Private = (PXEBC_PRIVATE_DATA *) Context;
+ Private = (PXEBC_PRIVATE_DATA *)Context;
Mode = Private->PxeBc.Mode;
ASSERT (!Mode->UsingIpv6);
@@ -200,14 +197,13 @@ PxeBcArpCacheUpdate (
);
CopyMem (
&Mode->ArpCache[Index].MacAddr,
- (UINT8 *) (ArpEntry + 1) + ArpEntry->SwAddressLength,
+ (UINT8 *)(ArpEntry + 1) + ArpEntry->SwAddressLength,
ArpEntry->HwAddressLength
);
- ArpEntry = (EFI_ARP_FIND_DATA *) ((UINT8 *) ArpEntry + EntryLength);
+ ArpEntry = (EFI_ARP_FIND_DATA *)((UINT8 *)ArpEntry + EntryLength);
}
}
-
/**
Notify function to handle the received ICMP message in DPC.
@@ -217,20 +213,20 @@ PxeBcArpCacheUpdate (
VOID
EFIAPI
PxeBcIcmpErrorDpcHandle (
- IN VOID *Context
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_IP4_RECEIVE_DATA *RxData;
- EFI_IP4_PROTOCOL *Ip4;
- PXEBC_PRIVATE_DATA *Private;
- EFI_PXE_BASE_CODE_MODE *Mode;
- UINT8 Type;
- UINTN Index;
- UINT32 CopiedLen;
- UINT8 *IcmpError;
+ EFI_STATUS Status;
+ EFI_IP4_RECEIVE_DATA *RxData;
+ EFI_IP4_PROTOCOL *Ip4;
+ PXEBC_PRIVATE_DATA *Private;
+ EFI_PXE_BASE_CODE_MODE *Mode;
+ UINT8 Type;
+ UINTN Index;
+ UINT32 CopiedLen;
+ UINT8 *IcmpError;
- Private = (PXEBC_PRIVATE_DATA *) Context;
+ Private = (PXEBC_PRIVATE_DATA *)Context;
Mode = &Private->Mode;
Status = Private->IcmpToken.Status;
RxData = Private->IcmpToken.Packet.RxData;
@@ -257,10 +253,11 @@ PxeBcIcmpErrorDpcHandle (
goto ON_EXIT;
}
- if (EFI_IP4 (RxData->Header->SourceAddress) != 0 &&
+ if ((EFI_IP4 (RxData->Header->SourceAddress) != 0) &&
(NTOHL (Mode->SubnetMask.Addr[0]) != 0) &&
- IP4_NET_EQUAL (NTOHL(Mode->StationIp.Addr[0]), EFI_NTOHL (RxData->Header->SourceAddress), NTOHL (Mode->SubnetMask.Addr[0])) &&
- !NetIp4IsUnicast (EFI_NTOHL (RxData->Header->SourceAddress), NTOHL (Mode->SubnetMask.Addr[0]))) {
+ IP4_NET_EQUAL (NTOHL (Mode->StationIp.Addr[0]), EFI_NTOHL (RxData->Header->SourceAddress), NTOHL (Mode->SubnetMask.Addr[0])) &&
+ !NetIp4IsUnicast (EFI_NTOHL (RxData->Header->SourceAddress), NTOHL (Mode->SubnetMask.Addr[0])))
+ {
//
// The source address of the received packet should be a valid unicast address.
//
@@ -284,13 +281,14 @@ PxeBcIcmpErrorDpcHandle (
goto ON_EXIT;
}
- Type = *((UINT8 *) RxData->FragmentTable[0].FragmentBuffer);
+ Type = *((UINT8 *)RxData->FragmentTable[0].FragmentBuffer);
- if (Type != ICMP_DEST_UNREACHABLE &&
- Type != ICMP_SOURCE_QUENCH &&
- Type != ICMP_REDIRECT &&
- Type != ICMP_TIME_EXCEEDED &&
- Type != ICMP_PARAMETER_PROBLEM) {
+ if ((Type != ICMP_DEST_UNREACHABLE) &&
+ (Type != ICMP_SOURCE_QUENCH) &&
+ (Type != ICMP_REDIRECT) &&
+ (Type != ICMP_TIME_EXCEEDED) &&
+ (Type != ICMP_PARAMETER_PROBLEM))
+ {
//
// The type of the receveid ICMP message should be ICMP_ERROR_MESSAGE.
//
@@ -302,7 +300,7 @@ PxeBcIcmpErrorDpcHandle (
// Copy the right ICMP error message into mode data.
//
CopiedLen = 0;
- IcmpError = (UINT8 *) &Mode->IcmpError;
+ IcmpError = (UINT8 *)&Mode->IcmpError;
for (Index = 0; Index < RxData->FragmentCount; Index++) {
CopiedLen += RxData->FragmentTable[Index].FragmentLength;
@@ -319,6 +317,7 @@ PxeBcIcmpErrorDpcHandle (
CopiedLen - sizeof (EFI_PXE_BASE_CODE_ICMP_ERROR)
);
}
+
IcmpError += CopiedLen;
}
@@ -327,7 +326,6 @@ ON_EXIT:
Ip4->Receive (Ip4, &Private->IcmpToken);
}
-
/**
Callback function to update the latest ICMP6 error message.
@@ -338,14 +336,13 @@ ON_EXIT:
VOID
EFIAPI
PxeBcIcmpErrorUpdate (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
QueueDpc (TPL_CALLBACK, PxeBcIcmpErrorDpcHandle, Context);
}
-
/**
Notify function to handle the received ICMP6 message in DPC.
@@ -355,7 +352,7 @@ PxeBcIcmpErrorUpdate (
VOID
EFIAPI
PxeBcIcmp6ErrorDpcHandle (
- IN VOID *Context
+ IN VOID *Context
)
{
PXEBC_PRIVATE_DATA *Private;
@@ -368,7 +365,7 @@ PxeBcIcmp6ErrorDpcHandle (
UINT32 CopiedLen;
UINT8 *Icmp6Error;
- Private = (PXEBC_PRIVATE_DATA *) Context;
+ Private = (PXEBC_PRIVATE_DATA *)Context;
Mode = &Private->Mode;
Status = Private->Icmp6Token.Status;
RxData = Private->Icmp6Token.Packet.RxData;
@@ -404,7 +401,8 @@ PxeBcIcmp6ErrorDpcHandle (
}
if (!NetIp6IsUnspecifiedAddr (&Mode->StationIp.v6) &&
- !EFI_IP6_EQUAL (&RxData->Header->DestinationAddress, &Mode->StationIp.v6)) {
+ !EFI_IP6_EQUAL (&RxData->Header->DestinationAddress, &Mode->StationIp.v6))
+ {
//
// The destination address of the received packet should be equal to the host address.
//
@@ -420,12 +418,13 @@ PxeBcIcmp6ErrorDpcHandle (
goto ON_EXIT;
}
- Type = *((UINT8 *) RxData->FragmentTable[0].FragmentBuffer);
+ Type = *((UINT8 *)RxData->FragmentTable[0].FragmentBuffer);
- if (Type != ICMP_V6_DEST_UNREACHABLE &&
- Type != ICMP_V6_PACKET_TOO_BIG &&
- Type != ICMP_V6_TIME_EXCEEDED &&
- Type != ICMP_V6_PARAMETER_PROBLEM) {
+ if ((Type != ICMP_V6_DEST_UNREACHABLE) &&
+ (Type != ICMP_V6_PACKET_TOO_BIG) &&
+ (Type != ICMP_V6_TIME_EXCEEDED) &&
+ (Type != ICMP_V6_PARAMETER_PROBLEM))
+ {
//
// The type of the receveid packet should be an ICMP6 error message.
//
@@ -437,7 +436,7 @@ PxeBcIcmp6ErrorDpcHandle (
// Copy the right ICMP6 error message into mode data.
//
CopiedLen = 0;
- Icmp6Error = (UINT8 *) &Mode->IcmpError;
+ Icmp6Error = (UINT8 *)&Mode->IcmpError;
for (Index = 0; Index < RxData->FragmentCount; Index++) {
CopiedLen += RxData->FragmentTable[Index].FragmentLength;
@@ -454,6 +453,7 @@ PxeBcIcmp6ErrorDpcHandle (
CopiedLen - sizeof (EFI_PXE_BASE_CODE_ICMP_ERROR)
);
}
+
Icmp6Error += CopiedLen;
}
@@ -462,7 +462,6 @@ ON_EXIT:
Ip6->Receive (Ip6, &Private->Icmp6Token);
}
-
/**
Callback function to update the latest ICMP6 error message.
@@ -473,14 +472,13 @@ ON_EXIT:
VOID
EFIAPI
PxeBcIcmp6ErrorUpdate (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
QueueDpc (TPL_CALLBACK, PxeBcIcmp6ErrorDpcHandle, Context);
}
-
/**
This function is to configure a UDPv4 instance for UdpWrite.
@@ -543,7 +541,7 @@ PxeBcConfigUdp4Write (
}
}
- if (!EFI_ERROR (Status) && *SrcPort == 0) {
+ if (!EFI_ERROR (Status) && (*SrcPort == 0)) {
Udp4->GetModeData (Udp4, &Udp4CfgData, NULL, NULL, NULL);
*SrcPort = Udp4CfgData.StationPort;
}
@@ -551,7 +549,6 @@ PxeBcConfigUdp4Write (
return Status;
}
-
/**
This function is to configure a UDPv6 instance for UdpWrite.
@@ -593,7 +590,7 @@ PxeBcConfigUdp6Write (
return Status;
}
- if (!EFI_ERROR (Status) && *SrcPort == 0) {
+ if (!EFI_ERROR (Status) && (*SrcPort == 0)) {
Udp6->GetModeData (Udp6, &CfgData, NULL, NULL, NULL);
*SrcPort = CfgData.StationPort;
}
@@ -601,7 +598,6 @@ PxeBcConfigUdp6Write (
return Status;
}
-
/**
This function is to configure a UDPv4 instance for UdpWrite.
@@ -622,54 +618,54 @@ PxeBcConfigUdp6Write (
**/
EFI_STATUS
PxeBcUdp4Write (
- IN EFI_UDP4_PROTOCOL *Udp4,
- IN EFI_UDP4_SESSION_DATA *Session,
- IN EFI_EVENT TimeoutEvent,
- IN EFI_IPv4_ADDRESS *Gateway OPTIONAL,
- IN UINTN *HeaderSize OPTIONAL,
- IN VOID *HeaderPtr OPTIONAL,
- IN UINTN *BufferSize,
- IN VOID *BufferPtr
- )
-{
- EFI_UDP4_COMPLETION_TOKEN Token;
- EFI_UDP4_TRANSMIT_DATA *TxData;
- UINT32 TxLength;
- UINT32 FragCount;
- UINT32 DataLength;
- BOOLEAN IsDone;
- EFI_STATUS Status;
+ IN EFI_UDP4_PROTOCOL *Udp4,
+ IN EFI_UDP4_SESSION_DATA *Session,
+ IN EFI_EVENT TimeoutEvent,
+ IN EFI_IPv4_ADDRESS *Gateway OPTIONAL,
+ IN UINTN *HeaderSize OPTIONAL,
+ IN VOID *HeaderPtr OPTIONAL,
+ IN UINTN *BufferSize,
+ IN VOID *BufferPtr
+ )
+{
+ EFI_UDP4_COMPLETION_TOKEN Token;
+ EFI_UDP4_TRANSMIT_DATA *TxData;
+ UINT32 TxLength;
+ UINT32 FragCount;
+ UINT32 DataLength;
+ BOOLEAN IsDone;
+ EFI_STATUS Status;
//
// Arrange one fragment buffer for data, and another fragment buffer for header if has.
//
FragCount = (HeaderSize != NULL) ? 2 : 1;
TxLength = sizeof (EFI_UDP4_TRANSMIT_DATA) + (FragCount - 1) * sizeof (EFI_UDP4_FRAGMENT_DATA);
- TxData = (EFI_UDP4_TRANSMIT_DATA *) AllocateZeroPool (TxLength);
+ TxData = (EFI_UDP4_TRANSMIT_DATA *)AllocateZeroPool (TxLength);
if (TxData == NULL) {
return EFI_OUT_OF_RESOURCES;
}
TxData->FragmentCount = FragCount;
- TxData->FragmentTable[FragCount - 1].FragmentLength = (UINT32) *BufferSize;
+ TxData->FragmentTable[FragCount - 1].FragmentLength = (UINT32)*BufferSize;
TxData->FragmentTable[FragCount - 1].FragmentBuffer = BufferPtr;
- DataLength = (UINT32) *BufferSize;
+ DataLength = (UINT32)*BufferSize;
if (HeaderSize != NULL) {
- TxData->FragmentTable[0].FragmentLength = (UINT32) *HeaderSize;
+ TxData->FragmentTable[0].FragmentLength = (UINT32)*HeaderSize;
TxData->FragmentTable[0].FragmentBuffer = HeaderPtr;
- DataLength += (UINT32) *HeaderSize;
+ DataLength += (UINT32)*HeaderSize;
}
if (Gateway != NULL) {
- TxData->GatewayAddress = Gateway;
+ TxData->GatewayAddress = Gateway;
}
- TxData->UdpSessionData = Session;
- TxData->DataLength = DataLength;
- Token.Packet.TxData = TxData;
- Token.Status = EFI_NOT_READY;
- IsDone = FALSE;
+ TxData->UdpSessionData = Session;
+ TxData->DataLength = DataLength;
+ Token.Packet.TxData = TxData;
+ Token.Status = EFI_NOT_READY;
+ IsDone = FALSE;
Status = gBS->CreateEvent (
EVT_NOTIFY_SIGNAL,
@@ -692,7 +688,8 @@ PxeBcUdp4Write (
//
while (!IsDone &&
Token.Status == EFI_NOT_READY &&
- EFI_ERROR (gBS->CheckEvent (TimeoutEvent))) {
+ EFI_ERROR (gBS->CheckEvent (TimeoutEvent)))
+ {
Udp4->Poll (Udp4);
}
@@ -702,12 +699,12 @@ ON_EXIT:
if (Token.Event != NULL) {
gBS->CloseEvent (Token.Event);
}
+
FreePool (TxData);
return Status;
}
-
/**
This function is to configure a UDPv4 instance for UdpWrite.
@@ -727,49 +724,49 @@ ON_EXIT:
**/
EFI_STATUS
PxeBcUdp6Write (
- IN EFI_UDP6_PROTOCOL *Udp6,
- IN EFI_UDP6_SESSION_DATA *Session,
- IN EFI_EVENT TimeoutEvent,
- IN UINTN *HeaderSize OPTIONAL,
- IN VOID *HeaderPtr OPTIONAL,
- IN UINTN *BufferSize,
- IN VOID *BufferPtr
- )
-{
- EFI_UDP6_COMPLETION_TOKEN Token;
- EFI_UDP6_TRANSMIT_DATA *TxData;
- UINT32 TxLength;
- UINT32 FragCount;
- UINT32 DataLength;
- BOOLEAN IsDone;
- EFI_STATUS Status;
+ IN EFI_UDP6_PROTOCOL *Udp6,
+ IN EFI_UDP6_SESSION_DATA *Session,
+ IN EFI_EVENT TimeoutEvent,
+ IN UINTN *HeaderSize OPTIONAL,
+ IN VOID *HeaderPtr OPTIONAL,
+ IN UINTN *BufferSize,
+ IN VOID *BufferPtr
+ )
+{
+ EFI_UDP6_COMPLETION_TOKEN Token;
+ EFI_UDP6_TRANSMIT_DATA *TxData;
+ UINT32 TxLength;
+ UINT32 FragCount;
+ UINT32 DataLength;
+ BOOLEAN IsDone;
+ EFI_STATUS Status;
//
// Arrange one fragment buffer for data, and another fragment buffer for header if has.
//
FragCount = (HeaderSize != NULL) ? 2 : 1;
TxLength = sizeof (EFI_UDP6_TRANSMIT_DATA) + (FragCount - 1) * sizeof (EFI_UDP6_FRAGMENT_DATA);
- TxData = (EFI_UDP6_TRANSMIT_DATA *) AllocateZeroPool (TxLength);
+ TxData = (EFI_UDP6_TRANSMIT_DATA *)AllocateZeroPool (TxLength);
if (TxData == NULL) {
return EFI_OUT_OF_RESOURCES;
}
TxData->FragmentCount = FragCount;
- TxData->FragmentTable[FragCount - 1].FragmentLength = (UINT32) *BufferSize;
+ TxData->FragmentTable[FragCount - 1].FragmentLength = (UINT32)*BufferSize;
TxData->FragmentTable[FragCount - 1].FragmentBuffer = BufferPtr;
- DataLength = (UINT32) *BufferSize;
+ DataLength = (UINT32)*BufferSize;
if (HeaderSize != NULL) {
- TxData->FragmentTable[0].FragmentLength = (UINT32) *HeaderSize;
+ TxData->FragmentTable[0].FragmentLength = (UINT32)*HeaderSize;
TxData->FragmentTable[0].FragmentBuffer = HeaderPtr;
- DataLength += (UINT32) *HeaderSize;
+ DataLength += (UINT32)*HeaderSize;
}
- TxData->UdpSessionData = Session;
- TxData->DataLength = DataLength;
- Token.Packet.TxData = TxData;
- Token.Status = EFI_NOT_READY;
- IsDone = FALSE;
+ TxData->UdpSessionData = Session;
+ TxData->DataLength = DataLength;
+ Token.Packet.TxData = TxData;
+ Token.Status = EFI_NOT_READY;
+ IsDone = FALSE;
Status = gBS->CreateEvent (
EVT_NOTIFY_SIGNAL,
@@ -792,7 +789,8 @@ PxeBcUdp6Write (
//
while (!IsDone &&
Token.Status == EFI_NOT_READY &&
- EFI_ERROR (gBS->CheckEvent (TimeoutEvent))) {
+ EFI_ERROR (gBS->CheckEvent (TimeoutEvent)))
+ {
Udp6->Poll (Udp6);
}
@@ -802,12 +800,12 @@ ON_EXIT:
if (Token.Event != NULL) {
gBS->CloseEvent (Token.Event);
}
+
FreePool (TxData);
return Status;
}
-
/**
Check the received packet using the Ip filter.
@@ -821,13 +819,13 @@ ON_EXIT:
**/
BOOLEAN
PxeBcCheckByIpFilter (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN UINT16 OpFlags
)
{
- EFI_IP_ADDRESS DestinationIp;
- UINTN Index;
+ EFI_IP_ADDRESS DestinationIp;
+ UINTN Index;
if ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER) == 0) {
return TRUE;
@@ -843,7 +841,7 @@ PxeBcCheckByIpFilter (
if (Mode->UsingIpv6) {
CopyMem (
&DestinationIp,
- &((EFI_UDP6_SESSION_DATA *) Session)->DestinationAddress,
+ &((EFI_UDP6_SESSION_DATA *)Session)->DestinationAddress,
sizeof (EFI_IPv6_ADDRESS)
);
NTOHLLL (&DestinationIp.v6);
@@ -851,27 +849,30 @@ PxeBcCheckByIpFilter (
ZeroMem (&DestinationIp, sizeof (EFI_IP_ADDRESS));
CopyMem (
&DestinationIp,
- &((EFI_UDP4_SESSION_DATA *) Session)->DestinationAddress,
+ &((EFI_UDP4_SESSION_DATA *)Session)->DestinationAddress,
sizeof (EFI_IPv4_ADDRESS)
);
EFI_NTOHL (DestinationIp);
}
- if ((Mode->IpFilter.Filters & EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST) != 0 &&
+ if (((Mode->IpFilter.Filters & EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST) != 0) &&
(IP4_IS_MULTICAST (DestinationIp.Addr[0]) ||
- IP6_IS_MULTICAST (&DestinationIp))) {
+ IP6_IS_MULTICAST (&DestinationIp)))
+ {
return TRUE;
}
- if ((Mode->IpFilter.Filters & EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST) != 0 &&
- IP4_IS_LOCAL_BROADCAST (DestinationIp.Addr[0])) {
+ if (((Mode->IpFilter.Filters & EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST) != 0) &&
+ IP4_IS_LOCAL_BROADCAST (DestinationIp.Addr[0]))
+ {
ASSERT (!Mode->UsingIpv6);
return TRUE;
}
- if ((Mode->IpFilter.Filters & EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP) != 0 &&
+ if (((Mode->IpFilter.Filters & EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP) != 0) &&
(EFI_IP4_EQUAL (&Mode->StationIp.v4, &DestinationIp) ||
- EFI_IP6_EQUAL (&Mode->StationIp.v6, &DestinationIp))) {
+ EFI_IP6_EQUAL (&Mode->StationIp.v6, &DestinationIp)))
+ {
//
// Matched if the dest address is equal to the station address.
//
@@ -881,7 +882,8 @@ PxeBcCheckByIpFilter (
for (Index = 0; Index < Mode->IpFilter.IpCnt; Index++) {
ASSERT (Index < EFI_PXE_BASE_CODE_MAX_IPCNT);
if (EFI_IP4_EQUAL (&Mode->IpFilter.IpList[Index].v4, &DestinationIp) ||
- EFI_IP6_EQUAL (&Mode->IpFilter.IpList[Index].v6, &DestinationIp)) {
+ EFI_IP6_EQUAL (&Mode->IpFilter.IpList[Index].v6, &DestinationIp))
+ {
//
// Matched if the dest address is equal to any of address in the filter list.
//
@@ -892,7 +894,6 @@ PxeBcCheckByIpFilter (
return FALSE;
}
-
/**
Filter the received packet using the destination Ip.
@@ -907,10 +908,10 @@ PxeBcCheckByIpFilter (
**/
BOOLEAN
PxeBcCheckByDestIp (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT EFI_IP_ADDRESS *DestIp,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT EFI_IP_ADDRESS *DestIp,
+ IN UINT16 OpFlags
)
{
if ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP) != 0) {
@@ -932,18 +933,20 @@ PxeBcCheckByDestIp (
sizeof (EFI_IPv4_ADDRESS)
);
}
-
}
+
return TRUE;
- } else if (DestIp != NULL &&
+ } else if ((DestIp != NULL) &&
(EFI_IP4_EQUAL (DestIp, &((EFI_UDP4_SESSION_DATA *)Session)->DestinationAddress) ||
- EFI_IP6_EQUAL (DestIp, &((EFI_UDP6_SESSION_DATA *)Session)->DestinationAddress))) {
+ EFI_IP6_EQUAL (DestIp, &((EFI_UDP6_SESSION_DATA *)Session)->DestinationAddress)))
+ {
//
// The destination address in the received packet is matched if present.
//
return TRUE;
} else if (EFI_IP4_EQUAL (&Mode->StationIp, &((EFI_UDP4_SESSION_DATA *)Session)->DestinationAddress) ||
- EFI_IP6_EQUAL (&Mode->StationIp, &((EFI_UDP6_SESSION_DATA *)Session)->DestinationAddress)) {
+ EFI_IP6_EQUAL (&Mode->StationIp, &((EFI_UDP6_SESSION_DATA *)Session)->DestinationAddress))
+ {
//
// The destination address in the received packet is equal to the host address.
//
@@ -953,7 +956,6 @@ PxeBcCheckByDestIp (
return FALSE;
}
-
/**
Check the received packet using the destination port.
@@ -968,18 +970,18 @@ PxeBcCheckByDestIp (
**/
BOOLEAN
PxeBcCheckByDestPort (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT UINT16 *DestPort,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT UINT16 *DestPort,
+ IN UINT16 OpFlags
)
{
- UINT16 Port;
+ UINT16 Port;
if (Mode->UsingIpv6) {
- Port = ((EFI_UDP6_SESSION_DATA *) Session)->DestinationPort;
+ Port = ((EFI_UDP6_SESSION_DATA *)Session)->DestinationPort;
} else {
- Port = ((EFI_UDP4_SESSION_DATA *) Session)->DestinationPort;
+ Port = ((EFI_UDP4_SESSION_DATA *)Session)->DestinationPort;
}
if ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT) != 0) {
@@ -989,8 +991,9 @@ PxeBcCheckByDestPort (
if (DestPort != NULL) {
*DestPort = Port;
}
+
return TRUE;
- } else if (DestPort != NULL && *DestPort == Port) {
+ } else if ((DestPort != NULL) && (*DestPort == Port)) {
//
// The destination port in the received packet is matched if present.
//
@@ -1000,7 +1003,6 @@ PxeBcCheckByDestPort (
return FALSE;
}
-
/**
Filter the received packet using the source Ip.
@@ -1015,10 +1017,10 @@ PxeBcCheckByDestPort (
**/
BOOLEAN
PxeBcFilterBySrcIp (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT EFI_IP_ADDRESS *SrcIp,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT EFI_IP_ADDRESS *SrcIp,
+ IN UINT16 OpFlags
)
{
if ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP) != 0) {
@@ -1040,12 +1042,13 @@ PxeBcFilterBySrcIp (
sizeof (EFI_IPv4_ADDRESS)
);
}
-
}
+
return TRUE;
- } else if (SrcIp != NULL &&
+ } else if ((SrcIp != NULL) &&
(EFI_IP4_EQUAL (SrcIp, &((EFI_UDP4_SESSION_DATA *)Session)->SourceAddress) ||
- EFI_IP6_EQUAL (SrcIp, &((EFI_UDP6_SESSION_DATA *)Session)->SourceAddress))) {
+ EFI_IP6_EQUAL (SrcIp, &((EFI_UDP6_SESSION_DATA *)Session)->SourceAddress)))
+ {
//
// The source address in the received packet is matched if present.
//
@@ -1055,7 +1058,6 @@ PxeBcFilterBySrcIp (
return FALSE;
}
-
/**
Filter the received packet using the source port.
@@ -1070,18 +1072,18 @@ PxeBcFilterBySrcIp (
**/
BOOLEAN
PxeBcFilterBySrcPort (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT UINT16 *SrcPort,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT UINT16 *SrcPort,
+ IN UINT16 OpFlags
)
{
- UINT16 Port;
+ UINT16 Port;
if (Mode->UsingIpv6) {
- Port = ((EFI_UDP6_SESSION_DATA *) Session)->SourcePort;
+ Port = ((EFI_UDP6_SESSION_DATA *)Session)->SourcePort;
} else {
- Port = ((EFI_UDP4_SESSION_DATA *) Session)->SourcePort;
+ Port = ((EFI_UDP4_SESSION_DATA *)Session)->SourcePort;
}
if ((OpFlags & EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT) != 0) {
@@ -1091,8 +1093,9 @@ PxeBcFilterBySrcPort (
if (SrcPort != NULL) {
*SrcPort = Port;
}
+
return TRUE;
- } else if (SrcPort != NULL && *SrcPort == Port) {
+ } else if ((SrcPort != NULL) && (*SrcPort == Port)) {
//
// The source port in the received packet is matched if present.
//
@@ -1102,7 +1105,6 @@ PxeBcFilterBySrcPort (
return FALSE;
}
-
/**
This function is to receive packet using Udp4Read.
@@ -1124,22 +1126,22 @@ PxeBcFilterBySrcPort (
**/
EFI_STATUS
PxeBcUdp4Read (
- IN EFI_UDP4_PROTOCOL *Udp4,
- IN EFI_UDP4_COMPLETION_TOKEN *Token,
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN EFI_EVENT TimeoutEvent,
- IN UINT16 OpFlags,
- IN BOOLEAN *IsDone,
- OUT BOOLEAN *IsMatched,
- IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
- IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
- )
-{
- EFI_UDP4_RECEIVE_DATA *RxData;
- EFI_UDP4_SESSION_DATA *Session;
- EFI_STATUS Status;
+ IN EFI_UDP4_PROTOCOL *Udp4,
+ IN EFI_UDP4_COMPLETION_TOKEN *Token,
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN EFI_EVENT TimeoutEvent,
+ IN UINT16 OpFlags,
+ IN BOOLEAN *IsDone,
+ OUT BOOLEAN *IsMatched,
+ IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
+ IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
+ )
+{
+ EFI_UDP4_RECEIVE_DATA *RxData;
+ EFI_UDP4_SESSION_DATA *Session;
+ EFI_STATUS Status;
Token->Status = EFI_NOT_READY;
*IsDone = FALSE;
@@ -1154,16 +1156,18 @@ PxeBcUdp4Read (
//
while (!(*IsDone) &&
Token->Status == EFI_NOT_READY &&
- EFI_ERROR (gBS->CheckEvent (TimeoutEvent))) {
+ EFI_ERROR (gBS->CheckEvent (TimeoutEvent)))
+ {
//
// Poll the token utill reply/ICMPv6 error message received or timeout.
//
Udp4->Poll (Udp4);
- if (Token->Status == EFI_ICMP_ERROR ||
- Token->Status == EFI_NETWORK_UNREACHABLE ||
- Token->Status == EFI_HOST_UNREACHABLE ||
- Token->Status == EFI_PROTOCOL_UNREACHABLE ||
- Token->Status == EFI_PORT_UNREACHABLE) {
+ if ((Token->Status == EFI_ICMP_ERROR) ||
+ (Token->Status == EFI_NETWORK_UNREACHABLE) ||
+ (Token->Status == EFI_HOST_UNREACHABLE) ||
+ (Token->Status == EFI_PROTOCOL_UNREACHABLE) ||
+ (Token->Status == EFI_PORT_UNREACHABLE))
+ {
break;
}
}
@@ -1174,8 +1178,8 @@ PxeBcUdp4Read (
//
// check whether this packet matches the filters
//
- RxData = Token->Packet.RxData;
- Session = &RxData->UdpSession;
+ RxData = Token->Packet.RxData;
+ Session = &RxData->UdpSession;
*IsMatched = PxeBcCheckByIpFilter (Mode, Session, OpFlags);
@@ -1206,7 +1210,6 @@ PxeBcUdp4Read (
return Status;
}
-
/**
This function is to receive packets using Udp6Read.
@@ -1228,22 +1231,22 @@ PxeBcUdp4Read (
**/
EFI_STATUS
PxeBcUdp6Read (
- IN EFI_UDP6_PROTOCOL *Udp6,
- IN EFI_UDP6_COMPLETION_TOKEN *Token,
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN EFI_EVENT TimeoutEvent,
- IN UINT16 OpFlags,
- IN BOOLEAN *IsDone,
- OUT BOOLEAN *IsMatched,
- IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
- IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
- )
-{
- EFI_UDP6_RECEIVE_DATA *RxData;
- EFI_UDP6_SESSION_DATA *Session;
- EFI_STATUS Status;
+ IN EFI_UDP6_PROTOCOL *Udp6,
+ IN EFI_UDP6_COMPLETION_TOKEN *Token,
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN EFI_EVENT TimeoutEvent,
+ IN UINT16 OpFlags,
+ IN BOOLEAN *IsDone,
+ OUT BOOLEAN *IsMatched,
+ IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
+ IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
+ )
+{
+ EFI_UDP6_RECEIVE_DATA *RxData;
+ EFI_UDP6_SESSION_DATA *Session;
+ EFI_STATUS Status;
Token->Status = EFI_NOT_READY;
*IsDone = FALSE;
@@ -1258,16 +1261,18 @@ PxeBcUdp6Read (
//
while (!(*IsDone) &&
Token->Status == EFI_NOT_READY &&
- EFI_ERROR (gBS->CheckEvent (TimeoutEvent))) {
+ EFI_ERROR (gBS->CheckEvent (TimeoutEvent)))
+ {
//
// Poll the token utill reply/ICMPv6 error message received or timeout.
//
Udp6->Poll (Udp6);
- if (Token->Status == EFI_ICMP_ERROR ||
- Token->Status == EFI_NETWORK_UNREACHABLE ||
- Token->Status == EFI_HOST_UNREACHABLE ||
- Token->Status == EFI_PROTOCOL_UNREACHABLE ||
- Token->Status == EFI_PORT_UNREACHABLE) {
+ if ((Token->Status == EFI_ICMP_ERROR) ||
+ (Token->Status == EFI_NETWORK_UNREACHABLE) ||
+ (Token->Status == EFI_HOST_UNREACHABLE) ||
+ (Token->Status == EFI_PROTOCOL_UNREACHABLE) ||
+ (Token->Status == EFI_PORT_UNREACHABLE))
+ {
break;
}
}
@@ -1278,8 +1283,8 @@ PxeBcUdp6Read (
//
// check whether this packet matches the filters
//
- RxData = Token->Packet.RxData;
- Session = &RxData->UdpSession;
+ RxData = Token->Packet.RxData;
+ Session = &RxData->UdpSession;
*IsMatched = PxeBcCheckByIpFilter (Mode, Session, OpFlags);
@@ -1310,7 +1315,6 @@ PxeBcUdp6Read (
return Status;
}
-
/**
This function is to display the IPv4 address.
@@ -1319,10 +1323,10 @@ PxeBcUdp6Read (
**/
VOID
PxeBcShowIp4Addr (
- IN EFI_IPv4_ADDRESS *Ip
+ IN EFI_IPv4_ADDRESS *Ip
)
{
- UINTN Index;
+ UINTN Index;
for (Index = 0; Index < 4; Index++) {
AsciiPrint ("%d", Ip->Addr[Index]);
@@ -1332,7 +1336,6 @@ PxeBcShowIp4Addr (
}
}
-
/**
This function is to display the IPv6 address.
@@ -1341,23 +1344,25 @@ PxeBcShowIp4Addr (
**/
VOID
PxeBcShowIp6Addr (
- IN EFI_IPv6_ADDRESS *Ip
+ IN EFI_IPv6_ADDRESS *Ip
)
{
- UINTN Index;
+ UINTN Index;
for (Index = 0; Index < 16; Index++) {
-
if (Ip->Addr[Index] != 0) {
AsciiPrint ("%x", Ip->Addr[Index]);
}
+
Index++;
if (Index > 15) {
return;
}
+
if (((Ip->Addr[Index] & 0xf0) == 0) && (Ip->Addr[Index - 1] != 0)) {
AsciiPrint ("0");
}
+
AsciiPrint ("%x", Ip->Addr[Index]);
if (Index < 15) {
AsciiPrint (":");
@@ -1365,7 +1370,6 @@ PxeBcShowIp6Addr (
}
}
-
/**
This function is to convert UINTN to ASCII string with the required formatting.
@@ -1376,21 +1380,20 @@ PxeBcShowIp6Addr (
**/
VOID
PxeBcUintnToAscDecWithFormat (
- IN UINTN Number,
- IN UINT8 *Buffer,
- IN INTN Length
+ IN UINTN Number,
+ IN UINT8 *Buffer,
+ IN INTN Length
)
{
- UINTN Remainder;
+ UINTN Remainder;
- for (; Length > 0; Length--) {
- Remainder = Number % 10;
- Number /= 10;
- Buffer[Length - 1] = (UINT8) ('0' + Remainder);
+ for ( ; Length > 0; Length--) {
+ Remainder = Number % 10;
+ Number /= 10;
+ Buffer[Length - 1] = (UINT8)('0' + Remainder);
}
}
-
/**
This function is to convert a UINTN to a ASCII string, and return the
actual length of the buffer.
@@ -1404,32 +1407,31 @@ PxeBcUintnToAscDecWithFormat (
**/
UINTN
PxeBcUintnToAscDec (
- IN UINTN Number,
- IN UINT8 *Buffer,
- IN UINTN BufferSize
+ IN UINTN Number,
+ IN UINT8 *Buffer,
+ IN UINTN BufferSize
)
{
- UINTN Index;
- UINTN Length;
- CHAR8 TempStr[64];
+ UINTN Index;
+ UINTN Length;
+ CHAR8 TempStr[64];
- Index = 63;
- TempStr[Index] = 0;
+ Index = 63;
+ TempStr[Index] = 0;
do {
Index--;
- TempStr[Index] = (CHAR8) ('0' + (Number % 10));
- Number = (UINTN) (Number / 10);
+ TempStr[Index] = (CHAR8)('0' + (Number % 10));
+ Number = (UINTN)(Number / 10);
} while (Number != 0);
- AsciiStrCpyS ((CHAR8 *) Buffer, BufferSize, &TempStr[Index]);
+ AsciiStrCpyS ((CHAR8 *)Buffer, BufferSize, &TempStr[Index]);
- Length = AsciiStrLen ((CHAR8 *) Buffer);
+ Length = AsciiStrLen ((CHAR8 *)Buffer);
return Length;
}
-
/**
This function is to convert unicode hex number to a UINT8.
@@ -1442,22 +1444,22 @@ PxeBcUintnToAscDec (
**/
EFI_STATUS
PxeBcUniHexToUint8 (
- OUT UINT8 *Digit,
- IN CHAR16 Char
+ OUT UINT8 *Digit,
+ IN CHAR16 Char
)
{
if ((Char >= L'0') && (Char <= L'9')) {
- *Digit = (UINT8) (Char - L'0');
+ *Digit = (UINT8)(Char - L'0');
return EFI_SUCCESS;
}
if ((Char >= L'A') && (Char <= L'F')) {
- *Digit = (UINT8) (Char - L'A' + 0x0A);
+ *Digit = (UINT8)(Char - L'A' + 0x0A);
return EFI_SUCCESS;
}
if ((Char >= L'a') && (Char <= L'f')) {
- *Digit = (UINT8) (Char - L'a' + 0x0A);
+ *Digit = (UINT8)(Char - L'a' + 0x0A);
return EFI_SUCCESS;
}
@@ -1472,12 +1474,12 @@ PxeBcUniHexToUint8 (
**/
VOID
CalcElapsedTime (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
)
{
- EFI_TIME Time;
- UINT64 CurrentStamp;
- UINT64 ElapsedTimeValue;
+ EFI_TIME Time;
+ UINT64 CurrentStamp;
+ UINT64 ElapsedTimeValue;
//
// Generate a time stamp of the centiseconds from 1900/1/1, assume 30day/month.
@@ -1509,6 +1511,7 @@ CalcElapsedTime (
if (ElapsedTimeValue > 0xffff) {
ElapsedTimeValue = 0xffff;
}
+
//
// Save the elapsed time
//
Index: ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h
===================================================================
--- ovmf-2017+git1510945757.b2662641d5.orig/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h
+++ ovmf-2017+git1510945757.b2662641d5/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h
@@ -16,15 +16,12 @@
#ifndef __EFI_PXEBC_SUPPORT_H__
#define __EFI_PXEBC_SUPPORT_H__
-
-#define ICMP_DEST_UNREACHABLE 3
-#define ICMP_SOURCE_QUENCH 4
-#define ICMP_REDIRECT 5
-#define ICMP_ECHO_REQUEST 8
-#define ICMP_TIME_EXCEEDED 11
-#define ICMP_PARAMETER_PROBLEM 12
-
-
+#define ICMP_DEST_UNREACHABLE 3
+#define ICMP_SOURCE_QUENCH 4
+#define ICMP_REDIRECT 5
+#define ICMP_ECHO_REQUEST 8
+#define ICMP_TIME_EXCEEDED 11
+#define ICMP_PARAMETER_PROBLEM 12
/**
Flush the previous configration using the new station Ip address.
@@ -55,11 +52,10 @@ PxeBcFlushStationIp (
VOID
EFIAPI
PxeBcCommonNotify (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
-
/**
Perform arp resolution from the arp cache in PxeBcMode.
@@ -74,12 +70,11 @@ PxeBcCommonNotify (
**/
BOOLEAN
PxeBcCheckArpCache (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN EFI_IPv4_ADDRESS *Ip4Addr,
- OUT EFI_MAC_ADDRESS *MacAddress
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN EFI_IPv4_ADDRESS *Ip4Addr,
+ OUT EFI_MAC_ADDRESS *MacAddress
);
-
/**
Update arp cache periodically.
@@ -90,11 +85,10 @@ PxeBcCheckArpCache (
VOID
EFIAPI
PxeBcArpCacheUpdate (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
-
/**
xxx
@@ -105,11 +99,10 @@ PxeBcArpCacheUpdate (
VOID
EFIAPI
PxeBcIcmpErrorUpdate (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
-
/**
xxx
@@ -120,11 +113,10 @@ PxeBcIcmpErrorUpdate (
VOID
EFIAPI
PxeBcIcmp6ErrorUpdate (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
-
/**
This function is to configure a UDPv4 instance for UdpWrite.
@@ -154,7 +146,6 @@ PxeBcConfigUdp4Write (
IN UINT8 ToS
);
-
/**
This function is to configure a UDPv6 instance for UdpWrite.
@@ -193,17 +184,16 @@ PxeBcConfigUdp6Write (
**/
EFI_STATUS
PxeBcUdp4Write (
- IN EFI_UDP4_PROTOCOL *Udp4,
- IN EFI_UDP4_SESSION_DATA *Session,
- IN EFI_EVENT TimeoutEvent,
- IN EFI_IPv4_ADDRESS *Gateway OPTIONAL,
- IN UINTN *HeaderSize OPTIONAL,
- IN VOID *HeaderPtr OPTIONAL,
- IN UINTN *BufferSize,
- IN VOID *BufferPtr
+ IN EFI_UDP4_PROTOCOL *Udp4,
+ IN EFI_UDP4_SESSION_DATA *Session,
+ IN EFI_EVENT TimeoutEvent,
+ IN EFI_IPv4_ADDRESS *Gateway OPTIONAL,
+ IN UINTN *HeaderSize OPTIONAL,
+ IN VOID *HeaderPtr OPTIONAL,
+ IN UINTN *BufferSize,
+ IN VOID *BufferPtr
);
-
/**
This function is to configure a UDPv6 instance for UdpWrite.
@@ -223,16 +213,15 @@ PxeBcUdp4Write (
**/
EFI_STATUS
PxeBcUdp6Write (
- IN EFI_UDP6_PROTOCOL *Udp6,
- IN EFI_UDP6_SESSION_DATA *Session,
- IN EFI_EVENT TimeoutEvent,
- IN UINTN *HeaderSize OPTIONAL,
- IN VOID *HeaderPtr OPTIONAL,
- IN UINTN *BufferSize,
- IN VOID *BufferPtr
+ IN EFI_UDP6_PROTOCOL *Udp6,
+ IN EFI_UDP6_SESSION_DATA *Session,
+ IN EFI_EVENT TimeoutEvent,
+ IN UINTN *HeaderSize OPTIONAL,
+ IN VOID *HeaderPtr OPTIONAL,
+ IN UINTN *BufferSize,
+ IN VOID *BufferPtr
);
-
/**
Check the received packet with the Ip filter.
@@ -246,12 +235,11 @@ PxeBcUdp6Write (
**/
BOOLEAN
PxeBcCheckByIpFilter (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN UINT16 OpFlags
);
-
/**
Filter the received packet with the destination Ip.
@@ -266,13 +254,12 @@ PxeBcCheckByIpFilter (
**/
BOOLEAN
PxeBcCheckByDestIp (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT EFI_IP_ADDRESS *DestIp,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT EFI_IP_ADDRESS *DestIp,
+ IN UINT16 OpFlags
);
-
/**
Check the received packet with the destination port.
@@ -287,13 +274,12 @@ PxeBcCheckByDestIp (
**/
BOOLEAN
PxeBcCheckByDestPort (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT UINT16 *DestPort,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT UINT16 *DestPort,
+ IN UINT16 OpFlags
);
-
/**
Filter the received packet with the source Ip.
@@ -308,13 +294,12 @@ PxeBcCheckByDestPort (
**/
BOOLEAN
PxeBcFilterBySrcIp (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT EFI_IP_ADDRESS *SrcIp,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT EFI_IP_ADDRESS *SrcIp,
+ IN UINT16 OpFlags
);
-
/**
Filter the received packet with the source port.
@@ -329,13 +314,12 @@ PxeBcFilterBySrcIp (
**/
BOOLEAN
PxeBcFilterBySrcPort (
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN VOID *Session,
- IN OUT UINT16 *SrcPort,
- IN UINT16 OpFlags
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN VOID *Session,
+ IN OUT UINT16 *SrcPort,
+ IN UINT16 OpFlags
);
-
/**
This function is to receive packet with Udp4Read.
@@ -357,20 +341,19 @@ PxeBcFilterBySrcPort (
**/
EFI_STATUS
PxeBcUdp4Read (
- IN EFI_UDP4_PROTOCOL *Udp4,
- IN EFI_UDP4_COMPLETION_TOKEN *Token,
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN EFI_EVENT TimeoutEvent,
- IN UINT16 OpFlags,
- IN BOOLEAN *IsDone,
- OUT BOOLEAN *IsMatched,
- IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
- IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
+ IN EFI_UDP4_PROTOCOL *Udp4,
+ IN EFI_UDP4_COMPLETION_TOKEN *Token,
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN EFI_EVENT TimeoutEvent,
+ IN UINT16 OpFlags,
+ IN BOOLEAN *IsDone,
+ OUT BOOLEAN *IsMatched,
+ IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
+ IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
);
-
/**
This function is to receive packet with Udp6Read.
@@ -392,20 +375,19 @@ PxeBcUdp4Read (
**/
EFI_STATUS
PxeBcUdp6Read (
- IN EFI_UDP6_PROTOCOL *Udp6,
- IN EFI_UDP6_COMPLETION_TOKEN *Token,
- IN EFI_PXE_BASE_CODE_MODE *Mode,
- IN EFI_EVENT TimeoutEvent,
- IN UINT16 OpFlags,
- IN BOOLEAN *IsDone,
- OUT BOOLEAN *IsMatched,
- IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
- IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
+ IN EFI_UDP6_PROTOCOL *Udp6,
+ IN EFI_UDP6_COMPLETION_TOKEN *Token,
+ IN EFI_PXE_BASE_CODE_MODE *Mode,
+ IN EFI_EVENT TimeoutEvent,
+ IN UINT16 OpFlags,
+ IN BOOLEAN *IsDone,
+ OUT BOOLEAN *IsMatched,
+ IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL,
+ IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL,
+ IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL
);
-
/**
This function is to display the IPv4 address.
@@ -414,10 +396,9 @@ PxeBcUdp6Read (
**/
VOID
PxeBcShowIp4Addr (
- IN EFI_IPv4_ADDRESS *Ip
+ IN EFI_IPv4_ADDRESS *Ip
);
-
/**
This function is to display the IPv6 address.
@@ -426,10 +407,9 @@ PxeBcShowIp4Addr (
**/
VOID
PxeBcShowIp6Addr (
- IN EFI_IPv6_ADDRESS *Ip
+ IN EFI_IPv6_ADDRESS *Ip
);
-
/**
This function is to convert UINTN to ASCII string with required format.
@@ -440,12 +420,11 @@ PxeBcShowIp6Addr (
**/
VOID
PxeBcUintnToAscDecWithFormat (
- IN UINTN Number,
- IN UINT8 *Buffer,
- IN INTN Length
+ IN UINTN Number,
+ IN UINT8 *Buffer,
+ IN INTN Length
);
-
/**
This function is to convert a UINTN to a ASCII string, and return the
actual length of the buffer.
@@ -459,9 +438,9 @@ PxeBcUintnToAscDecWithFormat (
**/
UINTN
PxeBcUintnToAscDec (
- IN UINTN Number,
- IN UINT8 *Buffer,
- IN UINTN BufferSize
+ IN UINTN Number,
+ IN UINT8 *Buffer,
+ IN UINTN BufferSize
);
/**
@@ -476,8 +455,8 @@ PxeBcUintnToAscDec (
**/
EFI_STATUS
PxeBcUniHexToUint8 (
- OUT UINT8 *Digit,
- IN CHAR16 Char
+ OUT UINT8 *Digit,
+ IN CHAR16 Char
);
/**
@@ -488,7 +467,7 @@ PxeBcUniHexToUint8 (
**/
VOID
CalcElapsedTime (
- IN PXEBC_PRIVATE_DATA *Private
+ IN PXEBC_PRIVATE_DATA *Private
);
/**
@@ -501,7 +480,7 @@ CalcElapsedTime (
**/
EFI_HANDLE
PxeBcGetNicByIp4Children (
- IN EFI_HANDLE ControllerHandle
+ IN EFI_HANDLE ControllerHandle
);
/**
@@ -514,6 +493,7 @@ PxeBcGetNicByIp4Children (
**/
EFI_HANDLE
PxeBcGetNicByIp6Children (
- IN EFI_HANDLE ControllerHandle
+ IN EFI_HANDLE ControllerHandle
);
+
#endif