blob: 459b99d8618fbcd249624274ae26fda690ab985e [file] [log] [blame]
Nikita Kiryanov37dda1c2016-04-16 17:55:03 +03001/*
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 _LAYOUT_
11#define _LAYOUT_
12
13#define RESERVED_FIELDS NULL
14#define LAYOUT_VERSION_UNRECOGNIZED -1
15#define LAYOUT_VERSION_AUTODETECT -2
16
17struct eeprom_layout {
18 struct eeprom_field *fields;
19 int num_of_fields;
20 int layout_version;
21 unsigned char *data;
22 int data_size;
23 void (*print)(const struct eeprom_layout *eeprom_layout);
24 int (*update)(struct eeprom_layout *eeprom_layout, char *field_name,
25 char *new_data);
26};
27
28void eeprom_layout_setup(struct eeprom_layout *layout, unsigned char *buf,
29 unsigned int buf_size, int layout_version);
30__weak void __eeprom_layout_assign(struct eeprom_layout *layout,
31 int layout_version);
32
33#endif