summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2020-05-06 10:52:55 +0200
committerPatrick Georgi <pgeorgi@google.com>2020-05-08 15:31:17 +0000
commit192a12fb6ab0b4a2033f087cec8a232d42a4c000 (patch)
tree4b41df21125c7db8b7db6ab9947bb4a0da80b4b5
parent0cdc97cdd9a767bfe6e43ff4317796298976c457 (diff)
commonlib/region: Add region_overlap
Add inline function to check if two regions overlap. Change-Id: I6f3dfaa9f0805893bd691ba64f112944d89a8e71 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41083 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r--src/commonlib/include/commonlib/region.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/commonlib/include/commonlib/region.h b/src/commonlib/include/commonlib/region.h
index 86b9ee39cc..08b9191a66 100644
--- a/src/commonlib/include/commonlib/region.h
+++ b/src/commonlib/include/commonlib/region.h
@@ -7,6 +7,7 @@
#include <sys/types.h>
#include <stdint.h>
#include <stddef.h>
+#include <stdbool.h>
#include <commonlib/mem_pool.h>
/*
@@ -117,6 +118,12 @@ static inline size_t region_end(const struct region *r)
return region_offset(r) + region_sz(r);
}
+static inline bool region_overlap(const struct region *r1, const struct region *r2)
+{
+ return (region_end(r1) > region_offset(r2)) &&
+ (region_offset(r1) < region_end(r2));
+}
+
static inline const struct region *region_device_region(
const struct region_device *rdev)
{