From 57d4bc63f03664240ed4d9585c288ac8e455ca4b Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Mon, 15 Nov 2021 10:13:37 -0800 Subject: cbfs: Add helper functions to look up size and type of a file This patch adds cbfs_get_size() and cbfs_get_type() helper functions (and _ro_ variations) to look up the size or type of a CBFS file without loading it. Generally, use of these should be discouraged because that tends to mean that the file needs to be looked up more than once, and cbfs_alloc() or cbfs_type_load() are usually the more efficient alternative... but sometimes they're unavoidable, so we might as well offer them. Also remove the header which had already become sort of unnecessary with previous changes. cbfs_boot_lookup() is now exported in for use in inlines, but should not be used directly by other files (and is prefixed with an underscore to highlight that). Signed-off-by: Julius Werner Change-Id: I8092d8f6e04bdfb4df6c626dc7d42b402fe0a8ba Reviewed-on: https://review.coreboot.org/c/coreboot/+/59312 Tested-by: build bot (Jenkins) Reviewed-by: Werner Zeh Reviewed-by: Jakub Czapiga Reviewed-by: Lean Sheng Tan --- src/lib/cbfs.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/lib/cbfs.c') diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index dbb3b1a913..1ffc69508a 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -3,8 +3,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -35,8 +35,8 @@ static void switch_to_postram_cache(int unused) } ROMSTAGE_CBMEM_INIT_HOOK(switch_to_postram_cache); -cb_err_t cbfs_boot_lookup(const char *name, bool force_ro, - union cbfs_mdata *mdata, struct region_device *rdev) +cb_err_t _cbfs_boot_lookup(const char *name, bool force_ro, + union cbfs_mdata *mdata, struct region_device *rdev) { const struct cbfs_boot_device *cbd = cbfs_get_boot_device(force_ro); if (!cbd) @@ -65,7 +65,7 @@ cb_err_t cbfs_boot_lookup(const char *name, bool force_ro, if (CONFIG(VBOOT_ENABLE_CBFS_FALLBACK) && !force_ro && err == CB_CBFS_NOT_FOUND) { printk(BIOS_INFO, "CBFS: Fall back to RO region for %s\n", name); - return cbfs_boot_lookup(name, true, mdata, rdev); + return _cbfs_boot_lookup(name, true, mdata, rdev); } if (err) { if (err == CB_CBFS_NOT_FOUND) @@ -90,7 +90,7 @@ cb_err_t cbfs_boot_lookup(const char *name, bool force_ro, int cbfs_boot_locate(struct cbfsf *fh, const char *name, uint32_t *type) { - if (cbfs_boot_lookup(name, false, &fh->mdata, &fh->data)) + if (_cbfs_boot_lookup(name, false, &fh->mdata, &fh->data)) return -1; size_t msize = be32toh(fh->mdata.h.offset); @@ -330,7 +330,7 @@ void cbfs_preload(const char *name) DEBUG("%s(name='%s')\n", __func__, name); - if (cbfs_boot_lookup(name, force_ro, &mdata, &rdev)) + if (_cbfs_boot_lookup(name, force_ro, &mdata, &rdev)) return; size = region_device_sz(&rdev); @@ -422,7 +422,7 @@ void *_cbfs_alloc(const char *name, cbfs_allocator_t allocator, void *arg, DEBUG("%s(name='%s', alloc=%p(%p), force_ro=%s, type=%d)\n", __func__, name, allocator, arg, force_ro ? "true" : "false", type ? *type : -1); - if (cbfs_boot_lookup(name, force_ro, &mdata, &rdev)) + if (_cbfs_boot_lookup(name, force_ro, &mdata, &rdev)) return NULL; if (type) { @@ -525,7 +525,7 @@ cb_err_t cbfs_prog_stage_load(struct prog *pstage) prog_locate_hook(pstage); - if ((err = cbfs_boot_lookup(prog_name(pstage), false, &mdata, &rdev))) + if ((err = _cbfs_boot_lookup(prog_name(pstage), false, &mdata, &rdev))) return err; assert(be32toh(mdata.h.type) == CBFS_TYPE_STAGE); -- cgit v1.2.3