diff options
| -rw-r--r-- | util/nvmutil/nvmutil.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index 620fe00e..7cd300db 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -120,6 +120,7 @@ static void write_mac_part(size_t partnum); static void cmd_helper_dump(void); static void print_mac_from_nvm(size_t partnum); static void hexdump(size_t partnum); +static void cmd_helper_cat(void); static void write_gbe_file(void); static void override_part_modified(void); static void set_checksum(size_t part); @@ -236,6 +237,7 @@ enum { CMD_SETMAC, CMD_SWAP, CMD_COPY, + CMD_CAT }; /* @@ -316,6 +318,12 @@ static const struct commands command[] = { ARG_PART, CHECKSUM_READ, SKIP_CHECKSUM_WRITE, GBE_PART_SIZE }, + + { CMD_CAT, "cat", cmd_helper_cat, ARGC_3, + NO_INVERT, SET_MOD_OFF, + ARG_NOPART, + SKIP_CHECKSUM_READ, SKIP_CHECKSUM_WRITE, + GBE_PART_SIZE }, }; #define MAX_CMD_LEN 50 @@ -694,9 +702,6 @@ read_gbe_file_part(size_t p) if (rc != (ssize_t)gbe_rw_size) err(ECANCELED, "%s: Partial read from p%zu", fname, p); - - printf("%s: Read %zu bytes from p%zu\n", - fname, gbe_rw_size, p); } static ssize_t @@ -1084,6 +1089,19 @@ hexdump(size_t partnum) } static void +cmd_helper_cat(void) +{ + size_t wc = 0; + ssize_t w; + + fflush(NULL); + + for (wc = 0; wc < sizeof(buf); wc += w) + if ((w = write(STDOUT_FILENO, buf + wc, sizeof(buf) - wc)) < 1) + err(EIO, "%s: stdout", fname); +} + +static void write_gbe_file(void) { size_t p; |
