23 PDC_TBD Tbd, NextTbd, FirstTbd, LastTbd;
27 Tbd = Adapter->CurrentTbd;
29 for (
i = 0;
i <
SgList->NumberOfElements; ++
i)
71 FirstTbd = Adapter->CurrentTbd;
72 Adapter->CurrentTbd = NextTbd;
91 UINT CurrentLength, PacketLength;
163 SgList->Elements[0].Length = PacketLength;
164 SgList->NumberOfElements = 1;
169 Tcb->
Buffer = CoalesceBuffer;
174 SlotsUsed = (
SgList->NumberOfElements + 1) / 2;
291 NextEntry = NextEntry->
Flink;
static ACPI_BUFFER CurrentBuffer
#define DC_FRAGMENTATION_THRESHOLD
struct _DC21X4_ADAPTER * PDC21X4_ADAPTER
struct _DC_COALESCE_BUFFER * PDC_COALESCE_BUFFER
#define DC_WRITE(Adapter, Register, Value)
#define DC_TBD_STATUS_OWNED
#define DC_TBD_CONTROL_REQUEST_INTERRUPT
#define DC_TX_POLL_DOORBELL
#define DC_TBD_CONTROL_LENGTH_2_SHIFT
#define DC_TBD_CONTROL_FIRST_FRAGMENT
#define DC_TBD_CONTROL_END_OF_RING
#define DC_TBD_CONTROL_LAST_FRAGMENT
static VOID DcTransmitPacket(_In_ PDC21X4_ADAPTER Adapter, _In_ PDC_TCB Tcb, _In_ PSCATTER_GATHER_LIST SgList)
VOID NTAPI DcCancelSendPackets(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ PVOID CancelId)
static BOOLEAN DcCopyPacket(_In_ PDC21X4_ADAPTER Adapter, _In_ PNDIS_PACKET Packet, _In_ PDC_COALESCE_BUFFER Buffer)
static NDIS_STATUS DcSendPacket(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ PNDIS_PACKET Packet)
VOID DcProcessPendingPackets(_In_ PDC21X4_ADAPTER Adapter)
VOID NTAPI DcSendPackets(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ PPNDIS_PACKET PacketArray, _In_ UINT NumberOfPackets)
#define DC_WRITE_BARRIER()
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(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 NdisReleaseSpinLock(_SpinLock)
#define NdisGetNextBuffer(CurrentBuffer, NextBuffer)
#define NDIS_STATUS_PENDING
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
#define NdisQueryPacketLength(_Packet, _TotalPacketLength)
#define NDIS_PER_PACKET_INFO_FROM_PACKET(Packet, InfoType)
#define NDIS_STATUS_REQUEST_ABORTED
_In_ PPNDIS_PACKET _In_ UINT NumberOfPackets
#define NdisQueryBufferSafe(_Buffer, _VirtualAddress, _Length, _Priority)
_In_ PPNDIS_PACKET PacketArray
#define NdisGetFirstBufferFromPacketSafe(_Packet, _FirstBuffer, _FirstBufferVA, _FirstBufferLength, _TotalBufferLength, _Priority)
@ ScatterGatherListPacketInfo
#define NDIS_STATUS_NOT_ACCEPTED
#define NDIS_GET_PACKET_CANCEL_ID(Packet)
#define NdisMSendComplete(MiniportAdapterHandle, Packet, Status)
#define NdisAcquireSpinLock(_SpinLock)
#define NdisMoveMemory(Destination, Source, Length)
#define NDIS_STATUS_RESOURCES
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define DC_PACKET_FROM_LIST_ENTRY(ListEntry)
FORCEINLINE PDC_TBD DC_NEXT_TBD(_In_ PDC21X4_ADAPTER Adapter, _In_ PDC_TBD Tbd)
FORCEINLINE PDC_TCB DC_NEXT_TCB(_In_ PDC21X4_ADAPTER Adapter, _In_ PDC_TCB Tcb)
#define DC_LIST_ENTRY_FROM_PACKET(Packet)
base of all file and directory entries
SINGLE_LIST_ENTRY SendBufferList
NDIS_HANDLE AdapterHandle
DECLSPEC_CACHEALIGN NDIS_SPIN_LOCK SendLock
SCATTER_GATHER_LIST LocalSgList
SINGLE_LIST_ENTRY ListEntry
PDC_COALESCE_BUFFER Buffer
struct _LIST_ENTRY * Flink
struct _SINGLE_LIST_ENTRY * Next
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION _In_ PSCATTER_GATHER_LIST SgList
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)