From b9e8b898c03a0ee5a6d54ab9f1b2910fe75559ea Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Thu, 3 Feb 2022 11:55:13 +1100 Subject: internal.c: Seperate out get_params() from internal_init() Move all programmer parameter wrangling into its own function. BUG=none TEST=`flashrom -p internal` on dooly DUT. Change-Id: I66bb370eb0466c5c838621762a6ba825c44567d4 Tested-by: Nikolai Artemiev Signed-off-by: Edward O'Callaghan Signed-off-by: Nikolai Artemiev Reviewed-on: https://review.coreboot.org/c/flashrom/+/61578 Reviewed-by: Anastasia Klimchuk Tested-by: build bot (Jenkins) --- internal.c | 50 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 15 deletions(-) (limited to 'internal.c') diff --git a/internal.c b/internal.c index b8e0564ef..995290e7f 100644 --- a/internal.c +++ b/internal.c @@ -174,22 +174,21 @@ static const struct par_master par_master_internal = { .chip_writen = fallback_chip_writen, }; -static int internal_init(void) +static int get_params(int *boardenable, int *boardmismatch, + int *force_laptop, int *not_a_laptop, + char **board_vendor, char **board_model) { - int ret = 0; - int force_laptop = 0; - int not_a_laptop = 0; - char *board_vendor = NULL; - char *board_model = NULL; -#if defined(__i386__) || defined(__x86_64__) - const char *cb_vendor = NULL; - const char *cb_model = NULL; -#endif char *arg; + /* default values. */ + *force_laptop = 0; + *not_a_laptop = 0; + *board_vendor = NULL; + *board_model = NULL; + arg = extract_programmer_param("boardenable"); if (arg && !strcmp(arg,"force")) { - force_boardenable = 1; + *boardenable = 1; } else if (arg && !strlen(arg)) { msg_perr("Missing argument for boardenable.\n"); free(arg); @@ -203,7 +202,7 @@ static int internal_init(void) arg = extract_programmer_param("boardmismatch"); if (arg && !strcmp(arg,"force")) { - force_boardmismatch = 1; + *boardmismatch = 1; } else if (arg && !strlen(arg)) { msg_perr("Missing argument for boardmismatch.\n"); free(arg); @@ -217,9 +216,9 @@ static int internal_init(void) arg = extract_programmer_param("laptop"); if (arg && !strcmp(arg, "force_I_want_a_brick")) - force_laptop = 1; + *force_laptop = 1; else if (arg && !strcmp(arg, "this_is_not_a_laptop")) - not_a_laptop = 1; + *not_a_laptop = 1; else if (arg && !strlen(arg)) { msg_perr("Missing argument for laptop.\n"); free(arg); @@ -233,7 +232,7 @@ static int internal_init(void) arg = extract_programmer_param("mainboard"); if (arg && strlen(arg)) { - if (board_parse_parameter(arg, &board_vendor, &board_model)) { + if (board_parse_parameter(arg, board_vendor, board_model)) { free(arg); return 1; } @@ -244,6 +243,27 @@ static int internal_init(void) } free(arg); + return 0; +} + +static int internal_init(void) +{ + int ret = 0; + int force_laptop; + int not_a_laptop; + char *board_vendor; + char *board_model; +#if defined(__i386__) || defined(__x86_64__) + const char *cb_vendor = NULL; + const char *cb_model = NULL; +#endif + + ret = get_params(&force_boardenable, &force_boardmismatch, + &force_laptop, ¬_a_laptop, + &board_vendor, &board_model); + if (ret) + return ret; + /* Default to Parallel/LPC/FWH flash devices. If a known host controller * is found, the host controller init routine sets the * internal_buses_supported bitfield. -- cgit v1.2.3