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