23 ULONG TcbProcessed = 0;
25 while (Tcb != Adapter->Send.CurrentTcb)
38 ++Adapter->Statistics.TransmitErrors;
41 ++Adapter->Statistics.TransmitUnderrunErrors;
43 ++Adapter->Statistics.TransmitLateCollisions;
45 ++Adapter->Statistics.TransmitLostCarrierSense;
48 ++Adapter->Statistics.TransmitExcessiveCollisions;
58 ++Adapter->Statistics.TransmitOk;
62 ++Adapter->Statistics.TransmitDeferred;
65 ++Adapter->Statistics.TransmitZeroRetry;
67 ++Adapter->Statistics.TransmitOneRetry;
79 Adapter->Send.LastTcb = Tcb;
90 ULONG TcbProcessed = 0;
92 while (Tcb != Adapter->Send.CurrentTcb)
123 Adapter->Send.LastTcb = Tcb;
134 ULONG TcbProcessed = 0;
136 while (Tcb != Adapter->Send.CurrentTcb)
148 --Adapter->Send.PacketsCount;
150 DeferredTcb = Adapter->Send.DeferredTcb;
156 ++Adapter->Send.PacketsCount;
158 Adapter->Send.DeferredTcb =
NV_NEXT_TCB(Adapter, DeferredTcb);
159 if (Adapter->Send.DeferredTcb == Adapter->Send.CurrentTcb)
161 Adapter->Send.DeferredTcb =
NULL;
191 Adapter->Send.LastTcb = Tcb;
237 NvRbd.
x64 = &Adapter->Receive.NvRbd.x64[Adapter->CurrentRx];
242 NvRbd.
x32 = &Adapter->Receive.NvRbd.x32[Adapter->CurrentRx];
252 if (!Adapter->PacketFilter)
306 ++Adapter->Statistics.ReceiveErrors;
309 ++Adapter->Statistics.ReceiveNoBuffers;
311 ++Adapter->Statistics.ReceiveAlignmentErrors;
313 ++Adapter->Statistics.ReceiveOverrunErrors;
315 ++Adapter->Statistics.ReceiveCrcErrors;
320 ++Adapter->Statistics.ReceiveOk;
333 IndicateComplete =
TRUE;
346 if (IndicateComplete)
363 Adapter->InterruptIdleCount = 0;
372 ++Adapter->InterruptIdleCount;
402 if (Adapter->Connected != Connected)
404 Adapter->Connected = Connected;
454 ULONG RxProcessed, TotalTxProcessed = 0, TotalRxProcessed = 0;
486 TotalRxProcessed += RxProcessed;
524 ULONG InterruptStatus;
540 *InterruptRecognized =
TRUE;
541 *QueueMiniportHandleInterrupt =
TRUE;
546 *InterruptRecognized =
FALSE;
547 *QueueMiniportHandleInterrupt =
FALSE;
VOID NvNetBackoffReseed(_In_ PNVNET_ADAPTER Adapter)
VOID NvNetBackoffReseedEx(_In_ PNVNET_ADAPTER Adapter)
#define NDIS_DbgPrint(_t_, _x_)
VOID NTAPI MiniportISR(OUT PBOOLEAN InterruptRecognized, OUT PBOOLEAN QueueMiniportHandleInterrupt, IN NDIS_HANDLE MiniportAdapterContext)
VOID NTAPI MiniportHandleInterrupt(IN NDIS_HANDLE MiniportAdapterContext)
static VOID ChangeInterruptMode(_In_ PNVNET_ADAPTER Adapter, _In_ ULONG Workload)
static VOID HandleLinkStateChange(_In_ PNVNET_ADAPTER Adapter)
static VOID HandleRecoverableError(_In_ PNVNET_ADAPTER Adapter)
static ULONG ProcessReceiveDescriptors(_In_ PNVNET_ADAPTER Adapter, _In_ ULONG TotalRxProcessed)
static BOOLEAN HandleLengthError(_In_ PVOID EthHeader, _Inout_ PUSHORT Length)
#define InsertTailList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define RemoveHeadList(ListHead)
#define InitializeListHead(ListHead)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define NDIS_STATUS_MEDIA_CONNECT
#define NdisMEthIndicateReceiveComplete(MiniportAdapterHandle)
#define NdisMIndicateStatusComplete(MiniportAdapterHandle)
#define NdisMEthIndicateReceive(MiniportAdapterHandle, MiniportReceiveContext, HeaderBuffer, HeaderBufferSize, LookaheadBuffer, LookaheadBufferSize, PacketSize)
#define NdisDprReleaseSpinLock(_SpinLock)
#define NDIS_STATUS_MEDIA_DISCONNECT
#define NDIS_STATUS_SUCCESS
#define NdisDprAcquireSpinLock(_SpinLock)
#define NdisMSendComplete(MiniportAdapterHandle, Packet, Status)
#define NdisMIndicateStatus(MiniportAdapterHandle, GeneralStatus, StatusBuffer, StatusBufferSize)
VOID NvNetStartReceiver(_In_ PNVNET_ADAPTER Adapter)
VOID NvNetStopReceiver(_In_ PNVNET_ADAPTER Adapter)
VOID NvNetToggleClockPowerGating(_In_ PNVNET_ADAPTER Adapter, _In_ BOOLEAN Gate)
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define NVREG_IRQ_RECOVER_ERROR
#define NV_TX_CARRIERLOST
#define NVREG_MIISTAT_LINKCHANGE
#define NV_RX_MISSEDFRAME
#define NV_TX_LATECOLLISION
#define DEV_HAS_LARGEDESC
#define NV_TX2_RETRYERROR
#define NV_RX2_ERROR_MASK
#define NV_RX_DESCRIPTORVALID
#define NV_RX2_FRAMINGERR
#define DEV_HAS_GEAR_MODE
#define NVREG_TXRXCTL_KICK
#define NV_RX2_DESCRIPTORVALID
#define NVREG_IRQMASK_CPU
#define NVREG_IRQMASK_THROUGHPUT
#define NV_TX2_RETRYCOUNT_MASK
#define NVREG_IRQ_RX_NOBUF
#define NV_TX_RETRYCOUNT_MASK
#define NVNET_RECEIVE_DESCRIPTORS
#define NVNET_RECEIVE_PROCESSING_LIMIT
NVNET_PROCESS_TRANSMIT ProcessTransmitDescriptorsLegacy
NVNET_PROCESS_TRANSMIT ProcessTransmitDescriptors64
@ NV_OPTIMIZATION_MODE_DYNAMIC
#define NvNetDisableInterrupts(Adapter)
#define NVNET_IM_THRESHOLD
#define NVNET_RECEIVE_BUFFER_SIZE
FORCEINLINE VOID NV_RELEASE_TCB(_In_ PNVNET_ADAPTER Adapter, _In_ PNVNET_TCB Tcb)
BOOLEAN NvNetUpdateLinkSpeed(_In_ PNVNET_ADAPTER Adapter)
NVNET_PROCESS_TRANSMIT ProcessTransmitDescriptors32
#define NvNetApplyInterruptMask(Adapter)
struct _NVNET_ADAPTER * PNVNET_ADAPTER
#define PACKET_ENTRY(Packet)
#define NVNET_IM_MAX_IDLE
#define NV_SEND_ERRATA_PRESENT
FORCEINLINE VOID NV_WRITE(_In_ PNVNET_ADAPTER Adapter, _In_ NVNET_REGISTER Register, _In_ ULONG Value)
FORCEINLINE ULONG NV_READ(_In_ PNVNET_ADAPTER Adapter, _In_ NVNET_REGISTER Register)
FORCEINLINE PNVNET_TCB NV_NEXT_TCB(_In_ PNVNET_ADAPTER Adapter, _In_ PNVNET_TCB Tcb)
base of all file and directory entries
NVNET_OPTIMIZATION_MODE OptimizationMode
NDIS_HANDLE AdapterHandle
NVNET_STATISTICS Statistics
PNVNET_PROCESS_TRANSMIT ProcessTransmit
ULONG ReceiveIrqNoBuffers
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ ULONG Flags