summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPali Rohár <pali.rohar@gmail.com>2012-09-22 21:23:56 +0200
committerPali Rohár <pali.rohar@gmail.com>2012-09-22 21:23:56 +0200
commitd636ef78dda89b5913475b10dbfa2cb2e2cb9c01 (patch)
tree7c81f5fcc063600a80879331c9d030b25324e79f /src
parent0d6b32c371c214277973d7516c6aef3ceeed344b (diff)
download0xFFFF-d636ef78dda89b5913475b10dbfa2cb2e2cb9c01.tar.bz2
hwrev is int16_t
Diffstat (limited to 'src')
-rw-r--r--src/main.c9
-rw-r--r--src/usb-device.c3
-rw-r--r--src/usb-device.h2
3 files changed, 6 insertions, 8 deletions
diff --git a/src/main.c b/src/main.c
index d193038..7322857 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
};