xref: /openbmc/u-boot/include/eeprom_field.h (revision be059e88)
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 
10 #ifndef _FIELD_
11 #define _FIELD_
12 
13 #define PRINT_FIELD_SEGMENT	"%-30s"
14 
15 struct eeprom_field {
16 	char *name;
17 	int size;
18 	unsigned char *buf;
19 
20 	void (*print)(const struct eeprom_field *eeprom_field);
21 	int (*update)(struct eeprom_field *eeprom_field, char *value);
22 };
23 
24 void eeprom_field_print_bin(const struct eeprom_field *field);
25 int eeprom_field_update_bin(struct eeprom_field *field, char *value);
26 
27 void eeprom_field_print_bin_rev(const struct eeprom_field *field);
28 int eeprom_field_update_bin_rev(struct eeprom_field *field, char *value);
29 
30 void eeprom_field_print_mac(const struct eeprom_field *field);
31 int eeprom_field_update_mac(struct eeprom_field *field, char *value);
32 
33 void eeprom_field_print_ascii(const struct eeprom_field *field);
34 int eeprom_field_update_ascii(struct eeprom_field *field, char *value);
35 
36 void eeprom_field_print_reserved(const struct eeprom_field *field);
37 int eeprom_field_update_reserved(struct eeprom_field *field, char *value);
38 
39 #endif
40