Timur Davydov has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/42694?usp=email )
Change subject: trx: factor out TRX ctrl message submission ......................................................................
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 */