<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19297">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: Drop duplicated function to get trx by number<br><br>In the big mess of gsm_data we reached a point where we have multiple<br>functions doing the same thing, most probably because it's hard finding<br>stuff in there. Let's drop one of them (the one which less callers) and<br>move it to bts.*, where it belongs.<br><br>Change-Id: I9071a0ab250844619280fbe2be63ed99f2c87eb1<br>---<br>M include/osmocom/bsc/bts.h<br>M include/osmocom/bsc/gsm_data.h<br>M src/osmo-bsc/abis_nm.c<br>M src/osmo-bsc/abis_om2000.c<br>M src/osmo-bsc/abis_om2000_vty.c<br>M src/osmo-bsc/bsc_ctrl_lookup.c<br>M src/osmo-bsc/bts.c<br>M src/osmo-bsc/gsm_data.c<br>8 files changed, 14 insertions(+), 25 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/19297/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h</span><br><span>index a18d8ae..0ada79a 100644</span><br><span>--- a/include/osmocom/bsc/bts.h</span><br><span>+++ b/include/osmocom/bsc/bts.h</span><br><span>@@ -596,7 +596,7 @@</span><br><span> </span><br><span> int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_bts_trx *gsm_bts_trx_by_nr(struct gsm_bts *bts, int nr);</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num);</span><br><span> </span><br><span> int bts_gprs_mode_is_compat(struct gsm_bts *bts, enum bts_gprs_mode mode);</span><br><span> </span><br><span>diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h</span><br><span>index a9ce023..e9105b3 100644</span><br><span>--- a/include/osmocom/bsc/gsm_data.h</span><br><span>+++ b/include/osmocom/bsc/gsm_data.h</span><br><span>@@ -964,7 +964,6 @@</span><br><span>                                    int match_idx);</span><br><span> </span><br><span> struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts);</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num);</span><br><span> </span><br><span> extern const struct value_string gsm_chreq_descs[];</span><br><span> extern const struct value_string gsm_pchant_names[];</span><br><span>diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c</span><br><span>index 4ce27f3..19eed8c 100644</span><br><span>--- a/src/osmo-bsc/abis_nm.c</span><br><span>+++ b/src/osmo-bsc/abis_nm.c</span><br><span>@@ -800,7 +800,7 @@</span><br><span> {</span><br><span>     struct abis_om_fom_hdr *foh = msgb_l3(oml_msg);</span><br><span>      struct e1inp_sign_link *sign_link = oml_msg->dst;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_bts_trx *trx = gsm_bts_trx_by_nr(sign_link->trx->bts, foh->obj_inst.trx_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+      struct gsm_bts_trx *trx = gsm_bts_trx_num(sign_link->trx->bts, foh->obj_inst.trx_nr);</span><br><span>       uint8_t ts_nr = foh->obj_inst.ts_nr;</span><br><span>      if (!trx) {</span><br><span>          LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for sign_link without trx\n",</span><br><span>@@ -2791,7 +2791,7 @@</span><br><span> </span><br><span>    /* The message might be received over the main OML link, so we cannot</span><br><span>         * just use sign_link->trx. Resolve it by number from the FOM header. */</span><br><span style="color: hsl(0, 100%, 40%);">-     trx = gsm_bts_trx_by_nr(sign_link->trx->bts, foh->obj_inst.trx_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+  trx = gsm_bts_trx_num(sign_link->trx->bts, foh->obj_inst.trx_nr);</span><br><span> </span><br><span>       DEBUGPFOH(DNM, foh, "Rx IPACCESS(0x%02x): %s\n", foh->msg_type,</span><br><span>                   osmo_hexdump(foh->data, oh->length - sizeof(*foh)));</span><br><span>diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c</span><br><span>index 1e4ef97..5c8b378 100644</span><br><span>--- a/src/osmo-bsc/abis_om2000.c</span><br><span>+++ b/src/osmo-bsc/abis_om2000.c</span><br><span>@@ -1039,7 +1039,7 @@</span><br><span>    case OM2K_MO_CLS_TX:</span><br><span>         case OM2K_MO_CLS_RX:</span><br><span>                 /* Route through per-TRX OML Link to the appropriate TRX */</span><br><span style="color: hsl(0, 100%, 40%);">-             trx = gsm_bts_trx_by_nr(bts, o2h->mo.inst);</span><br><span style="color: hsl(120, 100%, 40%);">+                trx = gsm_bts_trx_num(bts, o2h->mo.inst);</span><br><span>                 if (!trx) {</span><br><span>                  LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "</span><br><span>                          "non-existing TRX\n", om2k_mo_name(&o2h->mo));</span><br><span>@@ -1049,7 +1049,7 @@</span><br><span>              break;</span><br><span>       case OM2K_MO_CLS_TS:</span><br><span>                 /* Route through per-TRX OML Link to the appropriate TRX */</span><br><span style="color: hsl(0, 100%, 40%);">-             trx = gsm_bts_trx_by_nr(bts, o2h->mo.assoc_so);</span><br><span style="color: hsl(120, 100%, 40%);">+            trx = gsm_bts_trx_num(bts, o2h->mo.assoc_so);</span><br><span>             if (!trx) {</span><br><span>                  LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "</span><br><span>                          "non-existing TRX\n", om2k_mo_name(&o2h->mo));</span><br><span>diff --git a/src/osmo-bsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c</span><br><span>index b00c7dd..26e8488 100644</span><br><span>--- a/src/osmo-bsc/abis_om2000_vty.c</span><br><span>+++ b/src/osmo-bsc/abis_om2000_vty.c</span><br><span>@@ -561,7 +561,7 @@</span><br><span>           abis_om2k_tx_con_conf_req(bts);</span><br><span>              break;</span><br><span>       case OM2K_MO_CLS_TS:</span><br><span style="color: hsl(0, 100%, 40%);">-            trx = gsm_bts_trx_by_nr(bts, oms->mo.assoc_so);</span><br><span style="color: hsl(120, 100%, 40%);">+            trx = gsm_bts_trx_num(bts, oms->mo.assoc_so);</span><br><span>             if (!trx) {</span><br><span>                  vty_out(vty, "%% BTS %u has no TRX %u%s", bts->nr,</span><br><span>                              oms->mo.assoc_so, VTY_NEWLINE);</span><br><span>@@ -578,7 +578,7 @@</span><br><span>     case OM2K_MO_CLS_RX:</span><br><span>         case OM2K_MO_CLS_TX:</span><br><span>         case OM2K_MO_CLS_TRXC:</span><br><span style="color: hsl(0, 100%, 40%);">-          trx = gsm_bts_trx_by_nr(bts, oms->mo.inst);</span><br><span style="color: hsl(120, 100%, 40%);">+                trx = gsm_bts_trx_num(bts, oms->mo.inst);</span><br><span>                 if (!trx) {</span><br><span>                  vty_out(vty, "%% BTS %u has no TRX %u%s", bts->nr,</span><br><span>                              oms->mo.inst, VTY_NEWLINE);</span><br><span>diff --git a/src/osmo-bsc/bsc_ctrl_lookup.c b/src/osmo-bsc/bsc_ctrl_lookup.c</span><br><span>index 38d1ba4..4328d76 100644</span><br><span>--- a/src/osmo-bsc/bsc_ctrl_lookup.c</span><br><span>+++ b/src/osmo-bsc/bsc_ctrl_lookup.c</span><br><span>@@ -29,6 +29,7 @@</span><br><span> #include <osmocom/bsc/debug.h></span><br><span> #include <osmocom/bsc/gsm_data.h></span><br><span> #include <osmocom/bsc/bsc_msc_data.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bts.h></span><br><span> </span><br><span> extern vector ctrl_node_vec;</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c</span><br><span>index 9aae1d5..4b191b5 100644</span><br><span>--- a/src/osmo-bsc/bts.c</span><br><span>+++ b/src/osmo-bsc/bts.c</span><br><span>@@ -558,14 +558,18 @@</span><br><span>   return 1;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_bts_trx *gsm_bts_trx_by_nr(struct gsm_bts *bts, int nr)</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num)</span><br><span> {</span><br><span>   struct gsm_bts_trx *trx;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  if (num >= bts->num_trx)</span><br><span style="color: hsl(120, 100%, 40%);">+                return NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>       llist_for_each_entry(trx, &bts->trx_list, list) {</span><br><span style="color: hsl(0, 100%, 40%);">-                if (trx->nr == nr)</span><br><span style="color: hsl(120, 100%, 40%);">+         if (trx->nr == num)</span><br><span>                       return trx;</span><br><span>  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  return NULL;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c</span><br><span>index 0dafa35..49121d6 100644</span><br><span>--- a/src/osmo-bsc/gsm_data.c</span><br><span>+++ b/src/osmo-bsc/gsm_data.c</span><br><span>@@ -349,21 +349,6 @@</span><br><span>        return trx;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gsm_bts_trx *trx;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (num >= bts->num_trx)</span><br><span style="color: hsl(0, 100%, 40%);">-          return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    llist_for_each_entry(trx, &bts->trx_list, list) {</span><br><span style="color: hsl(0, 100%, 40%);">-                if (trx->nr == num)</span><br><span style="color: hsl(0, 100%, 40%);">-                  return trx;</span><br><span style="color: hsl(0, 100%, 40%);">-     }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static char ts2str[255];</span><br><span> </span><br><span> char *gsm_bts_name(const struct gsm_bts *bts)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19297">change 19297</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bsc/+/19297"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9071a0ab250844619280fbe2be63ed99f2c87eb1 </div>
<div style="display:none"> Gerrit-Change-Number: 19297 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>