summaryrefslogtreecommitdiff
path: root/util/nvmutil
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2026-03-03 02:45:46 +0000
committerLeah Rowe <leah@libreboot.org>2026-03-03 02:50:03 +0000
commit490f311d05cc3ba63f506989311edeed8d26c64a (patch)
treede5ae3d2ab3ac40574e01999df41fc61c58fac3c /util/nvmutil
parent3cbaa7ead8156ed8b83cdd4b3e2ab08fec6beaa1 (diff)
util/nvmutil: split up cmd_setmac
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'util/nvmutil')
-rw-r--r--util/nvmutil/nvmutil.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index 9934a775..2510547f 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -22,7 +22,7 @@ void cmd_setchecksum(void), cmd_brick(void), swap(int partnum), writeGbe(void),
set_cmd(int, char **), setWord(int, int, uint16_t), check_bounds(int, int),
xopen (int *, const char *, int p, struct stat *), checkMacSeparator(int),
set_mac_byte(int, uint64_t *), usage(char*), set_io_flags(int, char **);
-int goodChecksum(int partnum);
+int goodChecksum(int partnum), write_mac_part(int);
uint8_t hextonum(char chs), rhex(void);
uint16_t word(int, int);
@@ -206,20 +206,8 @@ cmd_setmac(void)
printf("MAC address to be written: %s\n", strMac);
- for (int partnum = 0; partnum < 2; partnum++) {
- if (!goodChecksum(part = partnum))
- continue;
-
- for (int w = 0; w < 3; w++)
- setWord(w, partnum, mac[w]);
-
- printf("Wrote MAC address to part %d: ", partnum);
- print_mac_address(partnum);
-
- cmd_setchecksum();
- mac_updated = 1;
- }
-
+ for (int partnum = 0; partnum < 2; partnum++)
+ mac_updated |= write_mac_part(partnum);
if (mac_updated)
errno = 0;
}
@@ -304,6 +292,22 @@ rhex(void)
return rnum[n--] & 0xf;
}
+int
+write_mac_part(int partnum)
+{
+ if (!goodChecksum(part = partnum))
+ return 0;
+
+ for (int w = 0; w < 3; w++)
+ setWord(w, partnum, mac[w]);
+
+ printf("Wrote MAC address to part %d: ", partnum);
+ print_mac_address(partnum);
+
+ cmd_setchecksum();
+ return 1;
+}
+
void
cmd_dump(void)
{