Review at  https://gerrit.osmocom.org/2821

Add define to check SI presence

Add define from OsmoBTS which checks for presence of a given SI message
in gsm_bts struct. Rename it to avoid conflicts with OsmoBTS code and to
match naming conventions of similar macros.

Change-Id: I11432c93c772d1ead6d45a7bb0f1d13d492c82f1
Related: OS#1660
---
M openbsc/include/openbsc/gsm_data_shared.h
M openbsc/src/libbsc/bsc_init.c
M openbsc/src/libbsc/system_information.c
M openbsc/tests/gsm0408/gsm0408_test.c
4 files changed, 5 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/21/2821/1

diff --git a/openbsc/include/openbsc/gsm_data_shared.h 
b/openbsc/include/openbsc/gsm_data_shared.h
index 1380a6c..4557367 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -486,6 +486,7 @@
 };
 
 #define GSM_BTS_SI2Q(bts)      (struct gsm48_system_information_type_2quater 
*)((bts)->si_buf[SYSINFO_TYPE_2quater])
+#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i))
 #define GSM_BTS_SI(bts, i)     (void *)((bts)->si_buf[i])
 #define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i])
 
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c
index db18070..9284376 100644
--- a/openbsc/src/libbsc/bsc_init.c
+++ b/openbsc/src/libbsc/bsc_init.c
@@ -188,7 +188,7 @@
 
        for (n = 0; n < n_si; n++) {
                i = gen_si[n];
-               if (!(bts->si_valid & (1 << i)))
+               if (!GSM_BTS_HAS_SI(bts, i))
                        continue;
                rc = rsl_si(trx, i, si_len[i]);
                if (rc < 0)
diff --git a/openbsc/src/libbsc/system_information.c 
b/openbsc/src/libbsc/system_information.c
index 644bebd..a074a78 100644
--- a/openbsc/src/libbsc/system_information.c
+++ b/openbsc/src/libbsc/system_information.c
@@ -774,13 +774,13 @@
        /* allow/disallow DTXu */
        gsm48_set_dtx(&si3->cell_options, bts->dtxu, bts->dtxu, true);
 
-       if ((bts->si_valid & (1 << SYSINFO_TYPE_2ter))) {
+       if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter)) {
                LOGP(DRR, LOGL_INFO, "SI 2ter is included.\n");
                si_info.si2ter_indicator = 1;
        } else {
                si_info.si2ter_indicator = 0;
        }
-       if ((bts->si_valid & (1 << SYSINFO_TYPE_2quater))) {
+       if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater)) {
                LOGP(DRR, LOGL_INFO, "SI 2quater is included, based on %zu 
EARFCNs and %zu UARFCNs.\n",
                     si2q_earfcn_count(&bts->si_common.si2quater_neigh_list), 
bts->si_common.uarfcn_length);
                si_info.si2quater_indicator = 1;
diff --git a/openbsc/tests/gsm0408/gsm0408_test.c 
b/openbsc/tests/gsm0408/gsm0408_test.c
index 36f6993..5a78505 100644
--- a/openbsc/tests/gsm0408/gsm0408_test.c
+++ b/openbsc/tests/gsm0408/gsm0408_test.c
@@ -105,7 +105,7 @@
        r = gsm_generate_si(bts, SYSINFO_TYPE_2quater);
        if (r > 0)
                printf("generated %s SI2quater [%02u/%02u]: [%d] %s\n",
-                      (bts->si_valid & (1 << SYSINFO_TYPE_2quater)) ? "valid" 
: "invalid",
+                      GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) ? "valid" : 
"invalid",
                       bts->si2q_index, bts->si2q_count, r,
                       osmo_hexdump((void *)GSM_BTS_SI2Q(bts), 
GSM_MACBLOCK_LEN));
        else

-- 
To view, visit https://gerrit.osmocom.org/2821
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I11432c93c772d1ead6d45a7bb0f1d13d492c82f1
Gerrit-PatchSet: 1
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Max <msur...@sysmocom.de>

Reply via email to