summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2010-04-20 13:58:22 +0000
committerAlasdair Kergon <agk@redhat.com>2010-04-20 13:58:22 +0000
commit49ada7a2c3f664aa2c3e17e2adf4abaf2a04d17d (patch)
treece9ea1c89a1983b115739884821831418e4a917e
parentc3b712f8a0acb372a5642eb80eadf1677810bfe4 (diff)
downloadlvm2-49ada7a2c3f664aa2c3e17e2adf4abaf2a04d17d.tar.gz
lvm2-49ada7a2c3f664aa2c3e17e2adf4abaf2a04d17d.tar.xz
lvm2-49ada7a2c3f664aa2c3e17e2adf4abaf2a04d17d.zip
Add dm_bitset_equal to libdevmapper.
-rw-r--r--WHATS_NEW_DM2
-rw-r--r--libdm/.exported_symbols1
-rw-r--r--libdm/datastruct/bitset.c11
-rw-r--r--libdm/libdevmapper.h2
4 files changed, 15 insertions, 1 deletions
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 65784772..60725a8a 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,6 +1,6 @@
Version 1.02.47 -
=================================
- Add dm_bit_and.
+ Add dm_bit_and and dm_bitset_equal to libdevmapper.
Simplify dm_bitset_create.
Speed up dm_bit_get_next with ffs().
diff --git a/libdm/.exported_symbols b/libdm/.exported_symbols
index 67962aee..73ee5bd7 100644
--- a/libdm/.exported_symbols
+++ b/libdm/.exported_symbols
@@ -109,6 +109,7 @@ dm_pool_strndup
dm_pool_zalloc
dm_bitset_create
dm_bitset_destroy
+dm_bitset_equal
dm_bit_and
dm_bit_union
dm_bit_get_first
diff --git a/libdm/datastruct/bitset.c b/libdm/datastruct/bitset.c
index 6dd5952a..9b8aff93 100644
--- a/libdm/datastruct/bitset.c
+++ b/libdm/datastruct/bitset.c
@@ -42,6 +42,17 @@ void dm_bitset_destroy(dm_bitset_t bs)
dm_free(bs);
}
+int dm_bitset_equal(dm_bitset_t in1, dm_bitset_t in2)
+{
+ int i;
+
+ for (i = (in1[0] / DM_BITS_PER_INT) + 1; i; i--)
+ if (in1[i] != in2[i])
+ return 0;
+
+ return 1;
+}
+
void dm_bit_and(dm_bitset_t out, dm_bitset_t in1, dm_bitset_t in2)
{
int i;
diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h
index 24357742..0ee23fbb 100644
--- a/libdm/libdevmapper.h
+++ b/libdm/libdevmapper.h
@@ -600,6 +600,8 @@ typedef uint32_t *dm_bitset_t;
dm_bitset_t dm_bitset_create(struct dm_pool *mem, unsigned num_bits);
void dm_bitset_destroy(dm_bitset_t bs);
+int dm_bitset_equal(dm_bitset_t in1, dm_bitset_t in2);
+
void dm_bit_and(dm_bitset_t out, dm_bitset_t in1, dm_bitset_t in2);
void dm_bit_union(dm_bitset_t out, dm_bitset_t in1, dm_bitset_t in2);
int dm_bit_get_first(dm_bitset_t bs);