| /** @file | |
| Header file for 'http' command functions. | |
| Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved. <BR> | |
| Copyright (c) 2015, ARM Ltd. All rights reserved.<BR> | |
| Copyright (c) 2020, Broadcom. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef _HTTP_H_ | |
| #define _HTTP_H_ | |
| #include <Uefi.h> | |
| #include <Library/BaseLib.h> | |
| #include <Library/BaseMemoryLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/HiiLib.h> | |
| #include <Library/HttpLib.h> | |
| #include <Library/MemoryAllocationLib.h> | |
| #include <Library/NetLib.h> | |
| #include <Library/PrintLib.h> | |
| #include <Library/ShellLib.h> | |
| #include <Library/UefiBootServicesTableLib.h> | |
| #include <Library/UefiHiiServicesLib.h> | |
| #include <Library/UefiLib.h> | |
| #include <Library/UefiRuntimeServicesTableLib.h> | |
| #include <Protocol/HiiPackageList.h> | |
| #include <Protocol/HttpUtilities.h> | |
| #include <Protocol/ServiceBinding.h> | |
| #define HTTP_APP_NAME L"http" | |
| #define REQ_OK 0 | |
| #define REQ_NEED_REPEAT 1 | |
| // | |
| // Download Flags. | |
| // | |
| #define DL_FLAG_TIME BIT0 // Show elapsed time. | |
| #define DL_FLAG_KEEP_BAD BIT1 // Keep files even if download failed. | |
| extern EFI_HII_HANDLE mHttpHiiHandle; | |
| typedef struct { | |
| UINTN ContentDownloaded; | |
| UINTN ContentLength; | |
| UINTN LastReportedNbOfBytes; | |
| UINTN BufferSize; | |
| UINTN Status; | |
| UINTN Flags; | |
| UINT8 *Buffer; | |
| CHAR16 *ServerAddrAndProto; | |
| CHAR16 *Uri; | |
| EFI_HTTP_TOKEN ResponseToken; | |
| EFI_HTTP_TOKEN RequestToken; | |
| EFI_HTTP_PROTOCOL *Http; | |
| EFI_HTTP_CONFIG_DATA HttpConfigData; | |
| } HTTP_DOWNLOAD_CONTEXT; | |
| /** | |
| Function for 'http' 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 | |
| RunHttp ( | |
| IN EFI_HANDLE ImageHandle, | |
| IN EFI_SYSTEM_TABLE *SystemTable | |
| ); | |
| /** | |
| Retrieve HII package list from ImageHandle and publish to HII database. | |
| @param[in] ImageHandle The image handle of the process. | |
| @retval HII handle. | |
| **/ | |
| EFI_HII_HANDLE | |
| InitializeHiiPackage ( | |
| IN EFI_HANDLE ImageHandle | |
| ); | |
| #endif // _HTTP_H_ |