[ros-diffs] [weiden] 25563: Convert NdisQueryPacket to an inline function (The DDK also defines it as an inline function). Should fix some warnings with GCC4.2

weiden at svn.reactos.org weiden at svn.reactos.org
Sun Jan 21 19:49:12 CET 2007


Author: weiden
Date: Sun Jan 21 21:49:10 2007
New Revision: 25563

URL: http://svn.reactos.org/svn/reactos?rev=25563&view=rev
Log:
Convert NdisQueryPacket to an inline function (The DDK also defines it as an inline function). Should fix some warnings with GCC4.2

Modified:
    trunk/reactos/drivers/network/dd/ne2000/include/ne2000.h
    trunk/reactos/include/ddk/ndis.h

Modified: trunk/reactos/drivers/network/dd/ne2000/include/ne2000.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/dd/ne2000/include/ne2000.h?rev=25563&r1=25562&r2=25563&view=diff
==============================================================================
--- trunk/reactos/drivers/network/dd/ne2000/include/ne2000.h (original)
+++ trunk/reactos/drivers/network/dd/ne2000/include/ne2000.h Sun Jan 21 21:49:10 2007
@@ -155,7 +155,7 @@
     UINT TXFree;    /* Number of free transmit buffers */
     UINT TXNext;    /* Next buffer to use */
     /* Length of packet. 0 means buffer is unused */
-    INT TXSize[DRIVER_DEFAULT_TX_BUFFER_COUNT];
+    UINT TXSize[DRIVER_DEFAULT_TX_BUFFER_COUNT];
     INT TXCurrent;  /* Current buffer beeing transmitted. -1 means none */
 
     /* Head of transmit queue */

Modified: trunk/reactos/include/ddk/ndis.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ndis.h?rev=25563&r1=25562&r2=25563&view=diff
==============================================================================
--- trunk/reactos/include/ddk/ndis.h (original)
+++ trunk/reactos/include/ddk/ndis.h Sun Jan 21 21:49:10 2007
@@ -2022,48 +2022,52 @@
  *   OUT PNDIS_BUFFER  *FirstBuffer  OPTIONAL,
  *   OUT PUINT  TotalPacketLength  OPTIONAL);
  */
-#define NdisQueryPacket(Packet,                                           \
-                        PhysicalBufferCount,                              \
-                        BufferCount,                                      \
-                        FirstBuffer,                                      \
-                        TotalPacketLength)                                \
-{                                                                         \
-  if (FirstBuffer)                                                        \
-    *((PNDIS_BUFFER*)FirstBuffer) = (Packet)->Private.Head;               \
-  if ((TotalPacketLength) || (BufferCount) || (PhysicalBufferCount))      \
-  {                                                                       \
-    if (!(Packet)->Private.ValidCounts) {                                 \
-      UINT _Offset;                                                       \
-      UINT _PacketLength;                                                 \
-      PNDIS_BUFFER _NdisBuffer;                                           \
-      UINT _PhysicalBufferCount = 0;                                      \
-      UINT _TotalPacketLength   = 0;                                      \
-      UINT _Count               = 0;                                      \
-                                                                          \
-      for (_NdisBuffer = (Packet)->Private.Head;                          \
-        _NdisBuffer != (PNDIS_BUFFER)NULL;                                \
-        _NdisBuffer = _NdisBuffer->Next)                                  \
-      {                                                                   \
-        _PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(_NdisBuffer);   \
-        NdisQueryBufferOffset(_NdisBuffer, &_Offset, &_PacketLength);     \
-        _TotalPacketLength += _PacketLength;                              \
-        _Count++;                                                         \
-      }                                                                   \
-      (Packet)->Private.PhysicalCount = _PhysicalBufferCount;             \
-      (Packet)->Private.TotalLength   = _TotalPacketLength;               \
-      (Packet)->Private.Count         = _Count;                           \
-      (Packet)->Private.ValidCounts   = TRUE;                             \
-	}                                                                       \
-                                                                          \
-  if (PhysicalBufferCount)                                                \
-      *((PUINT)PhysicalBufferCount) = (Packet)->Private.PhysicalCount;    \
-                                                                          \
-  if (BufferCount)                                                        \
-      *((PUINT)BufferCount) = (Packet)->Private.Count;                    \
-                                                                          \
-  if (TotalPacketLength)                                                  \
-      *((PUINT)TotalPacketLength) = (Packet)->Private.TotalLength;        \
-  } \
+static __inline
+VOID
+NdisQueryPacket(
+    IN PNDIS_PACKET  Packet,
+    OUT PUINT  PhysicalBufferCount  OPTIONAL,
+    OUT PUINT  BufferCount  OPTIONAL,
+    OUT PNDIS_BUFFER  *FirstBuffer  OPTIONAL,
+    OUT PUINT  TotalPacketLength  OPTIONAL)
+{
+    if (FirstBuffer)
+        *((PNDIS_BUFFER*)FirstBuffer) = Packet->Private.Head;
+    if (TotalPacketLength || BufferCount || PhysicalBufferCount)
+    {
+        if (!Packet->Private.ValidCounts)
+        {
+            UINT Offset;
+            UINT PacketLength;
+            PNDIS_BUFFER NdisBuffer;
+            UINT PhysicalBufferCount = 0;
+            UINT TotalPacketLength = 0;
+            UINT Count = 0;
+
+            for (NdisBuffer = Packet->Private.Head;
+                 NdisBuffer != (PNDIS_BUFFER)NULL;
+                 NdisBuffer = NdisBuffer->Next)
+            {
+                PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(NdisBuffer);
+                NdisQueryBufferOffset(NdisBuffer, &Offset, &PacketLength);
+                TotalPacketLength += PacketLength;
+                Count++;
+            }
+            Packet->Private.PhysicalCount = PhysicalBufferCount;
+            Packet->Private.TotalLength = TotalPacketLength;
+            Packet->Private.Count = Count;
+            Packet->Private.ValidCounts = TRUE;
+        }
+
+        if (PhysicalBufferCount)
+            *((PUINT)PhysicalBufferCount) = Packet->Private.PhysicalCount;
+
+        if (BufferCount)
+            *((PUINT)BufferCount) = Packet->Private.Count;
+
+        if (TotalPacketLength)
+            *((PUINT)TotalPacketLength) = Packet->Private.TotalLength;
+    } 
 }
 
 /*




More information about the Ros-diffs mailing list