X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FUSB%2FCore%2Fusb.h;h=2de6985925545e0c3b237b6b58a8a20c517dbd8b;hb=13078002b01ee4f63eb2001d2ef479a2a006ea32;hp=5a133630f5bbd5938a908d6b6b484eccb4cbf665;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/USB/Core/usb.h b/KernelLand/Modules/USB/Core/usb.h index 5a133630..2de69859 100644 --- a/KernelLand/Modules/USB/Core/usb.h +++ b/KernelLand/Modules/USB/Core/usb.h @@ -11,12 +11,22 @@ #include #include #include +#include "usb_proto.h" +typedef struct sUSBHubPort tUSBHubPort; typedef struct sUSBHost tUSBHost; typedef struct sUSBDevice tUSBDevice; typedef struct sUSBEndpoint tUSBEndpoint; // === STRUCTURES === +struct sUSBHubPort +{ + void *ListNext; + char Status; + char PortNum; + tUSBDevice *Dev; +}; + /** * \brief USB Hub data */ @@ -25,7 +35,7 @@ struct sUSBHub tUSBInterface *Interface; int nPorts; - tUSBDevice *Devices[]; + struct sUSBHubPort Ports[]; }; struct sUSBEndpoint @@ -34,6 +44,7 @@ struct sUSBEndpoint tUSBInterface *Interface; int EndpointIdx; // Interface endpoint index int EndpointNum; // Device endpoint num + void *EndpointHandle; int PollingPeriod; // In 1ms intervals int MaxPacketSize; // In bytes @@ -53,6 +64,8 @@ struct sUSBInterface tUSBDriver *Driver; void *Data; + + struct sDescriptor_Interface IfaceDesc; int nEndpoints; tUSBEndpoint Endpoints[]; @@ -71,6 +84,10 @@ struct sUSBDevice tUSBHost *Host; int Address; + void *EndpointHandles[16]; + + struct sDescriptor_Device DevDesc; + int nInterfaces; tUSBInterface *Interfaces[]; }; @@ -84,8 +101,8 @@ struct sUSBHost Uint8 AddressBitmap[128/8]; - tUSBDevice RootHubDev; - tUSBInterface RootHubIf; + tUSBDevice *RootHubDev; + tUSBInterface *RootHubIf; tUSBHub RootHub; };