* drivers/lib/ip/network/arp.c: Assert certain conditions.
* drivers/lib/ip/network/loopback.c: Ditto.
* drivers/lib/ip/network/neighbor.c: Ditto.
* drivers/lib/ip/transport/tcp/tcp.c: Ditto.
* drivers/net/tcpip/datalink/lan.c: Ditto.
* drivers/net/tcpip/datalink/loopback.c: Ditto.
* drivers/net/tcpip/include/debug.h (ASSERT_KM_POINTER): Define.
* drivers/lib/ip/transport/tcp/if.c: Remove disabled code.
* drivers/net/afd/afd/main.c (AfdDispatch): Print known unimplemented
IOCTLs.
* drivers/net/tcpip/include/precomp.h: Include roscfg.h.
* drivers/net/tcpip/tcpip/dispatch.c (DispTdiListen): Pass the right
connection object to TCPListen.
* drivers/net/tcpip/tcpip/mocklock.c: Fix some assertions.
svn path=/trunk/; revision=11680
+2004-11-16 Casper S. Hornstrup <chorns@users.sourceforge.net>
+
+ * drivers/lib/ip/network/arp.c: Assert certain conditions.
+ * drivers/lib/ip/network/loopback.c: Ditto.
+ * drivers/lib/ip/network/neighbor.c: Ditto.
+ * drivers/lib/ip/transport/tcp/tcp.c: Ditto.
+ * drivers/net/tcpip/datalink/lan.c: Ditto.
+ * drivers/net/tcpip/datalink/loopback.c: Ditto.
+ * drivers/net/tcpip/include/debug.h (ASSERT_KM_POINTER): Define.
+ * drivers/lib/ip/transport/tcp/if.c: Remove disabled code.
+ * drivers/net/afd/afd/main.c (AfdDispatch): Print known unimplemented
+ IOCTLs.
+ * drivers/net/tcpip/include/precomp.h: Include roscfg.h.
+ * drivers/net/tcpip/tcpip/dispatch.c (DispTdiListen): Pass the right
+ connection object to TCPListen.
+ * drivers/net/tcpip/tcpip/mocklock.c: Fix some assertions.
+
2004-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/utils/net/roshttpd/include/list.h (CList<Item>::Get): Declare i
/* Prepare ARP packet */
Size = MaxLLHeaderSize +
- sizeof(ARP_HEADER) +
+ sizeof(ARP_HEADER) +
2 * LinkAddressLength + /* Hardware address length */
2 * ProtoAddressLength; /* Protocol address length */
Size = MAX(Size, MinLLFrameSize);
if( !NT_SUCCESS(NdisStatus) ) return NULL;
GetDataPtr( NdisPacket, 0, (PCHAR *)&DataBuffer, (PUINT)&Contig );
+ ASSERT(DataBuffer);
RtlZeroMemory(DataBuffer, Size);
Header = (PARP_HEADER)((ULONG_PTR)DataBuffer + MaxLLHeaderSize);
&Address->Address, /* Target's (remote) protocol address */
ARP_OPCODE_REQUEST); /* ARP request */
+ ASSERT_KM_POINTER(NdisPacket);
+ ASSERT_KM_POINTER(PC(NdisPacket));
PC(NdisPacket)->DLComplete = ARPTransmitComplete;
TI_DbgPrint(DEBUG_ARP,("Sending ARP Packet\n"));
{
IP_PACKET IPPacket;
+ ASSERT_KM_POINTER(NdisPacket);
+ ASSERT_KM_POINTER(PC(NdisPacket));
+ ASSERT_KM_POINTER(PC(NdisPacket)->DLComplete);
+
TI_DbgPrint(MAX_TRACE, ("Called (NdisPacket = %x)\n", NdisPacket));
IPPacket.NdisPacket = NdisPacket;
NDIS_STATUS Status ) {
PNEIGHBOR_PACKET Packet = (PNEIGHBOR_PACKET)Context;
TI_DbgPrint(MID_TRACE, ("Called\n"));
+ ASSERT_KM_POINTER(Packet);
+ ASSERT_KM_POINTER(Packet->Complete);
Packet->Complete( Packet->Context, Packet->Packet, STATUS_SUCCESS );
TI_DbgPrint(MID_TRACE, ("Completed\n"));
PoolFreeBuffer( Packet );
PacketEntry = RemoveHeadList( &NCE->PacketQueue );
Packet = CONTAINING_RECORD
( PacketEntry, NEIGHBOR_PACKET, Next );
+
+ ASSERT_KM_POINTER(Packet);
TI_DbgPrint
(MID_TRACE,
("PacketEntry: %x, NdisPacket %x\n",
PacketEntry, Packet->Packet));
- if( CallComplete )
+ if( CallComplete )
+ {
+ ASSERT_KM_POINTER(Packet->Complete);
Packet->Complete( Packet->Context,
Packet->Packet,
NDIS_STATUS_REQUEST_ABORTED );
+ }
PoolFreeBuffer( Packet );
}
#include "precomp.h"
-#if 0
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <oskit/c/assert.h>
-#include <net/if.h>
-#endif
-
int if_index = 0;
struct ifaddr **ifnet_addrs;
}
VOID TCPFreeConnectionEndpoint( PCONNECTION_ENDPOINT Connection ) {
+ TI_DbgPrint(MAX_TRACE,("FIXME: Cancel all pending requests\n"));
/* XXX Cancel all pending requests */
ExFreePool( Connection );
}
Family,
Type,
Proto ) );
+
+ ASSERT_KM_POINTER(Connection->SocketContext);
+
+ TI_DbgPrint(MID_TRACE,("Connection->SocketContext %x\n",
+ Connection->SocketContext));
+
TcpipRecursiveMutexLeave( &TCPLock );
return Status;
PVOID Context) {
NTSTATUS Status;
+ TI_DbgPrint(MID_TRACE,("TCPListen started\n"));
+
+ TI_DbgPrint(MID_TRACE,("Connection->SocketContext %x\n",
+ Connection->SocketContext));
+
+ ASSERT(Connection);
+ ASSERT_KM_POINTER(Connection->SocketContext);
+
TcpipRecursiveMutexEnter( &TCPLock, TRUE );
Status = TCPTranslateError( OskitTCPListen( Connection->SocketContext,
Backlog ) );
TcpipRecursiveMutexLeave( &TCPLock );
+
+ TI_DbgPrint(MID_TRACE,("TCPListen finished %x\n", Status));
return Status;
}
NTSTATUS TCPAccept
( PTDI_REQUEST Request,
VOID **NewSocketContext ) {
- return STATUS_UNSUCCESSFUL;
+ NTSTATUS Status;
+
+ TI_DbgPrint(MID_TRACE,("TCPAccept started\n"));
+ Status = STATUS_UNSUCCESSFUL;
+ TI_DbgPrint(MID_TRACE,("TCPAccept finished %x\n", Status));
+ return Status;
}
NTSTATUS TCPReceiveData
TI_DbgPrint(MID_TRACE,("Called for %d bytes\n", ReceiveLength));
+ ASSERT_KM_POINTER(Connection->SocketContext);
+
TcpipRecursiveMutexEnter( &TCPLock, TRUE );
NdisQueryBuffer( Buffer, &DataBuffer, &DataLen );
ULONG Flags) {
NTSTATUS Status;
+ ASSERT_KM_POINTER(Connection->SocketContext);
+
TcpipRecursiveMutexEnter( &TCPLock, TRUE );
TI_DbgPrint(MID_TRACE,("Connection = %x\n", Connection));
-/* $Id: main.c,v 1.10 2004/11/14 19:45:16 arty Exp $
+/* $Id: main.c,v 1.11 2004/11/16 18:07:57 chorns Exp $
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: drivers/net/afd/afd/main.c
case IOCTL_AFD_SET_CONTEXT:
return AfdSetContext( DeviceObject, Irp, IrpSp );
+ case IOCTL_AFD_WAIT_FOR_LISTEN:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_WAIT_FOR_LISTEN\n"));
+ case IOCTL_AFD_ACCEPT:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_ACCEPT\n"));
+ case IOCTL_AFD_DISCONNECT:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_DISCONNECT\n"));
+ case IOCTL_AFD_GET_TDI_HANDLES:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_TDI_HANDLES\n"));
+ case IOCTL_AFD_SET_INFO:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_INFO\n"));
+ case IOCTL_AFD_SET_CONNECT_DATA:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_DATA\n"));
+ case IOCTL_AFD_SET_CONNECT_OPTIONS:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_OPTIONS\n"));
+ case IOCTL_AFD_SET_DISCONNECT_DATA:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_DATA\n"));
+ case IOCTL_AFD_SET_DISCONNECT_OPTIONS:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_OPTIONS\n"));
+ case IOCTL_AFD_GET_CONNECT_DATA:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_CONNECT_DATA\n"));
+ case IOCTL_AFD_GET_CONNECT_OPTIONS:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_CONNECT_OPTIONS\n"));
+ case IOCTL_AFD_GET_DISCONNECT_DATA:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_DISCONNECT_DATA\n"));
+ case IOCTL_AFD_GET_DISCONNECT_OPTIONS:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_DISCONNECT_OPTIONS\n"));
+ case IOCTL_AFD_SET_CONNECT_DATA_SIZE:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_DATA_SIZE\n"));
+ case IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE\n"));
+ case IOCTL_AFD_SET_DISCONNECT_DATA_SIZE:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_DATA_SIZE\n"));
+ case IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE\n"));
+ case IOCTL_AFD_EVENT_SELECT:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_EVENT_SELECT\n"));
+ case IOCTL_AFD_DEFER_ACCEPT:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_DEFER_ACCEPT\n"));
+ case IOCTL_AFD_GET_PENDING_CONNECT_DATA:
+ AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_PENDING_CONNECT_DATA\n"));
default:
Status = STATUS_NOT_IMPLEMENTED;
Irp->IoStatus.Information = 0;
*/
{
TI_DbgPrint(DEBUG_DATALINK, ("Calling completion routine\n"));
+ ASSERT_KM_POINTER(Packet);
+ ASSERT_KM_POINTER(PC(Packet));
+ ASSERT_KM_POINTER(PC(Packet)->DLComplete);
(*PC(Packet)->DLComplete)( PC(Packet)->Context, Packet, Status);
TI_DbgPrint(DEBUG_DATALINK, ("Finished\n"));
}
IPReceive(Context, &IPPacket);
TI_DbgPrint(MAX_TRACE, ("Finished receive\n"));
+ ASSERT_KM_POINTER(Packet);
+ ASSERT_KM_POINTER(PC(Packet));
+ ASSERT_KM_POINTER(PC(Packet)->DLComplete);
PC(NdisPacket)->DLComplete(Context, NdisPacket, NDIS_STATUS_SUCCESS);
TI_DbgPrint(MAX_TRACE, ("Done\n"));
}
#endif /* _MSC_VER */
-#if 0
-#ifdef ASSERT
-#undef ASSERT
-#endif
-
-#ifdef NASSERT
-#define ASSERT(x)
-#else /* NASSERT */
-#define ASSERT(x) if (!(x)) { TI_DbgPrint(MIN_TRACE, ("Assertion "#x" failed at %s:%d\n", __FILE__, __LINE__)); KeBugCheck(0); }
-#endif /* NASSERT */
-#endif
-
#define ASSERT_IRQL(x) ASSERT(KeGetCurrentIrql() <= (x))
#else /* DBG */
#define TI_DbgPrint(_t_, _x_)
-#if 0
-#define ASSERT_IRQL(x)
-#define ASSERT(x)
-#endif
-
#endif /* DBG */
#include <memtrack.h>
+#define ASSERT_KM_POINTER(_x) \
+ ASSERT(((PVOID)_x) != (PVOID)0xcccccccc); \
+ ASSERT(((PVOID)_x) >= (PVOID)0x80000000);
+
#endif /* __DEBUG_H */
/* EOF */
+#include <roscfg.h>
#include <limits.h>
#include <ddk/ntddk.h>
#include <rosrtl/string.h>
PTDI_REQUEST_KERNEL Parameters;
PTRANSPORT_CONTEXT TranContext;
PIO_STACK_LOCATION IrpSp;
- PTDI_REQUEST Request;
NTSTATUS Status;
TI_DbgPrint(DEBUG_IRP, ("Called.\n"));
Parameters = (PTDI_REQUEST_KERNEL)&IrpSp->Parameters;
- Status = TCPListen( Request->Handle.ConnectionContext, 1024 /* BACKLOG */,
+ Status = TCPListen( Connection, 1024 /* BACKLOG */,
DispDataRequestComplete,
Irp );
}
VOID TcpipAcquireSpinLockAtDpcLevel( PKSPIN_LOCK SpinLock ) {
- ASSERT(KernelIrql == DPC_LEVEL);
+ ASSERT(KernelIrql == DISPATCH_LEVEL);
}
VOID TcpipReleaseSpinLock( PKSPIN_LOCK SpinLock, KIRQL Irql ) {
}
VOID TcpipReleaseSpinLockFromDpcLevel( PKSPIN_LOCK SpinLock ) {
- ASSERT(KernelIrql == DPC_LEVEL);
+ ASSERT(KernelIrql == DISPATCH_LEVEL);
}
VOID TcpipInterlockedInsertTailList( PLIST_ENTRY ListHead,