*/
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;
}
*/
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;
}
/**
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;
}
*/
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 1
+ 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 0
+ //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);
+ buf[7]=(char)(length >> 8);
+#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;
}
*/
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;
}
/**
*/
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;
}
u8 usb_interrupt_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout)
{
- return 0;
+ return 0;
}
/**
u8 usb_interrupt_read(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout)
{
- return 0;
+ return 0;
}
u8 usb_isochron_write(usb_device *dev, u8 ep, char *buf, u8 size, u8 timeout)
{
- return 0;
+ return 0;
}
/**
{
- return 0;
+ return 0;
}