QH_MICROFRAME_6 = 0x40,\r
QH_MICROFRAME_7 = 0x80,\r
\r
- USB_ERR_SHORT_PACKET = 0x200,\r
+ USB_ERR_SHORT_PACKET = 0x200\r
};\r
\r
//\r
// Software QTD strcture, this is used to manage all the\r
// QTD generated from a URB. Don't add fields before QtdHw.\r
//\r
-typedef struct _EHC_QTD {\r
+struct _EHC_QTD {\r
QTD_HW QtdHw;\r
UINT32 Signature;\r
LIST_ENTRY QtdList; // The list of QTDs to one end point\r
UINT8 *Data; // Buffer of the original data\r
UINTN DataLen; // Original amount of data in this QTD\r
-} EHC_QTD;\r
+};\r
\r
//\r
// Software QH structure. All three different transaction types\r
// transfer is supported. A dummy QH is linked to EHCI AsyncListAddr\r
// as the reclamation header. New transfer is inserted after this QH.\r
//\r
-typedef struct _EHC_QH {\r
+struct _EHC_QH {\r
QH_HW QhHw;\r
UINT32 Signature;\r
EHC_QH *NextQh; // The queue head pointed to by horizontal link\r
LIST_ENTRY Qtds; // The list of QTDs to this queue head\r
UINTN Interval;\r
-} EHC_QH;\r
+};\r
\r
//\r
// URB (Usb Request Block) contains information for all kinds of\r
// usb requests.\r
//\r
-typedef struct _URB {\r
+struct _URB {\r
UINT32 Signature;\r
LIST_ENTRY UrbList;\r
\r
UINT32 Result;\r
UINTN Completed; // completed data length\r
UINT8 DataToggle;\r
-} URB;\r
+};\r
\r
\r
\r