diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-03-22 22:25:13 +0800 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-03-22 22:25:13 +0800 |
commit | 351ec2a1784fbdb2ce688f50a9134532f3bf0723 (patch) | |
tree | d599030f3ffb4e563b73f5ede9a8e80fc1bc048f /libosmocore/src/utils.c | |
parent | e164d29e7f6c86d1f6f047bbf58159e46a11425f (diff) | |
parent | 045cc22baeb7f12dcb0022b79a1984d86e922870 (diff) |
Add 'libosmocore/' from commit '045cc22baeb7f12dcb0022b79a1984d86e922870'0.9.0
git-subtree-dir: libosmocore
git-subtree-mainline: e164d29e7f6c86d1f6f047bbf58159e46a11425f
git-subtree-split: 045cc22baeb7f12dcb0022b79a1984d86e922870
Diffstat (limited to 'libosmocore/src/utils.c')
-rw-r--r-- | libosmocore/src/utils.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libosmocore/src/utils.c b/libosmocore/src/utils.c new file mode 100644 index 000000000..2a73d397e --- /dev/null +++ b/libosmocore/src/utils.c @@ -0,0 +1,46 @@ + +#include <string.h> +#include <stdint.h> +#include <errno.h> + +#include <osmocore/utils.h> + +const char *get_value_string(const struct value_string *vs, uint32_t val) +{ + int i; + + for (i = 0;; i++) { + if (vs[i].value == 0 && vs[i].str == NULL) + break; + if (vs[i].value == val) + return vs[i].str; + } + return "unknown"; +} + +int get_string_value(const struct value_string *vs, const char *str) +{ + int i; + + for (i = 0;; i++) { + if (vs[i].value == 0 && vs[i].str == NULL) + break; + if (!strcasecmp(vs[i].str, str)) + return vs[i].value; + } + 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; +} |