|
ReactOS 0.4.17-dev-1281-g065abb3
|
#include <isoxfer.h>

Static Public Member Functions | |
| static NTSTATUS | Initialize (_In_ XhciTransferRing *Ring) |
| static VOID | Enable (_In_ XhciTransferRing *Ring) |
| static VOID | Disable (_In_ XhciTransferRing *Ring) |
| static VOID | ReleaseParkedMapping (_In_ XhciTransferRing *Ring) |
| static VOID | Cleanup (_In_ XhciTransferRing *Ring) |
| static VOID | ResumeRingFill (_In_ XhciTransferRing *Ring) |
| static VOID | SuspendRingFill (_In_ XhciTransferRing *Ring) |
| static VOID | OnClientPipeReset (_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_ XhciTransferRing *Ring, _In_ const XHCI_TRB *Event) |
| static VOID | SegmentsArrived (_In_ XhciTransferRing *Ring, _In_ NTSTATUS Status) |
Static Public Attributes | |
| static EVT_WDF_IO_QUEUE_STATE | ReadyNotification |
| static EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE | EvtIoCanceledOnQueue |
| static EVT_WDF_DPC | EvtCompletionDpc |
Private Types | |
| enum class | Outcome : ULONG { Ready , Completed , WaitSegments , WaitDma , Gap , Late , Failed } |
Static Private Attributes | |
| static EVT_WDF_REQUEST_CANCEL | EvtRequestCancel |
| static EVT_WDF_TIMER | EvtWatchdog |
| static DRIVER_LIST_CONTROL | DmaCallback |
Isochronous ring state and the entry points the transfer ring module calls.
|
strongprivate |
|
staticprivate |
Referenced by NextTdSlot().
|
staticprivate |
Definition at line 1465 of file isoxfer.cpp.
Referenced by PrimeStage().
|
static |
Definition at line 702 of file isoxfer.cpp.
Referenced by XhciTransferRing::AllowReclaimOnCancel().
|
staticprivate |
Definition at line 908 of file isoxfer.cpp.
Referenced by FillLoop().
|
staticprivate |
Definition at line 824 of file isoxfer.cpp.
Referenced by KickAfterStage(), OnRingStarved(), ResumeRingFill(), and SegmentsArrived().
|
static |
Definition at line 518 of file isoxfer.cpp.
Referenced by XhciTransferRing::Cleanup().
|
staticprivate |
Referenced by CompleteBatch(), CompleteTd(), FailStage(), FinishExpiredIsoch(), and NextTdSlot().
|
staticprivate |
Definition at line 2477 of file isoxfer.cpp.
|
staticprivate |
Referenced by TakeRequest().
|
staticprivate |
Accounts one TD event; closing the stage's last TD frees the stage.
Definition at line 2091 of file isoxfer.cpp.
Referenced by Ed0Event(), Ed1Event(), FinishLostStages(), and RetireExpiredStages().
|
static |
Definition at line 726 of file isoxfer.cpp.
Referenced by XhciTransferRing::ConsumePendingEvents().
|
static |
Definition at line 479 of file isoxfer.cpp.
|
static |
Definition at line 750 of file isoxfer.cpp.
Referenced by XhciTransferRing::DoorbellRungSinceFill().
|
staticprivate |
Definition at line 2661 of file isoxfer.cpp.
Referenced by OnTransferEvent().
|
staticprivate |
Definition at line 2564 of file isoxfer.cpp.
Referenced by OnTransferEvent().
|
static |
Definition at line 468 of file isoxfer.cpp.
Referenced by _IRQL_requires_max_().
|
staticprivate |
Definition at line 1675 of file isoxfer.cpp.
Referenced by FillLoop().
|
staticprivate |
Definition at line 1601 of file isoxfer.cpp.
Referenced by PrimeStage().
|
staticprivate |
Drops a stage that cannot be mapped; completes its request when nothing of it is on the ring.
Definition at line 1643 of file isoxfer.cpp.
Referenced by EncodeStage(), PrimeStage(), and WriteStage().
|
staticprivate |
Definition at line 857 of file isoxfer.cpp.
Referenced by BuildTdsFromQueue().
|
staticprivate |
Fills in the URB from the transfer record and frees what intake built.
Definition at line 2312 of file isoxfer.cpp.
|
staticprivate |
Referenced by Ed0Event().
|
staticprivate |
Completes every active transfer older than Newest; their events will not come.
Definition at line 2188 of file isoxfer.cpp.
Referenced by Ed0Event(), and Ed1Event().
|
staticprivate |
Closes in flight stages as missed once every frame they were scheduled for has passed.
Definition at line 2960 of file isoxfer.cpp.
|
staticprivate |
Marks the unmapped frames that are already due as late.
Definition at line 1253 of file isoxfer.cpp.
Referenced by NextTdSlot(), and TakeRequest().
|
staticprivate |
Referenced by CompleteTd(), FailStage(), PrimeStage(), ReleaseAllStages(), and WriteStage().
|
static |
Definition at line 757 of file isoxfer.cpp.
Referenced by XhciTransferRing::HasQueuedWork().
|
static |
Definition at line 422 of file isoxfer.cpp.
Referenced by _IRQL_requires_().
|
staticprivate |
Ends the current segment with a Link TRB into the stage's next reserved segment.
Definition at line 2056 of file isoxfer.cpp.
Referenced by LayoutStage().
|
staticprivate |
A stage left the ring: map more, or leave the ring empty wait once nothing is in flight.
Definition at line 931 of file isoxfer.cpp.
Referenced by CompleteTd().
|
staticprivate |
Lays the stage's TDs out on the ring. Without Commit it only counts how many TDs fit the current segment and the reserved ones, the last of them still able to end the stage.
Definition at line 1823 of file isoxfer.cpp.
Referenced by WriteStage().
|
staticprivate |
Definition at line 916 of file isoxfer.cpp.
Referenced by BuildTdsFromQueue(), KickAfterStage(), and OnRingStarved().
|
staticprivate |
Definition at line 966 of file isoxfer.cpp.
Referenced by FillLoop().
|
static |
Definition at line 691 of file isoxfer.cpp.
Referenced by XhciTransferRing::OnClientPipeReset().
|
staticprivate |
Definition at line 2924 of file isoxfer.cpp.
Referenced by Ed0Event().
|
static |
Definition at line 772 of file isoxfer.cpp.
Referenced by XhciTransferRing::OnTransferEvent().
|
staticprivate |
|
staticprivate |
Definition at line 1170 of file isoxfer.cpp.
Referenced by TakeRequest().
|
staticprivate |
Definition at line 948 of file isoxfer.cpp.
Referenced by PrimeStage().
|
staticprivate |
Definition at line 1393 of file isoxfer.cpp.
Referenced by FillLoop().
|
staticprivate |
Referenced by CompleteTd(), FailStage(), ReleaseAllStages(), and WriteStage().
|
static |
Definition at line 734 of file isoxfer.cpp.
Referenced by XhciTransferRing::RecoverTransfers().
|
staticprivate |
Returns the lists and frees every stage of a transfer nobody else can reach anymore.
Definition at line 2269 of file isoxfer.cpp.
Referenced by CompleteBatch(), and FinishExpiredIsoch().
|
static |
Lets a mapping pass parked on a segment wait go, so a disable never waits on it.
Definition at line 495 of file isoxfer.cpp.
Referenced by Disable().
|
static |
Definition at line 636 of file isoxfer.cpp.
Referenced by XhciTransferRing::ResumeRingFill().
|
staticprivate |
Closes the stages of Transfer older than Stage as missed.
Definition at line 2224 of file isoxfer.cpp.
Referenced by Ed0Event(), and Ed1Event().
|
staticprivate |
Definition at line 1189 of file isoxfer.cpp.
Referenced by TakeRequest().
|
static |
Common buffer callback for asynchronous segment growth.
Definition at line 785 of file isoxfer.cpp.
|
staticprivate |
Picks the last packet and byte count of a stage; FALSE when not even one frame fits.
Definition at line 1513 of file isoxfer.cpp.
Referenced by PrimeStage().
|
staticprivate |
Definition at line 1282 of file isoxfer.cpp.
Referenced by FailStage(), LayoutStage(), and NextTdSlot().
|
static |
Definition at line 661 of file isoxfer.cpp.
Referenced by XhciTransferRing::SuspendRingFill().
|
staticprivate |
Sets up a request taken from the queue; FALSE when it was completed instead.
Definition at line 1063 of file isoxfer.cpp.
Referenced by NextTdSlot().
|
staticprivate |
Every stage is back and every packet is mapped or skipped.
Definition at line 1382 of file isoxfer.cpp.
|
staticprivate |
Writes a mapped stage into the ring, or drops it when it is late or nothing fits.
Definition at line 1747 of file isoxfer.cpp.
Definition at line 155 of file isoxfer.h.
Referenced by EncodeStage().
Definition at line 103 of file isoxfer.h.
Referenced by _IRQL_requires_().
Definition at line 102 of file isoxfer.h.
Referenced by _IRQL_requires_().
Definition at line 154 of file isoxfer.h.
Referenced by Initialize().
|
private |
Definition at line 342 of file isoxfer.h.
Referenced by NextTdSlot(), PrimeStage(), and SegmentsArrived().
|
private |
Definition at line 359 of file isoxfer.h.
Referenced by Finalize().
|
private |
Definition at line 353 of file isoxfer.h.
Referenced by AllowReclaimOnCancel(), Initialize(), and RecoverTransfers().
|
private |
Definition at line 350 of file isoxfer.h.
Referenced by NextTdSlot().
|
private |
Mapping context only
Definition at line 335 of file isoxfer.h.
Referenced by LayoutStage(), and ScheduleStartFrame().
|
private |
Definition at line 358 of file isoxfer.h.
Referenced by Finalize().
Interlocked DMA callback handoff
Definition at line 347 of file isoxfer.h.
Referenced by EncodeStage().
Interlocked
Definition at line 345 of file isoxfer.h.
Referenced by BuildTdsFromQueue(), and FillLoop().
Interlocked
Definition at line 344 of file isoxfer.h.
Referenced by AllowReclaimOnCancel(), Ed0Event(), Ed1Event(), FinishLostStages(), LayoutStage(), OnRingStarved(), PrimeStage(), RecoverTransfers(), ResumeRingFill(), and WriteStage().
|
private |
Definition at line 334 of file isoxfer.h.
Referenced by ScheduleStartFrame().
|
private |
Definition at line 338 of file isoxfer.h.
Referenced by FinishLostStages(), LayoutStage(), OnRingStarved(), and PrimeStage().
Interlocked
Definition at line 348 of file isoxfer.h.
Referenced by EncodeStage(), and WriteStage().
|
private |
Definition at line 362 of file isoxfer.h.
Referenced by Ed0Event().
|
private |
Definition at line 343 of file isoxfer.h.
Referenced by TakeRequest().
|
private |
Definition at line 337 of file isoxfer.h.
Referenced by ScheduleStartFrame().
|
private |
Definition at line 339 of file isoxfer.h.
Referenced by Initialize(), LayoutStage(), PrimeStage(), ScheduleStartFrame(), and WriteStage().
|
private |
Definition at line 351 of file isoxfer.h.
Referenced by AllowReclaimOnCancel(), CompleteTd(), Ed1Event(), FinishExpiredIsoch(), FinishLostStages(), Initialize(), NextTdSlot(), RecoverTransfers(), and RetireExpiredStages().
|
private |
Definition at line 340 of file isoxfer.h.
Referenced by CompleteTd(), FinishLostStages(), LayoutStage(), NextTdSlot(), OnRingStarved(), PrimeStage(), ReleaseAllStages(), and ResumeRingFill().
|
private |
Definition at line 363 of file isoxfer.h.
Referenced by OnRingStarved().
Interlocked
Definition at line 346 of file isoxfer.h.
Referenced by BuildTdsFromQueue(), FillLoop(), and OnRingStarved().
Interlocked segment callback handoff
Definition at line 349 of file isoxfer.h.
Referenced by ParkOnSegments(), ReleaseParkedMapping(), and SegmentsArrived().
|
private |
Definition at line 361 of file isoxfer.h.
Referenced by Finalize().
|
private |
Definition at line 360 of file isoxfer.h.
Referenced by Finalize().
|
private |
Definition at line 357 of file isoxfer.h.
Referenced by Finalize().
|
private |
Definition at line 341 of file isoxfer.h.
Referenced by EstimateSegments(), and LayoutStage().
|
private |
Definition at line 352 of file isoxfer.h.
Referenced by Initialize().
|
private |
Definition at line 354 of file isoxfer.h.
Referenced by Disable(), and Initialize().
Definition at line 101 of file isoxfer.h.
Referenced by _IRQL_requires_().