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