[PATCH 4/5] LC15: refactor code to simplify understanding

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

msuraev at sysmocom.de msuraev at sysmocom.de
Tue Mar 22 14:40:11 UTC 2016


From: Max <msuraev at sysmocom.de>

Use bool type for boolean values.
Make if order more natural.
---
 src/osmo-bts-litecell15/l1_if.c | 44 ++++++++++++++++++++---------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c
index d89cc29..d810248 100644
--- a/src/osmo-bts-litecell15/l1_if.c
+++ b/src/osmo-bts-litecell15/l1_if.c
@@ -28,7 +28,7 @@
 #include <unistd.h>
 #include <errno.h>
 #include <fcntl.h>
-
+#include <stdbool.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -96,7 +96,7 @@ static void l1if_req_timeout(void *data)
 }
 
 static int _l1if_req_compl(struct lc15l1_hdl *fl1h, struct msgb *msg,
-		   int is_system_prim, l1if_compl_cb *cb, void *data)
+		   bool is_system_prim, l1if_compl_cb *cb, void *data)
 {
 	struct wait_l1_conf *wlc;
 	struct osmo_wqueue *wqueue;
@@ -108,23 +108,7 @@ static int _l1if_req_compl(struct lc15l1_hdl *fl1h, struct msgb *msg,
 	wlc->cb_data = data;
 
 	/* Make sure we actually have received a REQUEST type primitive */
-	if (is_system_prim == 0) {
-		GsmL1_Prim_t *l1p = msgb_l1prim(msg);
-
-		LOGP(DL1P, LOGL_INFO, "Tx L1 prim %s\n",
-			get_value_string(lc15bts_l1prim_names, l1p->id));
-
-		if (lc15bts_get_l1prim_type(l1p->id) != L1P_T_REQ) {
-			LOGP(DL1C, LOGL_ERROR, "L1 Prim %s is not a Request!\n",
-				get_value_string(lc15bts_l1prim_names, l1p->id));
-			talloc_free(wlc);
-			return -EINVAL;
-		}
-		wlc->is_sys_prim = 0;
-		wlc->conf_prim_id = lc15bts_get_l1prim_conf(l1p->id);
-		wqueue = &fl1h->write_q[MQ_L1_WRITE];
-		timeout_secs = 30;
-	} else {
+	if (is_system_prim) {
 		Litecell15_Prim_t *sysp = msgb_sysprim(msg);
 
 		LOGP(DL1C, LOGL_INFO, "Tx SYS prim %s\n",
@@ -139,9 +123,25 @@ static int _l1if_req_compl(struct lc15l1_hdl *fl1h, struct msgb *msg,
 		wlc->is_sys_prim = 1;
 		wlc->conf_prim_id = lc15bts_get_sysprim_conf(sysp->id);
 		wqueue = &fl1h->write_q[MQ_SYS_WRITE];
-		timeout_secs = 30;
+	} else {
+		GsmL1_Prim_t *l1p = msgb_l1prim(msg);
+
+		LOGP(DL1P, LOGL_INFO, "Tx L1 prim %s\n",
+			get_value_string(lc15bts_l1prim_names, l1p->id));
+
+		if (lc15bts_get_l1prim_type(l1p->id) != L1P_T_REQ) {
+			LOGP(DL1C, LOGL_ERROR, "L1 Prim %s is not a Request!\n",
+				get_value_string(lc15bts_l1prim_names, l1p->id));
+			talloc_free(wlc);
+			return -EINVAL;
+		}
+		wlc->is_sys_prim = 0;
+		wlc->conf_prim_id = lc15bts_get_l1prim_conf(l1p->id);
+		wqueue = &fl1h->write_q[MQ_L1_WRITE];
 	}
 
+	timeout_secs = 30;
+
 	/* enqueue the message in the queue and add wsc to list */
 	if (osmo_wqueue_enqueue(wqueue, msg) != 0) {
 		/* So we will get a timeout but the log message might help */
@@ -163,13 +163,13 @@ static int _l1if_req_compl(struct lc15l1_hdl *fl1h, struct msgb *msg,
 int l1if_req_compl(struct lc15l1_hdl *fl1h, struct msgb *msg,
 		   l1if_compl_cb *cb, void *data)
 {
-	return _l1if_req_compl(fl1h, msg, 1, cb, data);
+	return _l1if_req_compl(fl1h, msg, true, cb, data);
 }
 
 int l1if_gsm_req_compl(struct lc15l1_hdl *fl1h, struct msgb *msg,
 		   l1if_compl_cb *cb, void *data)
 {
-	return _l1if_req_compl(fl1h, msg, 0, cb, data);
+	return _l1if_req_compl(fl1h, msg, false, cb, data);
 }
 
 /* allocate a msgb containing a GsmL1_Prim_t */
-- 
2.7.4




More information about the OpenBSC mailing list