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
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
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
//\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