diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-03-04 10:50:32 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-03-04 10:50:32 +0100 |
commit | a73e2f9acb839a1f08d8bc5c7e6074c16f0cf1fe (patch) | |
tree | 46d26080f830545c24a455a1ac3aaeca64663473 | |
parent | aebe08c71f4704914c2af40620d0675cf29d2639 (diff) |
import bcd2char() and char2bcd() from OpenBSC
-rw-r--r-- | include/osmocore/utils.h | 3 | ||||
-rw-r--r-- | src/utils.c | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/osmocore/utils.h b/include/osmocore/utils.h index cf3b4607..51c6f035 100644 --- a/include/osmocore/utils.h +++ b/include/osmocore/utils.h @@ -13,5 +13,8 @@ struct value_string { const char *get_value_string(const struct value_string *vs, uint32_t val); int get_string_value(const struct value_string *vs, const char *str); +char bcd2char(uint8_t bcd); +/* only works for numbers in ascci */ +uint8_t char2bcd(char c); #endif diff --git a/src/utils.c b/src/utils.c index 0d878c7b..2a73d397 100644 --- a/src/utils.c +++ b/src/utils.c @@ -30,3 +30,17 @@ int get_string_value(const struct value_string *vs, const char *str) } return -EINVAL; } + +char bcd2char(uint8_t bcd) +{ + if (bcd < 0xa) + return '0' + bcd; + else + return 'A' + (bcd - 0xa); +} + +/* only works for numbers in ascci */ +uint8_t char2bcd(char c) +{ + return c - 0x30; +} |