diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2012-09-22 21:23:56 +0200 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2012-09-22 21:23:56 +0200 |
commit | d636ef78dda89b5913475b10dbfa2cb2e2cb9c01 (patch) | |
tree | 7c81f5fcc063600a80879331c9d030b25324e79f | |
parent | 0d6b32c371c214277973d7516c6aef3ceeed344b (diff) | |
download | 0xFFFF-d636ef78dda89b5913475b10dbfa2cb2e2cb9c01.tar.bz2 |
hwrev is int16_t
-rw-r--r-- | src/main.c | 9 | ||||
-rw-r--r-- | src/usb-device.c | 3 | ||||
-rw-r--r-- | src/usb-device.h | 2 |
3 files changed, 6 insertions, 8 deletions
@@ -288,13 +288,12 @@ void filter_images_by_device(enum device device, struct image_list ** image_firs } -void filter_images_by_hwrev(const char * hwrev, struct image_list ** image_first) { +void filter_images_by_hwrev(int16_t hwrev, struct image_list ** image_first) { struct image_list * image_ptr = *image_first; - int num = atoi(hwrev); while ( image_ptr ) { struct image_list * next = image_ptr->next; - if ( ! image_hwrev_is_valid(image_ptr->image, num) ) { + if ( ! image_hwrev_is_valid(image_ptr->image, hwrev) ) { image_list_del(image_ptr); if ( image_ptr == *image_first ) *image_first = next; @@ -716,7 +715,7 @@ int main(int argc, char **argv) { /* filter images by hwrev */ if ( filter_hwrev ) - filter_images_by_hwrev(filter_hwrev_arg, &image_first); + filter_images_by_hwrev(atoi(filter_hwrev_arg), &image_first); /* reorder images for flashing (first x-loader, second secondary) */ /* set 2nd and secondary images for cold-flashing */ @@ -964,7 +963,7 @@ int main(int argc, char **argv) { printf("HW revision: %s\n", buf[0] ? buf : "(not detected)"); if ( buf[0] ) - usb_dev->detected_hwrev = strdup(buf); + usb_dev->detected_hwrev = atoi(buf); buf[0] = 0; nolo_get_nolo_ver(usb_dev, buf, sizeof(buf)); diff --git a/src/usb-device.c b/src/usb-device.c index 9042b63..bdba346 100644 --- a/src/usb-device.c +++ b/src/usb-device.c @@ -160,7 +160,7 @@ static struct usb_device_info * usb_device_is_valid(struct usb_device * dev) { } ret->detected_device = DEVICE_UNKNOWN; - ret->detected_hwrev = NULL; + ret->detected_hwrev = -1; ret->flash_device = &usb_devices[i]; ret->udev = udev; break; @@ -250,7 +250,6 @@ struct usb_device_info * usb_open_and_wait_for_device(void) { void usb_close_device(struct usb_device_info * dev) { usb_close(dev->udev); - free(dev->detected_hwrev); free(dev); } diff --git a/src/usb-device.h b/src/usb-device.h index 2c4894c..1eb7990 100644 --- a/src/usb-device.h +++ b/src/usb-device.h @@ -44,7 +44,7 @@ struct usb_flash_device { struct usb_device_info { enum device detected_device; - char * detected_hwrev; + int16_t detected_hwrev; const struct usb_flash_device * flash_device; usb_dev_handle * udev; }; |