X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FUSB%2FCore%2Fusb.h;h=9bc45c8e08df1149e3489dc1f3c60f4a9600387d;hb=cc9c4465db1c38904798f967019c863f5b552d5f;hp=0b1b7b90d38b2faf9769f6f6f14e4d07353e6d94;hpb=2c3ab58b961dea91fdfbf432a7fdf9593c6e7a8e;p=tpg%2Facess2.git diff --git a/Modules/USB/Core/usb.h b/Modules/USB/Core/usb.h index 0b1b7b90..9bc45c8e 100644 --- a/Modules/USB/Core/usb.h +++ b/Modules/USB/Core/usb.h @@ -7,17 +7,37 @@ // === TYPES === typedef struct sUSBHost tUSBHost; +typedef struct sUSBHub tUSBHub; typedef struct sUSBDevice tUSBDevice; // === STRUCTURES === /** - * \brief Defines a USB Host Controller + * \brief Defines a USB Host Controller type */ struct sUSBHost { - int (*SendIN)(void *Ptr, int Fcn, int Endpt, int DataTgl, void *Data, size_t Length); - int (*SendOUT)(void *Ptr, int Fcn, int Endpt, int DataTgl, void *Data, size_t Length); - int (*SendSETUP)(void *Ptr, int Fcn, int Endpt, int DataTgl, void *Data, size_t Length); + tUSBHost *Next; + + void (*CheckPorts)(void *Ptr); + + void *(*SendIN)(void *Ptr, int Fcn, int Endpt, int DataTgl, int bIOC, void *Data, size_t Length); + void *(*SendOUT)(void *Ptr, int Fcn, int Endpt, int DataTgl, int bIOC, void *Data, size_t Length); + void *(*SendSETUP)(void *Ptr, int Fcn, int Endpt, int DataTgl, int bIOC, void *Data, size_t Length); +}; + +/** + * \brief USB Hub data + */ +struct sUSBHub +{ + /** + * \brief Host controller used + */ + tUSBHost *HostDef; + void *Controller; + + int nPorts; + tUSBDevice *Devices[]; }; /** @@ -25,13 +45,20 @@ struct sUSBHost */ struct sUSBDevice { - tUSBHost *Host; + tUSBDevice *Next; + tUSBDevice *Hub; int Address; - - int MaxControl; - int MaxBulk; - int MaxISync; + + int Type; + + union { + tUSBHub Hub; + char Impl[0]; + } Data; }; +extern void USB_RegisterHost(tUSBHost *HostDef, void *ControllerPtr); +extern void USB_NewDevice(tUSBHub *Hub); + #endif