--
Uwe Bonnes bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From 1b4b24e830b2eab1e6da6088c6678bf6b938add8 Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 20 Jun 2011 15:57:58 +0200
Subject: 1.0/examples/eeprom.c: Clean up in error pathes
---
examples/eeprom.c | 37 ++++++++++++++++++++++++-------------
1 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/examples/eeprom.c b/examples/eeprom.c
index 1a11e3b..022cf03 100644
--- a/examples/eeprom.c
+++ b/examples/eeprom.c
@@ -26,6 +26,7 @@ int main(int argc, char **argv)
int do_write = 0;
int size;
int value;
+ int retval = 0;
if ((ftdi = ftdi_new()) == 0)
{
@@ -74,7 +75,8 @@ int main(int argc, char **argv)
"product description\n");
fprintf(stderr, "\t-S <string? Search for device with given "
"serial number\n");
- exit(-1);
+ retval = -1;
+ goto done;
}
}
@@ -94,7 +96,8 @@ int main(int argc, char **argv)
fprintf(stderr, "unable to open ftdi device: %d (%s)\n",
f, ftdi_get_error_string(ftdi));
- exit(-1);
+ retval = -1;
+ goto done;
}
if (erase)
@@ -104,7 +107,8 @@ int main(int argc, char **argv)
{
fprintf(stderr, "Erase failed: %s",
ftdi_get_error_string(ftdi));
- return -2;
+ retval = -2;
+ goto done;
}
if (ftdi_get_eeprom_value(ftdi, CHIP_TYPE, & value) <0)
{
@@ -117,12 +121,13 @@ int main(int argc, char **argv)
fprintf(stderr, "Internal EEPROM\n");
else
fprintf(stderr, "Found 93x%02x\n", value);
- return 0;
+ retval = 0;
+ goto done;
}
if (use_defaults)
{
- ftdi_eeprom_initdefaults(ftdi, "IKDA", "FTDIJTAG", "0001");
+ ftdi_eeprom_initdefaults(ftdi, NULL, NULL, NULL);
if (ftdi_set_eeprom_value(ftdi, MAX_POWER, 500) <0)
{
fprintf(stderr, "ftdi_set_eeprom_value: %d (%s)\n",
@@ -139,12 +144,13 @@ int main(int argc, char **argv)
{
fprintf(stderr, "ftdi_eeprom_build: %d (%s)\n",
f, ftdi_get_error_string(ftdi));
- exit(-1);
+ retval = -1;
+ goto done;
}
}
else if (do_write)
{
- ftdi_eeprom_initdefaults(ftdi, "IKDA", "FTDIJTAG", "0001");
+ ftdi_eeprom_initdefaults(ftdi, NULL, NULL, NULL);
f = ftdi_erase_eeprom(ftdi);
if (ftdi_set_eeprom_value(ftdi, MAX_POWER, 500) <0)
{
@@ -168,13 +174,15 @@ int main(int argc, char **argv)
{
fprintf(stderr, "Erase failed: %s",
ftdi_get_error_string(ftdi));
- return -2;
+ retval = -2;
+ goto done;
}
f = ftdi_write_eeprom(ftdi);
{
fprintf(stderr, "ftdi_eeprom_decode: %d (%s)\n",
f, ftdi_get_error_string(ftdi));
- exit(-1);
+ retval = 1;
+ goto done;
}
}
f = ftdi_read_eeprom(ftdi);
@@ -182,7 +190,8 @@ int main(int argc, char **argv)
{
fprintf(stderr, "ftdi_read_eeprom: %d (%s)\n",
f, ftdi_get_error_string(ftdi));
- exit(-1);
+ retval = -1;
+ goto done;
}
@@ -190,7 +199,8 @@ int main(int argc, char **argv)
if (value <0)
{
fprintf(stderr, "No EEPROM found\n");
- return -1;
+ retval = -1;
+ goto done;
}
fprintf(stderr, "Chip type %d ftdi_eeprom_size: %d\n", ftdi->type, value);
@@ -222,10 +232,11 @@ int main(int argc, char **argv)
{
fprintf(stderr, "ftdi_eeprom_decode: %d (%s)\n",
f, ftdi_get_error_string(ftdi));
- exit(-1);
+ retval = -1;
}
+done:
ftdi_usb_close(ftdi);
ftdi_free(ftdi);
- return 0;
+ return retval;
}
--
1.7.3.4
--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx
|