+
+ /*
+ * \note Area for software use
+ * \brief Last TD in this list, used to add things to the end
+ */
+ tUHCI_TD *_LastItem;
+} __attribute__((aligned(16)));
+
+struct sUHCI_Controller
+{
+ /**
+ * \brief PCI Device ID
+ */
+ Uint16 PciId;
+
+ /**
+ * \brief IO Base Address
+ */
+ Uint16 IOBase;
+
+ /**
+ * \brief Memory Mapped-IO base address
+ */
+ Uint16 *MemIOMap;
+
+ /**
+ * \brief IRQ Number assigned to the device
+ */
+ int IRQNum;
+
+ /**
+ * \brief Number of the last frame to be cleaned
+ */
+ int LastCleanedFrame;
+
+ /**
+ * \brief Frame list
+ *
+ * 31:4 - Frame Pointer
+ * 3:2 - Reserved
+ * 1 - QH/TD Selector
+ * 0 - Terminate (Empty Pointer)
+ */
+ Uint32 *FrameList;
+
+ /**
+ * \brief Physical Address of the Frame List
+ */
+ tPAddr PhysFrameList;
+
+ tUSBHub *RootHub;
+
+ tUHCI_QH InterruptQH;
+ tUHCI_QH ControlQH;
+ tUHCI_QH BulkQH;