diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-12-02 09:55:39 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:32 +0100 |
commit | 3dcdc3c9207f5c08fd1d2265de023d3ec0c55cf9 (patch) | |
tree | 38903be1c08d5d0d133f8c7503c1bd08f87cbe12 /src | |
parent | a181b152a1f50ea8f6ab6a85b6edc1c3ab4c3292 (diff) |
modem-helpers: new helper to count number of bits set in a bitmask
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-modem-helpers.c | 10 | ||||
-rw-r--r-- | src/mm-modem-helpers.h | 2 |
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 */ |