aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2019-12-11 16:50:02 -0800
committerPhilipp Deppenwiese <zaolin.daisuki@gmail.com>2020-10-30 11:14:11 +0000
commit1cd013bec5967ca1d0203de0f506a8af984f814e (patch)
treeb97e866e7c7420884f835121c742ebd2c1c08a85 /src/include
parent0655f78041ef617844f436306fa5431e211f4431 (diff)
cbfs: Hook up to new CBFS implementation
This patch hooks coreboot up to the new commonlib/bsd CBFS implementation. This is intended as the "minimum viable patch" that makes the new implementation useable with the smallest amount of changes -- that is why some of this may look a bit roundabout (returning the whole metadata for a file but then just using that to fill out the rdevs of the existing struct cbfsf). Future changes will migrate the higher level CBFS APIs one-by-one to use the new implementation directly (rather than translated into the results of the old one), at which point this will become more efficient. Change-Id: I4d112d1239475920de2d872dac179c245275038d Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/38422 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/cbfs_glue.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/include/cbfs_glue.h b/src/include/cbfs_glue.h
new file mode 100644
index 0000000000..ebfbc2e7ae
--- /dev/null
+++ b/src/include/cbfs_glue.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef _CBFS_GLUE_H_
+#define _CBFS_GLUE_H_
+
+#include <commonlib/region.h>
+#include <console/console.h>
+
+#define CBFS_ENABLE_HASHING 0
+
+#define ERROR(...) printk(BIOS_ERR, "CBFS ERROR: " __VA_ARGS__)
+#define LOG(...) printk(BIOS_ERR, "CBFS: " __VA_ARGS__)
+#define DEBUG(...) do { \
+ if (CONFIG(DEBUG_CBFS)) \
+ printk(BIOS_SPEW, "CBFS DEBUG: " __VA_ARGS__); \
+} while (0)
+
+typedef const struct region_device *cbfs_dev_t;
+
+static inline ssize_t cbfs_dev_read(cbfs_dev_t dev, void *buffer, size_t offset, size_t size)
+{
+ return rdev_readat(dev, buffer, offset, size);
+}
+
+static inline size_t cbfs_dev_size(cbfs_dev_t dev)
+{
+ return region_device_sz(dev);
+}
+
+#endif /* _CBFS_GLUE_H_ */