[flashrom] [PATCH] Clean up main loop
Stefan Reinauer
stepan at coresystems.de
Tue Nov 17 10:08:03 CET 2009
Carl-Daniel Hailfinger wrote:
> 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 at gmx.net>
>
Acked-by: Stefan Reinauer <stepan at coresystems.de>
> Index: flashrom-mainloop_cleanup/flash.h
> ===================================================================
> --- flashrom-mainloop_cleanup/flash.h (Revision 755)
> +++ flashrom-mainloop_cleanup/flash.h (Arbeitskopie)
> @@ -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);
> Index: flashrom-mainloop_cleanup/flashrom.c
> ===================================================================
> --- flashrom-mainloop_cleanup/flashrom.c (Revision 755)
> +++ flashrom-mainloop_cleanup/flashrom.c (Arbeitskopie)
> @@ -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)
> Index: flashrom-mainloop_cleanup/print_wiki.c
> ===================================================================
> --- flashrom-mainloop_cleanup/print_wiki.c (Revision 755)
> +++ flashrom-mainloop_cleanup/print_wiki.c (Arbeitskopie)
> @@ -535,7 +535,7 @@
> }
> }
>
> -void print_wiki_tables(void)
> +void print_supported_wiki(void)
> {
> time_t t = time(NULL);
>
> Index: flashrom-mainloop_cleanup/print.c
> ===================================================================
> --- flashrom-mainloop_cleanup/print.c (Revision 755)
> +++ flashrom-mainloop_cleanup/print.c (Arbeitskopie)
> @@ -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. */
>
>
>
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.de • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
More information about the flashrom
mailing list