ReactOS 0.4.17-dev-1281-g065abb3
devhcd.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS SuperSpeed USB Hub Driver
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Device side of the UCX contract, configuration bookkeeping and link power
5 * COPYRIGHT: Copyright 2026 Justin Miller <justin.miller@reactos.org>
6 */
7
8#pragma once
9
10/* HubChild::m_LpmPolicy, as the PDO power setting callback writes it */
11#define HUB_LPM_POLICY_U1_ENABLED 0x00000001
12#define HUB_LPM_POLICY_U2_ENABLED 0x00000002
13#define HUB_LPM_POLICY_U1_ACCEPT 0x00000004
14#define HUB_LPM_POLICY_U2_ACCEPT 0x00000008
15#define HUB_LPM_POLICY_U1_INITIATE 0x00000010
16#define HUB_LPM_POLICY_U2_INITIATE 0x00000020
17#define HUB_LPM_POLICY_CONSERVATIVE 0x00000040
18#define HUB_LPM_POLICY_AGGRESSIVE 0x00000080
19
20/* HubChild::m_LinkFlags */
21#define HUB_LINK_TARGET_U1 0x00000001
22#define HUB_LINK_TARGET_U2 0x00000002
23#define HUB_LINK_U1_OFF_FOR_LATENCY 0x00000004
24#define HUB_LINK_U2_OFF_FOR_LATENCY 0x00000008
25#define HUB_LINK_OFF_FOR_NO_PING 0x00000010
26
27/* HubChild::m_Lpm20Status */
29{
30 Unknown,
31 Enabled,
34 HubHack,
40};
41
42/* devhcd.cpp */
43
53
55VOID
59 _In_ PipeState From,
60 _In_ PipeState To);
61
64VOID
66HubChildDeleteInterface(
69
70/* devconfig.cpp */
71
73VOID
78
79/* devlpm.cpp */
80
86
87/* Provided by the child PDO module */
88
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
VOID NTAPI HubChildCollectForDisable(_In_ HubChild *Child, _In_ HubInterface *Interface)
Definition: devconfig.cpp:132
BOOLEAN NTAPI HubChildU2ForEnumerated(_In_ HubChild *Child)
Definition: devlpm.cpp:135
NTSTATUS NTAPI HubChildSubmitUcxIoctl(_In_ HubChild *Child, _In_ ULONG IoControlCode)
Definition: devhcd.cpp:174
VOID NTAPI HubConfigMovePipes(_In_opt_ HubConfiguration *Config, _In_ PipeState From, _In_ PipeState To)
Definition: devhcd.cpp:133
USBD_STATUS NTAPI HubNtStatusToUsbd(_In_ NTSTATUS Status)
Definition: childpdo.cpp:190
HubLpm20Status
Definition: devhcd.h:29
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
Status
Definition: gdiplustypes.h:24
PipeState
Definition: hubchild.h:158
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
_In_ UCXUSBDEVICE _In_ ULONG Interface
Definition: ucxusbdevice.h:428
LONG USBD_STATUS
Definition: usb.h:172
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
Definition: wdffdo.h:536