eeprom_field.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * (C) Copyright 2009-2016 CompuLab, Ltd.
  3. *
  4. * Authors: Nikita Kiryanov <nikita@compulab.co.il>
  5. * Igor Grinberg <grinberg@compulab.co.il>
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #ifndef _FIELD_
  10. #define _FIELD_
  11. #define PRINT_FIELD_SEGMENT "%-30s"
  12. struct eeprom_field {
  13. char *name;
  14. int size;
  15. unsigned char *buf;
  16. void (*print)(const struct eeprom_field *eeprom_field);
  17. int (*update)(struct eeprom_field *eeprom_field, char *value);
  18. };
  19. void eeprom_field_print_bin(const struct eeprom_field *field);
  20. int eeprom_field_update_bin(struct eeprom_field *field, char *value);
  21. void eeprom_field_print_bin_rev(const struct eeprom_field *field);
  22. int eeprom_field_update_bin_rev(struct eeprom_field *field, char *value);
  23. void eeprom_field_print_mac(const struct eeprom_field *field);
  24. int eeprom_field_update_mac(struct eeprom_field *field, char *value);
  25. void eeprom_field_print_ascii(const struct eeprom_field *field);
  26. int eeprom_field_update_ascii(struct eeprom_field *field, char *value);
  27. void eeprom_field_print_reserved(const struct eeprom_field *field);
  28. int eeprom_field_update_reserved(struct eeprom_field *field, char *value);
  29. #endif