<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11303">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gsm_08_58.h: Introduce struct abis_rsl_chan_nr<br><br>It will allow to make code handling chan_nr values more easier to read<br>and less prone to errors.<br>union is used to be able to get the full octet in<br>case we need to pass it somewhere else or encode it.<br><br>An extra union is used in struct abis_rsl_common_hdr and others to allow<br>using fields directly while keeping API compatibility.<br><br>Change-Id: Icd6822021207270a00106c50f8ca6b93c1250df9<br>---<br>M include/osmocom/gsm/protocol/gsm_08_58.h<br>1 file changed, 32 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h</span><br><span>index c7a7d8a..cd28caf 100644</span><br><span>--- a/include/osmocom/gsm/protocol/gsm_08_58.h</span><br><span>+++ b/include/osmocom/gsm/protocol/gsm_08_58.h</span><br><span>@@ -31,6 +31,26 @@</span><br><span>  *  @{</span><br><span>  * \file gsm_08_58.h */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Channel Number 9.3.1 */</span><br><span style="color: hsl(120, 100%, 40%);">+union abis_rsl_chan_nr {</span><br><span style="color: hsl(120, 100%, 40%);">+#if OSMO_IS_BIG_ENDIAN</span><br><span style="color: hsl(120, 100%, 40%);">+         uint8_t cbits:5,</span><br><span style="color: hsl(120, 100%, 40%);">+                      tn:3;</span><br><span style="color: hsl(120, 100%, 40%);">+#elif OSMO_IS_LITTLE_ENDIAN</span><br><span style="color: hsl(120, 100%, 40%);">+            uint8_t tn:3,</span><br><span style="color: hsl(120, 100%, 40%);">+                 cbits:5;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+              uint8_t chan_nr;</span><br><span style="color: hsl(120, 100%, 40%);">+} __attribute__ ((packed));</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_Bm_ACCHs  0x01</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_Lm_ACCHs(ss)       (0x02 + (ss))</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_SDCCH4_ACCH(ss)   (0x04 + (ss))</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(ss)   (0x08 + (ss))</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_BCCH              0x10</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_RACH               0x11</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_PCH_AGCH   0x12</span><br><span style="color: hsl(120, 100%, 40%);">+#define ABIS_RSL_CHAN_NR_CBITS_OSMO_PDCH  0x18 /*< non-standard, for dyn TS */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Link Identifier 9.3.2 */</span><br><span> union abis_rsl_link_id {</span><br><span> #if OSMO_IS_BIG_ENDIAN</span><br><span>@@ -60,7 +80,10 @@</span><br><span> struct abis_rsl_rll_hdr {</span><br><span>     struct abis_rsl_common_hdr c;</span><br><span>        uint8_t ie_chan;        /*!< \ref RSL_IE_CHAN_NR (tag) */</span><br><span style="color: hsl(0, 100%, 40%);">-    uint8_t chan_nr;        /*!< RSL channel number (value) */</span><br><span style="color: hsl(120, 100%, 40%);">+ union {</span><br><span style="color: hsl(120, 100%, 40%);">+               uint8_t chan_nr;         /* API backward compat */</span><br><span style="color: hsl(120, 100%, 40%);">+            union abis_rsl_chan_nr chan_nr_fields; /*!< RSL channel number (value) */</span><br><span style="color: hsl(120, 100%, 40%);">+  };</span><br><span>   uint8_t ie_link_id;     /*!< \ref RSL_IE_LINK_IDENT (tag) */</span><br><span>      union {</span><br><span>              uint8_t link_id; /* API backward compat */</span><br><span>@@ -73,7 +96,10 @@</span><br><span> struct abis_rsl_dchan_hdr {</span><br><span>       struct abis_rsl_common_hdr c;</span><br><span>        uint8_t ie_chan;        /*!< \ref RSL_IE_CHAN_NR (tag) */</span><br><span style="color: hsl(0, 100%, 40%);">-    uint8_t chan_nr;        /*!< RSL channel number (value) */</span><br><span style="color: hsl(120, 100%, 40%);">+ union {</span><br><span style="color: hsl(120, 100%, 40%);">+               uint8_t chan_nr;         /* API backward compat */</span><br><span style="color: hsl(120, 100%, 40%);">+            union abis_rsl_chan_nr chan_nr_fields; /*!< RSL channel number (value) */</span><br><span style="color: hsl(120, 100%, 40%);">+  };</span><br><span>   uint8_t data[0];        /*!< message payload data */</span><br><span> } __attribute__ ((packed));</span><br><span> </span><br><span>@@ -81,7 +107,10 @@</span><br><span> struct abis_rsl_cchan_hdr {</span><br><span>      struct abis_rsl_common_hdr c;</span><br><span>        uint8_t ie_chan;        /*!< \ref RSL_IE_CHAN_NR (tag) */</span><br><span style="color: hsl(0, 100%, 40%);">-    uint8_t chan_nr;        /*!< RSL channel number (value) */</span><br><span style="color: hsl(120, 100%, 40%);">+ union {</span><br><span style="color: hsl(120, 100%, 40%);">+               uint8_t chan_nr;         /* API backward compat */</span><br><span style="color: hsl(120, 100%, 40%);">+            union abis_rsl_chan_nr chan_nr_fields; /*!< RSL channel number (value) */</span><br><span style="color: hsl(120, 100%, 40%);">+  };</span><br><span>   uint8_t data[0];        /*!< message payload data */</span><br><span> } __attribute__ ((packed));</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11303">change 11303</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/11303"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Icd6822021207270a00106c50f8ca6b93c1250df9 </div>
<div style="display:none"> Gerrit-Change-Number: 11303 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: Vadim Yanitskiy <axilirator@gmail.com> </div>