summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/gsm322.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/src/mobile/gsm322.c')
-rw-r--r--src/host/layer23/src/mobile/gsm322.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c
index 53d36d89..e058a808 100644
--- a/src/host/layer23/src/mobile/gsm322.c
+++ b/src/host/layer23/src/mobile/gsm322.c
@@ -509,8 +509,6 @@ static void gsm322_unselect_cell(struct gsm322_cellsel *cs)
LOGP(DCS, LOGL_INFO, "Unselecting serving cell.\n");
cs->selected = 0;
- if (cs->si)
- cs->si->si5 = 0; /* unset SI5* */
cs->si = NULL;
memset(&cs->sel_si, 0, sizeof(cs->sel_si));
cs->sel_mcc = cs->sel_mnc = cs->sel_lac = cs->sel_id = 0;
@@ -4859,8 +4857,12 @@ int gsm322_dump_sorted_plmn(struct osmocom_ms *ms)
int gsm322_dump_cs_list(struct gsm322_cellsel *cs, uint8_t flags,
void (*print)(void *, const char *, ...), void *priv)
{
- int i;
struct gsm48_sysinfo *s;
+ char arfcn_str[9];
+ int i, arfci = -1;
+
+ if (cs->selected)
+ arfci = arfcn2index(cs->sel_arfcn);
print(priv, "ARFCN |MCC |MNC |LAC |cell ID|forb.LA|prio |"
"min-db |max-pwr|rx-lev\n");
@@ -4871,11 +4873,15 @@ int gsm322_dump_cs_list(struct gsm322_cellsel *cs, uint8_t flags,
if (!s || !(cs->list[i].flags & flags))
continue;
if (i >= 1024)
- print(priv, "%4dPCS|", i-1024+512);
+ sprintf(arfcn_str, "%4dPCS|", i-1024+512);
else if (i >= 512 && i <= 885)
- print(priv, "%4dDCS|", i);
+ sprintf(arfcn_str, "%4dDCS|", i);
else
- print(priv, "%4d |", i);
+ sprintf(arfcn_str, "%4d |", i);
+ if (i == arfci) {
+ arfcn_str[6] = '*';
+ print(priv, arfcn_str);
+ }
if (s->mcc) {
print(priv, "%s |%s%s |", gsm_print_mcc(s->mcc),
gsm_print_mnc(s->mnc),
@@ -4906,6 +4912,8 @@ int gsm322_dump_cs_list(struct gsm322_cellsel *cs, uint8_t flags,
print(priv, "n/a |n/a |n/a\n");
}
print(priv, "\n");
+ if (arfci >= 0)
+ print(priv, "* = Selected cell\n");
return 0;
}