summaryrefslogtreecommitdiff
path: root/src/commonlib/include
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2019-11-08 09:51:15 -0700
committerPatrick Georgi <pgeorgi@google.com>2019-11-11 10:27:47 +0000
commitb1ea53d846b865d5fa1332fb2e31d0f2865a7fc0 (patch)
tree203e768091dec397f86f5347fe238a26a382efee /src/commonlib/include
parentf0564a9c44b79e9bfb1001f887348a653f7b7d56 (diff)
region: add rdev_chain_full()
Instead of open coding an offset of 0 and querying the size of a region device provide a rdev_chain_full() helper function that does that for the caller. For the existing users that match this pattern convert them to using rdev_chain_full(). Change-Id: Ie316790a8a5b16a7f7e22f86f58bd2e633c19450 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36683 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/commonlib/include')
-rw-r--r--src/commonlib/include/commonlib/cbfs.h5
-rw-r--r--src/commonlib/include/commonlib/region.h8
2 files changed, 9 insertions, 4 deletions
diff --git a/src/commonlib/include/commonlib/cbfs.h b/src/commonlib/include/commonlib/cbfs.h
index cadc8c92cc..b0aa9d3ddb 100644
--- a/src/commonlib/include/commonlib/cbfs.h
+++ b/src/commonlib/include/commonlib/cbfs.h
@@ -32,14 +32,13 @@ int cbfs_locate(struct cbfsf *fh, const struct region_device *cbfs,
static inline void cbfs_file_data(struct region_device *data,
const struct cbfsf *file)
{
- rdev_chain(data, &file->data, 0, region_device_sz(&file->data));
+ rdev_chain_full(data, &file->data);
}
static inline void cbfs_file_metadata(struct region_device *metadata,
const struct cbfsf *file)
{
- rdev_chain(metadata, &file->metadata, 0,
- region_device_sz(&file->metadata));
+ rdev_chain_full(metadata, &file->metadata);
}
/*
diff --git a/src/commonlib/include/commonlib/region.h b/src/commonlib/include/commonlib/region.h
index dca12dc741..f27a494d39 100644
--- a/src/commonlib/include/commonlib/region.h
+++ b/src/commonlib/include/commonlib/region.h
@@ -73,7 +73,6 @@ ssize_t rdev_eraseat(const struct region_device *rd, size_t offset,
int rdev_chain(struct region_device *child, const struct region_device *parent,
size_t offset, size_t size);
-
/* A region_device operations. */
struct region_device_ops {
void *(*mmap)(const struct region_device *, size_t, size_t);
@@ -145,6 +144,13 @@ static inline void *rdev_mmap_full(const struct region_device *rd)
return rdev_mmap(rd, 0, region_device_sz(rd));
}
+static inline int rdev_chain_full(struct region_device *child,
+ const struct region_device *parent)
+{
+ /* Chain full size of parent. */
+ return rdev_chain(child, parent, 0, region_device_sz(parent));
+}
+
/*
* Compute relative offset of the child (c) w.r.t. the parent (p). Returns < 0
* when child is not within the parent's region.