Sorting source tree a bit
[tpg/acess2.git] / KernelLand / Modules / USB / OHCI / ohci.h
diff --git a/KernelLand/Modules/USB/OHCI/ohci.h b/KernelLand/Modules/USB/OHCI/ohci.h
new file mode 100644 (file)
index 0000000..30eeb96
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Acess2 OHCI Driver
+ * - By John Hodge (thePowersGang)
+ *
+ * ohci.h
+ * - Core Header
+ */
+#ifndef _OHCI_H_
+#define _OHCI_H_
+
+struct sEndpointDesc
+{
+       //  0: 6 = Address
+       //  7:10 = Endpoint Num
+       // 11:12 = Direction (TD, OUT, IN, TD)
+       // 13    = Speed (Full, Low)
+       // 14    = Skip entry
+       // 15    = Format (Others, Isochronous)
+       // 16:26 = Max Packet Size
+       // 27:31 = AVAIL
+       Uint32  Flags;
+       //  0: 3 = AVAIL
+       //  4:31 = TailP
+       Uint32  TailP;  // Last TD in queue
+       //  0    = Halted (Queue stopped due to error)
+       //  1    = Data toggle carry
+       //  2: 3 = ZERO
+       //  4:31 = HeadP
+       Uint32  HeadP;  // First TD in queue
+       //  0: 3 = AVAIL
+       //  4:31 = NextED
+       Uint32  NextED; // Next endpoint descriptor
+};
+
+struct sGeneralTD
+{
+       //  0:17 = AVAIL
+       // 18    = Buffer Rounding (Allow an undersized packet)
+       // 19:20 = Direction (SETUP, OUT, IN, Resvd)
+       // 21:23 = Delay Interrupt (Frame count, 7 = no int)
+       // 24:25 = Data Toggle (ToggleCarry, ToggleCarry, 0, 1)
+       // 26:27 = Error Count
+       // 28:31 = Condition Code
+       Uint32  Flags;
+       
+       // Base address of packet (or current when being read)
+       Uint32  CBP;
+       
+       Uint32  NextTD;
+       
+       // Address of final byte in buffer
+       Uint32  BE;
+};
+
+struct sIsochronousTD
+{
+       //  0:15 = Starting Frame
+       // 16:20 = AVAIL
+       // 21:23 = Delay Interrupt
+       // 24:26 = Frame Count - 1 (1, 2, 3, 4, 5, 6, 7, 8)
+       // 27    = AVAIL
+       // 28:31 = Condition Code
+       Uint32  Flags;
+       
+       //  0:11 = AVAIL
+       // 12:31 = Page number of first byte in buffer
+       Uint32  BP0;    // Buffer Page 0
+       
+       Uint32  NextTD;
+       
+       // Address of last byte in buffer
+       Uint32  BufferEnd;
+       
+       //  0:11 = Page Offset
+       // 12    = Page selector (BufferPage0, BufferEnd)
+       // 13:15 = Unused?
+       Uint16  Offsets[8];
+};
+
+#endif
+

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