| /* SPDX-License-Identifier: BSD-3-Clause */ |
| |
| #ifndef _CBFS_CBFS_GLUE_H |
| #define _CBFS_CBFS_GLUE_H |
| |
| #include <libpayload-config.h> |
| #include <boot_device.h> |
| #include <stdbool.h> |
| #include <stdio.h> |
| |
| #define CBFS_ENABLE_HASHING CONFIG(LP_CBFS_VERIFICATION) |
| #define CBFS_HASH_HWCRYPTO cbfs_hwcrypto_allowed() |
| |
| #define ERROR(...) printf("CBFS ERROR: " __VA_ARGS__) |
| #define LOG(...) printf("CBFS: " __VA_ARGS__) |
| #define DEBUG(...) \ |
| do { \ |
| if (CONFIG(LP_DEBUG_CBFS)) \ |
| printf("CBFS DEBUG: " __VA_ARGS__); \ |
| } while (0) |
| |
| struct cbfs_dev { |
| size_t offset; |
| size_t size; |
| }; |
| |
| struct cbfs_boot_device { |
| struct cbfs_dev dev; |
| void *mcache; |
| size_t mcache_size; |
| }; |
| |
| typedef const struct cbfs_dev *cbfs_dev_t; |
| |
| static inline ssize_t cbfs_dev_read(cbfs_dev_t dev, void *buffer, size_t offset, size_t size) |
| { |
| if (offset + size < offset || offset + size > dev->size) |
| return CB_ERR_ARG; |
| |
| return boot_device_read(buffer, dev->offset + offset, size); |
| } |
| |
| static inline size_t cbfs_dev_size(cbfs_dev_t dev) |
| { |
| return dev->size; |
| } |
| |
| bool cbfs_hwcrypto_allowed(void); |
| |
| #endif /* _CBFS_CBFS_GLUE_H */ |