summaryrefslogtreecommitdiffstats
path: root/internal.c
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@google.com>2022-02-03 11:55:13 +1100
committerEdward O'Callaghan <quasisec@chromium.org>2022-02-17 03:42:59 +0000
commitb9e8b898c03a0ee5a6d54ab9f1b2910fe75559ea (patch)
treeeca4ad396a9c03408920711004942ce7b0d6724d /internal.c
parent387631e115a261ddd12e0e84a99d0a3d610abb87 (diff)
downloadflashrom-b9e8b898c03a0ee5a6d54ab9f1b2910fe75559ea.tar.gz
flashrom-b9e8b898c03a0ee5a6d54ab9f1b2910fe75559ea.tar.bz2
flashrom-b9e8b898c03a0ee5a6d54ab9f1b2910fe75559ea.zip
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 <nartemiev@google.com> Signed-off-by: Edward O'Callaghan <quasisec@google.com> Signed-off-by: Nikolai Artemiev <nartemiev@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/61578 Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'internal.c')
-rw-r--r--internal.c50
1 files changed, 35 insertions, 15 deletions
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, &not_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.