11#ifndef __EFI_HTTP_PROTO_H__
12#define __EFI_HTTP_PROTO_H__
14#define DEF_BUF_LEN 2048
16#define HTTP_SERVICE_SIGNATURE SIGNATURE_32('H', 't', 't', 'S')
18#define HTTP_SERVICE_FROM_PROTOCOL(a) \
23 HTTP_SERVICE_SIGNATURE \
29#define HTTP_STATE_UNCONFIGED 0
30#define HTTP_STATE_HTTP_CONFIGED 1
31#define HTTP_STATE_TCP_CONFIGED 2
32#define HTTP_STATE_TCP_UNCONFIGED 3
33#define HTTP_STATE_TCP_CONNECTED 4
34#define HTTP_STATE_TCP_CLOSED 5
39#define HTTP_TOS_DEAULT 8
40#define HTTP_TTL_DEAULT 255
41#define HTTP_BUFFER_SIZE_DEAULT 0x200000
42#define HTTP_MAX_SYN_BACK_LOG 5
43#define HTTP_CONNECTION_TIMEOUT 60
44#define HTTP_DATA_RETRIES 12
45#define HTTP_FIN_TIMEOUT 2
46#define HTTP_KEEP_ALIVE_PROBES 6
47#define HTTP_KEEP_ALIVE_TIME 7200
48#define HTTP_KEEP_ALIVE_INTERVAL 30
50#define HTTP_URL_BUFFER_LEN 4096
92 UINTN ParseDataLength;
117 BOOLEAN IsTcp4ConnDone;
119 BOOLEAN IsTcp4CloseDone;
130 BOOLEAN IsTcp6ConnDone;
132 BOOLEAN IsTcp6CloseDone;
158 UINT32 TimeOutMillisec;
159 BOOLEAN LocalAddressIsIPv6;
176 BOOLEAN TlsAlreadyCreated;
200 BOOLEAN ConnectionClose;
209#define HTTP_PROTOCOL_SIGNATURE SIGNATURE_32('H', 't', 't', 'P')
211#define HTTP_INSTANCE_FROM_PROTOCOL(a) \
216 HTTP_PROTOCOL_SIGNATURE \
507 IN BOOLEAN Configure,
508 IN BOOLEAN TlsConfigure
EDKII_HTTP_CALLBACK_EVENT
VOID HttpTcpTokenCleanup(IN HTTP_TOKEN_WRAP *Wrap)
EFI_STATUS HttpConfigureTcp4(IN HTTP_PROTOCOL *HttpInstance, IN HTTP_TOKEN_WRAP *Wrap)
EFI_STATUS HttpCreateTcpRxEvent(IN HTTP_TOKEN_WRAP *Wrap)
EFI_STATUS HttpInitSession(IN HTTP_PROTOCOL *HttpInstance, IN HTTP_TOKEN_WRAP *Wrap, IN BOOLEAN Configure, IN BOOLEAN TlsConfigure)
EFI_STATUS HttpCreateTcpConnCloseEvent(IN HTTP_PROTOCOL *HttpInstance)
EFI_STATUS EFIAPI HttpTokenExist(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
EFI_STATUS HttpInitProtocol(IN OUT HTTP_PROTOCOL *HttpInstance, IN BOOLEAN IpVersion)
VOID HttpCleanProtocol(IN HTTP_PROTOCOL *HttpInstance)
EFI_STATUS HttpConnectTcp4(IN HTTP_PROTOCOL *HttpInstance)
EFI_STATUS HttpTcpReceiveBody(IN HTTP_TOKEN_WRAP *Wrap, IN EFI_HTTP_MESSAGE *HttpMsg)
EFI_STATUS HttpConnectTcp6(IN HTTP_PROTOCOL *HttpInstance)
VOID EFIAPI HttpCommonNotify(IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI HttpTcpReceive(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
EFI_STATUS HttpCloseConnection(IN HTTP_PROTOCOL *HttpInstance)
EFI_STATUS HttpCreateConnection(IN HTTP_PROTOCOL *HttpInstance)
VOID HttpNotify(IN EDKII_HTTP_CALLBACK_EVENT Event, IN EFI_STATUS EventStatus)
EFI_STATUS HttpResponseWorker(IN HTTP_TOKEN_WRAP *Wrap)
EFI_STATUS EFIAPI HttpTcpTransmit(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
EFI_STATUS HttpTransmitTcp(IN HTTP_PROTOCOL *HttpInstance, IN HTTP_TOKEN_WRAP *Wrap, IN UINT8 *TxString, IN UINTN TxStringLen)
EFI_STATUS HttpTcpReceiveHeader(IN HTTP_PROTOCOL *HttpInstance, IN OUT UINTN *SizeofHeaders, IN OUT UINTN *BufferSize, IN EFI_EVENT Timeout)
EFI_STATUS HttpCreateTcpRxEventForHeader(IN HTTP_PROTOCOL *HttpInstance)
EFI_STATUS EFIAPI HttpTcpNotReady(IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Context)
VOID HttpCloseTcpConnCloseEvent(IN HTTP_PROTOCOL *HttpInstance)
EFI_STATUS HttpCreateTcpTxEvent(IN HTTP_TOKEN_WRAP *Wrap)
VOID HttpCloseTcpRxEvent(IN HTTP_TOKEN_WRAP *Wrap)
EFI_STATUS HttpConfigureTcp6(IN HTTP_PROTOCOL *HttpInstance, IN HTTP_TOKEN_WRAP *Wrap)