|
ReactOS 0.4.17-dev-1281-g065abb3
|

Go to the source code of this file.
Classes | |
| struct | _XHCI_INTERRUPT_CONTEXT |
Macros | |
| #define | NDEBUG |
| #define | XHCI_SECONDARY_MAX 16 |
| #define | XHCI_SEGMENTS_DEFAULT 4 |
| #define | XHCI_SEGMENTS_RING_FULL 8 |
| #define | XHCI_SEGMENTS_LIMITED 2 |
| #define | XHCI_BUDGET_CHECK_EVENTS 64 |
| #define | XHCI_HANDBACK_EVENTS 128 |
| #define | XHCI_REASON_EVENT_RING_FULL 0x1011 |
| #define | XHCI_DRAIN_WAIT_MS 60000 |
Typedefs | |
| typedef XhciInterrupters::Interrupter | XHCI_INTERRUPTER |
| typedef XhciInterrupters::Interrupter * | PXHCI_INTERRUPTER |
| typedef struct _XHCI_INTERRUPT_CONTEXT | XHCI_INTERRUPT_CONTEXT |
| typedef struct _XHCI_INTERRUPT_CONTEXT * | PXHCI_INTERRUPT_CONTEXT |
| typedef ULONG(NTAPI * | PFN_XHCI_ACTIVE_COUNT) (_In_ USHORT GroupNumber) |
| typedef ULONG(NTAPI * | PFN_XHCI_INDEX_FROM_NUMBER) (_In_ PPROCESSOR_NUMBER Number) |
| typedef ULONG(NTAPI * | PFN_XHCI_CURRENT_NUMBER) (_Out_opt_ PPROCESSOR_NUMBER Number) |
| typedef NTSTATUS(NTAPI * | PFN_XHCI_DPC_WATCHDOG) (_Out_ PKDPC_WATCHDOG_INFORMATION Information) |
Variables | |
| static PFN_XHCI_ACTIVE_COUNT | XhciActiveCountRoutine |
| static PFN_XHCI_INDEX_FROM_NUMBER | XhciIndexFromNumberRoutine |
| static PFN_XHCI_CURRENT_NUMBER | XhciCurrentNumberRoutine |
| static PFN_XHCI_DPC_WATCHDOG | XhciDpcWatchdogRoutine |
| static EVT_WDF_INTERRUPT_ISR | XhciEvtInterruptIsr |
| static EVT_WDF_INTERRUPT_DPC | XhciEvtInterruptDpc |
| static EVT_WDF_INTERRUPT_ENABLE | XhciEvtInterruptEnable |
| static EVT_WDF_INTERRUPT_DISABLE | XhciEvtInterruptDisable |
| static EVT_WDF_WORKITEM | XhciEvtRequeueWorkItem |
| _Out_ PULONG | ListIndex = 0 |
| _Out_ PULONG _Out_ PULONG | Messages |
| PIO_RESOURCE_DESCRIPTOR | Descriptor |
| ULONG | Lists = WdfIoResourceRequirementsListGetCount(Requirements) |
| ULONG | Current |
| ULONG | Index = 0 |
| ULONG | Count |
| ULONG | Descriptors |
| BOOLEAN | MsiX |
| BOOLEAN | BestMsiX = FALSE |
| _In_ ULONG | Wanted |
| IO_RESOURCE_DESCRIPTOR | Trimmed |
| ULONG | Offered |
| ULONG | Claim |
| typedef ULONG(NTAPI * PFN_XHCI_CURRENT_NUMBER) (_Out_opt_ PPROCESSOR_NUMBER Number) |
| typedef NTSTATUS(NTAPI * PFN_XHCI_DPC_WATCHDOG) (_Out_ PKDPC_WATCHDOG_INFORMATION Information) |
| typedef ULONG(NTAPI * PFN_XHCI_INDEX_FROM_NUMBER) (_In_ PPROCESSOR_NUMBER Number) |
| _IRQL_requires_ | ( | PASSIVE_LEVEL | ) |
Sends a synchronous IOCTL to the specified device object.
Drops every MSI descriptor and keeps only lists that still offer a line interrupt.
Picks the list with the best MSI offer: MSI-X first, then the most messages.
Keeps message descriptors covering Wanted messages and removes the others.
Definition at line 51 of file intr.cpp.
| for | ( | ) |
Definition at line 739 of file intr.cpp.
| while | ( | ) |
Definition at line 789 of file intr.cpp.
Definition at line 67 of file intr.cpp.
Referenced by XhciInterrupters::AffinitizeResourceRequirements(), XhciInterrupters::BuildLookup(), and XhciInterrupters::SecondaryCountFor().
|
static |
Definition at line 366 of file intr.cpp.
Referenced by XhciEvtInterruptDpc().
Definition at line 108 of file intr.cpp.
Referenced by XhciInterrupters::TargetForCurrentProcessor().
|
static |
Definition at line 344 of file intr.cpp.
Referenced by XhciEvtInterruptDpc().
|
static |
Definition at line 434 of file intr.cpp.
Referenced by XhciEvtInterruptDpc().
|
static |
Remaining DPC budget check. Limits are computed on the first successful query.
Definition at line 313 of file intr.cpp.
Referenced by XhciEvtInterruptDpc().
|
static |
Definition at line 287 of file intr.cpp.
|
static |
Definition at line 563 of file intr.cpp.
|
static |
Definition at line 262 of file intr.cpp.
|
static |
Definition at line 234 of file intr.cpp.
Definition at line 542 of file intr.cpp.
|
static |
Definition at line 630 of file intr.cpp.
Referenced by XhciInterrupters::AffinitizeResourceRequirements(), for(), and while().
|
static |
Definition at line 642 of file intr.cpp.
Referenced by XhciInterrupters::Prepare().
Definition at line 79 of file intr.cpp.
Referenced by XhciInterrupters::BuildLookup().
|
static |
ERSTSZ, ERDP, then ERSTBA, which arms the event ring (xHCI 4.9.4).
Definition at line 206 of file intr.cpp.
Referenced by XhciInterrupters::D0Entry(), and XhciInterrupters::PostReset().
Definition at line 128 of file intr.cpp.
Referenced by XhciEvtInterruptDisable(), XhciEvtInterruptIsr(), and XhciUnmaskInterrupter().
|
static |
Hands the rest of the ring to a later DPC. EHB stays set, so no interrupt arrives meanwhile.
Definition at line 508 of file intr.cpp.
Referenced by XhciEvtInterruptDpc().
|
static |
Zeroes the event ring and puts the consumer back at the start (xHC halted).
Definition at line 181 of file intr.cpp.
Referenced by XhciInterrupters::D0Entry(), and XhciInterrupters::PostReset().
|
static |
Definition at line 391 of file intr.cpp.
Referenced by XhciDispatchEvent().
|
static |
Definition at line 217 of file intr.cpp.
Referenced by XhciInterrupters::PostReset(), and XhciEvtInterruptEnable().
Writes ERDP from the software dequeue position; ClearBusy also writes EHB to clear it.
Definition at line 161 of file intr.cpp.
Referenced by XhciEvtInterruptDpc(), and XhciProgramEventRing().
|
static |
Definition at line 138 of file intr.cpp.
Referenced by XhciInterrupters::PrepareOne(), XhciInterrupters::ReleaseOne(), XhciEvtInterruptDisable(), XhciEvtInterruptIsr(), XhciProgramEventRing(), and XhciUnmaskInterrupter().
|
static |
Definition at line 149 of file intr.cpp.
Referenced by XhciInterrupters::ReleaseOne(), XhciProgramEventRing(), and XhciWriteDequeue().
| ULONG Descriptors |
Definition at line 731 of file intr.cpp.
Referenced by AtaReqScsiInquiryDeviceIdentifiers(), ClasspDeviceGetLBAStatusWorker(), DeviceProcessDsmTrimRequest(), for(), HalpQueryAcpiResourceRequirements(), KspPinPropertyHandler(), KspValidateConnectRequest(), PciAddResizableBarRequirements(), PciIdeXPdoQueryResourceRequirements(), PdoQueryResourceRequirements(), and USBPORT_RootHubCreateDevice().
| * ListIndex = 0 |
Definition at line 722 of file intr.cpp.
Referenced by XhciInterrupters::AffinitizeResourceRequirements(), XhciInterrupters::FilterResourceRequirements(), for(), and UpdatePagefileEntry().
| Lists = WdfIoResourceRequirementsListGetCount(Requirements) |
| * Messages |
Definition at line 723 of file intr.cpp.
Referenced by XhciInterrupters::AffinitizeResourceRequirements(), XhciInterrupters::FilterResourceRequirements(), for(), XhciInterrupters::SecondaryCountFor(), and WndProc().
| IO_RESOURCE_DESCRIPTOR Trimmed |
Definition at line 784 of file intr.cpp.
Referenced by MmWorkingSetManager(), and while().
Definition at line 781 of file intr.cpp.
Referenced by Ext2ExpandBlock(), Ext2TruncateExtent(), Ext2TruncateIndirect(), FieldMatches(), HubIoGetConnectionInformationV2(), HubLinkChange(), and while().
|
static |
Definition at line 38 of file intr.cpp.
Referenced by XhciInterrupters::Create(), and XhciActiveProcessors().
|
static |
Definition at line 40 of file intr.cpp.
Referenced by XhciInterrupters::Create(), and XhciCurrentProcessorIndex().
|
static |
Definition at line 41 of file intr.cpp.
Referenced by XhciInterrupters::Create(), and XhciDpcBudgetSpent().
|
static |
Definition at line 46 of file intr.cpp.
Referenced by XhciInterrupters::CreateInterrupt().
|
static |
Definition at line 44 of file intr.cpp.
Referenced by XhciInterrupters::CreateInterrupt().
|
static |
Definition at line 45 of file intr.cpp.
Referenced by XhciInterrupters::CreateInterrupt().
|
static |
Definition at line 43 of file intr.cpp.
Referenced by XhciInterrupters::CreateInterrupt().
|
static |
Definition at line 47 of file intr.cpp.
Referenced by XhciInterrupters::PrepareOne().
|
static |
Definition at line 39 of file intr.cpp.
Referenced by XhciInterrupters::Create(), and XhciProcessorIndex().