#ifndef __EFI_HTTP_PROTO_H__\r
#define __EFI_HTTP_PROTO_H__\r
\r
-#define DEF_BUF_LEN 2048\r
+#define DEF_BUF_LEN 2048\r
\r
#define HTTP_SERVICE_SIGNATURE SIGNATURE_32('H', 't', 't', 'S')\r
\r
HTTP_SERVICE_SIGNATURE \\r
)\r
\r
-\r
//\r
// The state of HTTP protocol. It starts from UNCONFIGED.\r
//\r
-#define HTTP_STATE_UNCONFIGED 0\r
-#define HTTP_STATE_HTTP_CONFIGED 1\r
-#define HTTP_STATE_TCP_CONFIGED 2\r
-#define HTTP_STATE_TCP_UNCONFIGED 3\r
-#define HTTP_STATE_TCP_CONNECTED 4\r
-#define HTTP_STATE_TCP_CLOSED 5\r
+#define HTTP_STATE_UNCONFIGED 0\r
+#define HTTP_STATE_HTTP_CONFIGED 1\r
+#define HTTP_STATE_TCP_CONFIGED 2\r
+#define HTTP_STATE_TCP_UNCONFIGED 3\r
+#define HTTP_STATE_TCP_CONNECTED 4\r
+#define HTTP_STATE_TCP_CLOSED 5\r
\r
//\r
// TCP configured data.\r
//\r
-#define HTTP_TOS_DEAULT 8\r
-#define HTTP_TTL_DEAULT 255\r
-#define HTTP_BUFFER_SIZE_DEAULT 65535\r
-#define HTTP_MAX_SYN_BACK_LOG 5\r
-#define HTTP_CONNECTION_TIMEOUT 60\r
-#define HTTP_DATA_RETRIES 12\r
-#define HTTP_FIN_TIMEOUT 2\r
-#define HTTP_KEEP_ALIVE_PROBES 6\r
-#define HTTP_KEEP_ALIVE_TIME 7200\r
-#define HTTP_KEEP_ALIVE_INTERVAL 30\r
-\r
-#define HTTP_URL_BUFFER_LEN 4096\r
+#define HTTP_TOS_DEAULT 8\r
+#define HTTP_TTL_DEAULT 255\r
+#define HTTP_BUFFER_SIZE_DEAULT 65535\r
+#define HTTP_MAX_SYN_BACK_LOG 5\r
+#define HTTP_CONNECTION_TIMEOUT 60\r
+#define HTTP_DATA_RETRIES 12\r
+#define HTTP_FIN_TIMEOUT 2\r
+#define HTTP_KEEP_ALIVE_PROBES 6\r
+#define HTTP_KEEP_ALIVE_TIME 7200\r
+#define HTTP_KEEP_ALIVE_INTERVAL 30\r
+\r
+#define HTTP_URL_BUFFER_LEN 4096\r
\r
typedef struct _HTTP_SERVICE {\r
- UINT32 Signature;\r
- EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
- EFI_HANDLE Ip4DriverBindingHandle;\r
- EFI_HANDLE Ip6DriverBindingHandle;\r
- EFI_HANDLE ControllerHandle;\r
- EFI_HANDLE Tcp4ChildHandle;\r
- EFI_HANDLE Tcp6ChildHandle;\r
- LIST_ENTRY ChildrenList;\r
- UINTN ChildrenNumber;\r
- INTN State;\r
+ UINT32 Signature;\r
+ EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
+ EFI_HANDLE Ip4DriverBindingHandle;\r
+ EFI_HANDLE Ip6DriverBindingHandle;\r
+ EFI_HANDLE ControllerHandle;\r
+ EFI_HANDLE Tcp4ChildHandle;\r
+ EFI_HANDLE Tcp6ChildHandle;\r
+ LIST_ENTRY ChildrenList;\r
+ UINTN ChildrenNumber;\r
+ INTN State;\r
} HTTP_SERVICE;\r
\r
typedef struct {\r
- EFI_TCP4_IO_TOKEN Tx4Token;\r
- EFI_TCP4_TRANSMIT_DATA Tx4Data;\r
- EFI_TCP6_IO_TOKEN Tx6Token;\r
- EFI_TCP6_TRANSMIT_DATA Tx6Data;\r
- EFI_TCP4_IO_TOKEN Rx4Token;\r
- EFI_TCP4_RECEIVE_DATA Rx4Data;\r
- EFI_TCP6_IO_TOKEN Rx6Token;\r
- EFI_TCP6_RECEIVE_DATA Rx6Data;\r
- BOOLEAN IsTxDone;\r
- BOOLEAN IsRxDone;\r
- UINTN BodyLen;\r
- EFI_HTTP_METHOD Method;\r
+ EFI_TCP4_IO_TOKEN Tx4Token;\r
+ EFI_TCP4_TRANSMIT_DATA Tx4Data;\r
+ EFI_TCP6_IO_TOKEN Tx6Token;\r
+ EFI_TCP6_TRANSMIT_DATA Tx6Data;\r
+ EFI_TCP4_IO_TOKEN Rx4Token;\r
+ EFI_TCP4_RECEIVE_DATA Rx4Data;\r
+ EFI_TCP6_IO_TOKEN Rx6Token;\r
+ EFI_TCP6_RECEIVE_DATA Rx6Data;\r
+ BOOLEAN IsTxDone;\r
+ BOOLEAN IsRxDone;\r
+ UINTN BodyLen;\r
+ EFI_HTTP_METHOD Method;\r
} HTTP_TCP_TOKEN_WRAP;\r
\r
typedef struct {\r
- EFI_TLS_VERSION Version;\r
- EFI_TLS_CONNECTION_END ConnectionEnd;\r
- EFI_TLS_VERIFY VerifyMethod;\r
- EFI_TLS_VERIFY_HOST VerifyHost;\r
- EFI_TLS_SESSION_STATE SessionState;\r
+ EFI_TLS_VERSION Version;\r
+ EFI_TLS_CONNECTION_END ConnectionEnd;\r
+ EFI_TLS_VERIFY VerifyMethod;\r
+ EFI_TLS_VERIFY_HOST VerifyHost;\r
+ EFI_TLS_SESSION_STATE SessionState;\r
} TLS_CONFIG_DATA;\r
\r
//\r
// Callback data for HTTP_PARSER_CALLBACK()\r
//\r
typedef struct {\r
- UINTN ParseDataLength;\r
- VOID *ParseData;\r
- VOID *Wrap;\r
+ UINTN ParseDataLength;\r
+ VOID *ParseData;\r
+ VOID *Wrap;\r
} HTTP_CALLBACK_DATA;\r
\r
typedef struct _HTTP_PROTOCOL {\r
- UINT32 Signature;\r
- EFI_HTTP_PROTOCOL Http;\r
- EFI_HANDLE Handle;\r
- HTTP_SERVICE *Service;\r
- LIST_ENTRY Link; // Link to all HTTP instance from the service.\r
- BOOLEAN InDestroy;\r
- INTN State;\r
- EFI_HTTP_METHOD Method;\r
-\r
- UINTN StatusCode;\r
-\r
- EFI_EVENT TimeoutEvent;\r
-\r
- EFI_HANDLE Tcp4ChildHandle;\r
- EFI_TCP4_PROTOCOL *Tcp4;\r
- EFI_TCP4_CONFIG_DATA Tcp4CfgData;\r
- EFI_TCP4_OPTION Tcp4Option;\r
-\r
- EFI_TCP4_CONNECTION_TOKEN Tcp4ConnToken;\r
- BOOLEAN IsTcp4ConnDone;\r
- EFI_TCP4_CLOSE_TOKEN Tcp4CloseToken;\r
- BOOLEAN IsTcp4CloseDone;\r
- CHAR8 *RemoteHost;\r
- UINT16 RemotePort;\r
- EFI_IPv4_ADDRESS RemoteAddr;\r
-\r
- EFI_HANDLE Tcp6ChildHandle;\r
- EFI_TCP6_PROTOCOL *Tcp6;\r
- EFI_TCP6_CONFIG_DATA Tcp6CfgData;\r
- EFI_TCP6_OPTION Tcp6Option;\r
-\r
- EFI_TCP6_CONNECTION_TOKEN Tcp6ConnToken;\r
- BOOLEAN IsTcp6ConnDone;\r
- EFI_TCP6_CLOSE_TOKEN Tcp6CloseToken;\r
- BOOLEAN IsTcp6CloseDone;\r
- EFI_IPv6_ADDRESS RemoteIpv6Addr;\r
+ UINT32 Signature;\r
+ EFI_HTTP_PROTOCOL Http;\r
+ EFI_HANDLE Handle;\r
+ HTTP_SERVICE *Service;\r
+ LIST_ENTRY Link; // Link to all HTTP instance from the service.\r
+ BOOLEAN InDestroy;\r
+ INTN State;\r
+ EFI_HTTP_METHOD Method;\r
+\r
+ UINTN StatusCode;\r
+\r
+ EFI_EVENT TimeoutEvent;\r
+\r
+ EFI_HANDLE Tcp4ChildHandle;\r
+ EFI_TCP4_PROTOCOL *Tcp4;\r
+ EFI_TCP4_CONFIG_DATA Tcp4CfgData;\r
+ EFI_TCP4_OPTION Tcp4Option;\r
+\r
+ EFI_TCP4_CONNECTION_TOKEN Tcp4ConnToken;\r
+ BOOLEAN IsTcp4ConnDone;\r
+ EFI_TCP4_CLOSE_TOKEN Tcp4CloseToken;\r
+ BOOLEAN IsTcp4CloseDone;\r
+ CHAR8 *RemoteHost;\r
+ UINT16 RemotePort;\r
+ EFI_IPv4_ADDRESS RemoteAddr;\r
+\r
+ EFI_HANDLE Tcp6ChildHandle;\r
+ EFI_TCP6_PROTOCOL *Tcp6;\r
+ EFI_TCP6_CONFIG_DATA Tcp6CfgData;\r
+ EFI_TCP6_OPTION Tcp6Option;\r
+\r
+ EFI_TCP6_CONNECTION_TOKEN Tcp6ConnToken;\r
+ BOOLEAN IsTcp6ConnDone;\r
+ EFI_TCP6_CLOSE_TOKEN Tcp6CloseToken;\r
+ BOOLEAN IsTcp6CloseDone;\r
+ EFI_IPv6_ADDRESS RemoteIpv6Addr;\r
\r
//\r
// Rx4Token or Rx6Token used for receiving HTTP header.\r
//\r
- EFI_TCP4_IO_TOKEN Rx4Token;\r
- EFI_TCP4_RECEIVE_DATA Rx4Data;\r
- EFI_TCP6_IO_TOKEN Rx6Token;\r
- EFI_TCP6_RECEIVE_DATA Rx6Data;\r
- BOOLEAN IsRxDone;\r
-\r
- CHAR8 **EndofHeader;\r
- CHAR8 **HttpHeaders;\r
- CHAR8 *CacheBody;\r
- CHAR8 *NextMsg;\r
- UINTN CacheLen;\r
- UINTN CacheOffset;\r
+ EFI_TCP4_IO_TOKEN Rx4Token;\r
+ EFI_TCP4_RECEIVE_DATA Rx4Data;\r
+ EFI_TCP6_IO_TOKEN Rx6Token;\r
+ EFI_TCP6_RECEIVE_DATA Rx6Data;\r
+ BOOLEAN IsRxDone;\r
+\r
+ CHAR8 **EndofHeader;\r
+ CHAR8 **HttpHeaders;\r
+ CHAR8 *CacheBody;\r
+ CHAR8 *NextMsg;\r
+ UINTN CacheLen;\r
+ UINTN CacheOffset;\r
\r
//\r
// HTTP message-body parser.\r
//\r
- VOID *MsgParser;\r
- HTTP_CALLBACK_DATA CallbackData;\r
+ VOID *MsgParser;\r
+ HTTP_CALLBACK_DATA CallbackData;\r
\r
- EFI_HTTP_VERSION HttpVersion;\r
- UINT32 TimeOutMillisec;\r
- BOOLEAN LocalAddressIsIPv6;\r
+ EFI_HTTP_VERSION HttpVersion;\r
+ UINT32 TimeOutMillisec;\r
+ BOOLEAN LocalAddressIsIPv6;\r
\r
- EFI_HTTPv4_ACCESS_POINT IPv4Node;\r
- EFI_HTTPv6_ACCESS_POINT Ipv6Node;\r
+ EFI_HTTPv4_ACCESS_POINT IPv4Node;\r
+ EFI_HTTPv6_ACCESS_POINT Ipv6Node;\r
\r
- NET_MAP TxTokens;\r
- NET_MAP RxTokens;\r
+ NET_MAP TxTokens;\r
+ NET_MAP RxTokens;\r
\r
- CHAR8 *Url;\r
+ CHAR8 *Url;\r
\r
//\r
// Https Support\r
//\r
- BOOLEAN UseHttps;\r
+ BOOLEAN UseHttps;\r
\r
- EFI_SERVICE_BINDING_PROTOCOL *TlsSb;\r
- EFI_HANDLE TlsChildHandle; /// Tls ChildHandle\r
- TLS_CONFIG_DATA TlsConfigData;\r
- EFI_TLS_PROTOCOL *Tls;\r
- EFI_TLS_CONFIGURATION_PROTOCOL *TlsConfiguration;\r
- EFI_TLS_SESSION_STATE TlsSessionState;\r
+ EFI_SERVICE_BINDING_PROTOCOL *TlsSb;\r
+ EFI_HANDLE TlsChildHandle; /// Tls ChildHandle\r
+ TLS_CONFIG_DATA TlsConfigData;\r
+ EFI_TLS_PROTOCOL *Tls;\r
+ EFI_TLS_CONFIGURATION_PROTOCOL *TlsConfiguration;\r
+ EFI_TLS_SESSION_STATE TlsSessionState;\r
\r
//\r
// TlsTxData used for transmitting TLS related messages.\r
//\r
- EFI_TCP4_IO_TOKEN Tcp4TlsTxToken;\r
- EFI_TCP4_TRANSMIT_DATA Tcp4TlsTxData;\r
- EFI_TCP6_IO_TOKEN Tcp6TlsTxToken;\r
- EFI_TCP6_TRANSMIT_DATA Tcp6TlsTxData;\r
- BOOLEAN TlsIsTxDone;\r
+ EFI_TCP4_IO_TOKEN Tcp4TlsTxToken;\r
+ EFI_TCP4_TRANSMIT_DATA Tcp4TlsTxData;\r
+ EFI_TCP6_IO_TOKEN Tcp6TlsTxToken;\r
+ EFI_TCP6_TRANSMIT_DATA Tcp6TlsTxData;\r
+ BOOLEAN TlsIsTxDone;\r
\r
//\r
// TlsRxData used for receiving TLS related messages.\r
//\r
- EFI_TCP4_IO_TOKEN Tcp4TlsRxToken;\r
- EFI_TCP4_RECEIVE_DATA Tcp4TlsRxData;\r
- EFI_TCP6_IO_TOKEN Tcp6TlsRxToken;\r
- EFI_TCP6_RECEIVE_DATA Tcp6TlsRxData;\r
- BOOLEAN TlsIsRxDone;\r
+ EFI_TCP4_IO_TOKEN Tcp4TlsRxToken;\r
+ EFI_TCP4_RECEIVE_DATA Tcp4TlsRxData;\r
+ EFI_TCP6_IO_TOKEN Tcp6TlsRxToken;\r
+ EFI_TCP6_RECEIVE_DATA Tcp6TlsRxData;\r
+ BOOLEAN TlsIsRxDone;\r
} HTTP_PROTOCOL;\r
\r
typedef struct {\r
- EFI_HTTP_TOKEN *HttpToken;\r
- HTTP_PROTOCOL *HttpInstance;\r
- HTTP_TCP_TOKEN_WRAP TcpWrap;\r
+ EFI_HTTP_TOKEN *HttpToken;\r
+ HTTP_PROTOCOL *HttpInstance;\r
+ HTTP_TCP_TOKEN_WRAP TcpWrap;\r
} HTTP_TOKEN_WRAP;\r
\r
-\r
#define HTTP_PROTOCOL_SIGNATURE SIGNATURE_32('H', 't', 't', 'P')\r
\r
#define HTTP_INSTANCE_FROM_PROTOCOL(a) \\r
**/\r
EFI_STATUS\r
HttpCreateTcpConnCloseEvent (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
VOID\r
HttpCloseTcpConnCloseEvent (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpCreateTcpTxEvent (\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpCreateTcpRxEventForHeader (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpCreateTcpRxEvent (\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
VOID\r
HttpCloseTcpRxEvent (\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpInitProtocol (\r
- IN OUT HTTP_PROTOCOL *HttpInstance,\r
- IN BOOLEAN IpVersion\r
+ IN OUT HTTP_PROTOCOL *HttpInstance,\r
+ IN BOOLEAN IpVersion\r
);\r
\r
/**\r
**/\r
VOID\r
HttpCleanProtocol (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpCreateConnection (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpCloseConnection (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpConfigureTcp4 (\r
- IN HTTP_PROTOCOL *HttpInstance,\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_PROTOCOL *HttpInstance,\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpConfigureTcp6 (\r
- IN HTTP_PROTOCOL *HttpInstance,\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_PROTOCOL *HttpInstance,\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpConnectTcp4 (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpConnectTcp6 (\r
- IN HTTP_PROTOCOL *HttpInstance\r
+ IN HTTP_PROTOCOL *HttpInstance\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
HttpTokenExist (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
HttpTcpNotReady (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
HttpTcpTransmit (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
HttpTcpReceive (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpTcpReceiveHeader (\r
- IN HTTP_PROTOCOL *HttpInstance,\r
- IN OUT UINTN *SizeofHeaders,\r
- IN OUT UINTN *BufferSize,\r
- IN EFI_EVENT Timeout\r
+ IN HTTP_PROTOCOL *HttpInstance,\r
+ IN OUT UINTN *SizeofHeaders,\r
+ IN OUT UINTN *BufferSize,\r
+ IN EFI_EVENT Timeout\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpTcpReceiveBody (\r
- IN HTTP_TOKEN_WRAP *Wrap,\r
- IN EFI_HTTP_MESSAGE *HttpMsg\r
+ IN HTTP_TOKEN_WRAP *Wrap,\r
+ IN EFI_HTTP_MESSAGE *HttpMsg\r
);\r
\r
/**\r
**/\r
VOID\r
HttpTcpTokenCleanup (\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
HttpResponseWorker (\r
- IN HTTP_TOKEN_WRAP *Wrap\r
+ IN HTTP_TOKEN_WRAP *Wrap\r
);\r
\r
/**\r
**/\r
VOID\r
HttpNotify (\r
- IN EDKII_HTTP_CALLBACK_EVENT Event,\r
- IN EFI_STATUS EventStatus\r
+ IN EDKII_HTTP_CALLBACK_EVENT Event,\r
+ IN EFI_STATUS EventStatus\r
);\r
\r
#endif\r