From a73e2f9acb839a1f08d8bc5c7e6074c16f0cf1fe Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 4 Mar 2010 10:50:32 +0100 Subject: import bcd2char() and char2bcd() from OpenBSC --- include/osmocore/utils.h | 3 +++ src/utils.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+) 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; +} -- cgit v1.2.3