summary refs log tree commit diff
path: root/common
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2012-11-24 16:34:59 +0900
committertmk <nobody@nowhere>2012-11-24 16:34:59 +0900
commit94b4fba6e6afa6d7d68051a1ceb6987bb6002ccd (patch)
treebd9f35b876d13bca20c7655fbbb93f4733aea0dd /common
parent83f0e800e53a6d91a814d19f94bc5401a6322971 (diff)
Add bitpop16() in util.c.
Diffstat (limited to 'common')
-rw-r--r--common/util.c10
-rw-r--r--common/util.h3
2 files changed, 11 insertions, 2 deletions
diff --git a/common/util.c b/common/util.c
index 644301fe89..9d8fb93219 100644
--- a/common/util.c
+++ b/common/util.c
@@ -22,7 +22,7 @@ uint8_t bitpop(uint8_t bits)
 {
     uint8_t c;
     for (c = 0; bits; c++)
-        bits &= bits -1;
+        bits &= bits - 1;
     return c;
 /*
     const uint8_t bit_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
@@ -30,6 +30,14 @@ uint8_t bitpop(uint8_t bits)
 */
 }
 
+uint8_t bitpop16(uint16_t bits)
+{
+    uint8_t c;
+    for (c = 0; bits; c++)
+        bits &= bits - 1;
+    return c;
+}
+
 // most significant on-bit - return highest location of on-bit
 uint8_t biton(uint8_t bits)
 {
diff --git a/common/util.h b/common/util.h
index 87636c9710..c3734487f9 100644
--- a/common/util.h
+++ b/common/util.h
@@ -16,7 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #ifndef UTIL_H
-#define UTIL_H 1
+#define UTIL_H
 
 #include <stdint.h>
 
@@ -29,6 +29,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 uint8_t bitpop(uint8_t bits);
+uint8_t bitpop16(uint16_t bits);
 uint8_t biton(uint8_t bits);
 
 #endif