Convert NdisQueryPacket to an inline function (The DDK also defines it as an inline function). Should fix some warnings with GCC4.2

svn path=/trunk/; revision=25563
This commit is contained in:
Thomas Bluemel 2007-01-21 18:49:10 +00:00
parent 603823ffb8
commit a8897783d7
2 changed files with 47 additions and 43 deletions

View file

@ -155,7 +155,7 @@ typedef struct _NIC_ADAPTER
UINT TXFree; /* Number of free transmit buffers */ UINT TXFree; /* Number of free transmit buffers */
UINT TXNext; /* Next buffer to use */ UINT TXNext; /* Next buffer to use */
/* Length of packet. 0 means buffer is unused */ /* 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 */ INT TXCurrent; /* Current buffer beeing transmitted. -1 means none */
/* Head of transmit queue */ /* Head of transmit queue */

View file

@ -2022,48 +2022,52 @@ NdisQueryBufferOffset(
* OUT PNDIS_BUFFER *FirstBuffer OPTIONAL, * OUT PNDIS_BUFFER *FirstBuffer OPTIONAL,
* OUT PUINT TotalPacketLength OPTIONAL); * OUT PUINT TotalPacketLength OPTIONAL);
*/ */
#define NdisQueryPacket(Packet, \ static __inline
PhysicalBufferCount, \ VOID
BufferCount, \ NdisQueryPacket(
FirstBuffer, \ IN PNDIS_PACKET Packet,
TotalPacketLength) \ OUT PUINT PhysicalBufferCount OPTIONAL,
{ \ OUT PUINT BufferCount OPTIONAL,
if (FirstBuffer) \ OUT PNDIS_BUFFER *FirstBuffer OPTIONAL,
*((PNDIS_BUFFER*)FirstBuffer) = (Packet)->Private.Head; \ OUT PUINT TotalPacketLength OPTIONAL)
if ((TotalPacketLength) || (BufferCount) || (PhysicalBufferCount)) \ {
{ \ if (FirstBuffer)
if (!(Packet)->Private.ValidCounts) { \ *((PNDIS_BUFFER*)FirstBuffer) = Packet->Private.Head;
UINT _Offset; \ if (TotalPacketLength || BufferCount || PhysicalBufferCount)
UINT _PacketLength; \ {
PNDIS_BUFFER _NdisBuffer; \ if (!Packet->Private.ValidCounts)
UINT _PhysicalBufferCount = 0; \ {
UINT _TotalPacketLength = 0; \ UINT Offset;
UINT _Count = 0; \ UINT PacketLength;
\ PNDIS_BUFFER NdisBuffer;
for (_NdisBuffer = (Packet)->Private.Head; \ UINT PhysicalBufferCount = 0;
_NdisBuffer != (PNDIS_BUFFER)NULL; \ UINT TotalPacketLength = 0;
_NdisBuffer = _NdisBuffer->Next) \ UINT Count = 0;
{ \
_PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(_NdisBuffer); \ for (NdisBuffer = Packet->Private.Head;
NdisQueryBufferOffset(_NdisBuffer, &_Offset, &_PacketLength); \ NdisBuffer != (PNDIS_BUFFER)NULL;
_TotalPacketLength += _PacketLength; \ NdisBuffer = NdisBuffer->Next)
_Count++; \ {
} \ PhysicalBufferCount += NDIS_BUFFER_TO_SPAN_PAGES(NdisBuffer);
(Packet)->Private.PhysicalCount = _PhysicalBufferCount; \ NdisQueryBufferOffset(NdisBuffer, &Offset, &PacketLength);
(Packet)->Private.TotalLength = _TotalPacketLength; \ TotalPacketLength += PacketLength;
(Packet)->Private.Count = _Count; \ Count++;
(Packet)->Private.ValidCounts = TRUE; \ }
} \ Packet->Private.PhysicalCount = PhysicalBufferCount;
\ Packet->Private.TotalLength = TotalPacketLength;
if (PhysicalBufferCount) \ Packet->Private.Count = Count;
*((PUINT)PhysicalBufferCount) = (Packet)->Private.PhysicalCount; \ Packet->Private.ValidCounts = TRUE;
\ }
if (BufferCount) \
*((PUINT)BufferCount) = (Packet)->Private.Count; \ if (PhysicalBufferCount)
\ *((PUINT)PhysicalBufferCount) = Packet->Private.PhysicalCount;
if (TotalPacketLength) \
*((PUINT)TotalPacketLength) = (Packet)->Private.TotalLength; \ if (BufferCount)
} \ *((PUINT)BufferCount) = Packet->Private.Count;
if (TotalPacketLength)
*((PUINT)TotalPacketLength) = Packet->Private.TotalLength;
}
} }
/* /*