struct tlvinfo_tlv *eeprom_tlv;
// Find the TLV and then move all following TLVs "forward"
- if (tlvinfo_find_tlv(eeprom, code, &eeprom_index)) {
- eeprom_tlv = to_entry(&eeprom[eeprom_index]);
- tlength = ENT_SIZE + eeprom_tlv->length;
- memcpy(&eeprom[eeprom_index], &eeprom[eeprom_index + tlength],
- HDR_SIZE +
- be16_to_cpu(eeprom_hdr->totallen) - eeprom_index -
- tlength);
- eeprom_hdr->totallen =
- cpu_to_be16(be16_to_cpu(eeprom_hdr->totallen) -
- tlength);
- update_crc(eeprom);
- return true;
+ if (!tlvinfo_find_tlv(eeprom, code, &eeprom_index)) {
+ printf("ERROR: missing TLV key: $%02X\n", code);
+ return false;
}
- return false;
+
+ eeprom_tlv = to_entry(&eeprom[eeprom_index]);
+ tlength = ENT_SIZE + eeprom_tlv->length;
+ memcpy(&eeprom[eeprom_index], &eeprom[eeprom_index + tlength],
+ HDR_SIZE +
+ be16_to_cpu(eeprom_hdr->totallen) - eeprom_index -
+ tlength);
+ eeprom_hdr->totallen =
+ cpu_to_be16(be16_to_cpu(eeprom_hdr->totallen) -
+ tlength);
+ update_crc(eeprom);
+
+ return true;
}
/**