git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
All - Changes for AcessNative on windows
[tpg/acess2.git]
/
KernelLand
/
Modules
/
USB
/
Core
/
usb.c
diff --git
a/KernelLand/Modules/USB/Core/usb.c
b/KernelLand/Modules/USB/Core/usb.c
index
9a0e2bc
..
c4e1680
100644
(file)
--- a/
KernelLand/Modules/USB/Core/usb.c
+++ b/
KernelLand/Modules/USB/Core/usb.c
@@
-31,7
+31,7
@@
tUSBHub *USB_RegisterHost(tUSBHostDef *HostDef, void *ControllerPtr, int nPorts)
{
tUSBHost *host;
- host = malloc(sizeof(tUSBHost) + nPorts*sizeof(
void*
));
+ host = malloc(sizeof(tUSBHost) + nPorts*sizeof(
tUSBHubPort) + sizeof(tUSBDevice) + sizeof(tUSBInterface
));
if(!host) {
// Oh, bugger.
return NULL;
@@
-40,20
+40,23
@@
tUSBHub *USB_RegisterHost(tUSBHostDef *HostDef, void *ControllerPtr, int nPorts)
host->Ptr = ControllerPtr;
memset(host->AddressBitmap, 0, sizeof(host->AddressBitmap));
- host->RootHubDev.ParentHub = NULL;
- host->RootHubDev.Host = host;
- host->RootHubDev.Address = 0;
- host->RootHubDev.EndpointHandles[0] = HostDef->InitControl(ControllerPtr, 0, 64);
+ host->RootHubDev = (void*)(host->RootHub.Ports + nPorts);
+ host->RootHubDev->ParentHub = NULL;
+ host->RootHubDev->Host = host;
+ host->RootHubDev->Address = 0;
+ ASSERT(HostDef->InitControl);
+ host->RootHubDev->EndpointHandles[0] = HostDef->InitControl(ControllerPtr, 0, 64);
+ host->RootHubDev->nInterfaces = 0;
-
// host->RootHubIf.Next = NULL
;
- host->RootHubIf
.Dev = &
host->RootHubDev;
- host->RootHubIf
.
Driver = NULL;
- host->RootHubIf
.
Data = NULL;
- host->RootHubIf
.
nEndpoints = 0;
+
host->RootHubIf = (void*)(host->RootHubDev + 1)
;
+ host->RootHubIf
->Dev =
host->RootHubDev;
+ host->RootHubIf
->
Driver = NULL;
+ host->RootHubIf
->
Data = NULL;
+ host->RootHubIf
->
nEndpoints = 0;
- host->RootHub.Interface =
&
host->RootHubIf;
+ host->RootHub.Interface = host->RootHubIf;
host->RootHub.nPorts = nPorts;
- memset(host->RootHub.
Devices, 0, sizeof(void*
)*nPorts);
+ memset(host->RootHub.
Ports, 0, sizeof(tUSBHubPort
)*nPorts);
// Append to list
Mutex_Acquire( &glUSB_Hosts );
@@
-98,10
+101,10
@@
tUSBHub *USB_RegisterHub(tUSBInterface *Device, int PortCount)
{
tUSBHub *ret;
- ret = malloc(sizeof(tUSBHub) + sizeof(ret->
Device
s[0])*PortCount);
+ ret = malloc(sizeof(tUSBHub) + sizeof(ret->
Port
s[0])*PortCount);
ret->Interface = Device;
ret->nPorts = PortCount;
- memset(ret->
Devices, 0, sizeof(ret->Device
s[0])*PortCount);
+ memset(ret->
Ports, 0, sizeof(ret->Port
s[0])*PortCount);
return ret;
}
@@
-109,7
+112,7
@@
void USB_RemoveHub(tUSBHub *Hub)
{
for( int i = 0; i < Hub->nPorts; i ++ )
{
- if( Hub->
Devices[i]
)
+ if( Hub->
Ports[i].Dev
)
{
USB_DeviceDisconnected( Hub, i );
}
UCC
git Repository :: git.ucc.asn.au