[FASTFAT] Implement write IOs defering.
[reactos.git] / drivers / usb / usbport / usbport.h
index 8827716..7895b97 100644 (file)
@@ -402,7 +402,7 @@ typedef struct _USBPORT_DEVICE_EXTENSION {
 #if !defined(_M_X64)
 C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x500);
 #else
-C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x600);
+C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x690);
 #endif
 
 typedef struct _USBPORT_RH_DESCRIPTORS {
@@ -451,6 +451,7 @@ typedef struct _TIMER_WORK_QUEUE_ITEM {
 #define USB2_FRAMES           32
 #define USB2_MICROFRAMES      8
 #define USB2_MAX_MICROFRAMES  (USB2_FRAMES * USB2_MICROFRAMES)
+#define USB2_PREV_MICROFRAME  0xFF
 
 #define USB2_MAX_MICROFRAME_ALLOCATION         7000 // bytes
 #define USB2_CONTROLLER_DELAY                  100
@@ -478,12 +479,14 @@ typedef struct _TIMER_WORK_QUEUE_ITEM {
 #define USB2_HS_SS_ISOCHRONOUS_IN_OVERHEAD     39
 #define USB2_HS_CS_ISOCHRONOUS_IN_OVERHEAD     38
 
+#define USB2_BIT_STUFFING_OVERHEAD  (8 * (7/6)) // 7.1.9 Bit Stuffing
+
 typedef union _USB2_TT_ENDPOINT_PARAMS {
   struct {
     ULONG TransferType           : 4;
     ULONG Direction              : 1;
     USB_DEVICE_SPEED DeviceSpeed : 2;
-    ULONG EndpointMoved          : 1;
+    BOOL EndpointMoved           : 1;
     ULONG Reserved               : 24;
   };
   ULONG AsULONG;
@@ -508,6 +511,7 @@ typedef struct _USB2_TT_ENDPOINT {
   struct _USB2_TT_ENDPOINT * NextTtEndpoint;
   USB2_TT_ENDPOINT_PARAMS TtEndpointParams;
   USB2_TT_ENDPOINT_NUMS Nums;
+  BOOL IsPromoted;
   USHORT MaxPacketSize;
   USHORT PreviosPeriod;
   USHORT Period;
@@ -1335,4 +1339,14 @@ NTAPI
 USB2_InitController(
   IN PUSB2_HC_EXTENSION HcExtension);
 
+VOID
+NTAPI
+USBPORT_DumpingEndpointProperties(
+  IN PUSBPORT_ENDPOINT_PROPERTIES EndpointProperties);
+
+VOID
+NTAPI
+USBPORT_DumpingTtEndpoint(
+  IN PUSB2_TT_ENDPOINT TtEndpoint);
+
 #endif /* USBPORT_H__ */