Added macro PRINTF_ERROR_RETURN which working with progressbar

This commit is contained in:
Pali Rohár committed 2012-09-23 17:09:27 +02:00
1 parent e4f7cf7bc5
commit e66d87fde0
3 files changed
+8 -5

No files matched your search

+2 -2
View File
@@ -211,7 +211,7 @@ static int send_2nd(usb_dev_handle * udev, struct image * image) {
if ( ret == 0 )
break;
if ( usb_bulk_write(udev, WRITE_DEV, (char *)buffer, ret, WRITE_TIMEOUT) != ret )
ERROR_RETURN("Sending 2nd X-Loader image failed", -1);
PRINTF_ERROR_RETURN("Sending 2nd X-Loader image failed", -1);
readed += ret;
printf_progressbar(readed, image->size);
}
@@ -253,7 +253,7 @@ static int send_secondary(usb_dev_handle * udev, struct image * image) {
if ( ret == 0 )
break;
if ( usb_bulk_write(udev, WRITE_DEV, (char *)buffer, ret, WRITE_TIMEOUT) != ret )
ERROR_RETURN("Sending Secondary image failed", -1);
PRINTF_ERROR_RETURN("Sending Secondary image failed", -1);
readed += ret;
printf_progressbar(readed, image->size);
}
+3 -3
View File
@@ -336,7 +336,7 @@ static int nolo_send_image(struct usb_device_info * dev, struct image * image, i
if ( ret == 0 )
break;
if ( usb_bulk_write(dev->udev, 2, buf, ret, 5000) != ret )
ERROR_RETURN("Sending image failed", -1);
PRINTF_ERROR_RETURN("Sending image failed", -1);
readed += ret;
printf_progressbar(readed, image->size);
}
@@ -420,7 +420,7 @@ int nolo_flash_image(struct usb_device_info * dev, struct image * image) {
while ( state != 4 ) {
if ( nolo_get_string(dev, "cmt:status", buf, sizeof(buf)) < 0 )
ERROR_RETURN("cmt:status failed", -1);
PRINTF_ERROR_RETURN("cmt:status failed", -1);
if ( strncmp(buf, "finished", strlen("finished")) == 0 ) {
@@ -440,7 +440,7 @@ int nolo_flash_image(struct usb_device_info * dev, struct image * image) {
} else {
if ( sscanf(buf, "%s:%llu/%llu", status, &part, &total) != 3 )
ERROR_RETURN("cmt:status unknown", -1);
PRINTF_ERROR_RETURN("cmt:status unknown", -1);
if ( strcmp(status, "program") == 0 && state <= 0 ) {
printf_progressbar(last_total, last_total);
+3
View File
@@ -20,6 +20,8 @@
#ifndef PRINTF_UTILS_H
#define PRINTF_UTILS_H
#include "global.h"
extern int printf_prev;
#define PRINTF_BACK() do { if ( printf_prev ) { printf("\r%-*s\r", printf_prev, ""); printf_prev = 0; } } while (0)
@@ -27,6 +29,7 @@ extern int printf_prev;
#define PRINTF_LINE(...) do { PRINTF_BACK(); PRINTF_ADD(__VA_ARGS__); fflush(stdout); } while (0)
#define PRINTF_END() do { if ( printf_prev ) { printf("\n"); printf_prev = 0; } } while (0)
#define PRINTF_ERROR(...) do { PRINTF_END(); ERROR_INFO(__VA_ARGS__); } while (0)
#define PRINTF_ERROR_RETURN(str, ...) do { PRINTF_ERROR("%s", str); return __VA_ARGS__; } while (0)
void printf_progressbar(unsigned long long part, unsigned long long total);
void printf_and_wait(const char * format, ...);