summaryrefslogtreecommitdiffstats
path: root/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h
diff options
context:
space:
mode:
authorRuiyu Ni <ruiyu.ni@intel.com>2017-10-31 10:47:31 +0800
committerRuiyu Ni <ruiyu.ni@intel.com>2017-11-28 13:22:34 +0800
commit0961002352e9115b72f544dded239ad226efe87b (patch)
tree1cbe384090b25f1b551076c69c75be9cf3160137 /ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h
parent3d29f8c5e361525a0d2accfa7f5bb0a7210b8927 (diff)
downloadedk2-0961002352e9115b72f544dded239ad226efe87b.tar.gz
edk2-0961002352e9115b72f544dded239ad226efe87b.tar.bz2
edk2-0961002352e9115b72f544dded239ad226efe87b.zip
ShellPkg/tftp: Convert from NULL class library to Dynamic Command
UEFI Shell spec defines Shell Dynamic Command protocol which is just for the purpose to extend internal command. So tftp command is changed from NULL class library to be a driver producing DynamicCommand protocol. The guideline is: 1. Only use NULL class library for Shell spec defined commands. 2. New commands can be provided as not only a standalone application but also a dynamic command. So it can be used either as an internal command, but also as a standalone application. TftpApp.inf is to provide a standalone application. TftpDynamicCommand.inf is to provide a standalone driver producing Dynamic Command protocol. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com>
Diffstat (limited to 'ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h')
-rw-r--r--ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h b/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h
new file mode 100644
index 0000000000..9963eab3eb
--- /dev/null
+++ b/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.h
@@ -0,0 +1,75 @@
+/** @file
+ Header file for 'tftp' command functions.
+
+ Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved. <BR>
+ Copyright (c) 2015, ARM Ltd. All rights reserved.<BR>
+
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _TFTP_H_
+#define _TFTP_H_
+
+#include <Uefi.h>
+
+#include <Protocol/HiiPackageList.h>
+#include <Protocol/ServiceBinding.h>
+#include <Protocol/Mtftp4.h>
+
+#include <Library/BaseLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/DebugLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/ShellLib.h>
+#include <Library/UefiLib.h>
+#include <Library/UefiRuntimeServicesTableLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/HiiLib.h>
+#include <Library/NetLib.h>
+#include <Library/PrintLib.h>
+#include <Library/UefiHiiServicesLib.h>
+
+extern EFI_HANDLE mTftpHiiHandle;
+
+typedef struct {
+ UINTN FileSize;
+ UINTN DownloadedNbOfBytes;
+ UINTN LastReportedNbOfBytes;
+} DOWNLOAD_CONTEXT;
+
+/**
+ Function for 'tftp' command.
+
+ @param[in] ImageHandle The image handle.
+ @param[in] SystemTable The system table.
+
+ @retval SHELL_SUCCESS Command completed successfully.
+ @retval SHELL_INVALID_PARAMETER Command usage error.
+ @retval SHELL_ABORTED The user aborts the operation.
+ @retval value Unknown error.
+**/
+SHELL_STATUS
+RunTftp (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ );
+
+/**
+ Retrive HII package list from ImageHandle and publish to HII database.
+
+ @param ImageHandle The image handle of the process.
+
+ @return HII handle.
+**/
+EFI_HANDLE
+InitializeHiiPackage (
+ EFI_HANDLE ImageHandle
+ );
+#endif // _TFTP_H_