1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2016 General Electric Company
4  */
5 
6 #include "common.h"
7 
8 struct vpd_cache;
9 
10 /*
11  * Read VPD from given data, verify content, call callback for each vital
12  * product data block.
13  *
14  * cache: structure used by process block to store VPD information
15  * process_block: callback called for each VPD data block
16  *
17  * Returns Non-zero on error.  Negative numbers encode errno.
18  */
19 int read_i2c_vpd(struct vpd_cache *cache,
20 		 int (*process_block)(struct vpd_cache *, u8 id, u8 version,
21 				      u8 type, size_t size, u8 const *data));
22 
23 /*
24  * Read VPD from given data, verify content, call callback for each vital
25  * product data block.
26  *
27  * size: size of the raw VPD data in bytes
28  * data: raw VPD data read from device
29  * cache: structure used by process block to store VPD information
30  * process_block: callback called for each VPD data block
31  *
32  * Returns Non-zero on error.  Negative numbers encode errno.
33  */
34 
35 int vpd_reader(size_t size, u8 *data, struct vpd_cache *cache,
36 	       int (*process_block)(struct vpd_cache *, u8 id, u8 version, u8 type,
37 				    size_t size, u8 const *data));
38