/** @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_