X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=usb%2Fcore%2Fusb.c;h=0d8edca3cf4787735e91455a62242aa9c0d48ab5;hb=4bdf4447cdcbb235dc4d22a9c7ec2b481df1156b;hp=0b127b5b2d5e1d98f57bd4a1855af13ec2d6bf96;hpb=7e5ba118123fc6f330fb1416d0154f39b851a843;p=ppcskel.git diff --git a/usb/core/usb.c b/usb/core/usb.c index 0b127b5..0d8edca 100644 --- a/usb/core/usb.c +++ b/usb/core/usb.c @@ -54,18 +54,18 @@ */ usb_device * usb_open(u32 vendor_id, u32 product_id) { - usb_device* dev; - element * iterator = core.devices->head; - while(iterator != NULL) { - dev = (usb_device*)iterator->data; - - if(dev->idVendor==vendor_id&&dev->idProduct==product_id) - return dev; - - iterator=iterator->next; - } - - return NULL; + usb_device* dev; + element * iterator = core.devices->head; + while(iterator != NULL) { + dev = (usb_device*)iterator->data; + + if(dev->idVendor==vendor_id&&dev->idProduct==product_id) + return dev; + + iterator=iterator->next; + } + + return NULL; } @@ -74,17 +74,17 @@ usb_device * usb_open(u32 vendor_id, u32 product_id) */ usb_device * usb_open_class(u8 class) { - usb_device* dev; - element * iterator = core.devices->head; - while(iterator != NULL) { - dev = (usb_device*)iterator->data; - - if(dev->bDeviceClass==class) - return dev; - - iterator=iterator->next; - } - return NULL; + usb_device* dev; + element * iterator = core.devices->head; + while(iterator != NULL) { + dev = (usb_device*)iterator->data; + + if(dev->bDeviceClass==class) + return dev; + + iterator=iterator->next; + } + return NULL; } /** @@ -93,38 +93,38 @@ usb_device * usb_open_class(u8 class) u8 usb_close(usb_device *dev) { - return 0; + return 0; } u8 usb_get_device_descriptor(usb_device *dev, char *buf,u8 size) { - return 0; + return 0; } u8 usb_set_address(usb_device *dev, u8 address) { - return 0; + return 0; } u8 usb_set_configuration(usb_device *dev, u8 configuration) { - return 0; + return 0; } u8 usb_set_altinterface(usb_device *dev, u8 alternate) { - return 0; + return 0; } u8 usb_reset(usb_device *dev) { - return 0; + return 0; } @@ -135,52 +135,66 @@ u8 usb_reset(usb_device *dev) */ u8 usb_control_msg(usb_device *dev, u8 requesttype, u8 request, u16 value, u16 index, u16 length,char *buf, u16 size, u16 timeout) { - usb_irp *irp = (usb_irp*)malloc(sizeof(usb_irp)); - irp->dev = dev; - //irp->devaddress = dev->address; - irp->endpoint = 0; - - irp->epsize = dev->bMaxPacketSize0; - irp->type = USB_CTRL; - - buf[0]=(char)requesttype; - buf[1]=(char)request; - buf[2]=(char)(value >> 8); - buf[3]=(char)(value); - buf[4]=(char)(index >> 8); - buf[5]=(char)(index); - // lenght buf are the only where the order is inverted - buf[6]=(char)(length); - buf[7]=(char)(length >> 8); - - irp->buffer = buf; - irp->len = length; - irp->timeout = timeout; - - usb_submit_irp(irp); - free(irp); - - return 0; + //usb_control_msg(dev, 0x80, GET_DESCRIPTOR, 1, 0, 8, buf, 8, 0); + usb_irp *irp = (usb_irp*)malloc(sizeof(usb_irp)); + irp->dev = dev; + irp->endpoint = 0; + + irp->epsize = dev->bMaxPacketSize0; + irp->type = USB_CTRL; + +#if 0 + buf[0]=(char)requesttype; + buf[1]=(char)request; + buf[2]=(char)(value >> 8); + buf[3]=(char)(value); + buf[4]=(char)(index >> 8); + buf[5]=(char)(index); + // lenght buf are the only where the order is inverted + buf[6]=(char)(length); + buf[7]=(char)(length >> 8); +#endif +#if 1 + //should be the right way around? :O + buf[0]=(char)requesttype; + buf[1]=(char)request; + buf[2]=(char)(value); + buf[3]=(char)(value >> 8); + buf[4]=(char)(index); + buf[5]=(char)(index >> 8); + // lenght buf are the only where the order is inverted + buf[6]=(char)(length >> 8); + buf[7]=(char)(length); +#endif + + irp->buffer = buf; + irp->len = length; + irp->timeout = timeout; + + usb_submit_irp(irp); + free(irp); + + return 0; } u8 usb_get_string(usb_device *dev, u8 index, u8 langid, char *buf, u8 buflen) { - return 0; + return 0; } u8 usb_get_string_simple(usb_device *dev, u8 index, char *buf, u8 buflen) { - return 0; + return 0; } u8 usb_get_descriptor(usb_device *dev, unsigned char type, unsigned char index, void *buf, u8 size) { - return 0; + return 0; } @@ -191,22 +205,22 @@ u8 usb_get_descriptor(usb_device *dev, unsigned char type, unsigned char index, */ u8 usb_bulk_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) { - usb_irp * irp = (usb_irp*)malloc(sizeof(usb_irp)); - irp->dev = dev; - //irp->devaddress = dev->address; - - irp->endpoint = ep; - irp->epsize = dev->epSize[ep]; // ermitteln - irp->type = USB_BULK; - - irp->buffer = buf; - irp->len = size; - irp->timeout = timeout; - - usb_submit_irp(irp); - free(irp); - - return 0; + usb_irp * irp = (usb_irp*)malloc(sizeof(usb_irp)); + irp->dev = dev; + //irp->devaddress = dev->address; + + irp->endpoint = ep; + irp->epsize = dev->epSize[ep]; // ermitteln + irp->type = USB_BULK; + + irp->buffer = buf; + irp->len = size; + irp->timeout = timeout; + + usb_submit_irp(irp); + free(irp); + + return 0; } /** @@ -214,22 +228,22 @@ u8 usb_bulk_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) */ u8 usb_bulk_read(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) { - usb_irp * irp = (usb_irp*)malloc(sizeof(usb_irp)); - //irp->devaddress = dev->address; - irp->dev = dev; - - irp->endpoint = ep | 0x80; // from device to host - irp->epsize = dev->epSize[ep]; // ermitteln - irp->type = USB_BULK; - - irp->buffer = buf; - irp->len = size; - irp->timeout = timeout; - - usb_submit_irp(irp); - free(irp); - - return 0; + usb_irp * irp = (usb_irp*)malloc(sizeof(usb_irp)); + //irp->devaddress = dev->address; + irp->dev = dev; + + irp->endpoint = ep | 0x80; // from device to host + irp->epsize = dev->epSize[ep]; // ermitteln + irp->type = USB_BULK; + + irp->buffer = buf; + irp->len = size; + irp->timeout = timeout; + + usb_submit_irp(irp); + free(irp); + + return 0; } @@ -240,7 +254,7 @@ u8 usb_bulk_read(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) u8 usb_interrupt_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) { - return 0; + return 0; } /** @@ -249,7 +263,7 @@ u8 usb_interrupt_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) u8 usb_interrupt_read(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) { - return 0; + return 0; } @@ -261,7 +275,7 @@ u8 usb_interrupt_read(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) u8 usb_isochron_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) { - return 0; + return 0; } /** @@ -271,7 +285,7 @@ u8 usb_isochron_read(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout) { - return 0; + return 0; }