فهرست منبع

usb: Use upper-case hex for serial string

Keir Fraser 5 سال پیش
والد
کامیت
8138aed409
5فایلهای تغییر یافته به همراه4 افزوده شده و 23 حذف شده
  1. 0 2
      inc/util.h
  2. 1 1
      src/usb/config.c
  3. 2 1
      src/usb/core.c
  4. 1 0
      src/usb/defs.h
  5. 0 19
      src/util.c

+ 0 - 2
inc/util.h

@@ -65,8 +65,6 @@ int vsnprintf(char *str, size_t size, const char *format, va_list ap)
 int snprintf(char *str, size_t size, const char *format, ...)
     __attribute__ ((format (printf, 3, 4)));
 
-void base64(char *dest, const char *src, size_t bits);
-
 #define le16toh(x) (x)
 #define le32toh(x) (x)
 #define htole16(x) (x)

+ 1 - 1
src/usb/config.c

@@ -97,7 +97,7 @@ const uint8_t config_descriptor[] aligned(2) = {
     0x00 /* 6 bInterval */
 };
 
-static char serial_string[32];
+char serial_string[32];
 char * const string_descriptors[] = {
     "\x09\x04", /* LANGID: US English */
     "Keir Fraser",

+ 2 - 1
src/usb/core.c

@@ -13,7 +13,8 @@ struct ep0 ep0;
 
 void usb_init(void)
 {
-    base64(string_descriptors[3], (const void *)ser_id, 96);
+    snprintf(serial_string, sizeof(serial_string),
+             "GW%08X%08X%08X", ser_id[0], ser_id[1], ser_id[2]);
     hw_usb_init();
 }
 

+ 1 - 0
src/usb/defs.h

@@ -48,6 +48,7 @@ extern const uint8_t config_descriptor[];
 
 #define NR_STRING_DESC 4
 extern char * const string_descriptors[];
+extern char serial_string[32];
 
 extern struct ep0 {
     struct usb_device_request req;

+ 0 - 19
src/util.c

@@ -142,25 +142,6 @@ char *strcpy(char *dest, const char *src)
     return dest;
 }
 
-void base64(char *dest, const char *src, size_t bits)
-{
-    static const char base64[] =
-        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-    char *p = dest;
-    unsigned int i, j, x;
-
-    for (i = 0; i < bits; ) {
-        x = 0;
-        for (j = 0; j < 6; j++, i++) {
-            x <<= 1;
-            x |= (src[i>>3] >> (i&7)) & 1;
-        }
-        *p++ = base64[x];
-    }
-    *p++ = '\0';
-}
-
 /*
  * Local variables:
  * mode: C