// === CODE ===
-void USB_MakeToken(void *Buf, int PID, int Addr, int EndP)
+void USB_RegisterHost(tUSBHost *HostDef, void *ControllerPtr)
{
- Uint8 *tok = Buf;
- int crc = 0;
-
- tok[0] = PID & 0xFF;
- tok[1] = (Addr & 0x7F) | ((EndP&1)<<7);
- tok[2] = ((EndP >> 1) & 0x7) | crc;
+ // TODO:
}
-#if 0
-void USB_SendData(int Controller, int Dev, int Endpoint, void *Data, int Length)
+int USB_int_SendSetupSetAddress(tUSBHost *Host, void *Ptr, int Address)
{
- Uint8 buf[Length+3+2/*?*/];
-
- USB_MakeToken(buf, PID_DATA0, Dev, Endpoint);
+ Uint8 data[8];
+ data[0] = 0; // bmRequestType
+ data[1] = 5; // SET_ADDRESS
+ data[2] = Address & 0x7F; // wValue (low)
+ data[3] = 0; // wValue (high)
+ data[4] = 0; // wLength
+ data[6] = 0; // wLength
- switch(Controller & 0xF00)
- {
- case 1: // UHCI
- UHCI_SendPacket(Controller & 0xFF);
- break;
- }
+ // Addr 0:0, Data Toggle = 0, no interrupt
+ return Host->SendSETUP(Ptr, 0, 0, 0, FALSE, data, 8) == NULL;
}
-#endif