New version, changed extract_programmer_param() to only take the parameter name. Thanks to Michael Karcher for suggesting to unify the parameter separator across the tree.
Make programmer_param static by converting all users to extract_programmer_param. Programmer parameters can no longer be separated with a colon, they have to be separated with a comma.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: flashrom-programmer_param_static/flash.h =================================================================== --- flashrom-programmer_param_static/flash.h (Revision 1070) +++ flashrom-programmer_param_static/flash.h (Arbeitskopie) @@ -570,7 +570,6 @@ }; extern struct decode_sizes max_rom_decode; extern int programmer_may_write; -extern char *programmer_param; extern unsigned long flashbase; extern int verbose; extern const char * const flashrom_version; @@ -585,6 +584,7 @@ int min(int a, int b); int max(int a, int b); char *extract_param(char **haystack, char *needle, char *delim); +char *extract_programmer_param(char *needle); int check_erased_range(struct flashchip *flash, int start, int len); int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, char *message); int need_erase(uint8_t *have, uint8_t *want, int len, enum write_granularity gran); Index: flashrom-programmer_param_static/it87spi.c =================================================================== --- flashrom-programmer_param_static/it87spi.c (Revision 1070) +++ flashrom-programmer_param_static/it87spi.c (Arbeitskopie) @@ -143,7 +143,7 @@ flashport |= sio_read(port, 0x65); msg_pdbg("Serial flash port 0x%04x\n", flashport); /* Non-default port requested? */ - portpos = extract_param(&programmer_param, "it87spiport", ",:"); + portpos = extract_programmer_param("it87spiport"); if (portpos && strlen(portpos)) { flashport = strtol(portpos, (char **)NULL, 0); msg_pinfo("Forcing serial flash port 0x%04x\n", Index: flashrom-programmer_param_static/buspirate_spi.c =================================================================== --- flashrom-programmer_param_static/buspirate_spi.c (Revision 1070) +++ flashrom-programmer_param_static/buspirate_spi.c (Arbeitskopie) @@ -101,14 +101,14 @@ char *speed = NULL; int spispeed = 0x7;
- dev = extract_param(&programmer_param, "dev", ",:"); + dev = extract_programmer_param("dev"); if (!dev || !strlen(dev)) { msg_perr("No serial device given. Use flashrom -p " "buspirate_spi:dev=/dev/ttyUSB0\n"); return 1; }
- speed = extract_param(&programmer_param, "spispeed", ",:"); + speed = extract_programmer_param("spispeed"); if (speed) { for (i = 0; spispeeds[i].name; i++) if (!strncasecmp(spispeeds[i].name, speed, Index: flashrom-programmer_param_static/pcidev.c =================================================================== --- flashrom-programmer_param_static/pcidev.c (Revision 1070) +++ flashrom-programmer_param_static/pcidev.c (Arbeitskopie) @@ -94,7 +94,7 @@
/* Filter by vendor and also bb:dd.f (if supplied by the user). */ filter.vendor = vendor_id; - pcidev_bdf = extract_param(&programmer_param, "pci", ","); + pcidev_bdf = extract_programmer_param("pci"); if (pcidev_bdf != NULL) { if ((msg = pci_filter_parse_slot(&filter, pcidev_bdf))) { msg_perr("Error: %s\n", msg); Index: flashrom-programmer_param_static/serprog.c =================================================================== --- flashrom-programmer_param_static/serprog.c (Revision 1070) +++ flashrom-programmer_param_static/serprog.c (Arbeitskopie) @@ -306,7 +306,7 @@ int have_device = 0;
/* the parameter is either of format "dev=/dev/device:baud" or "ip=ip:port" */ - device = extract_param(&programmer_param, "dev", ","); + device = extract_programmer_param("dev"); if (device && strlen(device)) { baudport = strstr(device, ":"); if (baudport) { @@ -333,7 +333,7 @@ } free(device);
- device = extract_param(&programmer_param, "ip", ","); + device = extract_programmer_param("ip"); if (have_device && device) { msg_perr("Error: Both host and device specified.\n" "Please use either dev= or ip= but not both.\n"); Index: flashrom-programmer_param_static/ft2232_spi.c =================================================================== --- flashrom-programmer_param_static/ft2232_spi.c (Revision 1070) +++ flashrom-programmer_param_static/ft2232_spi.c (Arbeitskopie) @@ -80,7 +80,7 @@ enum ftdi_interface ft2232_interface = INTERFACE_B; char *arg;
- arg = extract_param(&programmer_param, "type", ",:"); + arg = extract_programmer_param("type"); if (arg) { if (!strcasecmp(arg, "2232H")) ft2232_type = FTDI_FT2232H; @@ -93,7 +93,7 @@ } } free(arg); - arg = extract_param(&programmer_param, "port", ",:"); + arg = extract_programmer_param("port"); if (arg) { switch (toupper(*arg)) { case 'A': Index: flashrom-programmer_param_static/dummyflasher.c =================================================================== --- flashrom-programmer_param_static/dummyflasher.c (Revision 1070) +++ flashrom-programmer_param_static/dummyflasher.c (Arbeitskopie) @@ -37,7 +37,7 @@
msg_pspew("%s\n", __func__);
- bustext = extract_param(&programmer_param, "bus", ",:"); + bustext = extract_programmer_param("bus"); msg_pdbg("Requested buses are: %s\n", bustext ? bustext : "default"); if (!bustext) bustext = strdup("parallel+lpc+fwh+spi"); Index: flashrom-programmer_param_static/chipset_enable.c =================================================================== --- flashrom-programmer_param_static/chipset_enable.c (Revision 1070) +++ flashrom-programmer_param_static/chipset_enable.c (Arbeitskopie) @@ -300,7 +300,7 @@ int max_decode_fwh_decode = 0; int contiguous = 1;
- idsel = extract_param(&programmer_param, "fwh_idsel", ",:"); + idsel = extract_programmer_param("fwh_idsel"); if (idsel && strlen(idsel)) { fwh_conf = (uint32_t)strtoul(idsel, NULL, 0);
Index: flashrom-programmer_param_static/flashrom.c =================================================================== --- flashrom-programmer_param_static/flashrom.c (Revision 1070) +++ flashrom-programmer_param_static/flashrom.c (Arbeitskopie) @@ -89,7 +89,7 @@ ; #endif
-char *programmer_param = NULL; +static char *programmer_param = NULL;
/* Supported buses for the current programmer. */ enum chipbustype buses_supported; @@ -641,6 +641,11 @@ return opt; }
+char *extract_programmer_param(char *needle) +{ + return extract_param(&programmer_param, needle, ","); +} + /* start is an offset to the base address of the flash chip */ int check_erased_range(struct flashchip *flash, int start, int len) { Index: flashrom-programmer_param_static/internal.c =================================================================== --- flashrom-programmer_param_static/internal.c (Revision 1070) +++ flashrom-programmer_param_static/internal.c (Arbeitskopie) @@ -121,7 +121,7 @@ int force_laptop = 0; char *arg;
- arg = extract_param(&programmer_param, "boardenable", ",:"); + arg = extract_programmer_param("boardenable"); if (arg && !strcmp(arg,"force")) { force_boardenable = 1; } else if (arg && !strlen(arg)) { @@ -135,7 +135,7 @@ } free(arg);
- arg = extract_param(&programmer_param, "boardmismatch", ",:"); + arg = extract_programmer_param("boardmismatch"); if (arg && !strcmp(arg,"force")) { force_boardmismatch = 1; } else if (arg && !strlen(arg)) { @@ -149,7 +149,7 @@ } free(arg);
- arg = extract_param(&programmer_param, "laptop", ",:"); + arg = extract_programmer_param("laptop"); if (arg && !strcmp(arg,"force_I_want_a_brick")) { force_laptop = 1; } else if (arg && !strlen(arg)) {