X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FUSB%2FCore%2Fusb.h;h=177d7c7fa8c2b980e679aeb4433ab042bb47f8bb;hb=79089cf3bb4828329d224c1d1cac9250bc57f932;hp=9bc45c8e08df1149e3489dc1f3c60f4a9600387d;hpb=1474ce5c1ba164bbccfefa411883805d12a0dc62;p=tpg%2Facess2.git diff --git a/Modules/USB/Core/usb.h b/Modules/USB/Core/usb.h index 9bc45c8e..177d7c7f 100644 --- a/Modules/USB/Core/usb.h +++ b/Modules/USB/Core/usb.h @@ -5,37 +5,22 @@ #ifndef _USB_H_ #define _USB_H_ -// === TYPES === +#include +#include +#include + typedef struct sUSBHost tUSBHost; -typedef struct sUSBHub tUSBHub; -typedef struct sUSBDevice tUSBDevice; // === STRUCTURES === -/** - * \brief Defines a USB Host Controller type - */ -struct sUSBHost -{ - 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; - + tUSBDevice *Device; + + tUSB_HubPoll CheckPorts; + int nPorts; tUSBDevice *Devices[]; }; @@ -46,19 +31,31 @@ struct sUSBHub struct sUSBDevice { tUSBDevice *Next; - tUSBDevice *Hub; + tUSBHub *ParentHub; + /** + * \brief Host controller used + */ + tUSBHost *Host; int Address; - int Type; + tUSBDriver *Driver; + void *Data; +}; + +struct sUSBHost +{ + struct sUSBHost *Next; + + tUSBHostDef *HostDef; + void *Ptr; + + Uint8 AddressBitmap[128/8]; - union { - tUSBHub Hub; - char Impl[0]; - } Data; + tUSBDevice RootHubDev; + tUSBHub RootHub; }; -extern void USB_RegisterHost(tUSBHost *HostDef, void *ControllerPtr); extern void USB_NewDevice(tUSBHub *Hub); #endif