-/** @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