THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
+ @par Revision Reference: \r
+ This Protocol is introduced in UEFI Specification 2.0\r
+\r
**/\r
\r
#ifndef __EFI_TCP4_PROTOCOL_H__\r
} EFI_TCP4_COMPLETION_TOKEN;\r
\r
typedef struct {\r
+ ///\r
+ /// The Status in the CompletionToken will be set to one of \r
+ /// the following values if the active open succeeds or an unexpected \r
+ /// error happens:\r
+ /// EFI_SUCCESS: The active open succeeds and the instance's \r
+ /// state is Tcp4StateEstablished.\r
+ /// EFI_CONNECTION_RESET: The connect fails because the connection is reset\r
+ /// either by instance itself or the communication peer.\r
+ /// EFI_CONNECTION_REFUSED: The connect fails because this connection is initiated with\r
+ /// an active open and the connection is refused.\r
+ /// Note: It is not defined in UEFI 2.3 Specification.\r
+ /// EFI_ABORTED: The active open is aborted.\r
+ /// EFI_TIMEOUT: The connection establishment timer expires and \r
+ /// no more specific information is available.\r
+ /// EFI_NETWORK_UNREACHABLE: The active open fails because \r
+ /// an ICMP network unreachable error is received. \r
+ /// EFI_HOST_UNREACHABLE: The active open fails because an \r
+ /// ICMP host unreachable error is received. \r
+ /// EFI_PROTOCOL_UNREACHABLE: The active open fails \r
+ /// because an ICMP protocol unreachable error is received.\r
+ /// EFI_PORT_UNREACHABLE: The connection establishment \r
+ /// timer times out and an ICMP port unreachable error is received.\r
+ /// EFI_ICMP_ERROR: The connection establishment timer timeout and some other ICMP\r
+ /// error is received.\r
+ /// EFI_DEVICE_ERROR: An unexpected system or network error occurred.\r
+ /// \r
EFI_TCP4_COMPLETION_TOKEN CompletionToken;\r
} EFI_TCP4_CONNECTION_TOKEN;\r
\r
} EFI_TCP4_TRANSMIT_DATA;\r
\r
typedef struct {\r
+ /// \r
+ /// When transmission finishes or meets any unexpected error it will \r
+ /// be set to one of the following values:\r
+ /// EFI_SUCCESS: The receiving or transmission operation \r
+ /// completes successfully.\r
+ /// EFI_CONNECTION_FIN: The receiving operation fails because the communication peer \r
+ /// has closed the connection and there is no more data in the \r
+ /// receive buffer of the instance.\r
+ /// Note: It is not defined in UEFI 2.3 Specification.\r
+ /// EFI_CONNECTION_RESET: The receiving or transmission operation fails\r
+ /// because this connection is reset either by instance \r
+ /// itself or the communication peer.\r
+ /// EFI_ABORTED: The receiving or transmission is aborted.\r
+ /// EFI_TIMEOUT: The transmission timer expires and no more \r
+ /// specific information is available.\r
+ /// EFI_NETWORK_UNREACHABLE: The transmission fails \r
+ /// because an ICMP network unreachable error is received. \r
+ /// EFI_HOST_UNREACHABLE: The transmission fails because an \r
+ /// ICMP host unreachable error is received. \r
+ /// EFI_PROTOCOL_UNREACHABLE: The transmission fails \r
+ /// because an ICMP protocol unreachable error is received. \r
+ /// EFI_PORT_UNREACHABLE: The transmission fails and an \r
+ /// ICMP port unreachable error is received. \r
+ /// EFI_ICMP_ERROR: The transmission fails and some other \r
+ /// ICMP error is received. \r
+ /// EFI_DEVICE_ERROR: An unexpected system or network error occurs.\r
+ /// EFI_NO_MEDIA: There was a media error.\r
+ ///\r
EFI_TCP4_COMPLETION_TOKEN CompletionToken;\r
union {\r
+ ///\r
+ /// When this token is used for receiving, RxData is a pointer to EFI_TCP4_RECEIVE_DATA.\r
+ ///\r
EFI_TCP4_RECEIVE_DATA *RxData;\r
+ ///\r
+ /// When this token is used for transmitting, TxData is a pointer to EFI_TCP4_TRANSMIT_DATA.\r
+ ///\r
EFI_TCP4_TRANSMIT_DATA *TxData;\r
} Packet;\r
} EFI_TCP4_IO_TOKEN;\r
@retval EFI_NOT_FOUND The asynchronous I/O request isn't found in the \r
transmission or receive queue. It has either \r
completed or wasn't issued by Transmit() and Receive().\r
+ @retval EFI_UNSUPPORTED The implementation does not support this function.\r
+ Note: It is not defined in UEFI 2.3 Specification.\r
\r
**/\r
typedef\r
EFI_TCP4_POLL Poll;\r
};\r
\r
-#define EFI_CONNECTION_FIN EFIERR (104)\r
-#define EFI_CONNECTION_RESET EFIERR (105)\r
-#define EFI_CONNECTION_REFUSED EFIERR (106)\r
-\r
extern EFI_GUID gEfiTcp4ServiceBindingProtocolGuid;\r
extern EFI_GUID gEfiTcp4ProtocolGuid;\r
\r