[PATCH 07/12] cmd: tlv_eeprom: hide access to static tlv_devices array behind accessor
Josua Mayer
josua at solid-run.com
Mon May 2 16:18:33 CEST 2022
The tlv_eeprom command logic checks the static tlv_devices array to
validate the eeprom number. This array will be move to a separate tlv
library.
Hide this access behind a new function exists_tlv_eeprom.
Signed-off-by: Josua Mayer <josua at solid-run.com>
---
cmd/tlv_eeprom.c | 12 ++++++++++--
include/tlv_eeprom.h | 7 +++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
index 57468edb1c..f51a9666bf 100644
--- a/cmd/tlv_eeprom.c
+++ b/cmd/tlv_eeprom.c
@@ -44,6 +44,14 @@ static struct udevice *tlv_devices[MAX_TLV_DEVICES];
#define to_header(p) ((struct tlvinfo_header *)p)
#define to_entry(p) ((struct tlvinfo_tlv *)p)
+/**
+ * Check whether eeprom device exists.
+ */
+bool exists_tlv_eeprom(int dev)
+{
+ return dev < TLV_MAX_DEVICES && tlv_devices[dev] != 0;
+}
+
static inline bool is_digit(char c)
{
return (c >= '0' && c <= '9');
@@ -481,7 +489,7 @@ int do_tlv_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
unsigned int devnum;
devnum = simple_strtoul(argv[2], NULL, 0);
- if (devnum > MAX_TLV_DEVICES || !tlv_devices[devnum]) {
+ if (!exists_tlv_eeprom(devnum)) {
printf("Invalid device number\n");
return 0;
}
@@ -866,7 +874,7 @@ static void show_tlv_devices(int current_dev)
unsigned int dev;
for (dev = 0; dev < MAX_TLV_DEVICES; dev++)
- if (tlv_devices[dev])
+ if (exists_tlv_eeprom(dev))
printf("TLV: %u%s\n", dev,
(dev == current_dev) ? " (*)" : "");
}
diff --git a/include/tlv_eeprom.h b/include/tlv_eeprom.h
index dc7952da6b..c81c58837d 100644
--- a/include/tlv_eeprom.h
+++ b/include/tlv_eeprom.h
@@ -69,6 +69,13 @@ struct __attribute__ ((__packed__)) tlvinfo_tlv {
/* how many EEPROMs can be used */
#define TLV_MAX_DEVICES 2
+/**
+ * Check whether eeprom device exists.
+ *
+ * @dev: EEPROM device to check.
+ */
+bool exists_tlv_eeprom(int dev);
+
/**
* read_tlv_eeprom - Read the EEPROM binary data from the hardware
* @eeprom: Pointer to buffer to hold the binary data
--
2.34.1
More information about the U-Boot
mailing list