From c33219a51b83d6393f0c81be9528e10fe5cb3e79 Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Tue, 14 May 2013 03:34:57 +0000 Subject: [PATCH] Extend the bitmap API a bit to provide a test if all bits zero This commit was SVN r28486. --- opal/class/opal_bitmap.c | 18 ++++++++++++++++++ opal/class/opal_bitmap.h | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/opal/class/opal_bitmap.c b/opal/class/opal_bitmap.c index fa46c7b253..8591a7e9aa 100644 --- a/opal/class/opal_bitmap.c +++ b/opal/class/opal_bitmap.c @@ -440,3 +440,21 @@ int opal_bitmap_num_set_bits(opal_bitmap_t *bm, int len) return cnt; } + +bool opal_bitmap_is_clear(opal_bitmap_t *bm) +{ + int i, len; + int index, offset; + + len = bm->array_size * SIZE_OF_CHAR; + + for (i = 0; i < len; ++i) { + index = i / SIZE_OF_CHAR; + offset = i % SIZE_OF_CHAR; + + if (0 != (bm->bitmap[index] & (1 << offset))) { + return false; + } + } + return true; +} diff --git a/opal/class/opal_bitmap.h b/opal/class/opal_bitmap.h index 6ecfbe50e0..2ea719a97e 100644 --- a/opal/class/opal_bitmap.h +++ b/opal/class/opal_bitmap.h @@ -246,6 +246,11 @@ OPAL_DECLSPEC int opal_bitmap_num_unset_bits(opal_bitmap_t *bm, int len); */ OPAL_DECLSPEC int opal_bitmap_num_set_bits(opal_bitmap_t *bm, int len); +/** + * Check a bitmap to see if any bit is set + */ +OPAL_DECLSPEC bool opal_bitmap_is_clear(opal_bitmap_t *bm); + END_C_DECLS #endif