tlv_eeprom: add tlvinfo_show_tlv()
authorHugo Villeneuve <hvilleneuve@dimonoff.com>
Thu, 6 Nov 2025 16:17:48 +0000 (11:17 -0500)
committerHugo Villeneuve <hvilleneuve@dimonoff.com>
Mon, 17 Nov 2025 15:36:11 +0000 (10:36 -0500)
Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
src/tlv_eeprom.c
src/tlv_eeprom.h

index bea6209..210f911 100644 (file)
@@ -465,6 +465,27 @@ bool tlvinfo_find_tlv(u8 *eeprom, u8 tcode, int *eeprom_index)
        return(false);
 }
 
+bool tlvinfo_show_tlv(u8 *eeprom, u8 tcode)
+{
+       char value[TLV_VALUE_MAX_LEN + 1];
+       struct tlvinfo_tlv *tlv;
+       int eeprom_index;
+
+       /* First make sure key exist: */
+       if (!tlvinfo_find_tlv(eeprom, tcode, &eeprom_index)) {
+               printf("ERROR: missing TLV key: $%02X\n", tcode);
+               return false;
+       }
+
+       tlv = to_entry(&eeprom[eeprom_index]);
+
+       decode_tlv_value(tlv, value, sizeof(value));
+
+       printf("%s\n", value);
+
+       return true;
+}
+
 /**
  *  tlvinfo_delete_tlv
  *
index 081c091..1ba49ae 100644 (file)
@@ -119,6 +119,7 @@ void show_eeprom(int devnum, u8 *eeprom);
 bool tlvinfo_find_tlv(u8 *eeprom, u8 tcode, int *eeprom_index);
 bool tlvinfo_delete_tlv(u8 *eeprom, u8 code);
 bool tlvinfo_add_tlv(u8 *eeprom, int tcode, char *strval);
+bool tlvinfo_show_tlv(u8 *eeprom, u8 tcode);
 int prog_eeprom(int devnum, u8 *eeprom);
 int read_eeprom(int devnum, u8 *eeprom);
 void show_tlv_code_list(void);