#define OUTPUT_PACKET_ID 0xE1\r
#define ERROR_PACKET_ID 0x55\r
\r
-#define bit(a) 1 << (a)\r
-\r
-#define GET_0B_TO_31B(Addr) (((UINTN) Addr) & (0xffffffff))\r
-#define GET_32B_TO_63B(Addr) ((((UINTN) Addr) >> 32) & (0xffffffff))\r
+#define bit(a) 1 << (a)\r
\r
+#define GET_0B_TO_31B(Addr) (UINT32) (UINTN) (Addr)\r
+#define GET_32B_TO_63B(Addr) (UINT32) (RShiftU64(((UINT64) (UINTN) (Addr)), 32) & 0xffffffff)\r
\r
//\r
// Ehci Data and Ctrl Structures\r
typedef struct _EHCI_QH_ENTITY EHCI_QH_ENTITY;\r
typedef struct _EHCI_ASYNC_REQUEST EHCI_ASYNC_REQUEST;\r
\r
-typedef struct _EHCI_QTD_ENTITY {\r
+struct _EHCI_QTD_ENTITY {\r
EHCI_QTD_HW Qtd;\r
UINT32 TotalBytes;\r
UINT32 StaticTotalBytes;\r
EHCI_QTD_ENTITY *Next;\r
EHCI_QTD_ENTITY *AltNext;\r
EHCI_QH_ENTITY *SelfQh;\r
-} EHCI_QTD_ENTITY;\r
+};\r
\r
-typedef struct _EHCI_QH_ENTITY {\r
+struct _EHCI_QH_ENTITY {\r
EHCI_QH_HW Qh;\r
EHCI_QH_ENTITY *Next;\r
EHCI_QH_ENTITY *Prev;\r
EHCI_QTD_ENTITY *AltQtdPtr;\r
UINTN Interval;\r
UINT8 TransferType;\r
-} EHCI_QH_ENTITY;\r
+};\r
\r
#define GET_QH_ENTITY_ADDR(a) ((EHCI_QH_ENTITY *) a)\r
#define GET_QTD_ENTITY_ADDR(a) ((EHCI_QTD_ENTITY *) a)\r
\r
#define USB2_HC_DEV_SIGNATURE EFI_SIGNATURE_32 ('e', 'h', 'c', 'i')\r
\r
-typedef struct _LIST_HEAD {\r
- struct _LIST_HEAD *pre;\r
- struct _LIST_HEAD *next;\r
-} LIST_HEAD;\r
-\r
-typedef struct _EHCI_ASYNC_REQUEST {\r
+struct _EHCI_ASYNC_REQUEST {\r
UINT8 TransferType;\r
EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunc;\r
VOID *Context;\r
EHCI_ASYNC_REQUEST *Prev;\r
EHCI_ASYNC_REQUEST *Next;\r
EHCI_QH_ENTITY *QhPtr;\r
-} EHCI_ASYNC_REQUEST;\r
+};\r
\r
typedef struct _MEMORY_MANAGE_HEADER {\r
UINT8 *BitArrayPtr;\r