summaryrefslogtreecommitdiffstats
path: root/src/shared/libosmocore/src/gsm_utils.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-03-04 11:59:12 +0100
committerHarald Welte <laforge@gnumonks.org>2010-03-04 11:59:12 +0100
commit2507c4b1427ef52328a64ee5391e6253663d265d (patch)
tree15d25ea9ae3b7e10cdad45a39eb5d596cde3bb1b /src/shared/libosmocore/src/gsm_utils.c
parent219c9d5a6e52909ad8c5efc0bf469252526ed9d7 (diff)
parent61e2bfc5f44267a7a3b0b25ff3ab922fca2a199c (diff)
Merge commit '61e2bfc5f44267a7a3b0b25ff3ab922fca2a199c'
Diffstat (limited to 'src/shared/libosmocore/src/gsm_utils.c')
-rw-r--r--src/shared/libosmocore/src/gsm_utils.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/shared/libosmocore/src/gsm_utils.c b/src/shared/libosmocore/src/gsm_utils.c
index b0a66a68..174b2d49 100644
--- a/src/shared/libosmocore/src/gsm_utils.c
+++ b/src/shared/libosmocore/src/gsm_utils.c
@@ -30,6 +30,7 @@
#include <string.h>
#include <stdio.h>
#include <errno.h>
+#include <ctype.h>
#include "../config.h"
@@ -192,6 +193,60 @@ uint8_t dbm2rxlev(int dbm)
return rxlev;
}
+char *gsm_band_name(enum gsm_band band)
+{
+ switch (band) {
+ case GSM_BAND_450:
+ return "GSM450";
+ case GSM_BAND_480:
+ return "GSM450";
+ case GSM_BAND_750:
+ return "GSM750";
+ case GSM_BAND_810:
+ return "GSM810";
+ case GSM_BAND_850:
+ return "GSM850";
+ case GSM_BAND_900:
+ return "GSM900";
+ case GSM_BAND_1800:
+ return "DCS1800";
+ case GSM_BAND_1900:
+ return "PCS1900";
+ }
+ return "invalid";
+}
+
+enum gsm_band gsm_band_parse(const char* mhz)
+{
+ while (*mhz && !isdigit(*mhz))
+ mhz++;
+
+ if (*mhz == '\0')
+ return -EINVAL;
+
+ switch (atoi(mhz)) {
+ case 450:
+ return GSM_BAND_450;
+ case 480:
+ return GSM_BAND_480;
+ case 750:
+ return GSM_BAND_750;
+ case 810:
+ return GSM_BAND_810;
+ case 850:
+ return GSM_BAND_850;
+ case 900:
+ return GSM_BAND_900;
+ case 1800:
+ return GSM_BAND_1800;
+ case 1900:
+ return GSM_BAND_1900;
+ default:
+ return -EINVAL;
+ }
+}
+
+
#ifdef HAVE_EXECINFO_H
#include <execinfo.h>
void generate_backtrace()