summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@google.com>2021-12-13 12:46:12 +1100
committerEdward O'Callaghan <quasisec@chromium.org>2022-01-27 04:48:13 +0000
commit55aa056c7404e0912ed2e56b682512df7a0cca77 (patch)
tree061ee0a28f94076721f9ae2f5d3a6938bc6c2d97
parent103b139cf76f9fb0934335ed49bddd5762f86843 (diff)
downloadflashrom-55aa056c7404e0912ed2e56b682512df7a0cca77.tar.gz
flashrom-55aa056c7404e0912ed2e56b682512df7a0cca77.tar.bz2
flashrom-55aa056c7404e0912ed2e56b682512df7a0cca77.zip
flashrom.c: Move do_*() helpers into cli_classic.c
These helpers are only used by the CLI logic and so we localise them here to move towards cli_classic being a pure libflashrom user. BUG=b:208132085 TEST=`make` Change-Id: If1112155e2421e0178fd73f847cbb80868387433 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/60070 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
-rw-r--r--cli_classic.c97
-rw-r--r--flash.h4
-rw-r--r--flashrom.c97
3 files changed, 97 insertions, 101 deletions
diff --git a/cli_classic.c b/cli_classic.c
index 3cd78d408..8c337eb22 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -154,6 +154,103 @@ static int parse_wp_range(unsigned int *start, unsigned int *len)
return 0;
}
+static int do_read(struct flashctx *const flash, const char *const filename)
+{
+ int ret;
+
+ unsigned long size = flash->chip->total_size * 1024;
+ unsigned char *buf = calloc(size, sizeof(unsigned char));
+ if (!buf) {
+ msg_gerr("Memory allocation failed!\n");
+ return 1;
+ }
+
+ ret = flashrom_image_read(flash, buf, size);
+ if (ret > 0)
+ goto free_out;
+
+ if (write_buf_to_include_args(flash, buf)) {
+ ret = 1;
+ goto free_out;
+ }
+ if (filename)
+ ret = write_buf_to_file(buf, size, filename);
+
+free_out:
+ free(buf);
+ return ret;
+}
+
+static int do_extract(struct flashctx *const flash)
+{
+ prepare_layout_for_extraction(flash);
+ return do_read(flash, NULL);
+}
+
+static int do_write(struct flashctx *const flash, const char *const filename, const char *const referencefile)
+{
+ const size_t flash_size = flash->chip->total_size * 1024;
+ int ret = 1;
+
+ uint8_t *const newcontents = malloc(flash_size);
+ uint8_t *const refcontents = referencefile ? malloc(flash_size) : NULL;
+
+ if (!newcontents || (referencefile && !refcontents)) {
+ msg_gerr("Out of memory!\n");
+ goto _free_ret;
+ }
+
+ /* Read '-w' argument first... */
+ if (read_buf_from_file(newcontents, flash_size, filename))
+ goto _free_ret;
+ /*
+ * ... then update newcontents with contents from files provided to '-i'
+ * args if needed.
+ */
+ if (read_buf_from_include_args(flash, newcontents))
+ goto _free_ret;
+
+ if (referencefile) {
+ if (read_buf_from_file(refcontents, flash_size, referencefile))
+ goto _free_ret;
+ }
+
+ ret = flashrom_image_write(flash, newcontents, flash_size, refcontents);
+
+_free_ret:
+ free(refcontents);
+ free(newcontents);
+ return ret;
+}
+
+static int do_verify(struct flashctx *const flash, const char *const filename)
+{
+ const size_t flash_size = flash->chip->total_size * 1024;
+ int ret = 1;
+
+ uint8_t *const newcontents = malloc(flash_size);
+ if (!newcontents) {
+ msg_gerr("Out of memory!\n");
+ goto _free_ret;
+ }
+
+ /* Read '-v' argument first... */
+ if (read_buf_from_file(newcontents, flash_size, filename))
+ goto _free_ret;
+ /*
+ * ... then update newcontents with contents from files provided to '-i'
+ * args if needed.
+ */
+ if (read_buf_from_include_args(flash, newcontents))
+ goto _free_ret;
+
+ ret = flashrom_image_verify(flash, newcontents, flash_size);
+
+_free_ret:
+ free(newcontents);
+ return ret;
+}
+
int main(int argc, char *argv[])
{
const struct flashchip *chip = NULL;
diff --git a/flash.h b/flash.h
index 932419e81..09c1c85db 100644
--- a/flash.h
+++ b/flash.h
@@ -356,10 +356,6 @@ int write_buf_to_file(const unsigned char *buf, unsigned long size, const char *
int write_buf_to_include_args(const struct flashctx *const flash, unsigned char *buf);
int prepare_flash_access(struct flashctx *, bool read_it, bool write_it, bool erase_it, bool verify_it);
void finalize_flash_access(struct flashctx *);
-int do_read(struct flashctx *, const char *filename);
-int do_extract(struct flashctx *);
-int do_write(struct flashctx *, const char *const filename, const char *const referencefile);
-int do_verify(struct flashctx *, const char *const filename);
int register_chip_restore(chip_restore_fn_cb_t func, struct flashctx *flash, uint8_t status);
/* Something happened that shouldn't happen, but we can go on. */
diff --git a/flashrom.c b/flashrom.c
index 8287c3141..ac612596e 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -2189,100 +2189,3 @@ _free_ret:
}
/** @} */ /* end flashrom-ops */
-
-int do_read(struct flashctx *const flash, const char *const filename)
-{
- int ret;
-
- unsigned long size = flash->chip->total_size * 1024;
- unsigned char *buf = calloc(size, sizeof(unsigned char));
- if (!buf) {
- msg_gerr("Memory allocation failed!\n");
- return 1;
- }
-
- ret = flashrom_image_read(flash, buf, size);
- if (ret > 0)
- goto free_out;
-
- if (write_buf_to_include_args(flash, buf)) {
- ret = 1;
- goto free_out;
- }
- if (filename)
- ret = write_buf_to_file(buf, size, filename);
-
-free_out:
- free(buf);
- return ret;
-}
-
-int do_extract(struct flashctx *const flash)
-{
- prepare_layout_for_extraction(flash);
- return do_read(flash, NULL);
-}
-
-int do_write(struct flashctx *const flash, const char *const filename, const char *const referencefile)
-{
- const size_t flash_size = flash->chip->total_size * 1024;
- int ret = 1;
-
- uint8_t *const newcontents = malloc(flash_size);
- uint8_t *const refcontents = referencefile ? malloc(flash_size) : NULL;
-
- if (!newcontents || (referencefile && !refcontents)) {
- msg_gerr("Out of memory!\n");
- goto _free_ret;
- }
-
- /* Read '-w' argument first... */
- if (read_buf_from_file(newcontents, flash_size, filename))
- goto _free_ret;
- /*
- * ... then update newcontents with contents from files provided to '-i'
- * args if needed.
- */
- if (read_buf_from_include_args(flash, newcontents))
- goto _free_ret;
-
- if (referencefile) {
- if (read_buf_from_file(refcontents, flash_size, referencefile))
- goto _free_ret;
- }
-
- ret = flashrom_image_write(flash, newcontents, flash_size, refcontents);
-
-_free_ret:
- free(refcontents);
- free(newcontents);
- return ret;
-}
-
-int do_verify(struct flashctx *const flash, const char *const filename)
-{
- const size_t flash_size = flash->chip->total_size * 1024;
- int ret = 1;
-
- uint8_t *const newcontents = malloc(flash_size);
- if (!newcontents) {
- msg_gerr("Out of memory!\n");
- goto _free_ret;
- }
-
- /* Read '-v' argument first... */
- if (read_buf_from_file(newcontents, flash_size, filename))
- goto _free_ret;
- /*
- * ... then update newcontents with contents from files provided to '-i'
- * args if needed.
- */
- if (read_buf_from_include_args(flash, newcontents))
- goto _free_ret;
-
- ret = flashrom_image_verify(flash, newcontents, flash_size);
-
-_free_ret:
- free(newcontents);
- return ret;
-}