1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright 2016 General Electric Company
4 */
5
6#include "common.h"
7
8struct 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 */
19int 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
35int 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