|
ReactOS 0.4.17-dev-1281-g065abb3
|
#include <ctrlxfer.h>
Static Public Member Functions | |
| static NTSTATUS | Initialize (_In_ XhciTransferRing *Ring) |
| static VOID | Enable (_In_ XhciTransferRing *Ring) |
| static VOID | Disable (_In_ XhciTransferRing *Ring) |
| static NTSTATUS | EnableForwardProgress (_In_ XhciTransferRing *Ring, _In_ ULONG MaxTransferSize) |
| static VOID | Cleanup (_In_ XhciTransferRing *Ring) |
| static VOID | ResumeRingFill (_In_ XhciTransferRing *Ring) |
| static VOID | SuspendRingFill (_In_ XhciTransferRing *Ring) |
| static VOID | AllowReclaimOnCancel (_In_ XhciTransferRing *Ring) |
| static VOID | ConsumePendingEvents (_In_ XhciTransferRing *Ring) |
| static VOID | RecoverTransfers (_In_ XhciTransferRing *Ring) |
| static BOOLEAN | DoorbellRungSinceFill (_In_ const XhciTransferRing *Ring) |
| static BOOLEAN | HasQueuedWork (_In_ const XhciTransferRing *Ring) |
| static BOOLEAN | OnTransferEvent (_In_opt_ XhciTransferRing *Ring, _In_ XhciController *Controller, _In_ const XHCI_TRB *Event) |
Static Public Attributes | |
| static EVT_WDF_IO_QUEUE_IO_DEFAULT | EvtIoDefault |
| static EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE | EvtIoCanceledOnQueue |
| static EVT_WDF_DPC | EvtCompletionDpc |
Private Member Functions | |
| struct | DECLSPEC_ALIGN (8) EventTag |
| VOID | InitTransfer (_Out_ XhciControlTransfer *Transfer, _In_ WDFREQUEST Request) |
| NTSTATUS | PrepareTransfer (_Inout_ XhciControlTransfer *Transfer) |
| VOID | BuildControlTd (_Inout_ XhciControlTransfer *Transfer) |
| VOID | WriteTd (_Inout_ XhciControlTransfer *Transfer) |
| VOID | ReleaseResources (_Inout_ XhciControlTransfer *Transfer) |
| _Requires_lock_held_ (m_Ring->m_Lock) NTSTATUS CompleteHeld() | |
| _Requires_lock_held_ (m_Ring->m_Lock) VOID Finish(_Inout_ XhciControlTransfer *Transfer) | |
| VOID | Abort (_Inout_ XhciControlTransfer *Transfer, _In_ BOOLEAN FromTimer) |
| VOID | QueueCompletion () |
| _Requires_lock_held_ (m_Ring->m_Lock) VOID CopyIn(_Inout_ XhciControlTransfer *Transfer | |
| BOOLEAN | OnEventDataEvent (_In_ EventTag *Tag, _In_ const XHCI_TRB *Event) |
| BOOLEAN | OnTrbEvent (_In_ const XHCI_TRB *Event) |
| BOOLEAN | LocateTrb (_In_ const XhciControlTransfer *Transfer, _In_ const XHCI_TRB *Event, _Out_ PULONG Bytes, _Out_ PULONG SkippedTds) const |
Static Private Member Functions | |
| static EventTag * | TagFromEvent (_In_opt_ XhciTransferRing *Ring, _In_ const XHCI_TRB *Event) |
Static Private Attributes | |
| static const ULONG | TagCount = 4 |
| static EVT_WDF_TIMER | EvtTimeout |
| static EVT_WDF_DPC | EvtCanceledOnQueueDpc |
| static EVT_WDF_REQUEST_CANCEL | EvtRequestCancel |
| static DRIVER_LIST_CONTROL | EvtDmaReady |
Control ring state and the entry points the transfer ring calls for it.
Definition at line 15 of file ctrlxfer.h.
|
private |
|
private |
|
private |
|
private |
Shared by the cancel callback and the timeout timer; both act like a cancel.
Definition at line 984 of file ctrlxfer.cpp.
|
static |
Definition at line 1221 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::AllowReclaimOnCancel().
|
private |
Definition at line 530 of file ctrlxfer.cpp.
Referenced by ResumeRingFill().
|
static |
Definition at line 286 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::Cleanup().
|
static |
Definition at line 1240 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::ConsumePendingEvents().
|
inlineprivate |
What an Event Data TRB points at. Tags live in the ring, not in the request, so a late or duplicate event never reads freed request memory.
Definition at line 63 of file ctrlxfer.h.
|
static |
Definition at line 237 of file ctrlxfer.cpp.
|
static |
Definition at line 1278 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::DoorbellRungSinceFill().
|
static |
Definition at line 230 of file ctrlxfer.cpp.
Referenced by _IRQL_requires_max_().
|
static |
Definition at line 260 of file ctrlxfer.cpp.
|
static |
Definition at line 1295 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::HasQueuedWork().
|
static |
Definition at line 178 of file ctrlxfer.cpp.
Referenced by _IRQL_requires_().
|
private |
Definition at line 306 of file ctrlxfer.cpp.
|
private |
Definition at line 1484 of file ctrlxfer.cpp.
Referenced by OnTrbEvent().
|
private |
Definition at line 1375 of file ctrlxfer.cpp.
Referenced by OnTransferEvent().
|
static |
The ring is always known; the NULL ring form is kept only for callers without one.
Definition at line 1338 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::OnTransferEvent().
Definition at line 1572 of file ctrlxfer.cpp.
Referenced by OnTransferEvent().
|
private |
Definition at line 425 of file ctrlxfer.cpp.
Referenced by BuildControlTd().
|
private |
Definition at line 876 of file ctrlxfer.cpp.
Referenced by Abort(), AllowReclaimOnCancel(), RecoverTransfers(), and ResumeRingFill().
|
static |
Definition at line 1258 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::RecoverTransfers().
|
private |
Definition at line 388 of file ctrlxfer.cpp.
Referenced by PrepareTransfer().
|
static |
Definition at line 1145 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::ResumeRingFill().
|
static |
Definition at line 1194 of file ctrlxfer.cpp.
Referenced by XhciTransferRing::SuspendRingFill().
|
staticprivate |
The tag an Event Data value names, or NULL when it is not a live tag (of Ring, when given).
Definition at line 1304 of file ctrlxfer.cpp.
Referenced by OnTransferEvent().
|
private |
Definition at line 624 of file ctrlxfer.cpp.
Referenced by BuildControlTd().
Definition at line 120 of file ctrlxfer.h.
Referenced by LocateTrb(), OnEventDataEvent(), OnTrbEvent(), and PrepareTransfer().
|
staticprivate |
Definition at line 84 of file ctrlxfer.h.
Referenced by Initialize().
|
static |
Definition at line 37 of file ctrlxfer.h.
Referenced by _IRQL_requires_().
Definition at line 86 of file ctrlxfer.h.
Referenced by BuildControlTd().
|
static |
Definition at line 36 of file ctrlxfer.h.
Referenced by _IRQL_requires_().
|
static |
Definition at line 35 of file ctrlxfer.h.
Referenced by _IRQL_requires_().
|
staticprivate |
Definition at line 85 of file ctrlxfer.h.
|
staticprivate |
Definition at line 83 of file ctrlxfer.h.
Referenced by Initialize().
|
private |
Definition at line 151 of file ctrlxfer.h.
Referenced by ConsumePendingEvents(), OnEventDataEvent(), and ResumeRingFill().
|
private |
Definition at line 153 of file ctrlxfer.h.
|
private |
Definition at line 143 of file ctrlxfer.h.
Referenced by Initialize().
|
private |
Definition at line 144 of file ctrlxfer.h.
Referenced by Initialize().
|
private |
The one request on this ring, or NULL
Definition at line 142 of file ctrlxfer.h.
Referenced by AllowReclaimOnCancel(), BuildControlTd(), Cleanup(), Disable(), OnEventDataEvent(), OnTrbEvent(), RecoverTransfers(), and ResumeRingFill().
|
private |
Definition at line 149 of file ctrlxfer.h.
Referenced by EnableForwardProgress(), Initialize(), and PrepareTransfer().
|
private |
Definition at line 146 of file ctrlxfer.h.
Referenced by WriteTd().
|
private |
Events still expected after a stop
Definition at line 147 of file ctrlxfer.h.
Referenced by ConsumePendingEvents(), OnEventDataEvent(), OnTrbEvent(), and ResumeRingFill().
|
private |
Definition at line 150 of file ctrlxfer.h.
Referenced by Abort(), RecoverTransfers(), and ResumeRingFill().
|
private |
Definition at line 152 of file ctrlxfer.h.
Referenced by Abort(), AllowReclaimOnCancel(), and ResumeRingFill().
Definition at line 148 of file ctrlxfer.h.
Referenced by PrepareTransfer(), and ReleaseResources().
|
private |
Definition at line 141 of file ctrlxfer.h.
Referenced by Abort(), BuildControlTd(), Initialize(), InitTransfer(), LocateTrb(), OnEventDataEvent(), OnTrbEvent(), PrepareTransfer(), QueueCompletion(), ReleaseResources(), and WriteTd().
|
private |
Definition at line 140 of file ctrlxfer.h.
Referenced by Cleanup(), Initialize(), TagFromEvent(), and WriteTd().
|
private |
Definition at line 145 of file ctrlxfer.h.
Referenced by BuildControlTd(), and Initialize().
Definition at line 81 of file ctrlxfer.h.
Referenced by Cleanup(), Initialize(), TagFromEvent(), and WriteTd().