Guest User

Untitled

a guest
Sep 11th, 2014
212
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/utils/hwstub/stub/main.c b/utils/hwstub/stub/main.c
  2. index 8139615..3ed0e35 100644
  3. --- a/utils/hwstub/stub/main.c
  4. +++ b/utils/hwstub/stub/main.c
  5. @@ -86,7 +86,7 @@ static struct usb_interface_descriptor interface_descriptor =
  6.      .bDescriptorType    = USB_DT_INTERFACE,
  7.      .bInterfaceNumber   = USB_HWSTUB_INTF,
  8.      .bAlternateSetting  = 0,
  9. -    .bNumEndpoints      = 0,
  10. +    .bNumEndpoints      = 2,
  11.      .bInterfaceClass    = HWSTUB_CLASS,
  12.      .bInterfaceSubClass = HWSTUB_SUBCLASS,
  13.      .bInterfaceProtocol = HWSTUB_PROTOCOL,
  14. @@ -124,6 +124,26 @@ static const struct usb_string_descriptor lang_descriptor =
  15.      {0x0409} /* LANGID US English */
  16.  };                                                                                                                                                                                                                                                                            
  17.                                                                                                                                                                                                                                                                                
  18. +static struct usb_endpoint_descriptor bulkin_descriptor =                                                                                                                                                                                                                    
  19. +{                                                                                                                                                                                                                                                                            
  20. +    .bLength          = sizeof(struct usb_endpoint_descriptor),                                                                                                                                                                                                              
  21. +    .bDescriptorType  = USB_DT_ENDPOINT,                                                                                                                                                                                                                                      
  22. +    .bEndpointAddress = 0,                                                                                                                                                                                                                                                    
  23. +    .bmAttributes     = USB_ENDPOINT_XFER_BULK,                                                                                                                                                                                                                              
  24. +    .wMaxPacketSize   = 0,                                                                                                                                                                                                                                                    
  25. +    .bInterval        = 0                                                                                                                                                                                                                                                    
  26. +};                                                                                                                                                                                                                                                                            
  27. +                                                                                                                                                                                                                                                                              
  28. +static struct usb_endpoint_descriptor bulkout_descriptor =                                                                                                                                                                                                                    
  29. +{                                                                                                                                                                                                                                                                            
  30. +    .bLength          = sizeof(struct usb_endpoint_descriptor),                                                                                                                                                                                                              
  31. +    .bDescriptorType  = USB_DT_ENDPOINT,                                                                                                                                                                                                                                      
  32. +    .bEndpointAddress = 0,                                                                                                                                                                                                                                                    
  33. +    .bmAttributes     = USB_ENDPOINT_XFER_BULK,                                                                                                                                                                                                                              
  34. +    .wMaxPacketSize   = 0,                                                                                                                                                                                                                                                    
  35. +    .bInterval        = 0                                                                                                                                                                                                                                                    
  36. +};                                                                                                                                                                                                                                                                            
  37. +                                                                                                                                                                                                                                                                              
  38.  static struct hwstub_version_desc_t version_descriptor =                                                                                                                                                                                                                      
  39.  {                                                                                                                                                                                                                                                                            
  40.      sizeof(struct hwstub_version_desc_t),                                                                                                                                                                                                                                    
  41. @@ -197,6 +217,14 @@ static void handle_std_dev_desc(struct usb_ctrlrequest *req)                                                                                                                                                                                              
  42.              memcpy(usb_buffer + size, (void *)&interface_descriptor,                                                                                                                                                                                                          
  43.                  sizeof(interface_descriptor));                                                                                                                                                                                                                                
  44.              size += sizeof(interface_descriptor);                                                                                                                                                                                                                            
  45. +            /* bulk in descriptor */                                                                                                                                                                                                                                          
  46. +            memcpy(usb_buffer + size, (void *)&bulkin_descriptor,                                                                                                                                                                                                            
  47. +                sizeof(bulkin_descriptor));                                                                                                                                                                                                                                  
  48. +            size += sizeof(bulkin_descriptor);                                                                                                                                                                                                                                
  49. +            /* bulk out descriptor */                                                                                                                                                                                                                                        
  50. +            memcpy(usb_buffer + size, (void *)&bulkout_descriptor,                                                                                                                                                                                                            
  51. +                sizeof(bulkout_descriptor));                                                                                                                                                                                                                                  
  52. +            size += sizeof(bulkout_descriptor);                                                                                                                                                                                                                              
  53.              /* hwstub version */                                                                                                                                                                                                                                              
  54.              memcpy(usb_buffer + size, (void *)&version_descriptor,                                                                                                                                                                                                            
  55.                  sizeof(version_descriptor));                                                                                                                                                                                                                                  
  56. @@ -486,6 +514,11 @@ void main(uint32_t arg)                                                                                                                                                                                                                                  
  57.      target_init();                                                                                                                                                                                                                                                            
  58.      usb_drv_init();                                                                                                                                                                                                                                                          
  59.                                                                                                                                                                                                                                                                                
  60. +    bulkin_descriptor.wMaxPacketSize = usb_drv_max_packet_size();
  61. +    bulkin_descriptor.bEndpointAddress = usb_drv_request_endpoint(USB_ENDPOINT_XFER_BULK, USB_DIR_IN);
  62. +    bulkout_descriptor.wMaxPacketSize = usb_drv_max_packet_size();
  63. +    bulkout_descriptor.bEndpointAddress = usb_drv_request_endpoint(USB_ENDPOINT_XFER_BULK, USB_DIR_OUT);
  64. +
  65.      while(!g_exit)
  66.      {
  67.          struct usb_ctrlrequest req;
RAW Paste Data