aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-12-02 09:55:39 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:32 +0100
commit3dcdc3c9207f5c08fd1d2265de023d3ec0c55cf9 (patch)
tree38903be1c08d5d0d133f8c7503c1bd08f87cbe12
parenta181b152a1f50ea8f6ab6a85b6edc1c3ab4c3292 (diff)
modem-helpers: new helper to count number of bits set in a bitmask
-rw-r--r--src/mm-modem-helpers.c10
-rw-r--r--src/mm-modem-helpers.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 63bc07dd..bc1b27a4 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -1441,3 +1441,13 @@ done:
return array;
}
+
+guint
+mm_count_bits_set (gulong number)
+{
+ guint c;
+
+ for (c = 0; number; c++)
+ number &= number - 1;
+ return c;
+}
diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h
index 24ad6f53..47cd87d1 100644
--- a/src/mm-modem-helpers.h
+++ b/src/mm-modem-helpers.h
@@ -92,4 +92,6 @@ gint cind_response_get_max (CindResponse *r);
GByteArray *mm_parse_cind_query_response(const char *reply, GError **error);
+guint mm_count_bits_set (gulong number);
+
#endif /* MM_MODEM_HELPERS_H */