summaryrefslogtreecommitdiffstats
path: root/cli_classic.c
diff options
context:
space:
mode:
authorEdward O'Callaghan <quasisec@google.com>2022-08-12 11:30:27 +1000
committerEdward O'Callaghan <quasisec@chromium.org>2022-08-25 00:26:54 +0000
commit16744f9e96d0f1e203d4a67ad2bfd0c50e3c437a (patch)
treec314ec3608c2a58ad1b273cc7f56b108ff471b31 /cli_classic.c
parentb2b154802ba50fc218b54a40c9498476f368b950 (diff)
downloadflashrom-16744f9e96d0f1e203d4a67ad2bfd0c50e3c437a.tar.gz
flashrom-16744f9e96d0f1e203d4a67ad2bfd0c50e3c437a.tar.bz2
flashrom-16744f9e96d0f1e203d4a67ad2bfd0c50e3c437a.zip
flashrom.c: Move write_buf_to_include_args() to cli_classic.c
The write_buf_to_include_args() helper is only ever used by the cli frontend therefore make it static local to the user. BUG=b:242246291 TEST=builds Change-Id: Ia16bf4b8e46a011aa45f98089d43904b077833a0 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/66648 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Evan Benn <evanbenn@google.com> Reviewed-by: Sam McNally <sammc@google.com> Reviewed-by: Thomas Heijligen <src@posteo.de>
Diffstat (limited to 'cli_classic.c')
-rw-r--r--cli_classic.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/cli_classic.c b/cli_classic.c
index 267f3c611..bac31d1c1 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -392,6 +392,33 @@ static int read_buf_from_include_args(const struct flashrom_layout *const layout
return 0;
}
+/**
+ * @brief Writes content from buffer to one or more files.
+ *
+ * Writes content from supplied buffer to files. If a filename is specified for
+ * individual regions using the partial read syntax ('-i <region>[:<filename>]')
+ * then this will write files using data from the corresponding region in the
+ * supplied buffer.
+ *
+ * @param layout The layout to be used.
+ * @param buf Chip-sized buffer to read data from
+ * @return 0 on success
+ */
+static int write_buf_to_include_args(const struct flashrom_layout *const layout, unsigned char *buf)
+{
+ const struct romentry *entry = NULL;
+
+ while ((entry = layout_next_included(layout, entry))) {
+ if (!entry->file)
+ continue;
+ if (write_buf_to_file(buf + entry->start,
+ entry->end - entry->start + 1, entry->file))
+ return 1;
+ }
+
+ return 0;
+}
+
static int do_read(struct flashctx *const flash, const char *const filename)
{
int ret;