USB - Changed HC API to reflect more advanced features
[tpg/acess2.git] / KernelLand / Modules / USB / UHCI / uhci.h
index db5078e..6eff0eb 100644 (file)
@@ -24,6 +24,17 @@ struct sUHCI_ExtraTDInfo
        void    *CallbackPtr;
 };
 
+#define TD_CTL_IOC     (1 << 24)
+
+#define TD_CTL_ACTIVE  (1 << 23)
+#define TD_CTL_STALLED (1 << 22)
+#define TD_CTL_DATABUFERR      (1 << 21)
+#define TD_CTL_BABBLE  (1 << 20)
+#define TD_CTL_NAK     (1 << 19)
+#define TD_CTL_CRCERR  (1 << 18)
+#define TD_CTL_BITSTUFF        (1 << 17)
+#define TD_CTL_RESERVED        (1 << 16)
+
 struct sUHCI_TD
 {
        /**
@@ -85,7 +96,7 @@ struct sUHCI_TD
        {
                tUHCI_ExtraTDInfo       *ExtraInfo;
                char    bActive;        // Allocated
-               Uint8   period_entry;   // index + 1, 0 = non-interrupt, 1 = offset 0
+               Uint8   QueueIndex;     // QH, 0-127 are interrupt, 128 undef, 129 Control, 130 Bulk
                char    bFreePointer;   // Free \a BufferPointer once done
        } _info;
 } __attribute__((aligned(16)));
@@ -165,14 +176,16 @@ struct sUHCI_Controller
        tUSBHub *RootHub;
 
        /**
+        * \brief Load in bytes on each interrupt queue
         */
-//      int    FrameLoads[1024];
+        int    InterruptLoad[128];
 
        tPAddr          PhysTDQHPage;
        struct
        {
                // 127 Interrupt Queue Heads
                // - 4ms -> 256ms range of periods
+               tUHCI_QH        InterruptQHs[0];
                tUHCI_QH        InterruptQHs_256ms[64];
                tUHCI_QH        InterruptQHs_128ms[32];
                tUHCI_QH        InterruptQHs_64ms [16];

UCC git Repository :: git.ucc.asn.au