]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Driver.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 / Tcp4Driver.h
index af3444ef5809afdfa3f421c3ad25ae02bc5ba709..47ca324017d18b7774b4091d2d54d3f935209cc0 100644 (file)
-/** @file
-
-Copyright (c) 2005 - 2006, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
-  Tcp4Driver.h
-
-Abstract:
-
-
-**/
-
-#ifndef _TCP4_DRIVER_H_
-#define _TCP4_DRIVER_H_
-
-#include <Protocol/ServiceBinding.h>
-#include <Library/IpIoLib.h>
-
-#define TCP4_DRIVER_SIGNATURE   EFI_SIGNATURE_32 ('T', 'C', 'P', '4')
-
-#define TCP4_PORT_KNOWN         1024
-#define TCP4_PORT_USER_RESERVED 65535
-
-typedef struct _TCP4_HEARTBEAT_TIMER {
-  EFI_EVENT  TimerEvent;
-  INTN       RefCnt;
-} TCP4_HEARTBEAT_TIMER;
-
-typedef struct _TCP4_SERVICE_DATA {
-  UINT32                        Signature;
-  EFI_HANDLE                    ControllerHandle;
-  IP_IO                         *IpIo;  // IP Io consumed by TCP4
-  EFI_SERVICE_BINDING_PROTOCOL  Tcp4ServiceBinding;
-  EFI_HANDLE                    DriverBindingHandle;
-  CHAR16                        *MacString;
-} TCP4_SERVICE_DATA;
-
-//
-// Prototype for TCP4 driver Rcv callback function registered to IP_IO
-//
-VOID
-Tcp4RxCallback (
-  IN EFI_STATUS                       Status,
-  IN ICMP_ERROR                       IcmpErr,
-  IN EFI_NET_SESSION_DATA             *NetSession,
-  IN NET_BUF                          *Pkt,
-  IN VOID                             *Context    OPTIONAL
-  );
-
-INTN
-TcpSendIpPacket (
-  IN TCP_CB    *Tcb,
-  IN NET_BUF   *Nbuf,
-  IN UINT32    Src,
-  IN UINT32    Dest
-  );
-
-EFI_STATUS
-Tcp4Dispatcher (
-  IN SOCKET                  *Sock,
-  IN SOCK_REQUEST            Request,
-  IN VOID                    *Data   OPTIONAL
-  );
-
-typedef struct _TCP4_PROTO_DATA {
-  TCP4_SERVICE_DATA *TcpService;
-  TCP_CB            *TcpPcb;
-} TCP4_PROTO_DATA;
-
-#define TCP4_FROM_THIS(a) \
-  CR ( \
-  (a), \
-  TCP4_SERVICE_DATA, \
-  Tcp4ServiceBinding, \
-  TCP4_DRIVER_SIGNATURE \
-  )
-
-//
-// Function prototype for the driver's entry point
-//
-EFI_STATUS
-EFIAPI
-Tcp4DriverEntryPoint (
-  IN EFI_HANDLE        ImageHandle,
-  IN EFI_SYSTEM_TABLE  *SystemTable
-  );
-
-//
-// Function prototypes for the Drivr Binding Protocol
-//
-EFI_STATUS
-EFIAPI
-Tcp4DriverBindingSupported (
-  IN EFI_DRIVER_BINDING_PROTOCOL  * This,
-  IN EFI_HANDLE                   ControllerHandle,
-  IN EFI_DEVICE_PATH_PROTOCOL     * RemainingDevicePath OPTIONAL
-  );
-
-EFI_STATUS
-EFIAPI
-Tcp4DriverBindingStart (
-  IN EFI_DRIVER_BINDING_PROTOCOL  * This,
-  IN EFI_HANDLE                   ControllerHandle,
-  IN EFI_DEVICE_PATH_PROTOCOL     * RemainingDevicePath OPTIONAL
-  );
-
-EFI_STATUS
-EFIAPI
-Tcp4DriverBindingStop (
-  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,
-  IN  EFI_HANDLE                   ControllerHandle,
-  IN  UINTN                        NumberOfChildren,
-  IN  EFI_HANDLE                   *ChildHandleBuffer
-  );
-
-//
-// Function ptototypes for the ServiceBinding Prococol
-//
-EFI_STATUS
-EFIAPI
-Tcp4ServiceBindingCreateChild (
-  IN EFI_SERVICE_BINDING_PROTOCOL  *This,
-  IN EFI_HANDLE                    *ChildHandle
-  );
-
-EFI_STATUS
-EFIAPI
-Tcp4ServiceBindingDestroyChild (
-  IN EFI_SERVICE_BINDING_PROTOCOL  *This,
-  IN EFI_HANDLE                    ChildHandle
-  );
-
-#endif
+/** @file\r
+\r
+Copyright (c) 2005 - 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+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
+Module Name:\r
+\r
+  Tcp4Driver.h\r
+\r
+Abstract:\r
+\r
+\r
+**/\r
+\r
+#ifndef _TCP4_DRIVER_H_\r
+#define _TCP4_DRIVER_H_\r
+\r
+#include <Protocol/ServiceBinding.h>\r
+#include <Library/IpIoLib.h>\r
+\r
+#define TCP4_DRIVER_SIGNATURE   EFI_SIGNATURE_32 ('T', 'C', 'P', '4')\r
+\r
+#define TCP4_PORT_KNOWN         1024\r
+#define TCP4_PORT_USER_RESERVED 65535\r
+\r
+typedef struct _TCP4_HEARTBEAT_TIMER {\r
+  EFI_EVENT  TimerEvent;\r
+  INTN       RefCnt;\r
+} TCP4_HEARTBEAT_TIMER;\r
+\r
+typedef struct _TCP4_SERVICE_DATA {\r
+  UINT32                        Signature;\r
+  EFI_HANDLE                    ControllerHandle;\r
+  IP_IO                         *IpIo;  // IP Io consumed by TCP4\r
+  EFI_SERVICE_BINDING_PROTOCOL  Tcp4ServiceBinding;\r
+  EFI_HANDLE                    DriverBindingHandle;\r
+  CHAR16                        *MacString;\r
+  NET_LIST_ENTRY                SocketList;\r
+} TCP4_SERVICE_DATA;\r
+\r
+//\r
+// Prototype for TCP4 driver Rcv callback function registered to IP_IO\r
+//\r
+VOID\r
+Tcp4RxCallback (\r
+  IN EFI_STATUS                       Status,\r
+  IN ICMP_ERROR                       IcmpErr,\r
+  IN EFI_NET_SESSION_DATA             *NetSession,\r
+  IN NET_BUF                          *Pkt,\r
+  IN VOID                             *Context    OPTIONAL\r
+  );\r
+\r
+INTN\r
+TcpSendIpPacket (\r
+  IN TCP_CB    *Tcb,\r
+  IN NET_BUF   *Nbuf,\r
+  IN UINT32    Src,\r
+  IN UINT32    Dest\r
+  );\r
+\r
+EFI_STATUS\r
+Tcp4Dispatcher (\r
+  IN SOCKET                  *Sock,\r
+  IN SOCK_REQUEST            Request,\r
+  IN VOID                    *Data   OPTIONAL\r
+  );\r
+\r
+typedef struct _TCP4_PROTO_DATA {\r
+  TCP4_SERVICE_DATA *TcpService;\r
+  TCP_CB            *TcpPcb;\r
+} TCP4_PROTO_DATA;\r
+\r
+#define TCP4_FROM_THIS(a) \\r
+  CR ( \\r
+  (a), \\r
+  TCP4_SERVICE_DATA, \\r
+  Tcp4ServiceBinding, \\r
+  TCP4_DRIVER_SIGNATURE \\r
+  )\r
+\r
+//\r
+// Function prototype for the driver's entry point\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+Tcp4DriverEntryPoint (\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
+  );\r
+\r
+//\r
+// Function prototypes for the Drivr Binding Protocol\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+Tcp4DriverBindingSupported (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL  * This,\r
+  IN EFI_HANDLE                   ControllerHandle,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     * RemainingDevicePath OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Tcp4DriverBindingStart (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL  * This,\r
+  IN EFI_HANDLE                   ControllerHandle,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     * RemainingDevicePath OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Tcp4DriverBindingStop (\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
+  );\r
+\r
+EFI_STATUS\r
+Tcp4CreateSocketCallback (\r
+  IN SOCKET  *This,\r
+  IN VOID    *Context\r
+  );\r
+\r
+VOID\r
+Tcp4DestroySocketCallback (\r
+  IN SOCKET  *This,\r
+  IN VOID    *Context\r
+  );\r
+\r
+//\r
+// Function ptototypes for the ServiceBinding Prococol\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+Tcp4ServiceBindingCreateChild (\r
+  IN EFI_SERVICE_BINDING_PROTOCOL  *This,\r
+  IN EFI_HANDLE                    *ChildHandle\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Tcp4ServiceBindingDestroyChild (\r
+  IN EFI_SERVICE_BINDING_PROTOCOL  *This,\r
+  IN EFI_HANDLE                    ChildHandle\r
+  );\r
+\r
+#endif\r