From 70d46aa685ab77647abc205e70c397c6c2faf6a9 Mon Sep 17 00:00:00 2001 From: ligd Date: Thu, 12 Oct 2023 17:22:44 +0800 Subject: [PATCH] libmetal: set ept address loop++ in bitmap Change-Id: I67ce05ddd7867931359ea12a3c420a6edff4de80 Signed-off-by: ligd --- lib/utilities.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/utilities.h b/lib/utilities.h index 6b592e01..74a90148 100644 --- a/lib/utilities.h +++ b/lib/utilities.h @@ -140,6 +140,19 @@ metal_bitmap_next_clear_bit(unsigned long *bitmap, unsigned int start, return bit; } +static inline unsigned int +metal_bitmap_loopnext_clear_bit(unsigned long *bitmap, unsigned int start, + unsigned int max) +{ + unsigned int bit; + + for (bit = start; + bit < max + start && !metal_bitmap_is_bit_clear(bitmap, bit % max); + bit++) + ; + return bit % max; +} + #define metal_bitmap_for_each_clear_bit(bitmap, bit, max) \ for ((bit) = metal_bitmap_next_clear_bit((bitmap), 0, (max)); \ (bit) < (max); \