mirror of https://github.com/acidanthera/audk.git
93 lines
2.5 KiB
C
93 lines
2.5 KiB
C
/** @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_
|