hc
2024-08-15 77e89012189e2b1c68eace320794579f45b94136
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
74
75
76
77
78
79
80
81
82
83
84
85
/** @file
  This file defines the EDKII HTTP Callback Protocol interface.
 
  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef EDKII_HTTP_CALLBACK_H_
#define EDKII_HTTP_CALLBACK_H_
 
#define EDKII_HTTP_CALLBACK_PROTOCOL_GUID \
  { \
    0x611114f1, 0xa37b, 0x4468, {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40} \
  }
 
typedef struct _EDKII_HTTP_CALLBACK_PROTOCOL  EDKII_HTTP_CALLBACK_PROTOCOL;
 
///
/// EDKII_HTTP_CALLBACK_EVENT
///
typedef enum {
  ///
  /// The Status of DNS Event to retrieve the host address.
  /// EventStatus:
  /// EFI_SUCCESS             Operation succeeded.
  /// EFI_OUT_OF_RESOURCES    Failed to allocate needed resources.
  /// EFI_DEVICE_ERROR        An unexpected network error occurred.
  /// Others                  Other errors as indicated.
  ///
  HttpEventDns,
 
  ///
  /// The Status of Event to initiate a nonblocking TCP connection request.
  /// EventStatus:
  /// EFI_SUCCESS            The connection request is successfully initiated.
  /// EFI_NOT_STARTED        This EFI TCP Protocol instance has not been configured.
  /// EFI_DEVICE_ERROR       An unexpected system or network error occurred.
  /// Others                 Other errors as indicated.
  ///
  HttpEventConnectTcp,
 
  ///
  /// The Status of Event to connect one TLS session by finishing the TLS handshake process.
  /// EventStatus:
  /// EFI_SUCCESS            The TLS session is established.
  /// EFI_OUT_OF_RESOURCES   Can't allocate memory resources.
  /// EFI_ABORTED            TLS session state is incorrect.
  /// Others                 Other error as indicated.
  ///
  HttpEventTlsConnectSession,
 
  ///
  /// The Status of Event to initialize Http session
  /// EventStatus:
  /// EFI_SUCCESS            The initialization of session is done.
  /// Others                 Other error as indicated.
  ///
  HttpEventInitSession
} EDKII_HTTP_CALLBACK_EVENT;
 
/**
  Callback function that is invoked when HTTP event occurs.
 
  @param[in]  This                Pointer to the EDKII_HTTP_CALLBACK_PROTOCOL instance.
  @param[in]  Event               The event that occurs in the current state.
  @param[in]  EventStatus         The Status of Event, EFI_SUCCESS or other errors.
**/
typedef
VOID
(EFIAPI * EDKII_HTTP_CALLBACK) (
  IN EDKII_HTTP_CALLBACK_PROTOCOL     *This,
  IN EDKII_HTTP_CALLBACK_EVENT        Event,
  IN EFI_STATUS                       EventStatus
 );
 
///
/// EFI HTTP Callback Protocol is invoked when HTTP event occurs.
///
struct _EDKII_HTTP_CALLBACK_PROTOCOL {
  EDKII_HTTP_CALLBACK Callback;
};
 
extern EFI_GUID gEdkiiHttpCallbackProtocolGuid;
 
#endif /* EDKII_HTTP_CALLBACK_H_ */