Dynamically allocate USB controller structures.
Have each controller type allocate its own data structure.
Also, implement freeing of unused uhci controller structures.
diff --git a/src/usb-ohci.h b/src/usb-ohci.h
index b7b2b29..0cadbd6 100644
--- a/src/usb-ohci.h
+++ b/src/usb-ohci.h
@@ -2,8 +2,7 @@
#define __USB_OHCI_H
// usb-ohci.c
-struct usb_s;
-void ohci_init(void *data);
+void ohci_init(u16 bdf, int busid);
struct usb_pipe;
void ohci_free_pipe(struct usb_pipe *p);
struct usb_pipe *ohci_alloc_control_pipe(struct usb_pipe *dummy);