diff options
author | Jiaxin Wu <jiaxin.wu@intel.com> | 2016-05-31 22:17:26 +0800 |
---|---|---|
committer | Jiaxin Wu <jiaxin.wu@intel.com> | 2016-06-13 11:51:35 +0800 |
commit | 5ffe214ae95be9cb3dfca3d1dc254ad9f1f6fe45 (patch) | |
tree | 1e5f61611a66924aeac4d34af8bb3479daff63b2 /NetworkPkg/TcpDxe/TcpMain.h | |
parent | 3b5624b01454ed0ce1ae2089cc5b091a9cd07ed2 (diff) | |
download | edk2-5ffe214ae95be9cb3dfca3d1dc254ad9f1f6fe45.tar.gz edk2-5ffe214ae95be9cb3dfca3d1dc254ad9f1f6fe45.tar.bz2 edk2-5ffe214ae95be9cb3dfca3d1dc254ad9f1f6fe45.zip |
NetworkPkg: Support TCP Cancel function
This path is used to support TCP Cancel function to abort an
asynchronous connection, listen, transmission or receive request.
If any TCP CompletionToken is not signaled, it should not be closed
directly by calling CloseEvent (Still in the TCP TokenList). If not,
any exception behavior may be triggered. We should cancel it by calling
Tcp->Cancel() first. In such a case, TCP Cancel function is
necessary.
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Zhang Lubo <lubo.zhang@intel.com>
Cc: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Cc: Gary Lin <glin@suse.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Gary Lin <glin@suse.com>
Reviewed-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Tested-by: Gary Lin <glin@suse.com>
Tested-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Diffstat (limited to 'NetworkPkg/TcpDxe/TcpMain.h')
-rw-r--r-- | NetworkPkg/TcpDxe/TcpMain.h | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/NetworkPkg/TcpDxe/TcpMain.h b/NetworkPkg/TcpDxe/TcpMain.h index bd4434e26b..c10030174b 100644 --- a/NetworkPkg/TcpDxe/TcpMain.h +++ b/NetworkPkg/TcpDxe/TcpMain.h @@ -2,7 +2,7 @@ Declaration of protocol interfaces in EFI_TCP4_PROTOCOL and EFI_TCP6_PROTOCOL.
It is the common head file for all Tcp*.c in TCP driver.
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -359,14 +359,25 @@ Tcp4Close ( /**
Abort an asynchronous connection, listen, transmission or receive request.
- @param[in] This Pointer to the EFI_TCP4_PROTOCOL instance.
- @param[in] Token Pointer to a token that has been issued by
- Connect(), Accept(), Transmit() or Receive(). If
- NULL, all pending tokens issued by the above four
- functions will be aborted.
-
- @retval EFI_UNSUPPORTED The operation is not supported in the current
- implementation.
+ @param This The pointer to the EFI_TCP4_PROTOCOL instance.
+ @param Token The pointer to a token that has been issued by
+ EFI_TCP4_PROTOCOL.Connect(),
+ EFI_TCP4_PROTOCOL.Accept(),
+ EFI_TCP4_PROTOCOL.Transmit() or
+ EFI_TCP4_PROTOCOL.Receive(). If NULL, all pending
+ tokens issued by above four functions will be aborted. Type
+ EFI_TCP4_COMPLETION_TOKEN is defined in
+ EFI_TCP4_PROTOCOL.Connect().
+
+ @retval EFI_SUCCESS The asynchronous I/O request is aborted and Token->Event
+ is signaled.
+ @retval EFI_INVALID_PARAMETER This is NULL.
+ @retval EFI_NOT_STARTED This instance hasn't been configured.
+ @retval EFI_NO_MAPPING When using the default address, configuration
+ (DHCP, BOOTP,RARP, etc.) hasn't finished yet.
+ @retval EFI_NOT_FOUND The asynchronous I/O request isn't found in the
+ transmission or receive queue. It has either
+ completed or wasn't issued by Transmit() and Receive().
**/
EFI_STATUS
@@ -730,7 +741,13 @@ Tcp6Close ( EFI_TCP6_COMPLETION_TOKEN is defined in
EFI_TCP_PROTOCOL.Connect().
- @retval EFI_UNSUPPORTED The implementation does not support this function.
+ @retval EFI_SUCCESS The asynchronous I/O request is aborted and Token->Event
+ is signaled.
+ @retval EFI_INVALID_PARAMETER This is NULL.
+ @retval EFI_NOT_STARTED This instance hasn't been configured.
+ @retval EFI_NOT_FOUND The asynchronous I/O request isn't found in the transmission or
+ receive queue. It has either completed or wasn't issued by
+ Transmit() and Receive().
**/
EFI_STATUS
|