Kernel/USB - Still broken, reworking host controller API to give driver more information
[tpg/acess2.git] / KernelLand / Modules / USB / Core / include / usb_host.h
1 /*
2  * Acess2 USB Stack
3  * - By John Hodge (thePowersGang)
4  *
5  * usb_host.h
6  * - USB Host Controller Interface
7  */
8 #ifndef _USB_HOST_H_
9 #define _USB_HOST_H_
10
11 #include "usb_core.h"
12 #include "usb_hub.h"
13
14 typedef struct sUSBHostDef      tUSBHostDef;
15
16 typedef void    (*tUSBHostCb)(void *DataPtr, void *Data, size_t Length);
17
18 typedef void    *(*tUSBHostOp)(void *Ptr, int Dest, int DataTgl, tUSBHostCb CB, void *CbData, void *Data, size_t Length);
19 typedef void    *(*tUSBIntOp)(void *Ptr, int Dest, int Period, tUSBHostCb CB, void *CbData, void *Data, size_t Length);
20
21 /**
22  * \brief Defines a USB Host Controller type
23  */
24 struct sUSBHostDef
25 {
26         tUSBIntOp       InterruptIN;
27         tUSBIntOp       InterruptOUT;
28         void    (*StopInterrupt)(void *Ptr, void *Handle);
29
30         void    *(*ControlSETUP)(void *Ptr, int Dest, int DataTgl, void *Data, size_t Length);
31         tUSBHostOp      ControlIN;
32         tUSBHostOp      ControlOUT;
33         
34         tUSBHostOp      BulkIN;
35         tUSBHostOp      BulkOUT;
36
37         void    (*CheckPorts)(void *Ptr);
38 };
39
40 extern tUSBHub  *USB_RegisterHost(tUSBHostDef *HostDef, void *ControllerPtr, int nPorts);
41
42 #endif
43

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