summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/HttpBootDxe/HttpBootConfig.h
blob: 84eab425b04fbc6dfb8fc156ccf6dc0e0303604f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/** @file
  The header file of functions for configuring or getting the parameters
  relating to HTTP Boot.

Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _HTTP_BOOT_CONFIG_H_
#define _HTTP_BOOT_CONFIG_H_


#include "HttpBootConfigNVDataStruc.h"

typedef struct _HTTP_BOOT_FORM_CALLBACK_INFO   HTTP_BOOT_FORM_CALLBACK_INFO;

extern   UINT8                            HttpBootDxeStrings[];
extern   UINT8                            HttpBootConfigVfrBin[];

#pragma pack()

#define HTTP_BOOT_FORM_CALLBACK_INFO_SIGNATURE  SIGNATURE_32 ('H', 'B', 'f', 'c')

#define HTTP_BOOT_FORM_CALLBACK_INFO_FROM_CONFIG_ACCESS(Callback) \
  CR ( \
  Callback, \
  HTTP_BOOT_FORM_CALLBACK_INFO, \
  ConfigAccess, \
  HTTP_BOOT_FORM_CALLBACK_INFO_SIGNATURE \
  )

struct _HTTP_BOOT_FORM_CALLBACK_INFO {
  UINT32                           Signature;
  BOOLEAN                          Initialized;
  EFI_HANDLE                       ChildHandle;
  EFI_DEVICE_PATH_PROTOCOL         *HiiVendorDevicePath;
  EFI_HII_HANDLE                   RegisteredHandle;
  EFI_HII_CONFIG_ACCESS_PROTOCOL   ConfigAccess;
  HTTP_BOOT_CONFIG_IFR_NVDATA      HttpBootNvData;
};

/**
  Initialize the configuration form.

  @param[in]  Private             Pointer to the driver private data.

  @retval EFI_SUCCESS             The configuration form is initialized.
  @retval EFI_OUT_OF_RESOURCES    Failed to allocate memory.

**/
EFI_STATUS
HttpBootConfigFormInit (
  IN HTTP_BOOT_PRIVATE_DATA     *Private
  );

/**
  Unload the configuration form, this includes: delete all the configuration
  entries, uninstall the form callback protocol, and free the resources used.
  The form will only be unload completely when both IP4 and IP6 stack are stopped.

  @param[in]  Private             Pointer to the driver private data.

  @retval EFI_SUCCESS             The configuration form is unloaded.
  @retval Others                  Failed to unload the form.

**/
EFI_STATUS
HttpBootConfigFormUnload (
  IN HTTP_BOOT_PRIVATE_DATA     *Private
  );

#endif