#include "Precompile.h"\r
\r
\r
-\r
#if defined(EVENT_TRACING)\r
#ifdef offsetof\r
#undef offsetof\r
#include <complib/cl_init.h>\r
#include <initguid.h>\r
#include <iba/ipoib_ifc.h>\r
-#include "ntstrsafe.h"\r
#include "strsafe.h"\r
#include <offload.h>\r
\r
-\r
-\r
#define MAJOR_DRIVER_VERSION 2\r
#define MINOR_DRIVER_VERSION 1\r
\r
PDRIVER_OBJECT g_p_drv_obj;\r
\r
\r
-\r
-\r
static const NDIS_OID SUPPORTED_OIDS[] =\r
{\r
OID_GEN_SUPPORTED_LIST,\r
\r
}\r
\r
+extern "C" DRIVER_INITIALIZE DriverEntry;\r
\r
extern "C"\r
NTSTATUS\r
DriverEntry(\r
IN PDRIVER_OBJECT p_drv_obj,\r
IN PUNICODE_STRING p_reg_path );\r
+#ifdef _DEBUG_\r
+#pragma NDIS_PAGEABLE_FUNCTION(DriverEntry)\r
+#endif\r
+\r
\r
VOID\r
ipoib_unload(\r
IN PDRIVER_OBJECT p_drv_obj );\r
\r
+#ifdef _DEBUG_\r
+extern "C"\r
+#endif\r
NDIS_STATUS\r
ipoib_initialize_ex(\r
IN NDIS_HANDLE h_adapter,\r
IN NDIS_HANDLE config_context,\r
IN PNDIS_MINIPORT_INIT_PARAMETERS MiniportInitParameters);\r
+#ifdef _DEBUG_\r
+#pragma NDIS_PAGEABLE_FUNCTION(ipoib_initialize_ex)\r
+#endif\r
\r
BOOLEAN\r
ipoib_check_for_hang(\r
(sizeof(eth_hdr_t) + p_adapter->params.cm_payload_mtu);\r
}\r
\r
- p_adapter->params.xfer_block_size = \r
+ p_adapter->params.xfer_block_size = \r
(sizeof(eth_hdr_t) + p_adapter->params.payload_mtu);\r
\r
NdisReadNetworkAddress( &status, (PVOID *) p_mac, p_len, h_config );\r
gat.Header.Revision = NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_1;\r
gat.Header.Size = sizeof(NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES);\r
\r
- gat.MediaType = NdisMedium802_3; \r
+ gat.MediaType = NdisMedium802_3;\r
gat.MaxXmitLinkSpeed = IPOIB_MEDIA_MAX_SPEED;\r
gat.MaxRcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;\r
gat.XmitLinkSpeed = NDIS_LINK_SPEED_UNKNOWN;\r
ipoib_adapter_t *p_adapter,\r
NDIS_HANDLE h_adapter\r
)\r
- {\r
+{\r
NTSTATUS Status;\r
\r
-\r
Status = SetDeviceRegistrationAttributes(p_adapter, h_adapter);\r
if (Status != NDIS_STATUS_SUCCESS)\r
{\r
\r
case OID_PNP_QUERY_POWER:\r
IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,\r
- ("Port %d received query for OID_TCP_TASK_OFFLOAD\n", port_num) );\r
+ ("Port %d received query for OID_PNP_QUERY_POWER\n", port_num) );\r
// Status is pre-set in this routine to Success\r
status = NDIS_STATUS_SUCCESS; \r
break;\r
IPOIB_EXIT( IPOIB_DBG_OID );\r
return NDIS_STATUS_PENDING;\r
}\r
- \r
+\r
\r
static NDIS_STATUS\r
ipoib_complete_query(\r
\r
extern PDRIVER_OBJECT g_p_drv_obj;\r
\r
+static DRIVER_DISPATCH __ipoib_create;\r
static NTSTATUS\r
__ipoib_create(\r
IN DEVICE_OBJECT* const pDevObj,\r
IN IRP* const pIrp );\r
\r
+static DRIVER_DISPATCH __ipoib_cleanup;\r
static NTSTATUS\r
__ipoib_cleanup(\r
IN DEVICE_OBJECT* const pDevObj,\r
IN IRP* const pIrp );\r
\r
+static DRIVER_DISPATCH __ipoib_close;\r
static NTSTATUS\r
__ipoib_close(\r
IN DEVICE_OBJECT* const pDevObj,\r
IN IRP* const pIrp );\r
\r
+static DRIVER_DISPATCH __ipoib_dispatch;\r
static NTSTATUS\r
__ipoib_dispatch(\r
IN DEVICE_OBJECT* const pDevObj,\r
ipoib_port_t *gp_ipoib_port;\r
#endif\r
\r
+static KDEFERRED_ROUTINE __port_mcast_garbage_dpc;\r
static void __port_mcast_garbage_dpc(KDPC *p_gc_dpc,void *context,void *s_arg1, void *s_arg2);\r
+\r
static void __port_do_mcast_garbage(ipoib_port_t* const p_port );\r
\r
#if 0\r
IN uint32_t *p_recv_cnt\r
);\r
\r
+static IO_WORKITEM_ROUTINE __iopoib_WorkItem;\r
\r
static void\r
__iopoib_WorkItem(\r
total_recv_cnt += recv_cnt;\r
}\r
\r
- if (WorkToDo) {\r
- IoQueueWorkItem( p_port->pPoWorkItem, __iopoib_WorkItem, DelayedWorkQueue, p_port);\r
- } else {\r
+ if (WorkToDo)\r
+ {\r
+ IoQueueWorkItem( p_port->pPoWorkItem,\r
+ (PIO_WORKITEM_ROUTINE) __iopoib_WorkItem,\r
+ DelayedWorkQueue,\r
+ p_port );\r
+ }\r
+ else\r
+ {\r
// Release the reference count that was incremented when queued the work item.\r
ipoib_port_deref( p_port, ref_recv_cb );\r
}\r