Timur Davydov has uploaded this change for review.
trx: factor out TRX ctrl message submission
Extract TRX control message sending logic into
trx_ctrl_submit_msg() and reuse it from trx_ctrl_send()
This separates message construction from transport-specific
submission and prepares for alternative backends
No functional changes intended
Change-Id: Ibbd50117db4531efbc374e43e3802f9f995362cd
---
M src/osmo-bts-trx/trx_if.c
1 file changed, 26 insertions(+), 17 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/94/42694/1
diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c
index aabc54c..c073240 100644
--- a/src/osmo-bts-trx/trx_if.c
+++ b/src/osmo-bts-trx/trx_if.c
@@ -137,24 +137,9 @@
* TRX ctrl socket
*/
-/* send first ctrl message and start timer */
-static void trx_ctrl_send(struct trx_l1h *l1h)
+static int trx_ctrl_submit_msg(struct trx_l1h *l1h, struct msgb *msg, const char *buf)
{
- struct trx_ctrl_msg *tcm;
- char *buf;
- struct msgb *msg;
- int len, rc;
-
- /* get first command */
- if (llist_empty(&l1h->trx_ctrl_list))
- return;
- tcm = llist_entry(l1h->trx_ctrl_list.next, struct trx_ctrl_msg, list);
-
- msg = msgb_alloc(TRXC_MSG_BUF_SIZE, "trxc_cmd");
- buf = (char *)msgb_data(msg);
- len = snprintf(buf, msg->data_len, "CMD %s%s%s", tcm->cmd, tcm->params_len ? " ":"", tcm->params);
- OSMO_ASSERT(len < msg->data_len);
- msgb_put(msg, len);
+ int rc;
if (!l1h->trx_ctrl_iofd) {
LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR,
@@ -177,6 +162,30 @@
resched:
/* start timer */
osmo_timer_schedule(&l1h->trx_ctrl_timer, 2, 0);
+
+ return rc;
+}
+
+/* send first ctrl message and start timer */
+static void trx_ctrl_send(struct trx_l1h *l1h)
+{
+ struct trx_ctrl_msg *tcm;
+ char *buf;
+ struct msgb *msg;
+ int len;
+
+ /* get first command */
+ if (llist_empty(&l1h->trx_ctrl_list))
+ return;
+ tcm = llist_entry(l1h->trx_ctrl_list.next, struct trx_ctrl_msg, list);
+
+ msg = msgb_alloc(TRXC_MSG_BUF_SIZE, "trxc_cmd");
+ buf = (char *)msgb_data(msg);
+ len = snprintf(buf, msg->data_len, "CMD %s%s%s", tcm->cmd, tcm->params_len ? " ":"", tcm->params);
+ OSMO_ASSERT(len < msg->data_len);
+ msgb_put(msg, len);
+
+ trx_ctrl_submit_msg(l1h, msg, buf);
}
/* send first ctrl message and start timer */
To view, visit change 42694. To unsubscribe, or for help writing mail filters, visit settings.