Commit f5292058 authored by Carl-Daniel Hailfinger's avatar Carl-Daniel Hailfinger
Browse files

Refactor main loop in preparation of libflashrom


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.

Corresponding to flashrom svn r766.
Signed-off-by: default avatarCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: default avatarStefan Reinauer <stepan@coresystems.de>
parent 6161ff18
......@@ -338,11 +338,9 @@ uint32_t pcidev_init(uint16_t vendor_id, uint32_t bar, struct pcidev_status *dev
/* 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);
......
......@@ -801,14 +801,25 @@ int main(int argc, char *argv[])
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 @@ int main(int argc, char *argv[])
}
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 @@ int main(int argc, char *argv[])
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 @@ int main(int argc, char *argv[])
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)
......
......@@ -222,6 +222,27 @@ void print_supported_boards(void)
"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[] = {
......
......@@ -539,7 +539,7 @@ void print_supported_pcidevs_wiki(struct pcidev_status *devs)
}
}
void print_wiki_tables(void)
void print_supported_wiki(void)
{
time_t t = time(NULL);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment