From 152b6261f88ac085cd96b63374ad5847ac7b3ce2 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 16 Dec 2009 11:57:48 +0100 Subject: [system_information] Print more debugging about what's going on --- openbsc/src/system_information.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'openbsc/src/system_information.c') diff --git a/openbsc/src/system_information.c b/openbsc/src/system_information.c index 2d4ba20a4..644abb432 100644 --- a/openbsc/src/system_information.c +++ b/openbsc/src/system_information.c @@ -32,6 +32,7 @@ #include #include #include +#include #define GSM48_CELL_CHAN_DESC_SIZE 16 #define GSM_MACBLOCK_LEN 23 @@ -73,10 +74,14 @@ static int freq_list_bmrel_set_arfcn(u_int8_t *chan_list, unsigned int arfcn) if (arfcn == min_arfcn) return 0; - if (arfcn < min_arfcn) + if (arfcn < min_arfcn) { + DEBUGP(DRR, "arfcn(%u) < min(%u)\n", arfcn, min_arfcn); return -EINVAL; - if (arfcn > min_arfcn + 111) + } + if (arfcn > min_arfcn + 111) { + DEBUGP(DRR, "arfcn(%u) > min(%u) + 111\n", arfcn, min_arfcn); return -EINVAL; + } bitno = (arfcn - min_arfcn); byte = bitno / 8; @@ -121,17 +126,21 @@ static int bitvec2freq_list(u_int8_t *chan_list, struct bitvec *bv, } } - if ((max - min) > 111) + if ((max - min) > 111) { + DEBUGP(DRR, "min_arfcn=%u, max_arfcn=%u, distance > 111\n", min, max); return -EINVAL; + } chan_list[0] |= (min >> 9) & 1; chan_list[1] = (min >> 1); chan_list[2] = (min & 1) << 7; for (i = 0; i < bv->data_len*8; i++) { - rc = freq_list_bmrel_set_arfcn(chan_list, i); - if (rc < 0) - return rc; + if (bitvec_get_bit_pos(bv, i)) { + rc = freq_list_bmrel_set_arfcn(chan_list, i); + if (rc < 0) + return rc; + } } return 0; -- cgit v1.2.3