X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=usb%2Fcore%2Fcore.h;h=b906bf2c6463b60e1831c49443e726db8b3e36e6;hb=f508d39c0a2c145a5a9e0ee8aab63b7b5bcd61c7;hp=0e127224209a33c5061e2b0ee043f6cdd1ed763c;hpb=251726c276ab844095583d4c8d7607a30c0a802c;p=ppcskel.git diff --git a/usb/core/core.h b/usb/core/core.h index 0e12722..b906bf2 100644 --- a/usb/core/core.h +++ b/usb/core/core.h @@ -42,65 +42,100 @@ #include "../../bootmii_ppc.h" inline static void wait_ms(int ms) { - int i=0; - for(;i bit 7 is for direction 1=from dev to host */ +struct usb_irp { + struct usb_device *dev; + /* ep -> bit 7 is for direction 1=from dev to host */ + u8 endpoint; u8 epsize; - u8 type; /* control, interrupt, bulk or isochron */ + /* control, interrupt, bulk or isochron */ + u8 type; - char * buffer; + u8 *buffer; u16 len; //list * td_list; @@ -127,30 +162,30 @@ struct usb_irp_t { /** * usb transfer descriptor */ -typedef struct usb_transfer_descriptor_t usb_transfer_descriptor; -struct usb_transfer_descriptor_t { +struct usb_transfer_descriptor { u8 devaddress; u8 endpoint; + u8 fullspeed; // TODO: zusammenfassen! u8 pid; u8 iso; u8 togl; - char * buffer; + u8 *buffer; u16 actlen; u8 state; - usb_transfer_descriptor *next; + struct usb_transfer_descriptor *next; + u8 maxp; }; -//typedef struct usb_core_t usb_core; -struct usb_core_t { +struct usb_core { u8 nextaddress; void (*stdout)(char * arg); // driver list - list * drivers; - list * devices; + struct list *drivers; + struct list *devices; } core; void usb_init(); @@ -158,19 +193,19 @@ void usb_periodic(); u8 usb_next_address(); -usb_device * usb_add_device(); -u8 usb_remove_device(usb_device *dev); -u8 usb_register_driver(usb_driver *driver); +struct usb_device *usb_add_device(u8 lowspeed); +u8 usb_remove_device(struct usb_device *dev); +u8 usb_register_driver(struct usb_driver *driver); void usb_probe_driver(); +void lsusb(struct usb_device *dev); - -usb_irp * usb_get_irp(); -u8 usb_remove_irp(usb_irp *irp); -u16 usb_submit_irp(usb_irp *irp); +struct usb_irp *usb_get_irp(); +u8 usb_remove_irp(struct usb_irp *irp); +u16 usb_submit_irp(struct usb_irp *irp); -usb_transfer_descriptor * usb_create_transfer_descriptor(usb_irp *irp); +struct usb_transfer_descriptor *usb_create_transfer_descriptor(struct usb_irp *irp); #define USB_IRP_WAITING 1