<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal>Index:
B:/users/xalex/WoF-trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
B:/users/xalex/WoF-trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp (revision
2941)<o:p></o:p></p>
<p class=MsoNormal>+++ B:/users/xalex/WoF-trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp (working
copy)<o:p></o:p></p>
<p class=MsoNormal>@@ -6,18 +6,18 @@<o:p></o:p></p>
<p class=MsoNormal> * This software is available to you under the OpenIB.org
BSD license<o:p></o:p></p>
<p class=MsoNormal> * below:<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * Redistribution and use in source and binary forms,
with or<o:p></o:p></p>
<p class=MsoNormal>- * without modification, are permitted provided that
the following<o:p></o:p></p>
<p class=MsoNormal>- * conditions are met:<o:p></o:p></p>
<p class=MsoNormal>+ * Redistribution and use in source and binary
forms, with or<o:p></o:p></p>
<p class=MsoNormal>+ * without modification, are permitted provided
that the following<o:p></o:p></p>
<p class=MsoNormal>+ * conditions are met:<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * - Redistributions of source code must retain the
above<o:p></o:p></p>
<p class=MsoNormal>- * copyright notice, this list of conditions and the
following<o:p></o:p></p>
<p class=MsoNormal>- * disclaimer.<o:p></o:p></p>
<p class=MsoNormal>+ * - Redistributions of source
code must retain the above<o:p></o:p></p>
<p class=MsoNormal>+ * copyright notice, this list
of conditions and the following<o:p></o:p></p>
<p class=MsoNormal>+ * disclaimer.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal>- * - Redistributions in binary form must reproduce the
above<o:p></o:p></p>
<p class=MsoNormal>- * copyright notice, this list of conditions and the
following<o:p></o:p></p>
<p class=MsoNormal>- * disclaimer in the documentation and/or other
materials<o:p></o:p></p>
<p class=MsoNormal>- * provided with the distribution.<o:p></o:p></p>
<p class=MsoNormal>+ * - Redistributions in binary
form must reproduce the above<o:p></o:p></p>
<p class=MsoNormal>+ * copyright notice, this list
of conditions and the following<o:p></o:p></p>
<p class=MsoNormal>+ * disclaimer in the
documentation and/or other materials<o:p></o:p></p>
<p class=MsoNormal>+ * provided with the
distribution.<o:p></o:p></p>
<p class=MsoNormal> *<o:p></o:p></p>
<p class=MsoNormal> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT
WARRANTY OF ANY KIND,<o:p></o:p></p>
<p class=MsoNormal> * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF<o:p></o:p></p>
<p class=MsoNormal>@@ -68,98 +68,98 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static const NDIS_OID SUPPORTED_OIDS[] =<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_SUPPORTED_LIST,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_HARDWARE_STATUS,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MEDIA_SUPPORTED,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MEDIA_IN_USE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MAXIMUM_LOOKAHEAD,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MAXIMUM_FRAME_SIZE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_TRANSMIT_BUFFER_SPACE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RECEIVE_BUFFER_SPACE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_TRANSMIT_BLOCK_SIZE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RECEIVE_BLOCK_SIZE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_VENDOR_ID,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_VENDOR_DESCRIPTION,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_VENDOR_DRIVER_VERSION,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_CURRENT_PACKET_FILTER,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_CURRENT_LOOKAHEAD,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_DRIVER_VERSION,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MAXIMUM_TOTAL_SIZE,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MAC_OPTIONS,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_MAXIMUM_SEND_PACKETS,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_XMIT_OK,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RCV_OK,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_XMIT_ERROR,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RCV_ERROR,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RCV_NO_BUFFER,<o:p></o:p></p>
<p class=MsoNormal>- //OID_GEN_RCV_CRC_ERROR,<o:p></o:p></p>
<p class=MsoNormal>- //OID_GEN_TRANSMIT_QUEUE_LENGTH,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_PERMANENT_ADDRESS,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_CURRENT_ADDRESS,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_MULTICAST_LIST,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_MAXIMUM_LIST_SIZE,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_RCV_ERROR_ALIGNMENT,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_XMIT_ONE_COLLISION,<o:p></o:p></p>
<p class=MsoNormal>- OID_802_3_XMIT_MORE_COLLISIONS,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_XMIT_DEFERRED,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_XMIT_MAX_COLLISIONS,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_RCV_OVERRUN,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_XMIT_UNDERRUN,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_XMIT_HEARTBEAT_FAILURE,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_XMIT_TIMES_CRS_LOST,<o:p></o:p></p>
<p class=MsoNormal>- //OID_802_3_XMIT_LATE_COLLISIONS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_SUPPORTED_LIST,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_HARDWARE_STATUS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MEDIA_SUPPORTED,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MEDIA_IN_USE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MAXIMUM_LOOKAHEAD,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MAXIMUM_FRAME_SIZE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_TRANSMIT_BUFFER_SPACE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RECEIVE_BUFFER_SPACE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_TRANSMIT_BLOCK_SIZE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RECEIVE_BLOCK_SIZE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_VENDOR_ID,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_VENDOR_DESCRIPTION,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_VENDOR_DRIVER_VERSION,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_CURRENT_PACKET_FILTER,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_CURRENT_LOOKAHEAD,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_DRIVER_VERSION,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MAXIMUM_TOTAL_SIZE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MAC_OPTIONS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_MAXIMUM_SEND_PACKETS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_XMIT_OK,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RCV_OK,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_XMIT_ERROR,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RCV_ERROR,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RCV_NO_BUFFER,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_GEN_RCV_CRC_ERROR,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_GEN_TRANSMIT_QUEUE_LENGTH,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_PERMANENT_ADDRESS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_CURRENT_ADDRESS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_MULTICAST_LIST,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_MAXIMUM_LIST_SIZE,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_RCV_ERROR_ALIGNMENT,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_XMIT_ONE_COLLISION,<o:p></o:p></p>
<p class=MsoNormal>+ OID_802_3_XMIT_MORE_COLLISIONS,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_XMIT_DEFERRED,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_XMIT_MAX_COLLISIONS,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_RCV_OVERRUN,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_XMIT_UNDERRUN,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_XMIT_HEARTBEAT_FAILURE,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_XMIT_TIMES_CRS_LOST,<o:p></o:p></p>
<p class=MsoNormal>+ //OID_802_3_XMIT_LATE_COLLISIONS,<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #if !BUILD_W2K<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_PHYSICAL_MEDIUM,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_PHYSICAL_MEDIUM,<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- OID_TCP_TASK_OFFLOAD,<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ OID_TCP_TASK_OFFLOAD,<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> /* powermanagement */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- OID_PNP_CAPABILITIES,<o:p></o:p></p>
<p class=MsoNormal>- OID_PNP_SET_POWER,<o:p></o:p></p>
<p class=MsoNormal>- OID_PNP_QUERY_POWER,<o:p></o:p></p>
<p class=MsoNormal>- OID_PNP_ADD_WAKE_UP_PATTERN,<o:p></o:p></p>
<p class=MsoNormal>- OID_PNP_REMOVE_WAKE_UP_PATTERN,<o:p></o:p></p>
<p class=MsoNormal>- OID_PNP_ENABLE_WAKE_UP,<o:p></o:p></p>
<p class=MsoNormal>+ OID_PNP_CAPABILITIES,<o:p></o:p></p>
<p class=MsoNormal>+ OID_PNP_SET_POWER,<o:p></o:p></p>
<p class=MsoNormal>+ OID_PNP_QUERY_POWER,<o:p></o:p></p>
<p class=MsoNormal>+ OID_PNP_ADD_WAKE_UP_PATTERN,<o:p></o:p></p>
<p class=MsoNormal>+ OID_PNP_REMOVE_WAKE_UP_PATTERN,<o:p></o:p></p>
<p class=MsoNormal>+ OID_PNP_ENABLE_WAKE_UP,<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #if 0<o:p></o:p></p>
<p class=MsoNormal> /* custom oid WMI support */<o:p></o:p></p>
<p class=MsoNormal>- OID_CUSTOM_PERF_COUNTERS,<o:p></o:p></p>
<p class=MsoNormal>- OID_CUSTOM_STRING,<o:p></o:p></p>
<p class=MsoNormal>+ OID_CUSTOM_PERF_COUNTERS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_CUSTOM_STRING,<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RECEIVE_SCALE_CAPABILITIES,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_RECEIVE_SCALE_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RECEIVE_SCALE_CAPABILITIES,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_RECEIVE_SCALE_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //<o:p></o:p></p>
<p class=MsoNormal> // new and required for NDIS 6 miniports<o:p></o:p></p>
<p class=MsoNormal> //<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_LINK_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_INTERRUPT_MODERATION,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_STATISTICS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_LINK_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_INTERRUPT_MODERATION,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_STATISTICS,<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* Offload */<o:p></o:p></p>
<p class=MsoNormal>- OID_TCP_OFFLOAD_CURRENT_CONFIG,<o:p></o:p></p>
<p class=MsoNormal>- OID_TCP_OFFLOAD_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>- OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES,<o:p></o:p></p>
<p class=MsoNormal>- OID_OFFLOAD_ENCAPSULATION,<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ OID_TCP_OFFLOAD_CURRENT_CONFIG,<o:p></o:p></p>
<p class=MsoNormal>+ OID_TCP_OFFLOAD_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES,<o:p></o:p></p>
<p class=MsoNormal>+ OID_OFFLOAD_ENCAPSULATION,<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> #if 0<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* Header - Data seperation */<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_HD_SPLIT_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>- OID_GEN_HD_SPLIT_CURRENT_CONFIG,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_HD_SPLIT_PARAMETERS,<o:p></o:p></p>
<p class=MsoNormal>+ OID_GEN_HD_SPLIT_CURRENT_CONFIG,<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* VLAN */<o:p></o:p></p>
<p class=MsoNormal>- OID_ADD_VALN_ID,<o:p></o:p></p>
<p class=MsoNormal>- OID_DELETE_VLAN_ID,<o:p></o:p></p>
<p class=MsoNormal>+ OID_ADD_VALN_ID,<o:p></o:p></p>
<p class=MsoNormal>+ OID_DELETE_VLAN_ID,<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* Set MAC */<o:p></o:p></p>
<p class=MsoNormal>- OID_SET_MAC_ADDRESS<o:p></o:p></p>
<p class=MsoNormal>+ OID_SET_MAC_ADDRESS<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> };<o:p></o:p></p>
<p class=MsoNormal>@@ -185,9 +185,9 @@<o:p></o:p></p>
<p class=MsoNormal> ULONG g_ipoib_send_SW =
0;<o:p></o:p></p>
<p class=MsoNormal> ULONG g_ipoib_send_SG =
0;<o:p></o:p></p>
<p class=MsoNormal> ULONG g_ipoib_send_SW_in_loop
= 0;<o:p></o:p></p>
<p class=MsoNormal>-ULONG g_ipoib_send_SG_pending
= 0;<o:p></o:p></p>
<p class=MsoNormal>-ULONG g_ipoib_send_SG_real
= 0;<o:p></o:p></p>
<p class=MsoNormal>-ULONG g_ipoib_send_SG_failed
= 0;<o:p></o:p></p>
<p class=MsoNormal>+ULONG g_ipoib_send_SG_pending
= 0;<o:p></o:p></p>
<p class=MsoNormal>+ULONG g_ipoib_send_SG_real
= 0;<o:p></o:p></p>
<p class=MsoNormal>+ULONG g_ipoib_send_SG_failed
= 0;<o:p></o:p></p>
<p class=MsoNormal> ULONG g_ipoib_send_reset
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ULONG g_NBL
= 0;<o:p></o:p></p>
<p class=MsoNormal>@@ -196,33 +196,33 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> typedef struct _IPOIB_REG_ENTRY<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STRING RegName; //
variable name text<o:p></o:p></p>
<p class=MsoNormal>- BOOLEAN bRequired; // 1
-> required, 0 -> optional<o:p></o:p></p>
<p class=MsoNormal>- UINT FieldOffset; // offset
in parent struct<o:p></o:p></p>
<p class=MsoNormal>- UINT FieldSize; // size
(in bytes) of the field<o:p></o:p></p>
<p class=MsoNormal>- UINT Default; //
default value to use<o:p></o:p></p>
<p class=MsoNormal>- UINT Min; //
minimum value allowed<o:p></o:p></p>
<p class=MsoNormal>- UINT Max; //
maximum value allowed<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STRING RegName; //
variable name text<o:p></o:p></p>
<p class=MsoNormal>+ BOOLEAN bRequired; //
1 -> required, 0 -> optional<o:p></o:p></p>
<p class=MsoNormal>+ UINT FieldOffset; //
offset in parent struct<o:p></o:p></p>
<p class=MsoNormal>+ UINT FieldSize; //
size (in bytes) of the field<o:p></o:p></p>
<p class=MsoNormal>+ UINT Default; //
default value to use<o:p></o:p></p>
<p class=MsoNormal>+ UINT Min; //
minimum value allowed<o:p></o:p></p>
<p class=MsoNormal>+ UINT Max; //
maximum value allowed<o:p></o:p></p>
<p class=MsoNormal> } IPOIB_REG_ENTRY, *PIPOIB_REG_ENTRY;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_REG_ENTRY HCARegTable[] = {<o:p></o:p></p>
<p class=MsoNormal>- // reg value name If Required
Offset in parentr struct Field size
Default Min Max<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("GUIDMask"),
0, IPOIB_OFFSET(guid_mask), IPOIB_SIZE(guid_mask), 0, 0,
MAX_GUID_MAX},<o:p></o:p></p>
<p class=MsoNormal>+ // reg value name
If Required Offset in parentr struct Field
size Default
Min Max<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("GUIDMask"), 0,
IPOIB_OFFSET(guid_mask), IPOIB_SIZE(guid_mask), 0, 0,
MAX_GUID_MAX},<o:p></o:p></p>
<p class=MsoNormal> /* GUIDMask should be the first element */<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("RqDepth"),
1, IPOIB_OFFSET(rq_depth), IPOIB_SIZE(rq_depth),
512, 128, 1024},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("RqLowWatermark"),
0, IPOIB_OFFSET(rq_low_watermark), IPOIB_SIZE(rq_low_watermark),
4, 2, 8},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("SqDepth"),
1, IPOIB_OFFSET(sq_depth), IPOIB_SIZE(sq_depth),
512, 128, 1024},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("SendChksum"),
1, IPOIB_OFFSET(send_chksum_offload),
IPOIB_SIZE(send_chksum_offload),CSUM_ENABLED,CSUM_DISABLED,CSUM_BYPASS},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("RecvChksum"),
1, IPOIB_OFFSET(recv_chksum_offload),
IPOIB_SIZE(recv_chksum_offload),CSUM_ENABLED,CSUM_DISABLED,CSUM_BYPASS},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("SaTimeout"),
1, IPOIB_OFFSET(sa_timeout), IPOIB_SIZE(sa_timeout),
1000, 250, UINT_MAX},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("SaRetries"),
1, IPOIB_OFFSET(sa_retry_cnt), IPOIB_SIZE(sa_retry_cnt), 10,
1, UINT_MAX},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("RecvRatio"),
1, IPOIB_OFFSET(recv_pool_ratio), IPOIB_SIZE(recv_pool_ratio),
1, 1, 10},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("PayloadMtu"),
1, IPOIB_OFFSET(payload_mtu), IPOIB_SIZE(payload_mtu),
2044, 512, MAX_UD_PAYLOAD_MTU},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("lso"),
0, IPOIB_OFFSET(lso), IPOIB_SIZE(lso),
0, 0, 1},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("MCLeaveRescan"),
1, IPOIB_OFFSET(mc_leave_rescan), IPOIB_SIZE(mc_leave_rescan),
260, 1, 3600},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("BCJoinRetry"),
1, IPOIB_OFFSET(bc_join_retry),
IPOIB_SIZE(bc_join_retry), 50, 0, 1000},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("CmEnabled"),
0, IPOIB_OFFSET(cm_enabled), IPOIB_SIZE(cm_enabled),
FALSE, FALSE, TRUE},<o:p></o:p></p>
<p class=MsoNormal>- {NDIS_STRING_CONST("CmPayloadMtu"),
1, IPOIB_OFFSET(cm_payload_mtu), IPOIB_SIZE(cm_payload_mtu),
MAX_CM_PAYLOAD_MTU, 512, MAX_CM_PAYLOAD_MTU}<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("RqDepth"), 1,
IPOIB_OFFSET(rq_depth), IPOIB_SIZE(rq_depth), 512, 128, 1024},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("RqLowWatermark"), 0,
IPOIB_OFFSET(rq_low_watermark), IPOIB_SIZE(rq_low_watermark), 4, 2, 8},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("SqDepth"), 1,
IPOIB_OFFSET(sq_depth), IPOIB_SIZE(sq_depth), 512, 128, 1024},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("SendChksum"), 1,
IPOIB_OFFSET(send_chksum_offload), IPOIB_SIZE(send_chksum_offload),CSUM_ENABLED,CSUM_DISABLED,CSUM_BYPASS},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("RecvChksum"), 1,
IPOIB_OFFSET(recv_chksum_offload), IPOIB_SIZE(recv_chksum_offload),CSUM_ENABLED,CSUM_DISABLED,CSUM_BYPASS},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("SaTimeout"), 1,
IPOIB_OFFSET(sa_timeout), IPOIB_SIZE(sa_timeout),
1000, 250, UINT_MAX},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("SaRetries"), 1,
IPOIB_OFFSET(sa_retry_cnt), IPOIB_SIZE(sa_retry_cnt), 10,
1, UINT_MAX},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("RecvRatio"), 1,
IPOIB_OFFSET(recv_pool_ratio), IPOIB_SIZE(recv_pool_ratio), 1, 1, 10},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("PayloadMtu"), 1,
IPOIB_OFFSET(payload_mtu), IPOIB_SIZE(payload_mtu), 2044, 512,
MAX_UD_PAYLOAD_MTU},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("lso"), 0,
IPOIB_OFFSET(lso), IPOIB_SIZE(lso), 0, 0, 1},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("MCLeaveRescan"), 1,
IPOIB_OFFSET(mc_leave_rescan), IPOIB_SIZE(mc_leave_rescan), 260, 1,
3600},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("BCJoinRetry"), 1,
IPOIB_OFFSET(bc_join_retry), IPOIB_SIZE(bc_join_retry), 50,
0, 1000},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("CmEnabled"), 0,
IPOIB_OFFSET(cm_enabled), IPOIB_SIZE(cm_enabled),
FALSE, FALSE, TRUE},<o:p></o:p></p>
<p class=MsoNormal>+ {NDIS_STRING_CONST("CmPayloadMtu"), 1,
IPOIB_OFFSET(cm_payload_mtu), IPOIB_SIZE(cm_payload_mtu), MAX_CM_PAYLOAD_MTU,
512, MAX_CM_PAYLOAD_MTU}<o:p></o:p></p>
<p class=MsoNormal> }; <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #define IPOIB_NUM_REG_PARAMS (sizeof (HCARegTable) /
sizeof(IPOIB_REG_ENTRY))<o:p></o:p></p>
<p class=MsoNormal>@@ -235,7 +235,7 @@<o:p></o:p></p>
<p class=MsoNormal> ULONG eventLogMsgId)<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>-#define cMaxStrLen 40<o:p></o:p></p>
<p class=MsoNormal>+#define cMaxStrLen 40<o:p></o:p></p>
<p class=MsoNormal> #define cArrLen 3<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> PWCHAR logMsgArray[cArrLen]; <o:p></o:p></p>
<p class=MsoNormal>@@ -279,8 +279,8 @@<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_initialize_ex(<o:p></o:p></p>
<p class=MsoNormal> IN NDIS_HANDLE h_adapter,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE
config_context,<o:p></o:p></p>
<p class=MsoNormal>- IN PNDIS_MINIPORT_INIT_PARAMETERS MiniportInitParameters);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE
config_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN PNDIS_MINIPORT_INIT_PARAMETERS MiniportInitParameters);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> BOOLEAN<o:p></o:p></p>
<p class=MsoNormal> ipoib_check_for_hang(<o:p></o:p></p>
<p class=MsoNormal>@@ -288,34 +288,34 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> ipoib_halt_ex(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HALT_ACTION
HaltAction);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HALT_ACTION HaltAction);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_query_info(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN OUT PNDIS_OID_REQUEST pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN OUT PNDIS_OID_REQUEST pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_reset(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- OUT PBOOLEAN p_addr_reset);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ OUT PBOOLEAN p_addr_reset);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_set_info(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN OUT PNDIS_OID_REQUEST pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN OUT PNDIS_OID_REQUEST pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //NDIS60<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> ipoib_send_net_buffer_list(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN PNET_BUFFER_LIST net_buffer_list,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_PORT_NUMBER port_num,<o:p></o:p></p>
<p class=MsoNormal>- IN ULONG send_flags);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN PNET_BUFFER_LIST net_buffer_list,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_PORT_NUMBER port_num,<o:p></o:p></p>
<p class=MsoNormal>+ IN ULONG send_flags);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> ipoib_pnp_notify(<o:p></o:p></p>
<p class=MsoNormal>@@ -324,7 +324,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> VOID<o:p></o:p></p>
<p class=MsoNormal> ipoib_shutdown_ex(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal> IN NDIS_SHUTDOWN_ACTION shutdown_action);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -369,28 +369,28 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_set_options(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE NdisMiniportDriverHandle,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE MiniportDriverContext);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE NdisMiniportDriverHandle,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE MiniportDriverContext);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_oid_handler(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN PNDIS_OID_REQUEST pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN PNDIS_OID_REQUEST pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static void<o:p></o:p></p>
<p class=MsoNormal> ipoib_cancel_oid_request(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN PVOID requestId);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN PVOID
requestId);<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS <o:p></o:p></p>
<p class=MsoNormal> ipoib_pause(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE
adapter_context, <o:p></o:p></p>
<p class=MsoNormal>- IN PNDIS_MINIPORT_PAUSE_PARAMETERS
pause_parameters);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context, <o:p></o:p></p>
<p class=MsoNormal>+ IN PNDIS_MINIPORT_PAUSE_PARAMETERS pause_parameters);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS <o:p></o:p></p>
<p class=MsoNormal> ipoib_restart(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE
adapter_context, <o:p></o:p></p>
<p class=MsoNormal>- IN PNDIS_MINIPORT_RESTART_PARAMETERS
restart_parameters);<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context, <o:p></o:p></p>
<p class=MsoNormal>+ IN PNDIS_MINIPORT_RESTART_PARAMETERS restart_parameters);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -439,16 +439,16 @@<o:p></o:p></p>
<p class=MsoNormal> ipoib_st_init();<o:p></o:p></p>
<p class=MsoNormal> g_stat.drv.obj = p_drv_obj;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&characteristics,
sizeof(characteristics));<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&characteristics, sizeof(characteristics));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- characteristics.Header.Type =
NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;<o:p></o:p></p>
<p class=MsoNormal>- characteristics.Header.Size =
NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;<o:p></o:p></p>
<p class=MsoNormal>- characteristics.Header.Revision = NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.Header.Type =
NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.Header.Size =
NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.Header.Revision =
NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> characteristics.MajorNdisVersion =
MAJOR_NDIS_VERSION;<o:p></o:p></p>
<p class=MsoNormal> characteristics.MinorNdisVersion =
MINOR_NDIS_VERSION;<o:p></o:p></p>
<p class=MsoNormal>- characteristics.MajorDriverVersion =
MAJOR_DRIVER_VERSION;<o:p></o:p></p>
<p class=MsoNormal>- characteristics.MinorDriverVersion =
MINOR_DRIVER_VERSION;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.MajorDriverVersion =
MAJOR_DRIVER_VERSION;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.MinorDriverVersion =
MINOR_DRIVER_VERSION;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> characteristics.CheckForHangHandlerEx =
ipoib_check_for_hang;<o:p></o:p></p>
<p class=MsoNormal> characteristics.HaltHandlerEx =
ipoib_halt_ex;<o:p></o:p></p>
<p class=MsoNormal>@@ -460,9 +460,9 @@<o:p></o:p></p>
<p class=MsoNormal> characteristics.ReturnNetBufferListsHandler =
ipoib_return_net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal> characteristics.SendNetBufferListsHandler =
ipoib_send_net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- characteristics.SetOptionsHandler =
ipoib_set_options;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.SetOptionsHandler =
ipoib_set_options;<o:p></o:p></p>
<p class=MsoNormal> characteristics.PauseHandler =
ipoib_pause;<o:p></o:p></p>
<p class=MsoNormal>- characteristics.RestartHandler =
ipoib_restart;<o:p></o:p></p>
<p class=MsoNormal>+ characteristics.RestartHandler =
ipoib_restart;<o:p></o:p></p>
<p class=MsoNormal> characteristics.UnloadHandler =
ipoib_unload;<o:p></o:p></p>
<p class=MsoNormal> characteristics.CancelSendHandler =
ipoib_cancel_xmit;<o:p></o:p></p>
<p class=MsoNormal> characteristics.ShutdownHandlerEx =
ipoib_shutdown_ex;<o:p></o:p></p>
<p class=MsoNormal>@@ -482,17 +482,17 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_set_options(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE NdisMiniportDriverHandle,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE MiniportDriverContext<o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE NdisMiniportDriverHandle,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE MiniportDriverContext<o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> IPOIB_ENTER( IPOIB_DBG_INIT );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- UNREFERENCED_PARAMETER(NdisMiniportDriverHandle);<o:p></o:p></p>
<p class=MsoNormal>- UNREFERENCED_PARAMETER(MiniportDriverContext);<o:p></o:p></p>
<p class=MsoNormal>+ UNREFERENCED_PARAMETER(NdisMiniportDriverHandle);<o:p></o:p></p>
<p class=MsoNormal>+ UNREFERENCED_PARAMETER(MiniportDriverContext);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_EXIT( IPOIB_DBG_INIT );<o:p></o:p></p>
<p class=MsoNormal>- return NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>+ return NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NTSTATUS<o:p></o:p></p>
<p class=MsoNormal>@@ -593,7 +593,7 @@<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS status;<o:p></o:p></p>
<p class=MsoNormal> NDIS_HANDLE h_config;<o:p></o:p></p>
<p class=MsoNormal>- NDIS_CONFIGURATION_OBJECT config_obj;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_CONFIGURATION_OBJECT config_obj;<o:p></o:p></p>
<p class=MsoNormal> NDIS_CONFIGURATION_PARAMETER *p_param;<o:p></o:p></p>
<p class=MsoNormal> UINT value;<o:p></o:p></p>
<p class=MsoNormal> PIPOIB_REG_ENTRY pRegEntry;<o:p></o:p></p>
<p class=MsoNormal>@@ -604,11 +604,11 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_ENTER( IPOIB_DBG_INIT );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- config_obj.Header.Type =
NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT;<o:p></o:p></p>
<p class=MsoNormal>- config_obj.Header.Revision =
NDIS_CONFIGURATION_OBJECT_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>- config_obj.Header.Size = sizeof(NDIS_CONFIGURATION_OBJECT);<o:p></o:p></p>
<p class=MsoNormal>- config_obj.NdisHandle = p_adapter->h_adapter;<o:p></o:p></p>
<p class=MsoNormal>- config_obj.Flags = 0;<o:p></o:p></p>
<p class=MsoNormal>+ config_obj.Header.Type =
NDIS_OBJECT_TYPE_CONFIGURATION_OBJECT;<o:p></o:p></p>
<p class=MsoNormal>+ config_obj.Header.Revision =
NDIS_CONFIGURATION_OBJECT_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ config_obj.Header.Size =
sizeof(NDIS_CONFIGURATION_OBJECT);<o:p></o:p></p>
<p class=MsoNormal>+ config_obj.NdisHandle =
p_adapter->h_adapter;<o:p></o:p></p>
<p class=MsoNormal>+ config_obj.Flags = 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> status = NdisOpenConfigurationEx(
&config_obj, &h_config);<o:p></o:p></p>
<p class=MsoNormal> if( status != NDIS_STATUS_SUCCESS )<o:p></o:p></p>
<p class=MsoNormal>@@ -833,7 +833,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //! Initialization function called for each IOC discovered<o:p></o:p></p>
<p class=MsoNormal>-/* The MiniportInitialize function is a required function
that sets up a<o:p></o:p></p>
<p class=MsoNormal>+/* The MiniportInitialize function is a required
function that sets up a<o:p></o:p></p>
<p class=MsoNormal> NIC (or virtual NIC) for network I/O operations, claims all
hardware<o:p></o:p></p>
<p class=MsoNormal> resources necessary to the NIC in the registry, and
allocates resources<o:p></o:p></p>
<p class=MsoNormal> the driver needs to carry out network I/O operations.<o:p></o:p></p>
<p class=MsoNormal>@@ -861,110 +861,110 @@<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetDeviceRegistrationAttributes(<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter,<o:p></o:p></p>
<p class=MsoNormal>- NDIS_HANDLE h_adapter<o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_HANDLE h_adapter<o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES atr;<o:p></o:p></p>
<p class=MsoNormal>- NTSTATUS Status;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES
atr;<o:p></o:p></p>
<p class=MsoNormal>+ NTSTATUS Status;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&atr,
sizeof(NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&atr,
sizeof(NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // setting registration attributes<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- atr.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>- atr.Header.Revision =
NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>- atr.Header.Size =
NDIS_SIZEOF_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // setting registration attributes<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ atr.Header.Type =
NDIS_OBJECT_TYPE_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>+ atr.Header.Revision =
NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ atr.Header.Size =
NDIS_SIZEOF_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- atr.MiniportAddDeviceContext = (NDIS_HANDLE)p_adapter;<o:p></o:p></p>
<p class=MsoNormal>- atr.Flags = 0; <o:p></o:p></p>
<p class=MsoNormal>+ atr.MiniportAddDeviceContext =
(NDIS_HANDLE)p_adapter;<o:p></o:p></p>
<p class=MsoNormal>+ atr.Flags = 0; <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- Status = NdisMSetMiniportAttributes(h_adapter,<o:p></o:p></p>
<p class=MsoNormal>- (PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&atr);<o:p></o:p></p>
<p class=MsoNormal>+ Status = NdisMSetMiniportAttributes(h_adapter,<o:p></o:p></p>
<p class=MsoNormal>+ (PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&atr);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- return Status;<o:p></o:p></p>
<p class=MsoNormal>+ return Status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //NDIS 6.1<o:p></o:p></p>
<p class=MsoNormal> #if 0<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetHardwareAssistAttributes(<o:p></o:p></p>
<p class=MsoNormal>- ipoib_adapter_t *p_adapter,<o:p></o:p></p>
<p class=MsoNormal>- NDIS_HANDLE h_adapter<o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ ipoib_adapter_t *p_adapter,<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_HANDLE h_adapter<o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES atr;<o:p></o:p></p>
<p class=MsoNormal>- NTSTATUS Status;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES
atr;<o:p></o:p></p>
<p class=MsoNormal>+ NTSTATUS Status;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&atr,
sizeof(NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&atr,
sizeof(NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // setting registration attributes<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- atr.Header.Type =
NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>- atr.Header.Revision =
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>- atr.Header.Size =
NDIS_SIZEOF_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // setting registration attributes<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ atr.Header.Type =
NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>+ atr.Header.Revision = NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ atr.Header.Size =
NDIS_SIZEOF_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NDIS_HD_SPLIT_ATTRIBUTES nhsa;<o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&nhsa, sizeof(nhsa));<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_HD_SPLIT_ATTRIBUTES nhsa;<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&nhsa, sizeof(nhsa));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- nhsa.Header.Type =
NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>- nhsa.Header.Revision = NDIS_OFFLOAD_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>- nhsa.Header.Size =
NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.Header.Type = NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.Header.Revision =
NDIS_OFFLOAD_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.Header.Size =
NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- // BUGBUG: We are just cheating here ...<o:p></o:p></p>
<p class=MsoNormal>- nhsa.HardwareCapabilities =
NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT;<o:p></o:p></p>
<p class=MsoNormal>+ // BUGBUG: We are just cheating here ...<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.HardwareCapabilities =
NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT;<o:p></o:p></p>
<p class=MsoNormal> #if 0<o:p></o:p></p>
<p class=MsoNormal>- ... Only supported on B0<o:p></o:p></p>
<p class=MsoNormal>+ ... Only supported on B0<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-
NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS;<o:p></o:p></p>
<p class=MsoNormal>+
NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS |<o:p></o:p></p>
<p class=MsoNormal>+
NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS |<o:p></o:p></p>
<p class=MsoNormal>+
NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS;<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- // The bellow should be left zero<o:p></o:p></p>
<p class=MsoNormal>- if (pPort->Config.HeaderDataSplit) {<o:p></o:p></p>
<p class=MsoNormal>- nhsa.CurrentCapabilities = NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT;<o:p></o:p></p>
<p class=MsoNormal>- } else {<o:p></o:p></p>
<p class=MsoNormal>- nhsa.CurrentCapabilities = 0;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ // The bellow should be left zero<o:p></o:p></p>
<p class=MsoNormal>+ if (pPort->Config.HeaderDataSplit) {<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.CurrentCapabilities =
NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT;<o:p></o:p></p>
<p class=MsoNormal>+ } else {<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.CurrentCapabilities = 0;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- nhsa.HDSplitFlags = 0;<o:p></o:p></p>
<p class=MsoNormal>- nhsa.BackfillSize = 0;<o:p></o:p></p>
<p class=MsoNormal>- nhsa.MaxHeaderSize = 0; <o:p></o:p></p>
<p class=MsoNormal>+ nhsa.HDSplitFlags = 0;<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.BackfillSize = 0;<o:p></o:p></p>
<p class=MsoNormal>+ nhsa.MaxHeaderSize = 0; <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- atr.HDSplitAttributes = &nhsa;<o:p></o:p></p>
<p class=MsoNormal>+ atr.HDSplitAttributes = &nhsa;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- Status = NdisMSetMiniportAttributes(h_adapter,<o:p></o:p></p>
<p class=MsoNormal>-
(PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&atr);<o:p></o:p></p>
<p class=MsoNormal>+ Status = NdisMSetMiniportAttributes(h_adapter,<o:p></o:p></p>
<p class=MsoNormal>+ (PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&atr);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (nhsa.HDSplitFlags &
NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT) {<o:p></o:p></p>
<p class=MsoNormal>- ASSERT(pPort->Config.HeaderDataSplit == TRUE);<o:p></o:p></p>
<p class=MsoNormal>- pPort->Config.HeaderDataSplit = TRUE;<o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>- else {<o:p></o:p></p>
<p class=MsoNormal>- ASSERT(pPort->Config.HeaderDataSplit == FALSE);<o:p></o:p></p>
<p class=MsoNormal>- pPort->Config.HeaderDataSplit = FALSE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ if (nhsa.HDSplitFlags &
NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT) {<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(pPort->Config.HeaderDataSplit
== TRUE);<o:p></o:p></p>
<p class=MsoNormal>+ pPort->Config.HeaderDataSplit
= TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ } <o:p></o:p></p>
<p class=MsoNormal>+ else {<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(pPort->Config.HeaderDataSplit
== FALSE);<o:p></o:p></p>
<p class=MsoNormal>+ pPort->Config.HeaderDataSplit
= FALSE;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- return Status;<o:p></o:p></p>
<p class=MsoNormal>+ return Status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- the routine sets attributes that are associated with a
miniport adapter.<o:p></o:p></p>
<p class=MsoNormal>+ the routine sets attributes that are
associated with a miniport adapter.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal>+ pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Note:<o:p></o:p></p>
<p class=MsoNormal>- Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetAdapterRegistrationAttributes(<o:p></o:p></p>
<p class=MsoNormal>@@ -986,7 +986,7 @@<o:p></o:p></p>
<p class=MsoNormal> atr.MiniportAdapterContext =
(NDIS_HANDLE)p_adapter; <o:p></o:p></p>
<p class=MsoNormal> atr.AttributeFlags =
NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER;<o:p></o:p></p>
<p class=MsoNormal> atr.CheckForHangTimeInSeconds = 10;<o:p></o:p></p>
<p class=MsoNormal>- atr.InterfaceType = NdisInterfacePci ; //
???? UH<o:p></o:p></p>
<p class=MsoNormal>+ atr.InterfaceType = NdisInterfacePci ; //
???? UH<o:p></o:p></p>
<p class=MsoNormal> //TODO NDIS60 PNP or PCI ?<o:p></o:p></p>
<p class=MsoNormal> //RegistrationAttributes.InterfaceType =
NdisInterfacePNPBus;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -999,29 +999,29 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- the routine sets generic attributes that are associated
with a miniport <o:p></o:p></p>
<p class=MsoNormal>- adapter.<o:p></o:p></p>
<p class=MsoNormal>+ the routine sets generic attributes that are
associated with a miniport <o:p></o:p></p>
<p class=MsoNormal>+ adapter.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal>+ pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Note:<o:p></o:p></p>
<p class=MsoNormal>- Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetGenericAttributes(<o:p></o:p></p>
<p class=MsoNormal>- ipoib_adapter_t *p_adapter,<o:p></o:p></p>
<p class=MsoNormal>- NDIS_HANDLE h_adapter<o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ ipoib_adapter_t *p_adapter,<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_HANDLE h_adapter<o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS Status;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS Status;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES gat;<o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&gat,
sizeof(NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES gat;<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&gat,
sizeof(NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* set up generic attributes */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -1029,11 +1029,11 @@<o:p></o:p></p>
<p class=MsoNormal> gat.Header.Revision =
NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal> gat.Header.Size =
sizeof(NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- gat.MediaType = NdisMedium802_3;
<o:p></o:p></p>
<p class=MsoNormal>- gat.MaxXmitLinkSpeed = IPOIB_MEDIA_MAX_SPEED;<o:p></o:p></p>
<p class=MsoNormal>- gat.MaxRcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;<o:p></o:p></p>
<p class=MsoNormal>+ gat.MediaType = NdisMedium802_3; <o:p></o:p></p>
<p class=MsoNormal>+ gat.MaxXmitLinkSpeed = IPOIB_MEDIA_MAX_SPEED;<o:p></o:p></p>
<p class=MsoNormal>+ gat.MaxRcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;<o:p></o:p></p>
<p class=MsoNormal> gat.XmitLinkSpeed = NDIS_LINK_SPEED_UNKNOWN;<o:p></o:p></p>
<p class=MsoNormal>- gat.RcvLinkSpeed = NDIS_LINK_SPEED_UNKNOWN;<o:p></o:p></p>
<p class=MsoNormal>+ gat.RcvLinkSpeed = NDIS_LINK_SPEED_UNKNOWN;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> gat.MediaConnectState =
MediaConnectStateConnected; //TODO NDIS60 Check the current state<o:p></o:p></p>
<p class=MsoNormal> gat.MediaDuplexState = MediaDuplexStateFull;<o:p></o:p></p>
<p class=MsoNormal>@@ -1051,7 +1051,7 @@<o:p></o:p></p>
<p class=MsoNormal> //
DT: Enable for Header Data Split WHQL<o:p></o:p></p>
<p class=MsoNormal> //
| NDIS_MAC_OPTION_8021Q_VLAN;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- gat.SupportedPacketFilters = NDIS_PACKET_TYPE_DIRECTED
|<o:p></o:p></p>
<p class=MsoNormal>+ gat.SupportedPacketFilters = NDIS_PACKET_TYPE_DIRECTED
|<o:p></o:p></p>
<p class=MsoNormal> NDIS_PACKET_TYPE_MULTICAST
|<o:p></o:p></p>
<p class=MsoNormal> //NDIS_PACKET_TYPE_ALL_MULTICAST
|<o:p></o:p></p>
<p class=MsoNormal> NDIS_PACKET_TYPE_BROADCAST;<o:p></o:p></p>
<p class=MsoNormal>@@ -1085,57 +1085,57 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //TODO NDIS60 is it possible to reduce
unsupported statistics<o:p></o:p></p>
<p class=MsoNormal> gat.SupportedStatistics = <o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_XMIT_OK_SUPPORTED |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_RCV_OK_SUPPORTED |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_XMIT_ERROR_SUPPORTED |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_RCV_ERROR_SUPPORTED |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_RCV_CRC_ERROR_SUPPORTED |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_RCV_NO_BUFFER_SUPPORTED |<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATISTICS_TRANSMIT_QUEUE_LENGTH_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_XMIT_OK_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_RCV_OK_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_XMIT_ERROR_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_RCV_ERROR_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_RCV_CRC_ERROR_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_RCV_NO_BUFFER_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATISTICS_TRANSMIT_QUEUE_LENGTH_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //SupportedStatistics = NDIS_STATISTICS_XMIT_OK_SUPPORTED
|<o:p></o:p></p>
<p class=MsoNormal> //
NDIS_STATISTICS_GEN_STATISTICS_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // Set power management capabilities<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- gat.PowerManagementCapabilities = NULL;<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // Set power management capabilities<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ gat.PowerManagementCapabilities = NULL;<o:p></o:p></p>
<p class=MsoNormal> #if 0<o:p></o:p></p>
<p class=MsoNormal>- NDIS_PNP_CAPABILITIES PowerManagementCapabilities;<o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&PowerManagementCapabilities,
sizeof(NDIS_PNP_CAPABILITIES));<o:p></o:p></p>
<p class=MsoNormal>- if (MPIsPoMgmtSupported(pPort))<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- MPFillPoMgmtCaps(pPort,
&PowerManagementCapabilities, &Status, &unUsed);<o:p></o:p></p>
<p class=MsoNormal>- ASSERT(NT_SUCCESS(Status)); <o:p></o:p></p>
<p class=MsoNormal>- gat.PowerManagementCapabilities =
&PowerManagementCapabilities;<o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>- else<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_PNP_CAPABILITIES PowerManagementCapabilities;<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&PowerManagementCapabilities,
sizeof(NDIS_PNP_CAPABILITIES));<o:p></o:p></p>
<p class=MsoNormal>+ if (MPIsPoMgmtSupported(pPort))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ MPFillPoMgmtCaps(pPort,
&PowerManagementCapabilities, &Status, &unUsed);<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(NT_SUCCESS(Status)); <o:p></o:p></p>
<p class=MsoNormal>+ gat.PowerManagementCapabilities
= &PowerManagementCapabilities;<o:p></o:p></p>
<p class=MsoNormal>+ } <o:p></o:p></p>
<p class=MsoNormal>+ else<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // Set RSS attributes<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- gat.RecvScaleCapabilities = NULL;<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // Set RSS attributes<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ gat.RecvScaleCapabilities = NULL;<o:p></o:p></p>
<p class=MsoNormal> #if 0<o:p></o:p></p>
<p class=MsoNormal>- NDIS_RECEIVE_SCALE_CAPABILITIES RssCapabilities;<o:p></o:p></p>
<p class=MsoNormal>- NdisZeroMemory(&RssCapabilities,
sizeof(PNDIS_RECEIVE_SCALE_CAPABILITIES));<o:p></o:p></p>
<p class=MsoNormal>- Status = MPFillRssCapabilities(pPort,
&RssCapabilities, &unUsed);<o:p></o:p></p>
<p class=MsoNormal>- if (NT_SUCCESS(Status)) <o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- gat.RecvScaleCapabilities = &RssCapabilities;<o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>- else<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // do not fail the call because of failure to get
PM caps<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>- gat.RecvScaleCapabilities = NULL;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_RECEIVE_SCALE_CAPABILITIES
RssCapabilities;<o:p></o:p></p>
<p class=MsoNormal>+ NdisZeroMemory(&RssCapabilities,
sizeof(PNDIS_RECEIVE_SCALE_CAPABILITIES));<o:p></o:p></p>
<p class=MsoNormal>+ Status = MPFillRssCapabilities(pPort,
&RssCapabilities, &unUsed);<o:p></o:p></p>
<p class=MsoNormal>+ if (NT_SUCCESS(Status)) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ gat.RecvScaleCapabilities =
&RssCapabilities;<o:p></o:p></p>
<p class=MsoNormal>+ } <o:p></o:p></p>
<p class=MsoNormal>+ else<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // do not fail the call
because of failure to get PM caps<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ Status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>+ gat.RecvScaleCapabilities =
NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Status =
NdisMSetMiniportAttributes(h_adapter,<o:p></o:p></p>
<p class=MsoNormal>@@ -1147,16 +1147,16 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- The routine sets an NDIS_OFFLOAD structure indicates
the current offload <o:p></o:p></p>
<p class=MsoNormal>- capabilities that are provided by the miniport adapter <o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ The routine sets an NDIS_OFFLOAD structure
indicates the current offload <o:p></o:p></p>
<p class=MsoNormal>+ capabilities that are provided by the miniport
adapter <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- pPort - a pointer to port object<o:p></o:p></p>
<p class=MsoNormal>- offload - reference to NDIS_OFFLOAD object that should
be filled<o:p></o:p></p>
<p class=MsoNormal>+ pPort - a pointer to port object<o:p></o:p></p>
<p class=MsoNormal>+ offload - reference to NDIS_OFFLOAD object
that should be filled<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- None.<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ None.<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> static<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal>@@ -1235,22 +1235,22 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- The routine sets an NDIS_OFFLOAD structure that
indicates all the task <o:p></o:p></p>
<p class=MsoNormal>- offload capabilites that are supported by the NIC.
These capabilities include<o:p></o:p></p>
<p class=MsoNormal>- capabilities that are currently disabled by
standardized keywords in the registry. <o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ The routine sets an NDIS_OFFLOAD structure
that indicates all the task <o:p></o:p></p>
<p class=MsoNormal>+ offload capabilites that are supported by the
NIC. These capabilities include<o:p></o:p></p>
<p class=MsoNormal>+ capabilities that are currently disabled by
standardized keywords in the registry. <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- offload - reference to NDIS_OFFLOAD object that should
be filled<o:p></o:p></p>
<p class=MsoNormal>+ offload - reference to NDIS_OFFLOAD object
that should be filled<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- None.<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ None.<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> static<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> OffloadCapabilities(<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter,<o:p></o:p></p>
<p class=MsoNormal>- NDIS_OFFLOAD *p_offload<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_OFFLOAD *p_offload<o:p></o:p></p>
<p class=MsoNormal> )<o:p></o:p></p>
<p class=MsoNormal> { <o:p></o:p></p>
<p class=MsoNormal> ULONG ulEncapsulation =
NDIS_ENCAPSULATION_IEEE_802_3 | NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q ;<o:p></o:p></p>
<p class=MsoNormal>@@ -1276,9 +1276,9 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //<o:p></o:p></p>
<p class=MsoNormal>- // BUGBUG::<o:p></o:p></p>
<p class=MsoNormal>- // During a HW bug that didn't handle
correctly packets with <o:p></o:p></p>
<p class=MsoNormal>- // IPv6 Extension Headers -> we set
IpExtensionHeadersSupported to TRUE<o:p></o:p></p>
<p class=MsoNormal>+ // BUGBUG::<o:p></o:p></p>
<p class=MsoNormal>+ // During a HW bug that didn't
handle correctly packets with <o:p></o:p></p>
<p class=MsoNormal>+ // IPv6 Extension Headers -> we
set IpExtensionHeadersSupported to TRUE<o:p></o:p></p>
<p class=MsoNormal> //<o:p></o:p></p>
<p class=MsoNormal> p_offload->Checksum.IPv6Transmit.Encapsulation
= ulEncapsulation;<o:p></o:p></p>
<p class=MsoNormal> p_offload->Checksum.IPv6Transmit.IpExtensionHeadersSupported
= <o:p></o:p></p>
<p class=MsoNormal>@@ -1323,18 +1323,18 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- The routine sets offload attributes that are associated
with a miniport <o:p></o:p></p>
<p class=MsoNormal>- adapter.<o:p></o:p></p>
<p class=MsoNormal>+ The routine sets offload attributes that are
associated with a miniport <o:p></o:p></p>
<p class=MsoNormal>+ adapter.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal>+ pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Note:<o:p></o:p></p>
<p class=MsoNormal>- Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetOffloadAttributes(<o:p></o:p></p>
<p class=MsoNormal>@@ -1346,7 +1346,7 @@<o:p></o:p></p>
<p class=MsoNormal> NDIS_OFFLOAD offload,hwOffload;<o:p></o:p></p>
<p class=MsoNormal> //ULONG ulEncapsulation =
NDIS_ENCAPSULATION_IEEE_802_3 | NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES
oat; <o:p></o:p></p>
<p class=MsoNormal>+ NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES oat;
<o:p></o:p></p>
<p class=MsoNormal> NdisZeroMemory(&oat,
sizeof(NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> oat.Header.Type =
NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES;<o:p></o:p></p>
<p class=MsoNormal>@@ -1372,30 +1372,30 @@<o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- An NDIS 6.0 miniport driver must call
NdisMSetMiniportAttributes<o:p></o:p></p>
<p class=MsoNormal>- at least twice. The first call is to register itself
with NDIS.<o:p></o:p></p>
<p class=MsoNormal>- The second call is to register the miniport driver's
general<o:p></o:p></p>
<p class=MsoNormal>- attributes with NDIS.<o:p></o:p></p>
<p class=MsoNormal>+ An NDIS 6.0 miniport driver must call
NdisMSetMiniportAttributes<o:p></o:p></p>
<p class=MsoNormal>+ at least twice. The first call is to register
itself with NDIS.<o:p></o:p></p>
<p class=MsoNormal>+ The second call is to register the miniport
driver's general<o:p></o:p></p>
<p class=MsoNormal>+ attributes with NDIS.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NdisMSetMiniportAttributes takes a parameter of type<o:p></o:p></p>
<p class=MsoNormal>- NDIS_MINIPORT_ADAPTER_ATTRIBUTES, which is a union of
several miniport<o:p></o:p></p>
<p class=MsoNormal>- adapter attributes. Miniport drivers must first call<o:p></o:p></p>
<p class=MsoNormal>- NdisMSetMiniportAttributes and pass in an<o:p></o:p></p>
<p class=MsoNormal>- NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES structure<o:p></o:p></p>
<p class=MsoNormal>- that contains the pointer to its own context area,
attribute flags,<o:p></o:p></p>
<p class=MsoNormal>- check-for-hang time, and interface type.<o:p></o:p></p>
<p class=MsoNormal>+ NdisMSetMiniportAttributes takes a parameter
of type<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_MINIPORT_ADAPTER_ATTRIBUTES, which is a
union of several miniport<o:p></o:p></p>
<p class=MsoNormal>+ adapter attributes. Miniport drivers must
first call<o:p></o:p></p>
<p class=MsoNormal>+ NdisMSetMiniportAttributes and pass in an<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES
structure<o:p></o:p></p>
<p class=MsoNormal>+ that contains the pointer to its own context
area, attribute flags,<o:p></o:p></p>
<p class=MsoNormal>+ check-for-hang time, and interface type.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- All NDIS 6.0 miniport drivers are deserialized by
default.<o:p></o:p></p>
<p class=MsoNormal>+ All NDIS 6.0 miniport drivers are deserialized
by default.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal>+ pPort - Pointer to port object<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Note:<o:p></o:p></p>
<p class=MsoNormal>- Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ Should be called in PASSIVE_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetAttributes(<o:p></o:p></p>
<p class=MsoNormal>@@ -1433,8 +1433,8 @@<o:p></o:p></p>
<p class=MsoNormal> Status =
SetHardwareAssistAttributes(pPort);<o:p></o:p></p>
<p class=MsoNormal> if (Status !=
NDIS_STATUS_SUCCESS)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>-
//ETH_PRINT(TRACE_LEVEL_ERROR, ETH_INIT, "Set Hardware Assist Attributes
failed Error=0x%x\n", Status);<o:p></o:p></p>
<p class=MsoNormal>- return Status;<o:p></o:p></p>
<p class=MsoNormal>+ //ETH_PRINT(TRACE_LEVEL_ERROR,
ETH_INIT, "Set Hardware Assist Attributes failed Error=0x%x\n",
Status);<o:p></o:p></p>
<p class=MsoNormal>+ return Status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal>@@ -1442,8 +1442,8 @@<o:p></o:p></p>
<p class=MsoNormal> Status = SetGenericAttributes(p_adapter,
h_adapter);<o:p></o:p></p>
<p class=MsoNormal> if (Status != NDIS_STATUS_SUCCESS)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- //ETH_PRINT(TRACE_LEVEL_ERROR, ETH_INIT,
"Set generic attributes failed Error=0x%x\n", Status);<o:p></o:p></p>
<p class=MsoNormal>- return Status;<o:p></o:p></p>
<p class=MsoNormal>+ //ETH_PRINT(TRACE_LEVEL_ERROR,
ETH_INIT, "Set generic attributes failed Error=0x%x\n", Status);<o:p></o:p></p>
<p class=MsoNormal>+ return Status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> return Status;<o:p></o:p></p>
<p class=MsoNormal>@@ -1452,20 +1452,20 @@<o:p></o:p></p>
<p class=MsoNormal> BOOLEAN<o:p></o:p></p>
<p class=MsoNormal> IsValidOffloadConfig(ipoib_adapter_t *p_adapter,
PNDIS_OFFLOAD_PARAMETERS pOffloadParam)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- BOOLEAN bRet = TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ BOOLEAN bRet = TRUE;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- UCHAR CheckSumConfig[5]={0};<o:p></o:p></p>
<p class=MsoNormal>- CheckSumConfig[0] = pOffloadParam->IPv4Checksum;<o:p></o:p></p>
<p class=MsoNormal>- CheckSumConfig[1] = pOffloadParam->TCPIPv4Checksum;<o:p></o:p></p>
<p class=MsoNormal>- CheckSumConfig[2] = pOffloadParam->UDPIPv4Checksum;<o:p></o:p></p>
<p class=MsoNormal>- CheckSumConfig[3] = pOffloadParam->TCPIPv6Checksum;<o:p></o:p></p>
<p class=MsoNormal>- CheckSumConfig[4] = pOffloadParam->UDPIPv6Checksum;<o:p></o:p></p>
<p class=MsoNormal>+ UCHAR CheckSumConfig[5]={0};<o:p></o:p></p>
<p class=MsoNormal>+ CheckSumConfig[0] =
pOffloadParam->IPv4Checksum;<o:p></o:p></p>
<p class=MsoNormal>+ CheckSumConfig[1] =
pOffloadParam->TCPIPv4Checksum;<o:p></o:p></p>
<p class=MsoNormal>+ CheckSumConfig[2] =
pOffloadParam->UDPIPv4Checksum;<o:p></o:p></p>
<p class=MsoNormal>+ CheckSumConfig[3] =
pOffloadParam->TCPIPv6Checksum;<o:p></o:p></p>
<p class=MsoNormal>+ CheckSumConfig[4] =
pOffloadParam->UDPIPv6Checksum;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- for(int i=0 ; i<5 ; i++)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- if(CheckSumConfig[i] !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- switch (CheckSumConfig[i]) {<o:p></o:p></p>
<p class=MsoNormal>+ for(int i=0 ; i<5 ; i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ if(CheckSumConfig[i] !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ switch
(CheckSumConfig[i]) {<o:p></o:p></p>
<p class=MsoNormal> case
NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED:<o:p></o:p></p>
<p class=MsoNormal> bRet
= TRUE;<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal>@@ -1482,28 +1482,28 @@<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> default:<o:p></o:p></p>
<p class=MsoNormal> ASSERT
(FALSE);<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> if (!bRet) <o:p></o:p></p>
<p class=MsoNormal> return
FALSE;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- for(int j=0 ; j<5 ; j++)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- if( (CheckSumConfig[j] != 0) &&
(CheckSumConfig[j] != CheckSumConfig[i]) )<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- bRet = FALSE;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ for(int j=0 ;
j<5 ; j++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ if(
(CheckSumConfig[j] != 0) && (CheckSumConfig[j] != CheckSumConfig[i]) )<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+
bRet = FALSE;<o:p></o:p></p>
<p class=MsoNormal>+
goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }
<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- UCHAR OffloadConfig[3]={0};<o:p></o:p></p>
<p class=MsoNormal>- OffloadConfig[0] = pOffloadParam->LsoV1;<o:p></o:p></p>
<p class=MsoNormal>- OffloadConfig[1] = pOffloadParam->LsoV2IPv4;<o:p></o:p></p>
<p class=MsoNormal>- OffloadConfig[2] = pOffloadParam->LsoV2IPv6;<o:p></o:p></p>
<p class=MsoNormal>+ UCHAR OffloadConfig[3]={0};<o:p></o:p></p>
<p class=MsoNormal>+ OffloadConfig[0] = pOffloadParam->LsoV1;<o:p></o:p></p>
<p class=MsoNormal>+ OffloadConfig[1] =
pOffloadParam->LsoV2IPv4;<o:p></o:p></p>
<p class=MsoNormal>+ OffloadConfig[2] =
pOffloadParam->LsoV2IPv6;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> if (!p_adapter->offload_cap.lso) {<o:p></o:p></p>
<p class=MsoNormal> if ((pOffloadParam->LsoV1
== NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED) ||<o:p></o:p></p>
<p class=MsoNormal>@@ -1514,128 +1514,128 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> pOffloadParam->LsoV1;<o:p></o:p></p>
<p class=MsoNormal>- OffloadConfig[1] = pOffloadParam->LsoV2IPv4;<o:p></o:p></p>
<p class=MsoNormal>+ OffloadConfig[1] =
pOffloadParam->LsoV2IPv4;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- for(int i=0 ; i<3 ; i++)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- if(OffloadConfig[i] !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- for(int j=0 ; j<3 ; j++)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- if( (OffloadConfig[j] != 0) &&
(OffloadConfig[j] != OffloadConfig[i]) )<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- bRet = FALSE;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ for(int i=0 ; i<3 ; i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ if(OffloadConfig[i] !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ for(int j=0 ;
j<3 ; j++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ if(
(OffloadConfig[j] != 0) && (OffloadConfig[j] != OffloadConfig[i]) )<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+
bRet = FALSE;<o:p></o:p></p>
<p class=MsoNormal>+
goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }
<o:p></o:p></p>
<p class=MsoNormal>+ }
<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Exit:<o:p></o:p></p>
<p class=MsoNormal>- return bRet; <o:p></o:p></p>
<p class=MsoNormal>+ return bRet; <o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS <o:p></o:p></p>
<p class=MsoNormal> SetOffloadParameters(<o:p></o:p></p>
<p class=MsoNormal>- ipoib_adapter_t * p_adapter,<o:p></o:p></p>
<p class=MsoNormal>- void* const pBuf,<o:p></o:p></p>
<p class=MsoNormal>- ULONG len <o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ ipoib_adapter_t * p_adapter,<o:p></o:p></p>
<p class=MsoNormal>+ void* const pBuf,<o:p></o:p></p>
<p class=MsoNormal>+ ULONG len <o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_ENTER(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_ENTER(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- ASSERT(pBuf != NULL); <o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- PNDIS_OFFLOAD_PARAMETERS pOffloadParam = NULL;<o:p></o:p></p>
<p class=MsoNormal>- PNDIS_OBJECT_HEADER pOffloadHeader = NULL;<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS Status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>- bool StatusIndicationFlag = FALSE;<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(pBuf != NULL); <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_OFFLOAD_PARAMETERS pOffloadParam = NULL;<o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_OBJECT_HEADER pOffloadHeader = NULL;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS Status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>+ bool StatusIndicationFlag = FALSE;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (len != NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_PRINT(TRACE_LEVEL_ERROR, IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal>+ if (len !=
NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_PRINT(TRACE_LEVEL_ERROR,
IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal> ("Buffer
is too small. offloading task requirs %d but the buffer "<o:p></o:p></p>
<p class=MsoNormal> "size
is: %d \n", NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2, len));<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_INVALID_LENGTH;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ Status =
NDIS_STATUS_INVALID_LENGTH;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- IPOIB_PRINT(TRACE_LEVEL_VERBOSE, IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_PRINT(TRACE_LEVEL_VERBOSE,
IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal> ("received set for
OID_TCP_TASK_OFFLOAD\n"));<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- pOffloadParam = (PNDIS_OFFLOAD_PARAMETERS) pBuf;<o:p></o:p></p>
<p class=MsoNormal>- pOffloadHeader = &(pOffloadParam->Header);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if((pOffloadHeader->Type !=
NDIS_OBJECT_TYPE_DEFAULT) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadHeader->Revision !=
NDIS_OFFLOAD_PARAMETERS_REVISION_2) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadHeader->Size !=
NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2))<o:p></o:p></p>
<p class=MsoNormal>- { <o:p></o:p></p>
<p class=MsoNormal>- ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_PRINT(TRACE_LEVEL_ERROR, IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal>+ pOffloadParam = (PNDIS_OFFLOAD_PARAMETERS)
pBuf;<o:p></o:p></p>
<p class=MsoNormal>+ pOffloadHeader =
&(pOffloadParam->Header);<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ if((pOffloadHeader->Type !=
NDIS_OBJECT_TYPE_DEFAULT) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadHeader->Revision !=
NDIS_OFFLOAD_PARAMETERS_REVISION_2) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadHeader->Size !=
NDIS_SIZEOF_OFFLOAD_PARAMETERS_REVISION_2))<o:p></o:p></p>
<p class=MsoNormal>+ { <o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_PRINT(TRACE_LEVEL_ERROR,
IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal> ("Set
offloading task Illegal header\n"));<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ Status =
NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if ((pOffloadParam->IPsecV1 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->TcpConnectionIPv4 != NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)
||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->TcpConnectionIPv6 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->Flags != 0))<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ if ((pOffloadParam->IPsecV1 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->TcpConnectionIPv4
!= NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->TcpConnectionIPv6
!= NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->Flags !=
0))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ Status = NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //Eliminate currently unsupported statistic<o:p></o:p></p>
<p class=MsoNormal> if ((pOffloadParam->TCPIPv6Checksum !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal> (pOffloadParam->UDPIPv6Checksum
!= NDIS_OFFLOAD_PARAMETERS_NO_CHANGE) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->LsoV2IPv6 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE))<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->LsoV2IPv6 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE))<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> Status =
NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- BOOLEAN bRet = IsValidOffloadConfig(p_adapter,
pOffloadParam);<o:p></o:p></p>
<p class=MsoNormal>- if(bRet == FALSE)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- //ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit; <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ BOOLEAN bRet = IsValidOffloadConfig(p_adapter,
pOffloadParam);<o:p></o:p></p>
<p class=MsoNormal>+ if(bRet == FALSE)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ //ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>+ Status =
NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;
<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> // Set current offload configuration
capabilites<o:p></o:p></p>
<p class=MsoNormal> if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED)
||<o:p></o:p></p>
<p class=MsoNormal> (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED))<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_ENABLED_RX_DISABLED))<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.send_chksum_offload
= CSUM_ENABLED;<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.recv_chksum_offload
= CSUM_DISABLED;<o:p></o:p></p>
<p class=MsoNormal> StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- else if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED)
||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED))<o:p></o:p></p>
<p class=MsoNormal>+ else if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED)
||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_RX_ENABLED_TX_DISABLED))<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.recv_chksum_offload
= CSUM_ENABLED;<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.send_chksum_offload
= CSUM_DISABLED;<o:p></o:p></p>
<p class=MsoNormal> StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- else if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED
) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED ) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED ))<o:p></o:p></p>
<p class=MsoNormal>+ else if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED
) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED ) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED ))<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.send_chksum_offload
= CSUM_ENABLED;<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.recv_chksum_offload
= CSUM_ENABLED;<o:p></o:p></p>
<p class=MsoNormal> StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>- else if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED
) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED ) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED ))<o:p></o:p></p>
<p class=MsoNormal>+ else if ((pOffloadParam->IPv4Checksum == NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED
) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->TCPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED ) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadParam->UDPIPv4Checksum
== NDIS_OFFLOAD_PARAMETERS_TX_RX_DISABLED ))<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.send_chksum_offload
= CSUM_DISABLED;<o:p></o:p></p>
<p class=MsoNormal> p_adapter->params.recv_chksum_offload
= CSUM_DISABLED;<o:p></o:p></p>
<p class=MsoNormal>@@ -1644,127 +1644,127 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- #if 0 <o:p></o:p></p>
<p class=MsoNormal>- if(pOffloadParam->TCPIPv6Checksum !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- UpdateOffloadSeeting(pOffloadParam->TCPIPv6Checksum,
pPort->Config.TCPUDPIPv4Chksum); <o:p></o:p></p>
<p class=MsoNormal>- StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if(pOffloadParam->UDPIPv6Checksum !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- UpdateOffloadSeeting(pOffloadParam->UDPIPv6Checksum,
pPort->Config.TCPUDPIPv4Chksum); <o:p></o:p></p>
<p class=MsoNormal>- StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ #if 0 <o:p></o:p></p>
<p class=MsoNormal>+ if(pOffloadParam->TCPIPv6Checksum !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ UpdateOffloadSeeting(pOffloadParam->TCPIPv6Checksum,
pPort->Config.TCPUDPIPv4Chksum); <o:p></o:p></p>
<p class=MsoNormal>+ StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ if(pOffloadParam->UDPIPv6Checksum !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ UpdateOffloadSeeting(pOffloadParam->UDPIPv6Checksum,
pPort->Config.TCPUDPIPv4Chksum); <o:p></o:p></p>
<p class=MsoNormal>+ StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> // SetCheksumOffloadingModes(pPort->Config);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>-
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- //////////////////////////// OFFLOAD OFFLOAD
////////////////////////////<o:p></o:p></p>
<p class=MsoNormal>- if(pOffloadParam->LsoV1 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- p_adapter->params.lso =
(pOffloadParam->LsoV1 == NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED); <o:p></o:p></p>
<p class=MsoNormal>- StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if(pOffloadParam->LsoV2IPv4 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- { <o:p></o:p></p>
<p class=MsoNormal>- p_adapter->params.lso = (pOffloadParam->LsoV1
== NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED);<o:p></o:p></p>
<p class=MsoNormal>- StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>-#if 0 <o:p></o:p></p>
<p class=MsoNormal>- if(pOffloadParam->LsoV2IPv6 != NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>- { <o:p></o:p></p>
<p class=MsoNormal>- if(pOffloadParam->LsoV2IPv6 ==
NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- pPort->Config.LsoV2IPv6 = TRUE; <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- else<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- pPort->Config.LsoV2IPv6 = FALSE; <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ //////////////////////////// OFFLOAD OFFLOAD ////////////////////////////<o:p></o:p></p>
<p class=MsoNormal>+ if(pOffloadParam->LsoV1 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ p_adapter->params.lso =
(pOffloadParam->LsoV1 == NDIS_OFFLOAD_PARAMETERS_LSOV1_ENABLED); <o:p></o:p></p>
<p class=MsoNormal>+ StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ if(pOffloadParam->LsoV2IPv4 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ { <o:p></o:p></p>
<p class=MsoNormal>+ p_adapter->params.lso =
(pOffloadParam->LsoV1 == NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED);<o:p></o:p></p>
<p class=MsoNormal>+ StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+#if 0 <o:p></o:p></p>
<p class=MsoNormal>+ if(pOffloadParam->LsoV2IPv6 !=
NDIS_OFFLOAD_PARAMETERS_NO_CHANGE)<o:p></o:p></p>
<p class=MsoNormal>+ { <o:p></o:p></p>
<p class=MsoNormal>+ if(pOffloadParam->LsoV2IPv6
== NDIS_OFFLOAD_PARAMETERS_LSOV2_ENABLED)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ pPort->Config.LsoV2IPv6
= TRUE; <o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ else<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ pPort->Config.LsoV2IPv6
= FALSE; <o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ StatusIndicationFlag = TRUE;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
<o:p></o:p></p>
<p class=MsoNormal>+ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if(StatusIndicationFlag)<o:p></o:p></p>
<p class=MsoNormal>- { <o:p></o:p></p>
<p class=MsoNormal>- NDIS_OFFLOAD CurrentOffloadCapapilities;<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS_INDICATION
StatusIndication; <o:p></o:p></p>
<p class=MsoNormal>+ if(StatusIndicationFlag)<o:p></o:p></p>
<p class=MsoNormal>+ { <o:p></o:p></p>
<p class=MsoNormal>+ NDIS_OFFLOAD
CurrentOffloadCapapilities;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS_INDICATION
StatusIndication; <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- OffloadConfig(p_adapter, &CurrentOffloadCapapilities);<o:p></o:p></p>
<p class=MsoNormal>+ OffloadConfig(p_adapter,
&CurrentOffloadCapapilities);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>-
IPOIB_INIT_NDIS_STATUS_INDICATION(&StatusIndication,<o:p></o:p></p>
<p class=MsoNormal>-
p_adapter->h_adapter,<o:p></o:p></p>
<p class=MsoNormal>-
NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG ,<o:p></o:p></p>
<p class=MsoNormal>-
(PVOID)&CurrentOffloadCapapilities,<o:p></o:p></p>
<p class=MsoNormal>-
sizeof(CurrentOffloadCapapilities));<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- NdisMIndicateStatusEx(p_adapter->h_adapter,
&StatusIndication); <o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>-Exit: <o:p></o:p></p>
<p class=MsoNormal>- IPOIB_EXIT(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>- return Status; <o:p></o:p></p>
<p class=MsoNormal>+
<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_INIT_NDIS_STATUS_INDICATION(&StatusIndication,<o:p></o:p></p>
<p class=MsoNormal>+
p_adapter->h_adapter,<o:p></o:p></p>
<p class=MsoNormal>+
NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG ,<o:p></o:p></p>
<p class=MsoNormal>+
(PVOID)&CurrentOffloadCapapilities,<o:p></o:p></p>
<p class=MsoNormal>+
sizeof(CurrentOffloadCapapilities));<o:p></o:p></p>
<p class=MsoNormal>+
<o:p></o:p></p>
<p class=MsoNormal>+ NdisMIndicateStatusEx(p_adapter->h_adapter,
&StatusIndication); <o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+Exit: <o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_EXIT(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>+ return Status; <o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal>- The routine handles setting of
OID_GEN_INTERRUPT_MODERATION.<o:p></o:p></p>
<p class=MsoNormal>+ The routine handles setting of
OID_GEN_INTERRUPT_MODERATION.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal>- InformationBuffer - Pointer to the buffer that contains
the data<o:p></o:p></p>
<p class=MsoNormal>- InformationBufferLength - data length<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ InformationBuffer - Pointer to the buffer that
contains the data<o:p></o:p></p>
<p class=MsoNormal>+ InformationBufferLength - data length<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- NDIS_STAUS<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STAUS<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> static <o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> SetInterruptModeration(<o:p></o:p></p>
<p class=MsoNormal>- PVOID InformationBuffer,<o:p></o:p></p>
<p class=MsoNormal>- ULONG InformationBufferLength )<o:p></o:p></p>
<p class=MsoNormal>+ PVOID InformationBuffer,<o:p></o:p></p>
<p class=MsoNormal>+ ULONG InformationBufferLength )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_ENTER(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS Status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if (InformationBufferLength !=
sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS))<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_INVALID_LENGTH;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- PNDIS_INTERRUPT_MODERATION_PARAMETERS
pInteruptModerationParam =<o:p></o:p></p>
<p class=MsoNormal>-
(PNDIS_INTERRUPT_MODERATION_PARAMETERS)InformationBuffer;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if ((pInteruptModerationParam->Header.Type !=
NDIS_OBJECT_TYPE_DEFAULT) ||<o:p></o:p></p>
<p class=MsoNormal>- (pInteruptModerationParam->Header.Revision !=
NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1) ||<o:p></o:p></p>
<p class=MsoNormal>- (pInteruptModerationParam->Header.Size !=
NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1))<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- Status = NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>- goto Exit;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // BUGBUG: Need to handle disabling of interrupt
moderation <o:p></o:p></p>
<p class=MsoNormal>- // UH, 4-Jun-2008<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>-// ASSERT(pInteruptModerationParam->Flags ==
NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET);<o:p></o:p></p>
<p class=MsoNormal>-// ASSERT(pInteruptModerationParam->InterruptModeration
== NdisInterruptModerationEnabled);<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_ENTER(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS Status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ if (InformationBufferLength !=
sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ Status =
NDIS_STATUS_INVALID_LENGTH;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_INTERRUPT_MODERATION_PARAMETERS
pInteruptModerationParam =<o:p></o:p></p>
<p class=MsoNormal>+ (PNDIS_INTERRUPT_MODERATION_PARAMETERS)InformationBuffer;<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ if ((pInteruptModerationParam->Header.Type
!= NDIS_OBJECT_TYPE_DEFAULT) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pInteruptModerationParam->Header.Revision
!= NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pInteruptModerationParam->Header.Size
!= NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ Status = NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>+ goto Exit;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // BUGBUG: Need to handle disabling of
interrupt moderation <o:p></o:p></p>
<p class=MsoNormal>+ // UH,
4-Jun-2008<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+// ASSERT(pInteruptModerationParam->Flags ==
NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET);<o:p></o:p></p>
<p class=MsoNormal>+// ASSERT(pInteruptModerationParam->InterruptModeration
== NdisInterruptModerationEnabled);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Exit:<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_EXIT(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>- return Status;<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_EXIT(IPOIB_DBG_OID);<o:p></o:p></p>
<p class=MsoNormal>+ return Status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -1825,17 +1825,17 @@<o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- MiniportInitialize handler<o:p></o:p></p>
<p class=MsoNormal>+ MiniportInitialize handler<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- MiniportAdapterHandle The handle NDIS uses to refer
to us<o:p></o:p></p>
<p class=MsoNormal>- MiniportDriverContext Handle passed to NDIS when we
registered the driver<o:p></o:p></p>
<p class=MsoNormal>- MiniportInitParameters Initialization parameters<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ MiniportAdapterHandle The handle
NDIS uses to refer to us<o:p></o:p></p>
<p class=MsoNormal>+ MiniportDriverContext Handle passed to NDIS
when we registered the driver<o:p></o:p></p>
<p class=MsoNormal>+ MiniportInitParameters Initialization
parameters<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS_SUCCESS unless something goes wrong<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS_SUCCESS unless something goes
wrong<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -1878,7 +1878,7 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> p_adapter->ipoib_state =
IPOIB_INIT;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- status =
SetAttributes(p_adapter, h_adapter);<o:p></o:p></p>
<p class=MsoNormal>+ status =
SetAttributes(p_adapter, h_adapter);<o:p></o:p></p>
<p class=MsoNormal> if (status !=
NDIS_STATUS_SUCCESS) {<o:p></o:p></p>
<p class=MsoNormal> //ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal> ipoib_destroy_adapter(
p_adapter );<o:p></o:p></p>
<p class=MsoNormal>@@ -1934,14 +1934,14 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //! Deallocates resources when the NIC is removed and halts
the NIC..<o:p></o:p></p>
<p class=MsoNormal> //TODO: Dispatch or Passive ?<o:p></o:p></p>
<p class=MsoNormal>-/* IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+/* IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> @param adapter_context The adapter context allocated at
start<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> ipoib_halt_ex(<o:p></o:p></p>
<p class=MsoNormal> IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HALT_ACTION
HaltAction )<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HALT_ACTION HaltAction
)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -1974,7 +1974,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //! Reports the state of the NIC, or monitors the
responsiveness of an underlying device driver.<o:p></o:p></p>
<p class=MsoNormal>-/* IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+/* IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> @param adapter_context The adapter context allocated at
start<o:p></o:p></p>
<p class=MsoNormal> @return TRUE if the driver determines that its NIC is not
operating<o:p></o:p></p>
<p class=MsoNormal>@@ -2051,7 +2051,7 @@<o:p></o:p></p>
<p class=MsoNormal> ULONG RxChksumOffload =
((MP_GET_PORT_CONFIG(pPort, RxChksumOffload) == TRUE) ? NDIS_OFFLOAD_SET_ON :
NDIS_OFFLOAD_SET_OFF);<o:p></o:p></p>
<p class=MsoNormal> BOOLEAN fLargeSendOffload =
MP_GET_PORT_CONFIG(pPort, LargeSendOffload);<o:p></o:p></p>
<p class=MsoNormal> ULONG ulEncapsulation =
NDIS_ENCAPSULATION_IEEE_802_3 | NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> NdisZeroMemory(&*p_offload,
sizeof(NDIS_OFFLOAD));<o:p></o:p></p>
<p class=MsoNormal> *p_offload.Header.Type =
NDIS_OBJECT_TYPE_OFFLOAD;<o:p></o:p></p>
<p class=MsoNormal> *p_offload.Header.Revision =
NDIS_OFFLOAD_REVISION_1; // BUGBUG: do we need to support revision 2? UH
17-May-2008<o:p></o:p></p>
<p class=MsoNormal>@@ -2086,17 +2086,17 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> if (fLargeSendOffload)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- *p_offload.LsoV1.IPv4.Encapsulation =
ulEncapsulation;<o:p></o:p></p>
<p class=MsoNormal>- *p_offload.LsoV1.IPv4.MaxOffLoadSize =
LARGE_SEND_OFFLOAD_SIZE;<o:p></o:p></p>
<p class=MsoNormal>- *p_offload.LsoV1.IPv4.MinSegmentCount =
1;<o:p></o:p></p>
<p class=MsoNormal>- *p_offload.LsoV1.IPv4.TcpOptions =
NDIS_OFFLOAD_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>- *p_offload.LsoV1.IPv4.IpOptions =
NDIS_OFFLOAD_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>+ *p_offload.LsoV1.IPv4.Encapsulation
= ulEncapsulation;<o:p></o:p></p>
<p class=MsoNormal>+ *p_offload.LsoV1.IPv4.MaxOffLoadSize
= LARGE_SEND_OFFLOAD_SIZE;<o:p></o:p></p>
<p class=MsoNormal>+ *p_offload.LsoV1.IPv4.MinSegmentCount
= 1;<o:p></o:p></p>
<p class=MsoNormal>+ *p_offload.LsoV1.IPv4.TcpOptions
= NDIS_OFFLOAD_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>+ *p_offload.LsoV1.IPv4.IpOptions
= NDIS_OFFLOAD_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> #endif<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //! Returns information about the capabilities and status
of the driver and/or its NIC.<o:p></o:p></p>
<p class=MsoNormal>-/* IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal>+/* IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> @param adapter_context The adapter context allocated at
start<o:p></o:p></p>
<p class=MsoNormal> @param oid Object ID representing the query operation to be
carried out<o:p></o:p></p>
<p class=MsoNormal>@@ -2111,8 +2111,8 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_query_info(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN OUT PNDIS_OID_REQUEST pNdisRequest )<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN OUT PNDIS_OID_REQUEST pNdisRequest
)<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter;<o:p></o:p></p>
<p class=MsoNormal>@@ -2123,7 +2123,7 @@<o:p></o:p></p>
<p class=MsoNormal> ULONG buf_len;<o:p></o:p></p>
<p class=MsoNormal> pending_oid_t oid_info;<o:p></o:p></p>
<p class=MsoNormal> uint8_t port_num;<o:p></o:p></p>
<p class=MsoNormal>- NDIS_OFFLOAD offload;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_OFFLOAD offload;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> NDIS_INTERRUPT_MODERATION_PARAMETERS
InterruptModerationParam;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -2366,7 +2366,7 @@<o:p></o:p></p>
<p class=MsoNormal> IPOIB_PRINT(
TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,<o:p></o:p></p>
<p class=MsoNormal> ("Port
%d received query for OID_GEN_STATISTICS\n", port_num) );<o:p></o:p></p>
<p class=MsoNormal> src_buf =
NULL; <o:p></o:p></p>
<p class=MsoNormal>- buf_len =
sizeof(NDIS_STATISTICS_INFO);<o:p></o:p></p>
<p class=MsoNormal>+ buf_len = sizeof(NDIS_STATISTICS_INFO);<o:p></o:p></p>
<p class=MsoNormal> if
(oid_info.buf_len < buf_len)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal>@@ -2538,29 +2538,29 @@<o:p></o:p></p>
<p class=MsoNormal> info = 0;<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case
OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES:<o:p></o:p></p>
<p class=MsoNormal>- buf_len = sizeof(NDIS_OFFLOAD);<o:p></o:p></p>
<p class=MsoNormal>- if (buf_len < oid_info.buf_len)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- *oid_info.p_bytes_needed = buf_len;<o:p></o:p></p>
<p class=MsoNormal>+ buf_len =
sizeof(NDIS_OFFLOAD);<o:p></o:p></p>
<p class=MsoNormal>+ if (buf_len
< oid_info.buf_len)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ *oid_info.p_bytes_needed
= buf_len;<o:p></o:p></p>
<p class=MsoNormal> return
NDIS_STATUS_BUFFER_TOO_SHORT;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- OffloadCapabilities(p_adapter, &offload);<o:p></o:p></p>
<p class=MsoNormal>- src_buf = &offload;<o:p></o:p></p>
<p class=MsoNormal>- break; <o:p></o:p></p>
<p class=MsoNormal>+ OffloadCapabilities(p_adapter,
&offload);<o:p></o:p></p>
<p class=MsoNormal>+ src_buf =
&offload;<o:p></o:p></p>
<p class=MsoNormal>+ break; <o:p></o:p></p>
<p class=MsoNormal> case
OID_GEN_INTERRUPT_MODERATION:<o:p></o:p></p>
<p class=MsoNormal>- InterruptModerationParam.Header.Type =
NDIS_OBJECT_TYPE_DEFAULT;<o:p></o:p></p>
<p class=MsoNormal>- InterruptModerationParam.Header.Revision =<o:p></o:p></p>
<p class=MsoNormal>+ InterruptModerationParam.Header.Type
= NDIS_OBJECT_TYPE_DEFAULT;<o:p></o:p></p>
<p class=MsoNormal>+ InterruptModerationParam.Header.Revision
=<o:p></o:p></p>
<p class=MsoNormal> NDIS_INTERRUPT_MODERATION_PARAMETERS_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>- InterruptModerationParam.Header.Size =<o:p></o:p></p>
<p class=MsoNormal>+ InterruptModerationParam.Header.Size
=<o:p></o:p></p>
<p class=MsoNormal> NDIS_SIZEOF_INTERRUPT_MODERATION_PARAMETERS_REVISION_1;<o:p></o:p></p>
<p class=MsoNormal>- InterruptModerationParam.Flags =<o:p></o:p></p>
<p class=MsoNormal>+ InterruptModerationParam.Flags
=<o:p></o:p></p>
<p class=MsoNormal> NDIS_INTERRUPT_MODERATION_CHANGE_NEEDS_RESET;<o:p></o:p></p>
<p class=MsoNormal>- InterruptModerationParam.InterruptModeration =<o:p></o:p></p>
<p class=MsoNormal>+ InterruptModerationParam.InterruptModeration
=<o:p></o:p></p>
<p class=MsoNormal> NdisInterruptModerationNotSupported;<o:p></o:p></p>
<p class=MsoNormal>- buf_len =
sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);<o:p></o:p></p>
<p class=MsoNormal>- src_buf = (PVOID)
&InterruptModerationParam; <o:p></o:p></p>
<p class=MsoNormal>- break;<o:p></o:p></p>
<p class=MsoNormal>+ buf_len =
sizeof(NDIS_INTERRUPT_MODERATION_PARAMETERS);<o:p></o:p></p>
<p class=MsoNormal>+ src_buf =
(PVOID) &InterruptModerationParam; <o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* Optional General */<o:p></o:p></p>
<p class=MsoNormal> case
OID_GEN_SUPPORTED_GUIDS:<o:p></o:p></p>
<p class=MsoNormal>@@ -2613,7 +2613,7 @@<o:p></o:p></p>
<p class=MsoNormal> ("Port
%d received query for OID_TCP_OFFLOAD_CURRENT_CONFIG\n",<o:p></o:p></p>
<p class=MsoNormal> port_num)
);<o:p></o:p></p>
<p class=MsoNormal> //ulBytesAvailable
= ulInfoLen = sizeof(NDIS_OFFLOAD);<o:p></o:p></p>
<p class=MsoNormal>- if
(oid_info.buf_len < sizeof(NDIS_OFFLOAD))<o:p></o:p></p>
<p class=MsoNormal>+ if
(oid_info.buf_len < sizeof(NDIS_OFFLOAD))<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> *oid_info.p_bytes_needed
= sizeof(NDIS_OFFLOAD) ;<o:p></o:p></p>
<p class=MsoNormal>@@ -2726,43 +2726,43 @@<o:p></o:p></p>
<p class=MsoNormal> static<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS <o:p></o:p></p>
<p class=MsoNormal> SetOffloadEncapsulation(<o:p></o:p></p>
<p class=MsoNormal>- void* const pBuf,<o:p></o:p></p>
<p class=MsoNormal>- ULONG len <o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ void* const pBuf,<o:p></o:p></p>
<p class=MsoNormal>+ ULONG len <o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- ASSERT(pBuf != NULL);<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- PNDIS_OFFLOAD_ENCAPSULATION pOffload;<o:p></o:p></p>
<p class=MsoNormal>- PNDIS_OBJECT_HEADER pOffloadHeader;<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(pBuf != NULL);<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_OFFLOAD_ENCAPSULATION pOffload;<o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_OBJECT_HEADER pOffloadHeader;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (len != sizeof(NDIS_OFFLOAD_ENCAPSULATION))<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_PRINT(TRACE_LEVEL_ERROR, IPOIB_DBG_OID,
("Buffer is too small. offloading task requirs %d but the buffer size is:
%d \n", sizeof(NDIS_OFFLOAD_ENCAPSULATION), len));<o:p></o:p></p>
<p class=MsoNormal>- return NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>- } <o:p></o:p></p>
<p class=MsoNormal>+ if (len != sizeof(NDIS_OFFLOAD_ENCAPSULATION))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_PRINT(TRACE_LEVEL_ERROR,
IPOIB_DBG_OID, ("Buffer is too small. offloading task requirs %d but the
buffer size is: %d \n", sizeof(NDIS_OFFLOAD_ENCAPSULATION), len));<o:p></o:p></p>
<p class=MsoNormal>+ return NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>+ } <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- pOffload= (PNDIS_OFFLOAD_ENCAPSULATION) pBuf;<o:p></o:p></p>
<p class=MsoNormal>- pOffloadHeader = &(pOffload->Header);<o:p></o:p></p>
<p class=MsoNormal>+ pOffload= (PNDIS_OFFLOAD_ENCAPSULATION) pBuf;<o:p></o:p></p>
<p class=MsoNormal>+ pOffloadHeader = &(pOffload->Header);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if((pOffloadHeader->Type != NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION)
||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadHeader->Revision !=
NDIS_OFFLOAD_ENCAPSULATION_REVISION_1) ||<o:p></o:p></p>
<p class=MsoNormal>- (pOffloadHeader->Size !=
NDIS_SIZEOF_OFFLOAD_ENCAPSULATION_REVISION_1))<o:p></o:p></p>
<p class=MsoNormal>- { <o:p></o:p></p>
<p class=MsoNormal>- ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_PRINT(TRACE_LEVEL_ERROR, IPOIB_DBG_OID,
("Set offloading task Illegal header\n"));<o:p></o:p></p>
<p class=MsoNormal>- return NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ if((pOffloadHeader->Type !=
NDIS_OBJECT_TYPE_OFFLOAD_ENCAPSULATION) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadHeader->Revision !=
NDIS_OFFLOAD_ENCAPSULATION_REVISION_1) ||<o:p></o:p></p>
<p class=MsoNormal>+ (pOffloadHeader->Size !=
NDIS_SIZEOF_OFFLOAD_ENCAPSULATION_REVISION_1))<o:p></o:p></p>
<p class=MsoNormal>+ { <o:p></o:p></p>
<p class=MsoNormal>+ ASSERT(FALSE);<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_PRINT(TRACE_LEVEL_ERROR,
IPOIB_DBG_OID, ("Set offloading task Illegal header\n"));<o:p></o:p></p>
<p class=MsoNormal>+ return
NDIS_STATUS_INVALID_DATA;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // BUGBUG: Need to handle the offload parameter setting<o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- return NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // BUGBUG: Need to handle the offload
parameter setting<o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ return NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //! Issues a hardware reset to the NIC and/or resets the
driver's software state.<o:p></o:p></p>
<p class=MsoNormal>-/* Tear down the connection and start over again. This is
only called when there is a problem.<o:p></o:p></p>
<p class=MsoNormal>+/* Tear down the connection and start over again. This
is only called when there is a problem.<o:p></o:p></p>
<p class=MsoNormal> For example, if a send, query info, or set info had a time
out. MiniportCheckForHang will<o:p></o:p></p>
<p class=MsoNormal> be called first.<o:p></o:p></p>
<p class=MsoNormal> IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal>@@ -2775,8 +2775,8 @@<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_reset(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- OUT PBOOLEAN p_addr_reset)<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ OUT PBOOLEAN p_addr_reset)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t* p_adapter;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -2808,7 +2808,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> //! Request changes in the state information that the
miniport driver maintains<o:p></o:p></p>
<p class=MsoNormal>-/* For example, this is used to set multicast addresses
and the packet filter.<o:p></o:p></p>
<p class=MsoNormal>+/* For example, this is used to set multicast
addresses and the packet filter.<o:p></o:p></p>
<p class=MsoNormal> IRQL = DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> @param adapter_context The adapter context allocated at
start<o:p></o:p></p>
<p class=MsoNormal>@@ -2823,8 +2823,8 @@<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_set_info(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN OUT PNDIS_OID_REQUEST pNdisRequest)<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN OUT PNDIS_OID_REQUEST pNdisRequest)<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t* p_adapter;<o:p></o:p></p>
<p class=MsoNormal>@@ -2840,11 +2840,11 @@<o:p></o:p></p>
<p class=MsoNormal> CL_ASSERT( adapter_context );<o:p></o:p></p>
<p class=MsoNormal> p_adapter =
(ipoib_adapter_t*)adapter_context;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NDIS_OID oid =
pNdisRequest->DATA.SET_INFORMATION.Oid;<o:p></o:p></p>
<p class=MsoNormal>- PVOID info_buf =
pNdisRequest->DATA.SET_INFORMATION.InformationBuffer;<o:p></o:p></p>
<p class=MsoNormal>- UINT info_buf_len =
pNdisRequest->DATA.SET_INFORMATION.InformationBufferLength;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_OID oid =
pNdisRequest->DATA.SET_INFORMATION.Oid;<o:p></o:p></p>
<p class=MsoNormal>+ PVOID info_buf =
pNdisRequest->DATA.SET_INFORMATION.InformationBuffer;<o:p></o:p></p>
<p class=MsoNormal>+ UINT info_buf_len =
pNdisRequest->DATA.SET_INFORMATION.InformationBufferLength;<o:p></o:p></p>
<p class=MsoNormal> PULONG p_bytes_read
= (PULONG)&pNdisRequest->DATA.SET_INFORMATION.BytesRead;<o:p></o:p></p>
<p class=MsoNormal>- PULONG p_bytes_needed
= (PULONG)&pNdisRequest->DATA.SET_INFORMATION.BytesNeeded;<o:p></o:p></p>
<p class=MsoNormal>+ PULONG p_bytes_needed
= (PULONG)&pNdisRequest->DATA.SET_INFORMATION.BytesNeeded;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> CL_ASSERT( p_bytes_read );<o:p></o:p></p>
<p class=MsoNormal> CL_ASSERT( p_bytes_needed );<o:p></o:p></p>
<p class=MsoNormal>@@ -3089,10 +3089,10 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS<o:p></o:p></p>
<p class=MsoNormal> ipoib_oid_handler(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN OUT PNDIS_OID_REQUEST pNdisRequest)<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN OUT PNDIS_OID_REQUEST pNdisRequest)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- NDIS_REQUEST_TYPE RequestType;<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_REQUEST_TYPE RequestType;<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_ENTER( IPOIB_DBG_OID );<o:p></o:p></p>
<p class=MsoNormal>@@ -3101,28 +3101,28 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> switch(RequestType)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- case NdisRequestSetInformation: <o:p></o:p></p>
<p class=MsoNormal>- status = ipoib_set_info(adapter_context,
pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal>- break;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- case NdisRequestQueryInformation:<o:p></o:p></p>
<p class=MsoNormal>- case NdisRequestQueryStatistics:<o:p></o:p></p>
<p class=MsoNormal>- status = ipoib_query_info(adapter_context,
pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal>+ case
NdisRequestSetInformation: <o:p></o:p></p>
<p class=MsoNormal>+ status =
ipoib_set_info(adapter_context, pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ case
NdisRequestQueryInformation:<o:p></o:p></p>
<p class=MsoNormal>+ case
NdisRequestQueryStatistics:<o:p></o:p></p>
<p class=MsoNormal>+ status =
ipoib_query_info(adapter_context, pNdisRequest);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- break;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- default:<o:p></o:p></p>
<p class=MsoNormal>- status = NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>- break;<o:p></o:p></p>
<p class=MsoNormal>+ default:<o:p></o:p></p>
<p class=MsoNormal>+ status =
NDIS_STATUS_NOT_SUPPORTED;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> IPOIB_EXIT( IPOIB_DBG_OID );<o:p></o:p></p>
<p class=MsoNormal> return status;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* Transfers some number of packets, specified as an array
of packet pointers,<o:p></o:p></p>
<p class=MsoNormal>- * over the network. <o:p></o:p></p>
<p class=MsoNormal>- * For a deserialized driver, these packets are completed
asynchronously<o:p></o:p></p>
<p class=MsoNormal>- * using NdisMSendComplete.<o:p></o:p></p>
<p class=MsoNormal>+ * over the network. <o:p></o:p></p>
<p class=MsoNormal>+ * For a deserialized driver, these packets are
completed asynchronously<o:p></o:p></p>
<p class=MsoNormal>+ * using NdisMSendComplete.<o:p></o:p></p>
<p class=MsoNormal> * IRQL <= DISPATCH_LEVEL<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> @param adapter_context - Pointer to ipoib_adapter_t
structure with per NIC state<o:p></o:p></p>
<p class=MsoNormal>@@ -3132,16 +3132,16 @@<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> void<o:p></o:p></p>
<p class=MsoNormal> ipoib_send_net_buffer_list(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN PNET_BUFFER_LIST net_buffer_list,<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_PORT_NUMBER port_num,<o:p></o:p></p>
<p class=MsoNormal>- IN ULONG send_flags )<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN PNET_BUFFER_LIST net_buffer_list,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_PORT_NUMBER port_num,<o:p></o:p></p>
<p class=MsoNormal>+ IN ULONG send_flags
)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter;<o:p></o:p></p>
<p class=MsoNormal> ipoib_port_t *p_port;<o:p></o:p></p>
<p class=MsoNormal> ULONG send_complete_flags;<o:p></o:p></p>
<p class=MsoNormal>- PNET_BUFFER_LIST curr_net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal>- PNET_BUFFER_LIST next_net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal>+ PNET_BUFFER_LIST curr_net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal>+ PNET_BUFFER_LIST next_net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal> NDIS_STATUS status = NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> UNREFERENCED_PARAMETER(port_num);<o:p></o:p></p>
<p class=MsoNormal>@@ -3191,9 +3191,9 @@<o:p></o:p></p>
<p class=MsoNormal> ipoib_cnt_inc(
&p_adapter->n_send_NBL );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> next_net_buffer_list =
NET_BUFFER_LIST_NEXT_NBL(curr_net_buffer_list);<o:p></o:p></p>
<p class=MsoNormal>- KeMemoryBarrierWithoutFence();<o:p></o:p></p>
<p class=MsoNormal>+ KeMemoryBarrierWithoutFence();<o:p></o:p></p>
<p class=MsoNormal> // Important issue, break
the connection between the different nbls<o:p></o:p></p>
<p class=MsoNormal>- NET_BUFFER_LIST_NEXT_NBL(curr_net_buffer_list) =
NULL;<o:p></o:p></p>
<p class=MsoNormal>+ NET_BUFFER_LIST_NEXT_NBL(curr_net_buffer_list)
= NULL;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> cl_perf_start( PortSend );<o:p></o:p></p>
<p class=MsoNormal> IPOIB_PRINT( TRACE_LEVEL_VERBOSE,
IPOIB_DBG_BUF,<o:p></o:p></p>
<p class=MsoNormal>@@ -3211,14 +3211,14 @@<o:p></o:p></p>
<p class=MsoNormal> cl_perf_log( &p_adapter->perf,
SendBundle, 1 );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> compl_status:<o:p></o:p></p>
<p class=MsoNormal>- if (status != NDIS_STATUS_SUCCESS)<o:p></o:p></p>
<p class=MsoNormal>+ if (status != NDIS_STATUS_SUCCESS)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_PRINT(
TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,<o:p></o:p></p>
<p class=MsoNormal> ("Got
bad status, g_NBL=%d, g_NBL_completed=%d \n",<o:p></o:p></p>
<p class=MsoNormal> g_NBL,
g_NBL_complete) );<o:p></o:p></p>
<p class=MsoNormal> send_complete_flags = 0;<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> for (curr_net_buffer_list =
net_buffer_list;<o:p></o:p></p>
<p class=MsoNormal> curr_net_buffer_list
!= NULL;<o:p></o:p></p>
<p class=MsoNormal> curr_net_buffer_list
= next_net_buffer_list)<o:p></o:p></p>
<p class=MsoNormal>@@ -3277,7 +3277,7 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> VOID<o:p></o:p></p>
<p class=MsoNormal> ipoib_shutdown_ex(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal> IN NDIS_SHUTDOWN_ACTION shutdown_action)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> IPOIB_ENTER( IPOIB_DBG_INIT ) ;<o:p></o:p></p>
<p class=MsoNormal>@@ -3562,16 +3562,16 @@<o:p></o:p></p>
<p class=MsoNormal> //
otherwise, it can lead to a memory violation (happened when AddressCount was
> 1)<o:p></o:p></p>
<p class=MsoNormal> if(
p_net_addr_oid->AddressLength != NETWORK_ADDRESS_LENGTH_IP)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- IPOIB_PRINT(
TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_PRINT(TRACE_LEVEL_ERROR,
IPOIB_DBG_ERROR,<o:p></o:p></p>
<p class=MsoNormal> ("Port
%d OID_GEN_NETWORK_LAYER_ADDRESSES - Address %d is wrong size of %d, "<o:p></o:p></p>
<p class=MsoNormal> "should
be %d\n", port_num, i, p_net_addr_oid->AddressLength,<o:p></o:p></p>
<p class=MsoNormal> NETWORK_ADDRESS_LENGTH_IP));<o:p></o:p></p>
<p class=MsoNormal> ASSERT
( p_net_addr_oid->AddressLength == NETWORK_ADDRESS_LENGTH_IPX );<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> ASSERT(
p_net_addr_oid->AddressType == NDIS_PROTOCOL_ID_TCP_IP );<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> p_ip_addr =
(PNETWORK_ADDRESS_IP)p_net_addr_oid->Address;<o:p></o:p></p>
<p class=MsoNormal> if(
!cl_memcmp( &p_ip_addr->in_addr,<o:p></o:p></p>
<p class=MsoNormal> &p_addr_item->address.as_ulong,
sizeof(ULONG) ) )<o:p></o:p></p>
<p class=MsoNormal>@@ -3737,7 +3737,7 @@<o:p></o:p></p>
<p class=MsoNormal> if(p_adapter->guids.port_guid.pkey !=
IB_DEFAULT_PKEY)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> IPOIB_PRINT_EXIT(
TRACE_LEVEL_ERROR,IPOIB_DBG_ERROR,<o:p></o:p></p>
<p class=MsoNormal>- ("ATS Service available
for default pkey only\n")); <o:p></o:p></p>
<p class=MsoNormal>+ ("ATS Service available
for default pkey only\n")); <o:p></o:p></p>
<p class=MsoNormal> return;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> port_num = p_adapter->guids.port_num;<o:p></o:p></p>
<p class=MsoNormal>@@ -3761,7 +3761,7 @@<o:p></o:p></p>
<p class=MsoNormal> ("Problem copying ATS
name: exiting\n"));<o:p></o:p></p>
<p class=MsoNormal> return;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> /* IP Address in question will be put in
below */<o:p></o:p></p>
<p class=MsoNormal> ib_service.port_guid =
p_adapter->guids.port_guid.guid;<o:p></o:p></p>
<p class=MsoNormal> ib_service.timeout_ms =
p_adapter->params.sa_timeout;<o:p></o:p></p>
<p class=MsoNormal>@@ -3786,7 +3786,7 @@<o:p></o:p></p>
<p class=MsoNormal> for( idx = 0; idx < cl_vector_get_size(
&p_adapter->ip_vector); idx++ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> p_addr_item =
(net_address_item_t*)<o:p></o:p></p>
<p class=MsoNormal>- cl_vector_get_ptr(
&p_adapter->ip_vector, idx );<o:p></o:p></p>
<p class=MsoNormal>+ cl_vector_get_ptr( &p_adapter->ip_vector,
idx );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> if( p_addr_item->p_reg )<o:p></o:p></p>
<p class=MsoNormal> continue;<o:p></o:p></p>
<p class=MsoNormal>@@ -3972,8 +3972,8 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS <o:p></o:p></p>
<p class=MsoNormal> ipoib_pause(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE
adapter_context, <o:p></o:p></p>
<p class=MsoNormal>- IN PNDIS_MINIPORT_PAUSE_PARAMETERS
pause_parameters)<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context, <o:p></o:p></p>
<p class=MsoNormal>+ IN PNDIS_MINIPORT_PAUSE_PARAMETERS pause_parameters)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter;<o:p></o:p></p>
<p class=MsoNormal> KLOCK_QUEUE_HANDLE hdl;<o:p></o:p></p>
<p class=MsoNormal>@@ -4009,26 +4009,26 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static NDIS_STATUS <o:p></o:p></p>
<p class=MsoNormal> ipoib_restart(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE
adapter_context, <o:p></o:p></p>
<p class=MsoNormal>- IN PNDIS_MINIPORT_RESTART_PARAMETERS
restart_parameters)<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context, <o:p></o:p></p>
<p class=MsoNormal>+ IN PNDIS_MINIPORT_RESTART_PARAMETERS restart_parameters)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t *p_adapter;<o:p></o:p></p>
<p class=MsoNormal> KLOCK_QUEUE_HANDLE hdl;<o:p></o:p></p>
<p class=MsoNormal>- PNDIS_RESTART_ATTRIBUTES NdisRestartAttributes;<o:p></o:p></p>
<p class=MsoNormal>- PNDIS_RESTART_GENERAL_ATTRIBUTES
NdisGeneralAttributes;<o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_RESTART_ATTRIBUTES
NdisRestartAttributes;<o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_RESTART_GENERAL_ATTRIBUTES
NdisGeneralAttributes;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_ENTER( IPOIB_DBG_INIT );<o:p></o:p></p>
<p class=MsoNormal> p_adapter =
(ipoib_adapter_t*)adapter_context;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> NdisRestartAttributes =
restart_parameters->RestartAttributes;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- if (NdisRestartAttributes != NULL)<o:p></o:p></p>
<p class=MsoNormal>- {<o:p></o:p></p>
<p class=MsoNormal>- CL_ASSERT(NdisRestartAttributes->Oid ==
OID_GEN_MINIPORT_RESTART_ATTRIBUTES);<o:p></o:p></p>
<p class=MsoNormal>- NdisGeneralAttributes =
(PNDIS_RESTART_GENERAL_ATTRIBUTES)NdisRestartAttributes->Data; <o:p></o:p></p>
<p class=MsoNormal>- //<o:p></o:p></p>
<p class=MsoNormal>- // Check to see if we need to change any attributes<o:p></o:p></p>
<p class=MsoNormal>- }<o:p></o:p></p>
<p class=MsoNormal>+ if (NdisRestartAttributes != NULL)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ CL_ASSERT(NdisRestartAttributes->Oid
== OID_GEN_MINIPORT_RESTART_ATTRIBUTES);<o:p></o:p></p>
<p class=MsoNormal>+ NdisGeneralAttributes =
(PNDIS_RESTART_GENERAL_ATTRIBUTES)NdisRestartAttributes->Data; <o:p></o:p></p>
<p class=MsoNormal>+ //<o:p></o:p></p>
<p class=MsoNormal>+ // Check to see if we need to
change any attributes<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> if ( (p_adapter->ipoib_state ==
IPOIB_PAUSED) || (p_adapter->ipoib_state == IPOIB_INIT) ) {<o:p></o:p></p>
<p class=MsoNormal> IPOIB_PRINT(
TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV,<o:p></o:p></p>
<p class=MsoNormal>@@ -4046,37 +4046,37 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_EXIT( IPOIB_DBG_INIT );<o:p></o:p></p>
<p class=MsoNormal>- return NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal>+ return NDIS_STATUS_SUCCESS;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /*++<o:p></o:p></p>
<p class=MsoNormal> Routine Description:<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- This function aborts the request pending in the
miniport.<o:p></o:p></p>
<p class=MsoNormal>+ This function aborts the request pending in
the miniport.<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> Arguments:<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- MiniportAdapterContext Pointer to the adapter
structure<o:p></o:p></p>
<p class=MsoNormal>- RequestId Specify the request to be
cancelled.<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ MiniportAdapterContext Pointer to
the adapter structure<o:p></o:p></p>
<p class=MsoNormal>+ RequestId Specify
the request to be cancelled.<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> Return Value:<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> --*/<o:p></o:p></p>
<p class=MsoNormal> static void<o:p></o:p></p>
<p class=MsoNormal> ipoib_cancel_oid_request(<o:p></o:p></p>
<p class=MsoNormal>- IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>- IN PVOID requestId<o:p></o:p></p>
<p class=MsoNormal>- )<o:p></o:p></p>
<p class=MsoNormal>+ IN NDIS_HANDLE adapter_context,<o:p></o:p></p>
<p class=MsoNormal>+ IN PVOID
requestId<o:p></o:p></p>
<p class=MsoNormal>+ )<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal>- PNDIS_OID_REQUEST pending_request;<o:p></o:p></p>
<p class=MsoNormal>+ PNDIS_OID_REQUEST pending_request;<o:p></o:p></p>
<p class=MsoNormal> ipoib_adapter_t
*p_adapter;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> IPOIB_ENTER( IPOIB_DBG_OID );<o:p></o:p></p>
<p class=MsoNormal> p_adapter =
(ipoib_adapter_t*)adapter_context;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- cl_obj_lock( &p_adapter->obj );<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>- if ( p_adapter->query_oid.p_pending_oid &&<o:p></o:p></p>
<p class=MsoNormal>+ cl_obj_lock( &p_adapter->obj );<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ if ( p_adapter->query_oid.p_pending_oid
&&<o:p></o:p></p>
<p class=MsoNormal> p_adapter->query_oid.p_pending_oid->RequestId
== requestId)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> pending_request =
p_adapter->query_oid.p_pending_oid;<o:p></o:p></p>
<p class=MsoNormal>@@ -4097,11 +4097,11 @@<o:p></o:p></p>
<p class=MsoNormal> ("No Pending OID
found\n") );<o:p></o:p></p>
<p class=MsoNormal> return;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>- cl_obj_unlock( &p_adapter->obj );<o:p></o:p></p>
<p class=MsoNormal>+ cl_obj_unlock( &p_adapter->obj );<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- NdisMOidRequestComplete(p_adapter->h_adapter, <o:p></o:p></p>
<p class=MsoNormal>- pending_request, <o:p></o:p></p>
<p class=MsoNormal>- NDIS_STATUS_REQUEST_ABORTED);<o:p></o:p></p>
<p class=MsoNormal>+ NdisMOidRequestComplete(p_adapter->h_adapter,
<o:p></o:p></p>
<p class=MsoNormal>+ pending_request,
<o:p></o:p></p>
<p class=MsoNormal>+ NDIS_STATUS_REQUEST_ABORTED);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- IPOIB_EXIT( IPOIB_DBG_OID );<o:p></o:p></p>
<p class=MsoNormal>+ IPOIB_EXIT( IPOIB_DBG_OID );<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
</div>
</body>
</html>