[BROWSEUI] SHExplorerParseCmdLine: Fix parsing of /root (#6752)
[reactos.git] / drivers / usb / usbccgp / usbccgp.h
index d25c3d5..04ce349 100644 (file)
@@ -1,26 +1,16 @@
 #ifndef USBEHCI_H__
 #define USBEHCI_H__
 
-#include <ntddk.h>
-#define YDEBUG
-#include <debug.h>
-#include <initguid.h>
+#include <wdm.h>
 #include <hubbusif.h>
 #include <usbbusif.h>
-#include <usbioctl.h>
 #include <usbdlib.h>
 
-//
-// FIXME: 
-// #include <usbprotocoldefs.h>
-//
-#include <usb.h>
 #include <stdio.h>
-#include <wdmguid.h>
 
 typedef struct
 {
-    BOOLEAN IsFDO;                                               // is device a FDO or PDO
+    BOOLEAN IsFDO;                                           // is device a FDO or PDO
 }COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
 
 typedef struct
@@ -39,6 +29,11 @@ typedef struct
     PUSBC_FUNCTION_DESCRIPTOR FunctionDescriptor;            // usb function descriptor
     ULONG FunctionDescriptorCount;                           // number of function descriptor
     PDEVICE_OBJECT * ChildPDO;                               // child pdos
+    LIST_ENTRY ResetPortListHead;                            // reset port list head
+    LIST_ENTRY CyclePortListHead;                            // cycle port list head
+    UCHAR ResetPortActive;                                   // reset port active
+    UCHAR CyclePortActive;                                   // cycle port active
+    KSPIN_LOCK Lock;                                         // reset / cycle port list lock
 }FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
 
 #define USBCCPG_TAG 'cbsu'
@@ -52,10 +47,18 @@ typedef struct
     ULONG FunctionIndex;                                     // function index
     USB_DEVICE_DESCRIPTOR DeviceDescriptor;                  // usb device descriptor
     PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;   // usb configuration descriptor
+    USBD_CONFIGURATION_HANDLE ConfigurationHandle;           // configuration handle
+    PUSBD_INTERFACE_LIST_ENTRY InterfaceList;                // interface list
+    ULONG InterfaceListCount;                                // interface list count
+    PFDO_DEVICE_EXTENSION FDODeviceExtension;                // pointer to fdo's pdo list
 }PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
 
 /* descriptor.c */
 
+VOID
+DumpConfigurationDescriptor(
+    IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor);
+
 NTSTATUS
 USBCCGP_GetDescriptors(
     IN PDEVICE_OBJECT DeviceObject);
@@ -75,6 +78,15 @@ USBCCGP_GetDescriptor(
     IN LANGID LanguageId,
     OUT PVOID *OutDescriptor);
 
+NTSTATUS
+NTAPI
+USBCCGP_GetStringDescriptor(
+    IN PDEVICE_OBJECT DeviceObject,
+    IN ULONG DescriptorLength,
+    IN UCHAR DescriptorIndex,
+    IN LANGID LanguageId,
+    OUT PVOID *OutDescriptor);
+
 ULONG
 CountInterfaceDescriptors(
     IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor);
@@ -86,12 +98,6 @@ AllocateInterfaceDescriptorsArray(
 
 /* misc.c */
 
-NTSTATUS
-NTAPI
-USBCCGP_SyncForwardIrp(
-    PDEVICE_OBJECT DeviceObject,
-    PIRP Irp);
-
 NTSTATUS
 USBCCGP_SyncUrbRequest(
     IN PDEVICE_OBJECT DeviceObject,
@@ -115,14 +121,14 @@ DumpFunctionDescriptor(
 
 NTSTATUS
 FDO_Dispatch(
-    PDEVICE_OBJECT DeviceObject, 
+    PDEVICE_OBJECT DeviceObject,
     PIRP Irp);
 
 /* pdo.c */
 
 NTSTATUS
 PDO_Dispatch(
-    PDEVICE_OBJECT DeviceObject, 
+    PDEVICE_OBJECT DeviceObject,
     PIRP Irp);
 
 /* function.c */
@@ -136,4 +142,4 @@ NTSTATUS
 USBCCGP_EnumerateFunctions(
     IN PDEVICE_OBJECT DeviceObject);
 
-#endif
+#endif /* USBEHCI_H__ */