Author: jgardou
Date: Mon Nov 10 18:00:28 2014
New Revision: 65365

URL: http://svn.reactos.org/svn/reactos?rev=65365&view=rev
Log:
[LWIP]
 - In a last surge of violence, fix build.

Removed:
    branches/tcpip_revolution/lib/drivers/lwip/src/include/rosip.h
    branches/tcpip_revolution/lib/drivers/lwip/src/rosip.c
    branches/tcpip_revolution/lib/drivers/lwip/src/rostcp.c
Modified:
    branches/tcpip_revolution/lib/drivers/lwip/CMakeLists.txt
    branches/tcpip_revolution/lib/drivers/lwip/src/sys_arch.c

Modified: branches/tcpip_revolution/lib/drivers/lwip/CMakeLists.txt
URL: 
http://svn.reactos.org/svn/reactos/branches/tcpip_revolution/lib/drivers/lwip/CMakeLists.txt?rev=65365&r1=65364&r2=65365&view=diff
==============================================================================
--- branches/tcpip_revolution/lib/drivers/lwip/CMakeLists.txt   [iso-8859-1] 
(original)
+++ branches/tcpip_revolution/lib/drivers/lwip/CMakeLists.txt   [iso-8859-1] 
Mon Nov 10 18:00:28 2014
@@ -10,8 +10,6 @@
     src/include/ipv4)
 
 list(APPEND SOURCE
-    src/rosip.c
-    src/rostcp.c
     src/rosmem.c
     src/sys_arch.c
     src/api/api_lib.c

Removed: branches/tcpip_revolution/lib/drivers/lwip/src/include/rosip.h
URL: 
http://svn.reactos.org/svn/reactos/branches/tcpip_revolution/lib/drivers/lwip/src/include/rosip.h?rev=65364
==============================================================================
--- branches/tcpip_revolution/lib/drivers/lwip/src/include/rosip.h      
[iso-8859-1] (original)
+++ branches/tcpip_revolution/lib/drivers/lwip/src/include/rosip.h      
(removed)
@@ -1,117 +0,0 @@
-#ifndef _ROS_IP_H_
-#define _ROS_IP_H_
-
-#include "lwip/tcp.h"
-#include "lwip/pbuf.h"
-#include "lwip/ip_addr.h"
-#include "tcpip.h"
-
-#ifndef LWIP_TAG
-    #define LWIP_TAG 'PIwl'
-#endif
-
-typedef struct tcp_pcb* PTCP_PCB;
-
-typedef struct _QUEUE_ENTRY
-{
-    struct pbuf *p;
-    ULONG Offset;
-    LIST_ENTRY ListEntry;
-} QUEUE_ENTRY, *PQUEUE_ENTRY;
-
-struct lwip_callback_msg
-{
-    /* Synchronization */
-    KEVENT Event;
-    
-    /* Input */
-    union {
-        struct {
-            PVOID Arg;
-        } Socket;
-        struct {
-            PCONNECTION_ENDPOINT Connection;
-            struct ip_addr *IpAddress;
-            u16_t Port;
-        } Bind;
-        struct {
-            PCONNECTION_ENDPOINT Connection;
-            u8_t Backlog;
-        } Listen;
-        struct {
-            PCONNECTION_ENDPOINT Connection;
-            void *Data;
-            u16_t DataLength;
-        } Send;
-        struct {
-            PCONNECTION_ENDPOINT Connection;
-            struct ip_addr *IpAddress;
-            u16_t Port;
-        } Connect;
-        struct {
-            PCONNECTION_ENDPOINT Connection;
-            int shut_rx;
-            int shut_tx;
-        } Shutdown;
-        struct {
-            PCONNECTION_ENDPOINT Connection;
-            int Callback;
-        } Close;
-    } Input;
-    
-    /* Output */
-    union {
-        struct {
-            struct tcp_pcb *NewPcb;
-        } Socket;
-        struct {
-            err_t Error;
-        } Bind;
-        struct {
-            struct tcp_pcb *NewPcb;
-        } Listen;
-        struct {
-            err_t Error;
-            u32_t Information;
-        } Send;
-        struct {
-            err_t Error;
-        } Connect;
-        struct {
-            err_t Error;
-        } Shutdown;
-        struct {
-            err_t Error;
-        } Close;
-    } Output;
-};
-
-NTSTATUS    LibTCPGetDataFromConnectionQueue(PCONNECTION_ENDPOINT Connection, 
PUCHAR RecvBuffer, UINT RecvLen, UINT *Received);
-
-/* External TCP event handlers */
-extern void TCPConnectEventHandler(void *arg, const err_t err);
-extern void TCPAcceptEventHandler(void *arg, PTCP_PCB newpcb);
-extern void TCPSendEventHandler(void *arg, const u16_t space);
-extern void TCPFinEventHandler(void *arg, const err_t err);
-extern void TCPRecvEventHandler(void *arg);
-
-/* TCP functions */
-PTCP_PCB    LibTCPSocket(void *arg);
-err_t       LibTCPBind(PCONNECTION_ENDPOINT Connection, struct ip_addr *const 
ipaddr, const u16_t port);
-PTCP_PCB    LibTCPListen(PCONNECTION_ENDPOINT Connection, const u8_t backlog);
-err_t       LibTCPSend(PCONNECTION_ENDPOINT Connection, void *const dataptr, 
const u16_t len, u32_t *sent, const int safe);
-err_t       LibTCPConnect(PCONNECTION_ENDPOINT Connection, struct ip_addr 
*const ipaddr, const u16_t port);
-err_t       LibTCPShutdown(PCONNECTION_ENDPOINT Connection, const int shut_rx, 
const int shut_tx);
-err_t       LibTCPClose(PCONNECTION_ENDPOINT Connection, const int safe, const 
int callback);
-
-err_t       LibTCPGetPeerName(PTCP_PCB pcb, struct ip_addr *const ipaddr, 
u16_t *const port);
-err_t       LibTCPGetHostName(PTCP_PCB pcb, struct ip_addr *const ipaddr, 
u16_t *const port);
-void        LibTCPAccept(PTCP_PCB pcb, struct tcp_pcb *listen_pcb, void *arg);
-void        LibTCPSetNoDelay(PTCP_PCB pcb, BOOLEAN Set);
-
-/* IP functions */
-void LibIPInsertPacket(void *ifarg, const void *const data, const u32_t size);
-void LibIPInitialize(void);
-void LibIPShutdown(void);
-
-#endif

Removed: branches/tcpip_revolution/lib/drivers/lwip/src/rosip.c
URL: 
http://svn.reactos.org/svn/reactos/branches/tcpip_revolution/lib/drivers/lwip/src/rosip.c?rev=65364
==============================================================================
--- branches/tcpip_revolution/lib/drivers/lwip/src/rosip.c      [iso-8859-1] 
(original)
+++ branches/tcpip_revolution/lib/drivers/lwip/src/rosip.c      (removed)
@@ -1,46 +0,0 @@
-#include "lwip/sys.h"
-#include "lwip/netif.h"
-#include "lwip/tcpip.h"
-
-#include "rosip.h"
-
-#include <debug.h>
-
-typedef struct netif* PNETIF;
-
-void
-LibIPInsertPacket(void *ifarg,
-                  const void *const data,
-                  const u32_t size)
-{
-    struct pbuf *p;
-
-    ASSERT(ifarg);
-    ASSERT(data);
-    ASSERT(size > 0);
-
-    p = pbuf_alloc(PBUF_RAW, size, PBUF_RAM);
-    if (p)
-    {
-        ASSERT(p->tot_len == p->len);
-        ASSERT(p->len == size);
-
-        RtlCopyMemory(p->payload, data, p->len);
-
-        ((PNETIF)ifarg)->input(p, (PNETIF)ifarg);
-    }
-}
-
-void
-LibIPInitialize(void)
-{
-    /* This completes asynchronously */
-    tcpip_init(NULL, NULL);
-}
-
-void
-LibIPShutdown(void)
-{
-    /* This is synchronous */
-    sys_shutdown();
-}

Removed: branches/tcpip_revolution/lib/drivers/lwip/src/rostcp.c
URL: 
http://svn.reactos.org/svn/reactos/branches/tcpip_revolution/lib/drivers/lwip/src/rostcp.c?rev=65364
==============================================================================
--- branches/tcpip_revolution/lib/drivers/lwip/src/rostcp.c     [iso-8859-1] 
(original)
+++ branches/tcpip_revolution/lib/drivers/lwip/src/rostcp.c     (removed)
@@ -1,842 +0,0 @@
-#include "lwip/sys.h"
-#include "lwip/netif.h"
-#include "lwip/tcpip.h"
-
-#include "rosip.h"
-
-#include <debug.h>
-
-static const char * const tcp_state_str[] = {
-  "CLOSED",
-  "LISTEN",
-  "SYN_SENT",
-  "SYN_RCVD",
-  "ESTABLISHED",
-  "FIN_WAIT_1",
-  "FIN_WAIT_2",
-  "CLOSE_WAIT",
-  "CLOSING",
-  "LAST_ACK",
-  "TIME_WAIT"
-};
-
-/* The way that lwIP does multi-threading is really not ideal for our purposes 
but
- * we best go along with it unless we want another unstable TCP library. lwIP 
uses
- * a thread called the "tcpip thread" which is the only one allowed to call 
raw API
- * functions. Since this is the case, for each of our LibTCP* functions, we 
queue a request
- * for a callback to "tcpip thread" which calls our LibTCP*Callback functions. 
Yes, this is
- * a lot of unnecessary thread swapping and it could definitely be faster, but 
I don't want
- * to going messing around in lwIP because I have no desire to create another 
mess like oskittcp */
-
-extern KEVENT TerminationEvent;
-extern NPAGED_LOOKASIDE_LIST MessageLookasideList;
-extern NPAGED_LOOKASIDE_LIST QueueEntryLookasideList;
-
-/* Required for ERR_T to NTSTATUS translation in receive error handling */
-NTSTATUS TCPTranslateError(const err_t err);
-
-void
-LibTCPDumpPcb(PVOID SocketContext)
-{
-    struct tcp_pcb *pcb = (struct tcp_pcb*)SocketContext;
-    unsigned int addr = ntohl(pcb->remote_ip.addr);
-
-    DbgPrint("\tState: %s\n", tcp_state_str[pcb->state]);
-    DbgPrint("\tRemote: (%d.%d.%d.%d, %d)\n",
-    (addr >> 24) & 0xFF,
-    (addr >> 16) & 0xFF,
-    (addr >> 8) & 0xFF,
-    addr & 0xFF,
-    pcb->remote_port);
-}
-
-static
-void
-LibTCPEmptyQueue(PCONNECTION_ENDPOINT Connection)
-{
-    PLIST_ENTRY Entry;
-    PQUEUE_ENTRY qp = NULL;
-
-    ReferenceObject(Connection);
-
-    while (!IsListEmpty(&Connection->PacketQueue))
-    {
-        Entry = RemoveHeadList(&Connection->PacketQueue);
-        qp = CONTAINING_RECORD(Entry, QUEUE_ENTRY, ListEntry);
-
-        /* We're in the tcpip thread here so this is safe */
-        pbuf_free(qp->p);
-
-        ExFreeToNPagedLookasideList(&QueueEntryLookasideList, qp);
-    }
-
-    DereferenceObject(Connection);
-}
-
-void LibTCPEnqueuePacket(PCONNECTION_ENDPOINT Connection, struct pbuf *p)
-{
-    PQUEUE_ENTRY qp;
-
-    qp = 
(PQUEUE_ENTRY)ExAllocateFromNPagedLookasideList(&QueueEntryLookasideList);
-    qp->p = p;
-    qp->Offset = 0;
-
-    ExInterlockedInsertTailList(&Connection->PacketQueue, &qp->ListEntry, 
&Connection->Lock);
-}
-
-PQUEUE_ENTRY LibTCPDequeuePacket(PCONNECTION_ENDPOINT Connection)
-{
-    PLIST_ENTRY Entry;
-    PQUEUE_ENTRY qp = NULL;
-
-    if (IsListEmpty(&Connection->PacketQueue)) return NULL;
-
-    Entry = RemoveHeadList(&Connection->PacketQueue);
-
-    qp = CONTAINING_RECORD(Entry, QUEUE_ENTRY, ListEntry);
-
-    return qp;
-}
-
-NTSTATUS LibTCPGetDataFromConnectionQueue(PCONNECTION_ENDPOINT Connection, 
PUCHAR RecvBuffer, UINT RecvLen, UINT *Received)
-{
-    PQUEUE_ENTRY qp;
-    struct pbuf* p;
-    NTSTATUS Status;
-    UINT ReadLength, PayloadLength, Offset, Copied;
-    KIRQL OldIrql;
-
-    (*Received) = 0;
-
-    LockObject(Connection, &OldIrql);
-
-    if (!IsListEmpty(&Connection->PacketQueue))
-    {
-        while ((qp = LibTCPDequeuePacket(Connection)) != NULL)
-        {
-            p = qp->p;
-
-            /* Calculate the payload length first */
-            PayloadLength = p->tot_len;
-            PayloadLength -= qp->Offset;
-            Offset = qp->Offset;
-
-            /* Check if we're reading the whole buffer */
-            ReadLength = MIN(PayloadLength, RecvLen);
-            ASSERT(ReadLength != 0);
-            if (ReadLength != PayloadLength)
-            {
-                /* Save this one for later */
-                qp->Offset += ReadLength;
-                InsertHeadList(&Connection->PacketQueue, &qp->ListEntry);
-                qp = NULL;
-            }
-
-            UnlockObject(Connection, OldIrql);
-
-            Copied = pbuf_copy_partial(p, RecvBuffer, ReadLength, Offset);
-            ASSERT(Copied == ReadLength);
-
-            LockObject(Connection, &OldIrql);
-
-            /* Update trackers */
-            RecvLen -= ReadLength;
-            RecvBuffer += ReadLength;
-            (*Received) += ReadLength;
-
-            if (qp != NULL)
-            {
-                /* Use this special pbuf free callback function because we're 
outside tcpip thread */
-                pbuf_free_callback(qp->p);
-
-                ExFreeToNPagedLookasideList(&QueueEntryLookasideList, qp);
-            }
-            else
-            {
-                /* If we get here, it means we've filled the buffer */
-                ASSERT(RecvLen == 0);
-            }
-
-            ASSERT((*Received) != 0);
-            Status = STATUS_SUCCESS;
-
-            if (!RecvLen)
-                break;
-        }
-    }
-    else
-    {
-        if (Connection->ReceiveShutdown)
-            Status = Connection->ReceiveShutdownStatus;
-        else
-            Status = STATUS_PENDING;
-    }
-
-    UnlockObject(Connection, OldIrql);
-
-    return Status;
-}
-
-static
-BOOLEAN
-WaitForEventSafely(PRKEVENT Event)
-{
-    PVOID WaitObjects[] = {Event, &TerminationEvent};
-
-    if (KeWaitForMultipleObjects(2,
-                                 WaitObjects,
-                                 WaitAny,
-                                 Executive,
-                                 KernelMode,
-                                 FALSE,
-                                 NULL,
-                                 NULL) == STATUS_WAIT_0)
-    {
-        /* Signalled by the caller's event */
-        return TRUE;
-    }
-    else /* if KeWaitForMultipleObjects() == STATUS_WAIT_1 */
-    {
-        /* Signalled by our termination event */
-        return FALSE;
-    }
-}
-
-static
-err_t
-InternalSendEventHandler(void *arg, PTCP_PCB pcb, const u16_t space)
-{
-    /* Make sure the socket didn't get closed */
-    if (!arg) return ERR_OK;
-
-    TCPSendEventHandler(arg, space);
-
-    return ERR_OK;
-}
-
-static
-err_t
-InternalRecvEventHandler(void *arg, PTCP_PCB pcb, struct pbuf *p, const err_t 
err)
-{
-    PCONNECTION_ENDPOINT Connection = arg;
-
-    /* Make sure the socket didn't get closed */
-    if (!arg)
-    {
-        if (p)
-            pbuf_free(p);
-
-        return ERR_OK;
-    }
-
-    if (p)
-    {
-        LibTCPEnqueuePacket(Connection, p);
-
-        tcp_recved(pcb, p->tot_len);
-
-        TCPRecvEventHandler(arg);
-    }
-    else if (err == ERR_OK)
-    {
-        /* Complete pending reads with 0 bytes to indicate a graceful closure,
-         * but note that send is still possible in this state so we don't 
close the
-         * whole socket here (by calling tcp_close()) as that would violate 
TCP specs
-         */
-        Connection->ReceiveShutdown = TRUE;
-        Connection->ReceiveShutdownStatus = STATUS_SUCCESS;
-
-        /* If we already did a send shutdown, we're in TIME_WAIT so we can't 
use this PCB anymore */
-        if (Connection->SendShutdown)
-        {
-            Connection->SocketContext = NULL;
-            tcp_arg(pcb, NULL);
-        }
-
-        /* Indicate the graceful close event */
-        TCPRecvEventHandler(arg);
-
-        /* If the PCB is gone, clean up the connection */
-        if (Connection->SendShutdown)
-        {
-            TCPFinEventHandler(Connection, ERR_CLSD);
-        }
-    }
-
-    return ERR_OK;
-}
-
-/* This function MUST return an error value that is not ERR_ABRT or ERR_OK if 
the connection
- * is not accepted to avoid leaking the new PCB */
-static
-err_t
-InternalAcceptEventHandler(void *arg, PTCP_PCB newpcb, const err_t err)
-{
-    /* Make sure the socket didn't get closed */
-    if (!arg)
-        return ERR_CLSD;
-
-    TCPAcceptEventHandler(arg, newpcb);
-
-    /* Set in LibTCPAccept (called from TCPAcceptEventHandler) */
-    if (newpcb->callback_arg)
-        return ERR_OK;
-    else
-        return ERR_CLSD;
-}
-
-static
-err_t
-InternalConnectEventHandler(void *arg, PTCP_PCB pcb, const err_t err)
-{
-    /* Make sure the socket didn't get closed */
-    if (!arg)
-        return ERR_OK;
-
-    TCPConnectEventHandler(arg, err);
-
-    return ERR_OK;
-}
-
-static
-void
-InternalErrorEventHandler(void *arg, const err_t err)
-{
-    PCONNECTION_ENDPOINT Connection = arg;
-
-    /* Make sure the socket didn't get closed */
-    if (!arg || Connection->SocketContext == NULL) return;
-
-    /* The PCB is dead now */
-    Connection->SocketContext = NULL;
-
-    /* Give them one shot to receive the remaining data */
-    Connection->ReceiveShutdown = TRUE;
-    Connection->ReceiveShutdownStatus = TCPTranslateError(err);
-    TCPRecvEventHandler(Connection);
-
-    /* Terminate the connection */
-    TCPFinEventHandler(Connection, err);
-}
-
-static
-void
-LibTCPSocketCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-
-    ASSERT(msg);
-
-    msg->Output.Socket.NewPcb = tcp_new();
-
-    if (msg->Output.Socket.NewPcb)
-    {
-        tcp_arg(msg->Output.Socket.NewPcb, msg->Input.Socket.Arg);
-        tcp_err(msg->Output.Socket.NewPcb, InternalErrorEventHandler);
-    }
-
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-struct tcp_pcb *
-LibTCPSocket(void *arg)
-{
-    struct lwip_callback_msg *msg = 
ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    struct tcp_pcb *ret;
-
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-        msg->Input.Socket.Arg = arg;
-
-        tcpip_callback_with_block(LibTCPSocketCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-            ret = msg->Output.Socket.NewPcb;
-        else
-            ret = NULL;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return NULL;
-}
-
-static
-void
-LibTCPBindCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-    PTCP_PCB pcb = msg->Input.Bind.Connection->SocketContext;
-
-    ASSERT(msg);
-
-    if (!msg->Input.Bind.Connection->SocketContext)
-    {
-        msg->Output.Bind.Error = ERR_CLSD;
-        goto done;
-    }
-
-    /* We're guaranteed that the local address is valid to bind at this point 
*/
-    pcb->so_options |= SOF_REUSEADDR;
-
-    msg->Output.Bind.Error = tcp_bind(pcb,
-                                      msg->Input.Bind.IpAddress,
-                                      ntohs(msg->Input.Bind.Port));
-
-done:
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-err_t
-LibTCPBind(PCONNECTION_ENDPOINT Connection, struct ip_addr *const ipaddr, 
const u16_t port)
-{
-    struct lwip_callback_msg *msg;
-    err_t ret;
-
-    msg = ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-        msg->Input.Bind.Connection = Connection;
-        msg->Input.Bind.IpAddress = ipaddr;
-        msg->Input.Bind.Port = port;
-
-        tcpip_callback_with_block(LibTCPBindCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-            ret = msg->Output.Bind.Error;
-        else
-            ret = ERR_CLSD;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return ERR_MEM;
-}
-
-static
-void
-LibTCPListenCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-
-    ASSERT(msg);
-
-    if (!msg->Input.Listen.Connection->SocketContext)
-    {
-        msg->Output.Listen.NewPcb = NULL;
-        goto done;
-    }
-
-    msg->Output.Listen.NewPcb = 
tcp_listen_with_backlog((PTCP_PCB)msg->Input.Listen.Connection->SocketContext, 
msg->Input.Listen.Backlog);
-
-    if (msg->Output.Listen.NewPcb)
-    {
-        tcp_accept(msg->Output.Listen.NewPcb, InternalAcceptEventHandler);
-    }
-
-done:
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-PTCP_PCB
-LibTCPListen(PCONNECTION_ENDPOINT Connection, const u8_t backlog)
-{
-    struct lwip_callback_msg *msg;
-    PTCP_PCB ret;
-
-    msg = ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-        msg->Input.Listen.Connection = Connection;
-        msg->Input.Listen.Backlog = backlog;
-
-        tcpip_callback_with_block(LibTCPListenCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-            ret = msg->Output.Listen.NewPcb;
-        else
-            ret = NULL;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return NULL;
-}
-
-static
-void
-LibTCPSendCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-    PTCP_PCB pcb = msg->Input.Send.Connection->SocketContext;
-    ULONG SendLength;
-    UCHAR SendFlags;
-
-    ASSERT(msg);
-
-    if (!msg->Input.Send.Connection->SocketContext)
-    {
-        msg->Output.Send.Error = ERR_CLSD;
-        goto done;
-    }
-
-    if (msg->Input.Send.Connection->SendShutdown)
-    {
-        msg->Output.Send.Error = ERR_CLSD;
-        goto done;
-    }
-
-    SendFlags = TCP_WRITE_FLAG_COPY;
-    SendLength = msg->Input.Send.DataLength;
-    if (tcp_sndbuf(pcb) == 0)
-    {
-        /* No buffer space so return pending */
-        msg->Output.Send.Error = ERR_INPROGRESS;
-        goto done;
-    }
-    else if (tcp_sndbuf(pcb) < SendLength)
-    {
-        /* We've got some room so let's send what we can */
-        SendLength = tcp_sndbuf(pcb);
-
-        /* Don't set the push flag */
-        SendFlags |= TCP_WRITE_FLAG_MORE;
-    }
-
-    msg->Output.Send.Error = tcp_write(pcb,
-                                       msg->Input.Send.Data,
-                                       SendLength,
-                                       SendFlags);
-    if (msg->Output.Send.Error == ERR_OK)
-    {
-        /* Queued successfully so try to send it */
-        tcp_output((PTCP_PCB)msg->Input.Send.Connection->SocketContext);
-        msg->Output.Send.Information = SendLength;
-    }
-    else if (msg->Output.Send.Error == ERR_MEM)
-    {
-        /* The queue is too long */
-        msg->Output.Send.Error = ERR_INPROGRESS;
-    }
-
-done:
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-err_t
-LibTCPSend(PCONNECTION_ENDPOINT Connection, void *const dataptr, const u16_t 
len, u32_t *sent, const int safe)
-{
-    err_t ret;
-    struct lwip_callback_msg *msg;
-
-    msg = ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-        msg->Input.Send.Connection = Connection;
-        msg->Input.Send.Data = dataptr;
-        msg->Input.Send.DataLength = len;
-
-        if (safe)
-            LibTCPSendCallback(msg);
-        else
-            tcpip_callback_with_block(LibTCPSendCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-            ret = msg->Output.Send.Error;
-        else
-            ret = ERR_CLSD;
-
-        if (ret == ERR_OK)
-            *sent = msg->Output.Send.Information;
-        else
-            *sent = 0;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return ERR_MEM;
-}
-
-static
-void
-LibTCPConnectCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-    err_t Error;
-
-    ASSERT(arg);
-
-    if (!msg->Input.Connect.Connection->SocketContext)
-    {
-        msg->Output.Connect.Error = ERR_CLSD;
-        goto done;
-    }
-
-    tcp_recv((PTCP_PCB)msg->Input.Connect.Connection->SocketContext, 
InternalRecvEventHandler);
-    tcp_sent((PTCP_PCB)msg->Input.Connect.Connection->SocketContext, 
InternalSendEventHandler);
-
-    Error = tcp_connect((PTCP_PCB)msg->Input.Connect.Connection->SocketContext,
-                        msg->Input.Connect.IpAddress, 
ntohs(msg->Input.Connect.Port),
-                        InternalConnectEventHandler);
-
-    msg->Output.Connect.Error = Error == ERR_OK ? ERR_INPROGRESS : Error;
-
-done:
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-err_t
-LibTCPConnect(PCONNECTION_ENDPOINT Connection, struct ip_addr *const ipaddr, 
const u16_t port)
-{
-    struct lwip_callback_msg *msg;
-    err_t ret;
-
-    msg = ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-        msg->Input.Connect.Connection = Connection;
-        msg->Input.Connect.IpAddress = ipaddr;
-        msg->Input.Connect.Port = port;
-
-        tcpip_callback_with_block(LibTCPConnectCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-        {
-            ret = msg->Output.Connect.Error;
-        }
-        else
-            ret = ERR_CLSD;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return ERR_MEM;
-}
-
-static
-void
-LibTCPShutdownCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-    PTCP_PCB pcb = msg->Input.Shutdown.Connection->SocketContext;
-
-    if (!msg->Input.Shutdown.Connection->SocketContext)
-    {
-        msg->Output.Shutdown.Error = ERR_CLSD;
-        goto done;
-    }
-
-    /* LwIP makes the (questionable) assumption that SHUTDOWN_RDWR is 
equivalent to tcp_close().
-     * This assumption holds even if the shutdown calls are done separately 
(even through multiple
-     * WinSock shutdown() calls). This assumption means that lwIP has the 
right to deallocate our
-     * PCB without telling us if we shutdown TX and RX. To avoid these 
problems, we'll clear the
-     * socket context if we have called shutdown for TX and RX.
-     */
-    if (msg->Input.Shutdown.shut_rx) {
-        msg->Output.Shutdown.Error = tcp_shutdown(pcb, TRUE, FALSE);
-    }
-    if (msg->Input.Shutdown.shut_tx) {
-        msg->Output.Shutdown.Error = tcp_shutdown(pcb, FALSE, TRUE);
-    }
-
-    if (!msg->Output.Shutdown.Error)
-    {
-        if (msg->Input.Shutdown.shut_rx)
-        {
-            msg->Input.Shutdown.Connection->ReceiveShutdown = TRUE;
-            msg->Input.Shutdown.Connection->ReceiveShutdownStatus = 
STATUS_FILE_CLOSED;
-        }
-
-        if (msg->Input.Shutdown.shut_tx)
-            msg->Input.Shutdown.Connection->SendShutdown = TRUE;
-
-        if (msg->Input.Shutdown.Connection->ReceiveShutdown &&
-            msg->Input.Shutdown.Connection->SendShutdown)
-        {
-            /* The PCB is not ours anymore */
-            msg->Input.Shutdown.Connection->SocketContext = NULL;
-            tcp_arg(pcb, NULL);
-            TCPFinEventHandler(msg->Input.Shutdown.Connection, ERR_CLSD);
-        }
-    }
-
-done:
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-err_t
-LibTCPShutdown(PCONNECTION_ENDPOINT Connection, const int shut_rx, const int 
shut_tx)
-{
-    struct lwip_callback_msg *msg;
-    err_t ret;
-
-    msg = ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-
-        msg->Input.Shutdown.Connection = Connection;
-        msg->Input.Shutdown.shut_rx = shut_rx;
-        msg->Input.Shutdown.shut_tx = shut_tx;
-
-        tcpip_callback_with_block(LibTCPShutdownCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-            ret = msg->Output.Shutdown.Error;
-        else
-            ret = ERR_CLSD;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return ERR_MEM;
-}
-
-static
-void
-LibTCPCloseCallback(void *arg)
-{
-    struct lwip_callback_msg *msg = arg;
-    PTCP_PCB pcb = msg->Input.Close.Connection->SocketContext;
-
-    /* Empty the queue even if we're already "closed" */
-    LibTCPEmptyQueue(msg->Input.Close.Connection);
-
-    /* Check if we've already been closed */
-    if (msg->Input.Close.Connection->Closing)
-    {
-        msg->Output.Close.Error = ERR_OK;
-        goto done;
-    }
-
-    /* Enter "closing" mode if we're doing a normal close */
-    if (msg->Input.Close.Callback)
-        msg->Input.Close.Connection->Closing = TRUE;
-
-    /* Check if the PCB was already "closed" but the client doesn't know it 
yet */
-    if (!msg->Input.Close.Connection->SocketContext)
-    {
-        msg->Output.Close.Error = ERR_OK;
-        goto done;
-    }
-
-    /* Clear the PCB pointer and stop callbacks */
-    msg->Input.Close.Connection->SocketContext = NULL;
-    tcp_arg(pcb, NULL);
-
-    /* This may generate additional callbacks but we don't care,
-     * because they're too inconsistent to rely on */
-    msg->Output.Close.Error = tcp_close(pcb);
-
-    if (msg->Output.Close.Error)
-    {
-        /* Restore the PCB pointer */
-        msg->Input.Close.Connection->SocketContext = pcb;
-        msg->Input.Close.Connection->Closing = FALSE;
-    }
-    else if (msg->Input.Close.Callback)
-    {
-        TCPFinEventHandler(msg->Input.Close.Connection, ERR_CLSD);
-    }
-
-done:
-    KeSetEvent(&msg->Event, IO_NO_INCREMENT, FALSE);
-}
-
-err_t
-LibTCPClose(PCONNECTION_ENDPOINT Connection, const int safe, const int 
callback)
-{
-    err_t ret;
-    struct lwip_callback_msg *msg;
-
-    msg = ExAllocateFromNPagedLookasideList(&MessageLookasideList);
-    if (msg)
-    {
-        KeInitializeEvent(&msg->Event, NotificationEvent, FALSE);
-
-        msg->Input.Close.Connection = Connection;
-        msg->Input.Close.Callback = callback;
-
-        if (safe)
-            LibTCPCloseCallback(msg);
-        else
-            tcpip_callback_with_block(LibTCPCloseCallback, msg, 1);
-
-        if (WaitForEventSafely(&msg->Event))
-            ret = msg->Output.Close.Error;
-        else
-            ret = ERR_CLSD;
-
-        ExFreeToNPagedLookasideList(&MessageLookasideList, msg);
-
-        return ret;
-    }
-
-    return ERR_MEM;
-}
-
-void
-LibTCPAccept(PTCP_PCB pcb, struct tcp_pcb *listen_pcb, void *arg)
-{
-    ASSERT(arg);
-
-    tcp_arg(pcb, NULL);
-    tcp_recv(pcb, InternalRecvEventHandler);
-    tcp_sent(pcb, InternalSendEventHandler);
-    tcp_err(pcb, InternalErrorEventHandler);
-    tcp_arg(pcb, arg);
-
-    tcp_accepted(listen_pcb);
-}
-
-err_t
-LibTCPGetHostName(PTCP_PCB pcb, struct ip_addr *const ipaddr, u16_t *const 
port)
-{
-    if (!pcb)
-        return ERR_CLSD;
-
-    *ipaddr = pcb->local_ip;
-    *port = pcb->local_port;
-
-    return ERR_OK;
-}
-
-err_t
-LibTCPGetPeerName(PTCP_PCB pcb, struct ip_addr * const ipaddr, u16_t * const 
port)
-{
-    if (!pcb)
-        return ERR_CLSD;
-
-    *ipaddr = pcb->remote_ip;
-    *port = pcb->remote_port;
-
-    return ERR_OK;
-}
-
-void
-LibTCPSetNoDelay(
-    PTCP_PCB pcb,
-    BOOLEAN Set)
-{
-    if (Set)
-        pcb->flags |= TF_NODELAY;
-    else
-        pcb->flags &= ~TF_NODELAY;
-}

Modified: branches/tcpip_revolution/lib/drivers/lwip/src/sys_arch.c
URL: 
http://svn.reactos.org/svn/reactos/branches/tcpip_revolution/lib/drivers/lwip/src/sys_arch.c?rev=65365&r1=65364&r2=65365&view=diff
==============================================================================
--- branches/tcpip_revolution/lib/drivers/lwip/src/sys_arch.c   [iso-8859-1] 
(original)
+++ branches/tcpip_revolution/lib/drivers/lwip/src/sys_arch.c   [iso-8859-1] 
Mon Nov 10 18:00:28 2014
@@ -3,8 +3,6 @@
 #include "lwip/tcp.h"
 #include "lwip/pbuf.h"
 #include "lwip/err.h"
-
-#include "rosip.h"
 
 #include <debug.h>
 
@@ -315,22 +313,6 @@
     KeQuerySystemTime(&StartTime);
     
     KeInitializeEvent(&TerminationEvent, NotificationEvent, FALSE);
-    
-    ExInitializeNPagedLookasideList(&MessageLookasideList,
-                                    NULL,
-                                    NULL,
-                                    0,
-                                    sizeof(struct lwip_callback_msg),
-                                    LWIP_TAG,
-                                    0);
-    
-    ExInitializeNPagedLookasideList(&QueueEntryLookasideList,
-                                    NULL,
-                                    NULL,
-                                    0,
-                                    sizeof(QUEUE_ENTRY),
-                                    LWIP_TAG,
-                                    0);
 }
 
 void


Reply via email to