<p>Max has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13354">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">trxcon: use helper to add l1ctl_info_dl<br><br>Use static helpers to add l1ctl_info_dl to msgb - this simplifies<br>l1ctl_* routines and reduce code duplication.<br><br>Change-Id: I0b5b81f1fcd2984136e553a93735ea5456d2b3df<br>---<br>M src/host/trxcon/l1ctl.c<br>1 file changed, 18 insertions(+), 24 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/54/13354/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c</span><br><span>index eb14832..0541f58 100644</span><br><span>--- a/src/host/trxcon/l1ctl.c</span><br><span>+++ b/src/host/trxcon/l1ctl.c</span><br><span>@@ -138,13 +138,24 @@</span><br><span>  return l1ctl_link_send(l1l, msg);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static struct l1ctl_info_dl *add_info_dl(struct msgb *msg, struct l1ctl_info_dl *dl_info)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      size_t len = sizeof(struct l1ctl_info_dl);</span><br><span style="color: hsl(120, 100%, 40%);">+    struct l1ctl_info_dl *dl = (struct l1ctl_info_dl *) msgb_put(msg, len);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     if (dl_info) /* Copy DL info provided by handler */</span><br><span style="color: hsl(120, 100%, 40%);">+           memcpy(dl, dl_info, len);</span><br><span style="color: hsl(120, 100%, 40%);">+     else /* Compose DL info header */</span><br><span style="color: hsl(120, 100%, 40%);">+             memset(dl, 0x00, len);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      return dl;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int l1ctl_tx_fbsb_conf(struct l1ctl_link *l1l, uint8_t result,</span><br><span>    struct l1ctl_info_dl *dl_info, uint8_t bsic)</span><br><span> {</span><br><span>    struct l1ctl_fbsb_conf *conf;</span><br><span style="color: hsl(0, 100%, 40%);">-   struct l1ctl_info_dl *dl;</span><br><span>    struct msgb *msg;</span><br><span style="color: hsl(0, 100%, 40%);">-       size_t len;</span><br><span> </span><br><span>      msg = l1ctl_alloc_msg(L1CTL_FBSB_CONF);</span><br><span>      if (msg == NULL)</span><br><span>@@ -153,10 +164,7 @@</span><br><span>      LOGP(DL1C, LOGL_DEBUG, "Send FBSB Conf (result=%u, bsic=%u)\n",</span><br><span>            result, bsic);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      /* Copy DL info provided by handler */</span><br><span style="color: hsl(0, 100%, 40%);">-  len = sizeof(struct l1ctl_info_dl);</span><br><span style="color: hsl(0, 100%, 40%);">-     dl = (struct l1ctl_info_dl *) msgb_put(msg, len);</span><br><span style="color: hsl(0, 100%, 40%);">-       memcpy(dl, dl_info, len);</span><br><span style="color: hsl(120, 100%, 40%);">+     add_info_dl(msg, dl_info);</span><br><span>   talloc_free(dl_info);</span><br><span> </span><br><span>    /* Fill in FBSB payload: BSIC and sync result */</span><br><span>@@ -198,7 +206,6 @@</span><br><span> int l1ctl_tx_dt_ind(struct l1ctl_link *l1l, struct l1ctl_info_dl *data,</span><br><span>    uint8_t *l2, size_t l2_len, bool traffic)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct l1ctl_info_dl *dl;</span><br><span>    struct msgb *msg;</span><br><span>    uint8_t *msg_l2;</span><br><span> </span><br><span>@@ -207,9 +214,7 @@</span><br><span>   if (msg == NULL)</span><br><span>             return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     /* Copy DL header */</span><br><span style="color: hsl(0, 100%, 40%);">-    dl = (struct l1ctl_info_dl *) msgb_put(msg, sizeof(*dl));</span><br><span style="color: hsl(0, 100%, 40%);">-       memcpy(dl, data, sizeof(*dl));</span><br><span style="color: hsl(120, 100%, 40%);">+        add_info_dl(msg, data);</span><br><span> </span><br><span>  /* Copy the L2 payload if preset */</span><br><span>  if (l2 && l2_len > 0) {</span><br><span>@@ -225,16 +230,13 @@</span><br><span> {</span><br><span>      struct l1ctl_info_dl *dl;</span><br><span>    struct msgb *msg;</span><br><span style="color: hsl(0, 100%, 40%);">-       size_t len;</span><br><span> </span><br><span>      msg = l1ctl_alloc_msg(L1CTL_RACH_CONF);</span><br><span>      if (msg == NULL)</span><br><span>             return -ENOMEM;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     len = sizeof(struct l1ctl_info_dl);</span><br><span style="color: hsl(0, 100%, 40%);">-     dl = (struct l1ctl_info_dl *) msgb_put(msg, len);</span><br><span style="color: hsl(120, 100%, 40%);">+     dl = add_info_dl(msg, NULL);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        memset(dl, 0x00, len);</span><br><span>       dl->band_arfcn = htons(l1l->trx->band_arfcn);</span><br><span>       dl->frame_nr = htonl(fn);</span><br><span> </span><br><span>@@ -248,9 +250,7 @@</span><br><span> int l1ctl_tx_dt_conf(struct l1ctl_link *l1l,</span><br><span>       struct l1ctl_info_dl *data, bool traffic)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  struct l1ctl_info_dl *dl;</span><br><span>    struct msgb *msg;</span><br><span style="color: hsl(0, 100%, 40%);">-       size_t len;</span><br><span> </span><br><span>      msg = l1ctl_alloc_msg(traffic ?</span><br><span>              L1CTL_TRAFFIC_CONF : L1CTL_DATA_CONF);</span><br><span>@@ -258,9 +258,7 @@</span><br><span>                 return -ENOMEM;</span><br><span> </span><br><span>  /* Copy DL frame header from source message */</span><br><span style="color: hsl(0, 100%, 40%);">-  len = sizeof(struct l1ctl_info_dl);</span><br><span style="color: hsl(0, 100%, 40%);">-     dl = (struct l1ctl_info_dl *) msgb_put(msg, len);</span><br><span style="color: hsl(0, 100%, 40%);">-       memcpy(dl, data, len);</span><br><span style="color: hsl(120, 100%, 40%);">+        add_info_dl(msg, data);</span><br><span> </span><br><span>  return l1ctl_link_send(l1l, msg);</span><br><span> }</span><br><span>@@ -292,7 +290,6 @@</span><br><span>         struct l1ctl_fbsb_conf *conf;</span><br><span>        struct l1ctl_info_dl *dl;</span><br><span>    struct msgb *msg;</span><br><span style="color: hsl(0, 100%, 40%);">-       size_t len;</span><br><span> </span><br><span>      msg = l1ctl_alloc_msg(L1CTL_FBSB_CONF);</span><br><span>      if (msg == NULL)</span><br><span>@@ -300,10 +297,7 @@</span><br><span> </span><br><span>  LOGP(DL1C, LOGL_DEBUG, "Send FBSB Conf (result=255, bsic=0)\n");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  /* Compose DL info header */</span><br><span style="color: hsl(0, 100%, 40%);">-    len = sizeof(struct l1ctl_info_dl);</span><br><span style="color: hsl(0, 100%, 40%);">-     dl = (struct l1ctl_info_dl *) msgb_put(msg, len);</span><br><span style="color: hsl(0, 100%, 40%);">-       memset(dl, 0x00, len);</span><br><span style="color: hsl(120, 100%, 40%);">+        dl = add_info_dl(msg, NULL);</span><br><span> </span><br><span>     /* Fill in current ARFCN */</span><br><span>  dl->band_arfcn = htons(l1l->trx->band_arfcn);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13354">change 13354</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/13354"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I0b5b81f1fcd2984136e553a93735ea5456d2b3df </div>
<div style="display:none"> Gerrit-Change-Number: 13354 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>