| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * Copyright 2016 General Electric Company |
| */ |
| |
| #include <linux/types.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)); |