ShellPkg: Update tftp to build with current tip

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Signed-off-by: Tapan  Shah <tapandshah@hpe.com>
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18543 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Jaben Carsey 2015-09-24 20:44:59 +00:00 committed by jcarsey
parent 310b053a86
commit 6add86ab59
3 changed files with 20 additions and 15 deletions

View File

@ -2,6 +2,8 @@
The implementation for the 'tftp' Shell command. The implementation for the 'tftp' Shell command.
Copyright (c) 2015, ARM Ltd. All rights reserved.<BR> Copyright (c) 2015, ARM Ltd. All rights reserved.<BR>
Copyright (c) 2015, Intel Corporation. All rights reserved. <BR>
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -14,6 +16,8 @@
#include "UefiShellTftpCommandLib.h" #include "UefiShellTftpCommandLib.h"
#define IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH 32
/* /*
Constant strings and definitions related to the message indicating the amount of Constant strings and definitions related to the message indicating the amount of
progress in the dowloading of a TFTP file. progress in the dowloading of a TFTP file.
@ -59,7 +63,8 @@ StringToUint16 (
@param[in] NicNumber The network physical device number. @param[in] NicNumber The network physical device number.
@param[out] NicName Address where to store the NIC name. @param[out] NicName Address where to store the NIC name.
The memory area has to be at least The memory area has to be at least
IP4_NIC_NAME_LENGTH bytes wide. IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH
double byte wide.
@return EFI_SUCCESS The name of the NIC was returned. @return EFI_SUCCESS The name of the NIC was returned.
@return Others The creation of the child for the Managed @return Others The creation of the child for the Managed
@ -258,7 +263,7 @@ ShellCommandRunTftp (
EFI_HANDLE *Handles; EFI_HANDLE *Handles;
UINTN HandleCount; UINTN HandleCount;
UINTN NicNumber; UINTN NicNumber;
CHAR16 NicName[IP4_NIC_NAME_LENGTH]; CHAR16 NicName[IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH];
EFI_HANDLE ControllerHandle; EFI_HANDLE ControllerHandle;
EFI_HANDLE Mtftp4ChildHandle; EFI_HANDLE Mtftp4ChildHandle;
EFI_MTFTP4_PROTOCOL *Mtftp4; EFI_MTFTP4_PROTOCOL *Mtftp4;
@ -271,6 +276,7 @@ ShellCommandRunTftp (
NicFound = FALSE; NicFound = FALSE;
AsciiRemoteFilePath = NULL; AsciiRemoteFilePath = NULL;
Handles = NULL; Handles = NULL;
FileSize = 0;
// //
// Initialize the Shell library (we must be in non-auto-init...) // Initialize the Shell library (we must be in non-auto-init...)
@ -571,7 +577,7 @@ StringToUint16 (
return FALSE; return FALSE;
} }
*Value = Val; *Value = (UINT16)Val;
return TRUE; return TRUE;
} }
@ -582,7 +588,8 @@ StringToUint16 (
@param[in] NicNumber The network physical device number. @param[in] NicNumber The network physical device number.
@param[out] NicName Address where to store the NIC name. @param[out] NicName Address where to store the NIC name.
The memory area has to be at least The memory area has to be at least
IP4_NIC_NAME_LENGTH bytes wide. IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH
double byte wide.
@return EFI_SUCCESS The name of the NIC was returned. @return EFI_SUCCESS The name of the NIC was returned.
@return Others The creation of the child for the Managed @return Others The creation of the child for the Managed
@ -623,7 +630,7 @@ GetNicName (
UnicodeSPrint ( UnicodeSPrint (
NicName, NicName,
IP4_NIC_NAME_LENGTH, IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH,
SnpMode.IfType == NET_IFTYPE_ETHERNET ? SnpMode.IfType == NET_IFTYPE_ETHERNET ?
L"eth%d" : L"eth%d" :
L"unk%d" , L"unk%d" ,
@ -942,7 +949,7 @@ CheckPacket (
{ {
DOWNLOAD_CONTEXT *Context; DOWNLOAD_CONTEXT *Context;
CHAR16 Progress[TFTP_PROGRESS_MESSAGE_SIZE]; CHAR16 Progress[TFTP_PROGRESS_MESSAGE_SIZE];
UINT64 NbOfKb; UINTN NbOfKb;
UINTN Index; UINTN Index;
UINTN LastStep; UINTN LastStep;
UINTN Step; UINTN Step;
@ -966,10 +973,9 @@ CheckPacket (
NbOfKb = Context->DownloadedNbOfBytes / 1024; NbOfKb = Context->DownloadedNbOfBytes / 1024;
Progress[0] = L'\0'; Progress[0] = L'\0';
LastStep = (Context->LastReportedNbOfBytes * TFTP_PROGRESS_SLIDER_STEPS) / LastStep = (Context->LastReportedNbOfBytes * TFTP_PROGRESS_SLIDER_STEPS) / Context->FileSize;
Context->FileSize; Step = (Context->DownloadedNbOfBytes * TFTP_PROGRESS_SLIDER_STEPS) / Context->FileSize;
Step = (Context->DownloadedNbOfBytes * TFTP_PROGRESS_SLIDER_STEPS) /
Context->FileSize;
if (Step <= LastStep) { if (Step <= LastStep) {
return EFI_SUCCESS; return EFI_SUCCESS;
} }

View File

@ -1,7 +1,7 @@
/** @file /** @file
header file for NULL named library for 'tftp' Shell command functions. header file for NULL named library for 'tftp' Shell command functions.
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved. <BR> Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved. <BR>
Copyright (c) 2015, ARM Ltd. All rights reserved.<BR> Copyright (c) 2015, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
@ -21,7 +21,6 @@
#include <ShellBase.h> #include <ShellBase.h>
#include <Guid/ShellLibHiiGuid.h> #include <Guid/ShellLibHiiGuid.h>
#include <Guid/NicIp4ConfigNvData.h>
#include <Protocol/ServiceBinding.h> #include <Protocol/ServiceBinding.h>
#include <Protocol/Mtftp4.h> #include <Protocol/Mtftp4.h>
@ -42,9 +41,9 @@
extern EFI_HANDLE gShellTftpHiiHandle; extern EFI_HANDLE gShellTftpHiiHandle;
typedef struct { typedef struct {
UINT64 FileSize; UINTN FileSize;
UINT64 DownloadedNbOfBytes; UINTN DownloadedNbOfBytes;
UINT64 LastReportedNbOfBytes; UINTN LastReportedNbOfBytes;
} DOWNLOAD_CONTEXT; } DOWNLOAD_CONTEXT;
/** /**