refactor(mem_range): rename, extend, refactor helpers
The helpers to operate 'struct mem_range' have been
extended.
Helpers which are unused, are intended for subsequent
patches.
Change-Id: I85aaf5f532c82e7f9329773cbc18a8119d4a0ee6
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/inc/hf/mem_range.h b/inc/hf/mem_range.h
index 27e2461..57d7b40 100644
--- a/inc/hf/mem_range.h
+++ b/inc/hf/mem_range.h
@@ -24,3 +24,32 @@
.end = pa_init(base_address + page_count * PAGE_SIZE - 1),
};
}
+
+static inline bool mem_range_contains_address(struct mem_range range,
+ uintptr_t address)
+{
+ return pa_addr(range.begin) <= address && address <= pa_addr(range.end);
+}
+
+static inline bool mem_range_overlaps(struct mem_range a, struct mem_range b)
+{
+ return mem_range_contains_address(a, pa_addr(b.begin)) ||
+ mem_range_contains_address(a, pa_addr(b.end));
+}
+
+static inline bool mem_range_contains_range(struct mem_range a,
+ struct mem_range b)
+{
+ return mem_range_contains_address(a, pa_addr(b.begin)) &&
+ mem_range_contains_address(a, pa_addr(b.end));
+}
+
+static inline bool mem_range_aligns(struct mem_range range, size_t alignment)
+{
+ return (pa_addr(range.begin) % alignment) == 0U;
+}
+
+static inline bool mem_range_is_valid(struct mem_range range)
+{
+ return pa_addr(range.begin) != 0U && pa_addr(range.end) != 0U;
+}