]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Tcp4Dxe/Socket.h
Sync the bug that list node is free before it is removed from the list. That made...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Tcp4Dxe / Socket.h
index b63eaa0106273ae6bac4d6bd05d068b58733391a..2e35f5ecd715ca8e0d53ef1394be8607038daa4a 100644 (file)
@@ -211,24 +211,6 @@ typedef struct _SOCK_BUFFER {
   NET_BUF_QUEUE *DataQueue; // the queue to buffer data\r
 } SOCK_BUFFER;\r
 \r
-//\r
-// the initialize data for create a new socket\r
-//\r
-typedef struct _SOCK_INIT_DATA {\r
-  SOCK_TYPE   Type;\r
-  SOCK_STATE  State;\r
-\r
-  SOCKET      *Parent;        // the parent of this socket\r
-  UINT32      BackLog;        // the connection limit for listening socket\r
-  UINT32      SndBufferSize;  // the high warter mark of send buffer\r
-  UINT32      RcvBufferSize;  // the high warter mark of receive buffer\r
-  VOID        *Protocol;      // the pointer to protocol function template\r
-                              // wanted to install on socket\r
-\r
-  SOCK_PROTO_HANDLER  ProtoHandler;\r
-\r
-  EFI_HANDLE   DriverBinding; // the driver binding handle\r
-} SOCK_INIT_DATA;\r
 \r
 //\r
 // socket provided oprerations for low layer protocol\r
@@ -317,6 +299,51 @@ SockRcvdErr (
   IN EFI_STATUS   Error\r
   );\r
 \r
+typedef\r
+EFI_STATUS\r
+(*SOCK_CREATE_CALLBACK) (\r
+  IN SOCKET  *This,\r
+  IN VOID    *Context\r
+  );\r
+\r
+typedef\r
+VOID\r
+(*SOCK_DESTROY_CALLBACK) (\r
+  IN SOCKET  *This,\r
+  IN VOID    *Context\r
+  );\r
+\r
+//\r
+// the initialize data for create a new socket\r
+//\r
+typedef struct _SOCK_INIT_DATA {\r
+  SOCK_TYPE   Type;\r
+  SOCK_STATE  State;\r
+\r
+  SOCKET      *Parent;        // the parent of this socket\r
+  UINT32      BackLog;        // the connection limit for listening socket\r
+  UINT32      SndBufferSize;  // the high warter mark of send buffer\r
+  UINT32      RcvBufferSize;  // the high warter mark of receive buffer\r
+  VOID        *Protocol;      // the pointer to protocol function template\r
+                              // wanted to install on socket\r
+\r
+  //\r
+  // Callbacks after socket is created and before socket is to be destroyed.\r
+  //\r
+  SOCK_CREATE_CALLBACK   CreateCallback;\r
+  SOCK_DESTROY_CALLBACK  DestroyCallback;\r
+  VOID                   *Context;\r
+\r
+  //\r
+  // Opaque protocol data.\r
+  //\r
+  VOID                   *ProtoData;\r
+  UINT32                 DataSize;\r
+\r
+  SOCK_PROTO_HANDLER     ProtoHandler;\r
+\r
+  EFI_HANDLE   DriverBinding; // the driver binding handle\r
+} SOCK_INIT_DATA;\r
 //\r
 // the socket structure representing a network service access point\r
 //\r
@@ -368,6 +395,13 @@ struct _SOCKET {
     EFI_TCP4_PROTOCOL TcpProtocol;\r
     EFI_UDP4_PROTOCOL UdpProtocol;\r
   } NetProtocol;\r
+\r
+  //\r
+  // Callbacks.\r
+  //\r
+  SOCK_CREATE_CALLBACK   CreateCallback;\r
+  SOCK_DESTROY_CALLBACK  DestroyCallback;\r
+  VOID                   *Context;\r
 };\r
 \r
 //\r
@@ -401,9 +435,7 @@ typedef struct _TCP_RSV_DATA {
 //\r
 SOCKET  *\r
 SockCreateChild (\r
-  IN SOCK_INIT_DATA *SockInitData,\r
-  IN VOID           *ProtoData,\r
-  IN UINT32         Len\r
+  IN SOCK_INIT_DATA *SockInitData\r
   );\r
 \r
 //\r