eda42cf985738e75b0150a8c097b92b23a8030a5
[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, int Length);
17
18 typedef void    *(*tUSBHostOp)(void *Ptr, int Dest, int DataTgl, tUSBHostCb CB, void *CbData, void *Data, size_t Length);
19
20 /**
21  * \brief Defines a USB Host Controller type
22  */
23 struct sUSBHostDef
24 {
25         tUSBHostOp      SendIN;
26         tUSBHostOp      SendOUT;
27         tUSBHostOp      SendSETUP;
28
29         /**
30          * \brief Check if an operation has completed
31          * \note Only valid to call if CB passed was ERRPTR
32          */
33          int    (*IsOpComplete)(void *Ptr, void *OpPtr);
34
35         void    (*CheckPorts)(void *Ptr);
36 };
37
38 extern tUSBHub  *USB_RegisterHost(tUSBHostDef *HostDef, void *ControllerPtr, int nPorts);
39
40 #endif
41

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