ULINK driver: Remove typedefs in OpenULINK firmware USB descriptor structures
authorMartin Schmölzer <martin.schmoelzer@student.tuwien.ac.at>
Tue, 30 Aug 2011 22:20:35 +0000 (00:20 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Thu, 1 Sep 2011 05:02:38 +0000 (07:02 +0200)
Signed-off-by: Martin Schmölzer <martin.schmoelzer@student.tuwien.ac.at>
src/jtag/drivers/OpenULINK/include/usb.h
src/jtag/drivers/OpenULINK/src/usb.c

index f70819eab413788d45631a11263998e9b2336ff8..a507c9e4be891795ca6a746f8dcefd74e68f45b1 100644 (file)
@@ -48,7 +48,7 @@
 #define STR_DESCR(len,...) { len*2+2, DESCRIPTOR_TYPE_STRING, { __VA_ARGS__ } }
 
 /** USB Device Descriptor. See USB 1.1 spec, pp. 196 - 198 */
-typedef struct {
+struct usb_device_descriptor {
   u8  bLength;             ///< Size of this descriptor in bytes.
   u8  bDescriptorType;     ///< DEVICE Descriptor Type.
   u16 bcdUSB;              ///< USB specification release number (BCD).
@@ -63,10 +63,10 @@ typedef struct {
   u8  iProduct;            ///< Index of product string descriptor.
   u8  iSerialNumber;       ///< Index of string descriptor containing serial #.
   u8  bNumConfigurations;  ///< Number of possible configurations.
-} usb_device_descriptor_t;
+};
 
 /** USB Configuration Descriptor. See USB 1.1 spec, pp. 199 - 200 */
-typedef struct {
+struct usb_config_descriptor {
   u8  bLength;             ///< Size of this descriptor in bytes.
   u8  bDescriptorType;     ///< CONFIGURATION descriptor type.
   u16 wTotalLength;        ///< Combined total length of all descriptors.
@@ -75,10 +75,10 @@ typedef struct {
   u8  iConfiguration;      ///< Index of configuration string descriptor.
   u8  bmAttributes;        ///< Configuration characteristics.
   u8  MaxPower;            ///< Maximum power consumption in 2 mA units.
-} usb_config_descriptor_t;
+};
 
 /** USB Interface Descriptor. See USB 1.1 spec, pp. 201 - 203 */
-typedef struct {
+struct usb_interface_descriptor {
   u8  bLength;             ///< Size of this descriptor in bytes.
   u8  bDescriptorType;     ///< INTERFACE descriptor type.
   u8  bInterfaceNumber;    ///< Interface number.
@@ -88,48 +88,48 @@ typedef struct {
   u8  bInterfaceSubclass;  ///< Subclass code.
   u8  bInterfaceProtocol;  ///< Protocol code.
   u8  iInterface;          ///< Index of interface string descriptor.
-} usb_interface_descriptor_t;
+};
 
 /** USB Endpoint Descriptor. See USB 1.1 spec, pp. 203 - 204 */
-typedef struct {
+struct usb_endpoint_descriptor {
   u8  bLength;             ///< Size of this descriptor in bytes.
   u8  bDescriptorType;     ///< ENDPOINT descriptor type.
   u8  bEndpointAddress;    ///< Endpoint Address: USB 1.1 spec, table 9-10.
   u8  bmAttributes;        ///< Endpoint Attributes: USB 1.1 spec, table 9-10.
   u16 wMaxPacketSize;      ///< Maximum packet size for this endpoint.
   u8  bInterval;           ///< Polling interval (in ms) for this endpoint.
-} usb_endpoint_descriptor_t;
+};
 
 /** USB Language Descriptor. See USB 1.1 spec, pp. 204 - 205 */
-typedef struct {
+struct usb_language_descriptor {
   u8  bLength;             ///< Size of this descriptor in bytes.
   u8  bDescriptorType;     ///< STRING descriptor type.
   u16 wLANGID[];           ///< LANGID codes.
-} usb_language_descriptor_t;
+};
 
 /** USB String Descriptor. See USB 1.1 spec, pp. 204 - 205 */
-typedef struct {
+struct usb_string_descriptor {
   u8  bLength;             ///< Size of this descriptor in bytes.
   u8  bDescriptorType;     ///< STRING descriptor type.
   u16 bString[];           ///< UNICODE encoded string.
-} usb_string_descriptor_t;
+};
 
 /********************** USB Control Endpoint 0 related *********************/
 
 /** USB Control Setup Data. See USB 1.1 spec, pp. 183 - 185 */
-typedef struct {
+struct setup_data {
   u8  bmRequestType;       ///< Characteristics of a request.
   u8  bRequest;            ///< Specific request.
   u16 wValue;              ///< Field that varies according to request.
   u16 wIndex;              ///< Field that varies according to request.
   u16 wLength;             ///< Number of bytes to transfer in data stage.
-} setup_data_t;
+};
 
 /* External declarations for variables that need to be accessed outside of
  * the USB module */
 extern volatile bool EP2_out;
 extern volatile bool EP2_in;
-extern volatile __xdata __at 0x7FE8 setup_data_t setup_data;
+extern volatile __xdata __at 0x7FE8 struct setup_data setup_data;
 
 /*
  * USB Request Types (bmRequestType): See USB 1.1 spec, page 183, table 9-2
@@ -225,7 +225,7 @@ extern volatile __xdata __at 0x7FE8 setup_data_t setup_data;
 /************************** EZ-USB specific stuff **************************/
 
 /** USB Interrupts. See AN2131-TRM, page 9-4 for details */
-typedef enum {
+enum usb_isr {
   SUDAV_ISR = 13,
   SOF_ISR,
   SUTOK_ISR,
@@ -248,7 +248,7 @@ typedef enum {
   EP6OUT_ISR,
   EP7IN_ISR,
   EP7OUT_ISR
-} USB_ISR;
+};
 
 /*************************** Function Prototypes ***************************/
 
index 042addf62508dcb4bf98b4e2357a31a3f9ca98de..aa001f9f7574f41446b942ed1b3cd3ae18c2a880 100644 (file)
@@ -36,7 +36,7 @@
 volatile bool EP2_out = 0;
 volatile bool EP2_in  = 0;
 
-volatile __xdata __at 0x7FE8 setup_data_t setup_data;
+volatile __xdata __at 0x7FE8 struct setup_data setup_data;
 
 /* Define number of endpoints (except Control Endpoint 0) in a central place.
  * Be sure to include the neccessary endpoint descriptors! */
@@ -56,8 +56,8 @@ volatile __xdata __at 0x7FE8 setup_data_t setup_data;
  * old-fashioned way...
  */
 
-__code usb_device_descriptor_t device_descriptor = {
-  /* .bLength = */             sizeof(usb_device_descriptor_t),
+__code struct usb_device_descriptor device_descriptor = {
+  /* .bLength = */             sizeof(struct usb_device_descriptor),
   /* .bDescriptorType = */     DESCRIPTOR_TYPE_DEVICE,
   /* .bcdUSB = */              0x0110, /* BCD: 01.00 (Version 1.0 USB spec) */
   /* .bDeviceClass = */        0xFF,   /* 0xFF = vendor-specific */
@@ -75,12 +75,13 @@ __code usb_device_descriptor_t device_descriptor = {
 
 /* WARNING: ALL config, interface and endpoint descriptors MUST be adjacent! */
 
-__code usb_config_descriptor_t config_descriptor = {
-  /* .bLength = */             sizeof(usb_config_descriptor_t),
+__code struct usb_config_descriptor config_descriptor = {
+  /* .bLength = */             sizeof(struct usb_config_descriptor),
   /* .bDescriptorType = */     DESCRIPTOR_TYPE_CONFIGURATION,
-  /* .wTotalLength = */        sizeof(usb_config_descriptor_t) +
-                               sizeof(usb_interface_descriptor_t) + 
-                               NUM_ENDPOINTS * sizeof(usb_endpoint_descriptor_t),
+  /* .wTotalLength = */        sizeof(struct usb_config_descriptor) +
+                               sizeof(struct usb_interface_descriptor) +
+                               (NUM_ENDPOINTS *
+                               sizeof(struct usb_endpoint_descriptor)),
   /* .bNumInterfaces = */      1,
   /* .bConfigurationValue = */ 1,
   /* .iConfiguration = */      4,     /* String describing this configuration */
@@ -88,8 +89,8 @@ __code usb_config_descriptor_t config_descriptor = {
   /* .MaxPower = */            50     /* 100 mA */
 };
 
-__code usb_interface_descriptor_t interface_descriptor00 = {
-  /* .bLength = */             sizeof(usb_interface_descriptor_t),
+__code struct usb_interface_descriptor interface_descriptor00 = {
+  /* .bLength = */             sizeof(struct usb_interface_descriptor),
   /* .bDescriptorType = */     DESCRIPTOR_TYPE_INTERFACE,
   /* .bInterfaceNumber = */    0,
   /* .bAlternateSetting = */   0,
@@ -100,8 +101,8 @@ __code usb_interface_descriptor_t interface_descriptor00 = {
   /* .iInterface = */          0
 };
 
-__code usb_endpoint_descriptor_t Bulk_EP2_IN_Endpoint_Descriptor = {
-  /* .bLength = */             sizeof(usb_endpoint_descriptor_t),
+__code struct usb_endpoint_descriptor Bulk_EP2_IN_Endpoint_Descriptor = {
+  /* .bLength = */             sizeof(struct usb_endpoint_descriptor),
   /* .bDescriptorType = */     0x05,
   /* .bEndpointAddress = */    2 | USB_DIR_IN,
   /* .bmAttributes = */        0x02,
@@ -109,8 +110,8 @@ __code usb_endpoint_descriptor_t Bulk_EP2_IN_Endpoint_Descriptor = {
   /* .bInterval = */           0
 };
 
-__code usb_endpoint_descriptor_t Bulk_EP2_OUT_Endpoint_Descriptor = {
-  /* .bLength = */             sizeof(usb_endpoint_descriptor_t),
+__code struct usb_endpoint_descriptor Bulk_EP2_OUT_Endpoint_Descriptor = {
+  /* .bLength = */             sizeof(struct usb_endpoint_descriptor),
   /* .bDescriptorType = */     0x05,
   /* .bEndpointAddress = */    2 | USB_DIR_OUT,
   /* .bmAttributes = */        0x02,
@@ -118,19 +119,26 @@ __code usb_endpoint_descriptor_t Bulk_EP2_OUT_Endpoint_Descriptor = {
   /* .bInterval = */           0
 };
 
-__code usb_language_descriptor_t language_descriptor = {
+__code struct usb_language_descriptor language_descriptor = {
   /* .bLength =  */            4,
   /* .bDescriptorType = */     DESCRIPTOR_TYPE_STRING,
   /* .wLANGID = */             {0x0409 /* US English */}
 };
 
-__code usb_string_descriptor_t strManufacturer = STR_DESCR(9,'O','p','e','n','U','L','I','N','K');
-__code usb_string_descriptor_t strProduct      = STR_DESCR(9,'O','p','e','n','U','L','I','N','K');
-__code usb_string_descriptor_t strSerialNumber = STR_DESCR(6, '0','0','0','0','0','1');
-__code usb_string_descriptor_t strConfigDescr  = STR_DESCR(12, 'J','T','A','G',' ','A','d','a','p','t','e','r');
+__code struct usb_string_descriptor strManufacturer =
+    STR_DESCR(9,'O','p','e','n','U','L','I','N','K');
+
+__code struct usb_string_descriptor strProduct      =
+    STR_DESCR(9,'O','p','e','n','U','L','I','N','K');
+
+__code struct usb_string_descriptor strSerialNumber =
+    STR_DESCR(6, '0','0','0','0','0','1');
+
+__code struct usb_string_descriptor strConfigDescr  =
+    STR_DESCR(12, 'J','T','A','G',' ','A','d','a','p','t','e','r');
 
 /* Table containing pointers to string descriptors */
-__code usb_string_descriptor_t* __code en_string_descriptors[4] = {
+__code struct usb_string_descriptor* __code en_string_descriptors[4] = {
   &strManufacturer,
   &strProduct,
   &strSerialNumber,