Author: hailfinger
Date: 2009-11-17 10:57:34 +0100 (Tue, 17 Nov 2009)
New Revision: 766
Modified:
trunk/flash.h
trunk/flashrom.c
trunk/print.c
trunk/print_wiki.c
Log:
To prepare for libflashrom I wanted to make the main loop more readable
and more correct and factor out stuff which can be useful in
libflashrom.
- Factor out printing of supported devices to print.c.
- Adjust name of wiki printing function to fit the pattern.
- Abort if the user specified --verify and --noverify at the same time.
- Check for extra parameters which don't fit commandline syntax.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Acked-by: Stefan Reinauer <stepan(a)coresystems.de>
Modified: trunk/flash.h
===================================================================
--- trunk/flash.h 2009-11-16 21:22:24 UTC (rev 765)
+++ trunk/flash.h 2009-11-17 09:57:34 UTC (rev 766)
@@ -338,11 +338,9 @@
/* print.c */
char *flashbuses_to_text(enum chipbustype bustype);
-void print_supported_chips(void);
-void print_supported_chipsets(void);
-void print_supported_boards(void);
+void print_supported(void);
void print_supported_pcidevs(struct pcidev_status *devs);
-void print_wiki_tables(void);
+void print_supported_wiki(void);
/* board_enable.c */
void w836xx_ext_enter(uint16_t port);
Modified: trunk/flashrom.c
===================================================================
--- trunk/flashrom.c 2009-11-16 21:22:24 UTC (rev 765)
+++ trunk/flashrom.c 2009-11-17 09:57:34 UTC (rev 766)
@@ -801,14 +801,25 @@
write_it = 1;
break;
case 'v':
+ //FIXME: gracefully handle superfluous -v
if (++operation_specified > 1) {
fprintf(stderr, "More than one operation "
"specified. Aborting.\n");
exit(1);
}
+ if (dont_verify_it) {
+ fprintf(stderr, "--verify and --noverify are"
+ "mutually exclusive. Aborting.\n");
+ exit(1);
+ }
verify_it = 1;
break;
case 'n':
+ if (verify_it) {
+ fprintf(stderr, "--verify and --noverify are"
+ "mutually exclusive. Aborting.\n");
+ exit(1);
+ }
dont_verify_it = 1;
break;
case 'c':
@@ -896,29 +907,13 @@
}
if (list_supported) {
- print_supported_chips();
- print_supported_chipsets();
- print_supported_boards();
- printf("\nSupported PCI devices flashrom can use "
- "as programmer:\n\n");
-#if NIC3COM_SUPPORT == 1
- print_supported_pcidevs(nics_3com);
-#endif
-#if GFXNVIDIA_SUPPORT == 1
- print_supported_pcidevs(gfx_nvidia);
-#endif
-#if DRKAISER_SUPPORT == 1
- print_supported_pcidevs(drkaiser_pcidev);
-#endif
-#if SATASII_SUPPORT == 1
- print_supported_pcidevs(satas_sii);
-#endif
+ print_supported();
exit(0);
}
#if PRINT_WIKI_SUPPORT == 1
if (list_supported_wiki) {
- print_wiki_tables();
+ print_supported_wiki();
exit(0);
}
#endif
@@ -930,6 +925,11 @@
if (optind < argc)
filename = argv[optind++];
+
+ if (optind < argc) {
+ printf("Error: Extra parameter found.\n");
+ usage(argv[0]);
+ }
if (programmer_init()) {
fprintf(stderr, "Error: Programmer initialization failed.\n");
@@ -1146,7 +1146,7 @@
if (write_it)
programmer_delay(1000*1000);
ret = verify_flash(flash, buf);
- /* If we tried to write, and now we don't properly verify, we
+ /* If we tried to write, and verification now fails, we
* might have an emergency situation.
*/
if (ret && write_it)
Modified: trunk/print.c
===================================================================
--- trunk/print.c 2009-11-16 21:22:24 UTC (rev 765)
+++ trunk/print.c 2009-11-17 09:57:34 UTC (rev 766)
@@ -222,7 +222,28 @@
"Laptops which have been verified to NOT work yet");
}
+void print_supported(void)
+{
+ print_supported_chips();
+ print_supported_chipsets();
+ print_supported_boards();
+ printf("\nSupported PCI devices flashrom can use "
+ "as programmer:\n\n");
+#if NIC3COM_SUPPORT == 1
+ print_supported_pcidevs(nics_3com);
+#endif
+#if GFXNVIDIA_SUPPORT == 1
+ print_supported_pcidevs(gfx_nvidia);
+#endif
+#if DRKAISER_SUPPORT == 1
+ print_supported_pcidevs(drkaiser_pcidev);
+#endif
+#if SATASII_SUPPORT == 1
+ print_supported_pcidevs(satas_sii);
+#endif
+}
+
/* Please keep this list alphabetically ordered by vendor/board. */
const struct board_info boards_ok[] = {
/* Verified working boards that don't need write-enables. */
Modified: trunk/print_wiki.c
===================================================================
--- trunk/print_wiki.c 2009-11-16 21:22:24 UTC (rev 765)
+++ trunk/print_wiki.c 2009-11-17 09:57:34 UTC (rev 766)
@@ -539,7 +539,7 @@
}
}
-void print_wiki_tables(void)
+void print_supported_wiki(void)
{
time_t t = time(NULL);