/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright 2016 General Electric Company */ #include "common.h" struct vpd_cache; /* * Read VPD from given data, verify content, call callback for each vital * product data block. * * cache: structure used by process block to store VPD information * process_block: callback called for each VPD data block * * Returns Non-zero on error. Negative numbers encode errno. */ int read_i2c_vpd(struct vpd_cache *cache, int (*process_block)(struct vpd_cache *, u8 id, u8 version, u8 type, size_t size, u8 const *data)); /* * Read VPD from given data, verify content, call callback for each vital * product data block. * * size: size of the raw VPD data in bytes * data: raw VPD data read from device * cache: structure used by process block to store VPD information * process_block: callback called for each VPD data block * * Returns Non-zero on error. Negative numbers encode errno. */ int vpd_reader(size_t size, u8 *data, struct vpd_cache *cache, int (*process_block)(struct vpd_cache *, u8 id, u8 version, u8 type, size_t size, u8 const *data));