diff options
| author | tmk <nobody@nowhere> | 2012-11-24 16:34:59 +0900 |
|---|---|---|
| committer | tmk <nobody@nowhere> | 2012-11-24 16:34:59 +0900 |
| commit | 94b4fba6e6afa6d7d68051a1ceb6987bb6002ccd (patch) | |
| tree | bd9f35b876d13bca20c7655fbbb93f4733aea0dd /common | |
| parent | 83f0e800e53a6d91a814d19f94bc5401a6322971 (diff) | |
| download | qmk_firmware-94b4fba6e6afa6d7d68051a1ceb6987bb6002ccd.tar.gz qmk_firmware-94b4fba6e6afa6d7d68051a1ceb6987bb6002ccd.zip | |
Add bitpop16() in util.c.
Diffstat (limited to 'common')
| -rw-r--r-- | common/util.c | 10 | ||||
| -rw-r--r-- | common/util.h | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/common/util.c b/common/util.c index 644301fe8..9d8fb9321 100644 --- a/common/util.c +++ b/common/util.c | |||
| @@ -22,7 +22,7 @@ uint8_t bitpop(uint8_t bits) | |||
| 22 | { | 22 | { |
| 23 | uint8_t c; | 23 | uint8_t c; |
| 24 | for (c = 0; bits; c++) | 24 | for (c = 0; bits; c++) |
| 25 | bits &= bits -1; | 25 | bits &= bits - 1; |
| 26 | return c; | 26 | return c; |
| 27 | /* | 27 | /* |
| 28 | const uint8_t bit_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; | 28 | 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) | |||
| 30 | */ | 30 | */ |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | uint8_t bitpop16(uint16_t bits) | ||
| 34 | { | ||
| 35 | uint8_t c; | ||
| 36 | for (c = 0; bits; c++) | ||
| 37 | bits &= bits - 1; | ||
| 38 | return c; | ||
| 39 | } | ||
| 40 | |||
| 33 | // most significant on-bit - return highest location of on-bit | 41 | // most significant on-bit - return highest location of on-bit |
| 34 | uint8_t biton(uint8_t bits) | 42 | uint8_t biton(uint8_t bits) |
| 35 | { | 43 | { |
diff --git a/common/util.h b/common/util.h index 87636c971..c3734487f 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/>. | |||
| 16 | */ | 16 | */ |
| 17 | 17 | ||
| 18 | #ifndef UTIL_H | 18 | #ifndef UTIL_H |
| 19 | #define UTIL_H 1 | 19 | #define UTIL_H |
| 20 | 20 | ||
| 21 | #include <stdint.h> | 21 | #include <stdint.h> |
| 22 | 22 | ||
| @@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | uint8_t bitpop(uint8_t bits); | 31 | uint8_t bitpop(uint8_t bits); |
| 32 | uint8_t bitpop16(uint16_t bits); | ||
| 32 | uint8_t biton(uint8_t bits); | 33 | uint8_t biton(uint8_t bits); |
| 33 | 34 | ||
| 34 | #endif | 35 | #endif |
