From 17a86c5e023495c66b451ba95271f452c28af864 Mon Sep 17 00:00:00 2001 From: Hugo Villeneuve Date: Thu, 6 Nov 2025 11:17:48 -0500 Subject: [PATCH] tlv_eeprom: add tlvinfo_show_tlv() Signed-off-by: Hugo Villeneuve --- src/tlv_eeprom.c | 21 +++++++++++++++++++++ src/tlv_eeprom.h | 1 + 2 files changed, 22 insertions(+) diff --git a/src/tlv_eeprom.c b/src/tlv_eeprom.c index bea6209..210f911 100644 --- a/src/tlv_eeprom.c +++ b/src/tlv_eeprom.c @@ -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 * diff --git a/src/tlv_eeprom.h b/src/tlv_eeprom.h index 081c091..1ba49ae 100644 --- a/src/tlv_eeprom.h +++ b/src/tlv_eeprom.h @@ -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); -- 2.20.1