<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17010">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">csn1: get rid of C++ specific code, compile with GCC<br><br>The implementation of CSN.1 codec was taken from Wireshark, where<br>it's implemented in pure C. For some reason it was mixed with C++<br>specific features, mostly using references in parameter<br>declaration. Not sure what are the benefits.<br><br>Change-Id: I56d8b7fbd2f9f4e0bdd6b09d0366fe7eb7aa327a<br>---<br>M src/Makefile.am<br>R src/csn1.c<br>M src/csn1.h<br>M src/gsm_rlcmac.cpp<br>M src/gsm_rlcmac.h<br>M tests/rlcmac/RLCMACTest.cpp<br>6 files changed, 211 insertions(+), 213 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/10/17010/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/Makefile.am b/src/Makefile.am</span><br><span>index a84a511..eb1e389 100644</span><br><span>--- a/src/Makefile.am</span><br><span>+++ b/src/Makefile.am</span><br><span>@@ -40,7 +40,7 @@</span><br><span> </span><br><span> libgprs_la_SOURCES = \</span><br><span>     gprs_debug.cpp \</span><br><span style="color: hsl(0, 100%, 40%);">-        csn1.cpp \</span><br><span style="color: hsl(120, 100%, 40%);">+    csn1.c \</span><br><span>     gsm_rlcmac.cpp \</span><br><span>     gprs_bssgp_pcu.cpp \</span><br><span>         gprs_rlcmac.cpp \</span><br><span>diff --git a/src/csn1.cpp b/src/csn1.c</span><br><span>similarity index 91%</span><br><span>rename from src/csn1.cpp</span><br><span>rename to src/csn1.c</span><br><span>index 6203a44..88c4af3 100644</span><br><span>--- a/src/csn1.cpp</span><br><span>+++ b/src/csn1.c</span><br><span>@@ -28,8 +28,6 @@</span><br><span>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include <iostream></span><br><span style="color: hsl(0, 100%, 40%);">-#include <cstdlib></span><br><span> #include <assert.h></span><br><span> #include <string.h></span><br><span> #define __STDC_FORMAT_MACROS</span><br><span>@@ -47,33 +45,32 @@</span><br><span> #define STANDARD_TAG 1</span><br><span> #define REVERSED_TAG 0</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-using namespace std;</span><br><span> static const unsigned char ixBitsTab[] = {0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5};</span><br><span> </span><br><span> </span><br><span> /* Returns no_of_bits (up to 8) masked with 0x2B */</span><br><span> </span><br><span> static guint8</span><br><span style="color: hsl(0, 100%, 40%);">-get_masked_bits8( bitvec *vector, unsigned& readIndex, gint bit_offset,  const gint no_of_bits)</span><br><span style="color: hsl(120, 100%, 40%);">+get_masked_bits8(struct bitvec *vector, unsigned *readIndex, gint bit_offset,  const gint no_of_bits)</span><br><span> {</span><br><span>   static const guint8 maskBits[] = {0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF};</span><br><span>   //gint byte_offset = bit_offset >> 3;          /* divide by 8 */</span><br><span>   gint relative_bit_offset = bit_offset & 0x07;  /* modulo 8 */</span><br><span>   guint8 result;</span><br><span>   gint bit_shift = 8 - relative_bit_offset - (gint) no_of_bits;</span><br><span style="color: hsl(0, 100%, 40%);">-  readIndex -= relative_bit_offset;</span><br><span style="color: hsl(120, 100%, 40%);">+  *readIndex -= relative_bit_offset;</span><br><span>   if (bit_shift >= 0)</span><br><span>   {</span><br><span style="color: hsl(0, 100%, 40%);">-    result = (0x2B ^ ((guint8)bitvec_read_field(vector, &readIndex, 8))) >> bit_shift;</span><br><span style="color: hsl(0, 100%, 40%);">-    readIndex-= bit_shift;</span><br><span style="color: hsl(120, 100%, 40%);">+    result = (0x2B ^ ((guint8)bitvec_read_field(vector, readIndex, 8))) >> bit_shift;</span><br><span style="color: hsl(120, 100%, 40%);">+    *readIndex-= bit_shift;</span><br><span>     result &= maskBits[no_of_bits];</span><br><span>   }</span><br><span>   else</span><br><span>   { </span><br><span style="color: hsl(0, 100%, 40%);">-    guint8 hight_part = (0x2B ^ ((guint8)bitvec_read_field(vector, &readIndex, 8))) & maskBits[8 - relative_bit_offset];</span><br><span style="color: hsl(120, 100%, 40%);">+    guint8 hight_part = (0x2B ^ ((guint8)bitvec_read_field(vector, readIndex, 8))) & maskBits[8 - relative_bit_offset];</span><br><span>     hight_part = (guint8) (hight_part << (-bit_shift));</span><br><span style="color: hsl(0, 100%, 40%);">-    result =  (0x2B ^ ((guint8)bitvec_read_field(vector, &readIndex, 8))) >> (8 + bit_shift);</span><br><span style="color: hsl(0, 100%, 40%);">-    readIndex = readIndex - (8 - (-bit_shift));</span><br><span style="color: hsl(120, 100%, 40%);">+    result =  (0x2B ^ ((guint8)bitvec_read_field(vector, readIndex, 8))) >> (8 + bit_shift);</span><br><span style="color: hsl(120, 100%, 40%);">+    *readIndex = *readIndex - (8 - (-bit_shift));</span><br><span>     result |= hight_part;</span><br><span>   }</span><br><span>   return result;</span><br><span>@@ -107,7 +104,7 @@</span><br><span> };</span><br><span> </span><br><span> static gint16</span><br><span style="color: hsl(0, 100%, 40%);">-ProcessError( unsigned readIndex, const char* sz, gint16 err, const CSN_DESCR* pDescr)</span><br><span style="color: hsl(120, 100%, 40%);">+ProcessError( unsigned *readIndex, const char* sz, gint16 err, const CSN_DESCR* pDescr)</span><br><span> {</span><br><span>   gint16 i = MIN(-err, ((gint16) ElementsOf(ErrCodes)-1));</span><br><span>   if (i >= 0)</span><br><span>@@ -131,9 +128,9 @@</span><br><span>  */</span><br><span> </span><br><span> static gboolean</span><br><span style="color: hsl(0, 100%, 40%);">-existNextElement(bitvec *vector, unsigned& readIndex, guint8 Tag)</span><br><span style="color: hsl(120, 100%, 40%);">+existNextElement(struct bitvec *vector, unsigned *readIndex, guint8 Tag)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  guint8 res = bitvec_read_field(vector, &readIndex, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+  guint8 res = bitvec_read_field(vector, readIndex, 1);</span><br><span>   if (Tag == STANDARD_TAG)</span><br><span>   {</span><br><span>     return (res > 0);</span><br><span>@@ -143,7 +140,7 @@</span><br><span> </span><br><span> </span><br><span> gint16</span><br><span style="color: hsl(0, 100%, 40%);">-csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, bitvec *vector, unsigned& readIndex, void* data)</span><br><span style="color: hsl(120, 100%, 40%);">+csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec *vector, unsigned *readIndex, void* data)</span><br><span> {</span><br><span>   gint  remaining_bits_len = ar->remaining_bits_len;</span><br><span>   gint  bit_offset         = ar->bit_offset;</span><br><span>@@ -152,6 +149,7 @@</span><br><span>   guint32* pui32;</span><br><span>   guint64* pui64;</span><br><span>   guint8 Tag = STANDARD_TAG;</span><br><span style="color: hsl(120, 100%, 40%);">+  unsigned ib;</span><br><span> </span><br><span>   if (remaining_bits_len <= 0)</span><br><span>   {</span><br><span>@@ -167,7 +165,7 @@</span><br><span>         if (remaining_bits_len > 0)</span><br><span>         {</span><br><span>           pui8  = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-      *pui8 = bitvec_read_field(vector, &readIndex, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+         *pui8 = bitvec_read_field(vector, readIndex, 1);</span><br><span>           LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           /* end add the bit value to protocol tree */</span><br><span>         }</span><br><span>@@ -202,21 +200,21 @@</span><br><span>         {</span><br><span>           if (no_of_bits <= 8)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-         guint8 ui8 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+           guint8 ui8 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>             pui8      = pui8DATA(data, pDescr->offset);</span><br><span>             *pui8     = ui8;</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           }</span><br><span>           else if (no_of_bits <= 16)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-        guint16 ui16 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint16 ui16 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>             pui16       = pui16DATA(data, pDescr->offset);</span><br><span>             *pui16      = ui16;</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui16);</span><br><span>           }</span><br><span>           else if (no_of_bits <= 32)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-         guint32 ui32 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint32 ui32 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>             pui32       = pui32DATA(data, pDescr->offset);</span><br><span>             *pui32      = ui32;</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = 0x%08x | ", pDescr->sz , *pui32);</span><br><span>@@ -264,21 +262,21 @@</span><br><span>         {</span><br><span>           if (no_of_bits <= 8)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-     guint8 ui8 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+           guint8 ui8 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>             pui8      = pui8DATA(data, pDescr->offset);</span><br><span>             *pui8     = ui8 + (guint8)pDescr->descr.value;</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           }</span><br><span>           else if (no_of_bits <= 16)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-       guint16 ui16 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint16 ui16 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>             pui16       = pui16DATA(data, pDescr->offset);</span><br><span>             *pui16      = ui16 + (guint16)pDescr->descr.value;</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui16);</span><br><span>           }</span><br><span>           else if (no_of_bits <= 32)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-       guint32 ui32 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint32 ui32 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>             pui32       = pui32DATA(data, pDescr->offset);</span><br><span>             *pui32      = ui32 + (guint16)pDescr->descr.value;</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui32);</span><br><span>@@ -347,7 +345,7 @@</span><br><span>             pui8 = pui8DATA(data, pDescr->offset);</span><br><span>             do</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-        *pui8 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+        *pui8 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               bit_offset += no_of_bits;</span><br><span>@@ -428,9 +426,9 @@</span><br><span> </span><br><span>           if (no_of_bits <= 32)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-            for(unsigned ib = 0; ib < 4; ib++)</span><br><span style="color: hsl(120, 100%, 40%);">+            for(ib = 0; ib < 4; ib++)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-           guint8 ui8 = bitvec_read_field(vector, &readIndex, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+            guint8 ui8 = bitvec_read_field(vector, readIndex, 8);</span><br><span>               pui8      = pui8DATA(data, pDescr->offset+ib);</span><br><span>               *pui8      = ui8;</span><br><span>                LOGPC(DCSN1, LOGL_NOTICE, "%s[%u] = %u | ", pDescr->sz , ib, (unsigned)*pui8);</span><br><span>@@ -438,9 +436,9 @@</span><br><span>           }</span><br><span>           else if (no_of_bits <= 64)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-            for(unsigned ib = 0; ib < 8; ib++)</span><br><span style="color: hsl(120, 100%, 40%);">+            for(ib = 0; ib < 8; ib++)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-            guint8 ui8 = bitvec_read_field(vector, &readIndex, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+            guint8 ui8 = bitvec_read_field(vector, readIndex, 8);</span><br><span>               pui8      = pui8DATA(data, pDescr->offset+ib);</span><br><span>               *pui8      = ui8;</span><br><span>                LOGPC(DCSN1, LOGL_NOTICE, "%s[%u] = %u | ", pDescr->sz , ib, (unsigned)*pui8);</span><br><span>@@ -493,7 +491,7 @@</span><br><span>         while (count > 0)</span><br><span>         {</span><br><span>           guint8 no_of_bits = pChoice->bits;</span><br><span style="color: hsl(0, 100%, 40%);">-     guint8 value = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint8 value = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>           if (value == pChoice->value)</span><br><span>           {</span><br><span>             CSN_DESCR   descr[2];</span><br><span>@@ -524,7 +522,7 @@</span><br><span>             break;</span><br><span>           }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-          readIndex -= no_of_bits;</span><br><span style="color: hsl(120, 100%, 40%);">+          *readIndex -= no_of_bits;</span><br><span>           count--;</span><br><span>           pChoice++;</span><br><span>           i++;</span><br><span>@@ -541,7 +539,7 @@</span><br><span>         guint8 length_len              = pDescr->i;</span><br><span>         gint16               Status    = -1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   guint8 length = bitvec_read_field(vector, &readIndex, length_len);</span><br><span style="color: hsl(120, 100%, 40%);">+        guint8 length = bitvec_read_field(vector, readIndex, length_len);</span><br><span> </span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s length = %d | ", pDescr->sz , (int)length);</span><br><span>         bit_offset += length_len;</span><br><span>@@ -591,11 +589,11 @@</span><br><span> </span><br><span>           if (CSN_UNION_LH == pDescr->type)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-            index |= get_masked_bits8(vector,readIndex, bit_offset, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+            index |= get_masked_bits8(vector, readIndex, bit_offset, 1);</span><br><span>           }</span><br><span>           else</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-          index |= bitvec_read_field(vector, &readIndex, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        index |= bitvec_read_field(vector, readIndex, 1);</span><br><span>           }</span><br><span>           remaining_bits_len--;</span><br><span>           bit_offset++;</span><br><span>@@ -618,7 +616,7 @@</span><br><span>           {</span><br><span>             pui8  = pui8DATA(data, pDescr->offset);</span><br><span>             *pui8 = 0x00;</span><br><span style="color: hsl(0, 100%, 40%);">-      if (bitvec_read_field(vector, &readIndex, 1) > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (bitvec_read_field(vector, readIndex, 1) > 0)</span><br><span>             {</span><br><span>               *pui8 = 0x01;</span><br><span>             }</span><br><span>@@ -644,21 +642,21 @@</span><br><span> </span><br><span>               if (no_of_bits <= 8)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-                guint8 ui8 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+          guint8 ui8 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                 pui8       = pui8DATA(data, pDescr->offset);</span><br><span>                 *pui8      = ui8;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 16)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-             guint16 ui16 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+                guint16 ui16 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                 pui16        = pui16DATA(data, pDescr->offset);</span><br><span>                 *pui16       = ui16;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui16);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 32)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-              guint32 ui32 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+                guint32 ui32 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                 pui32       = pui32DATA(data, pDescr->offset);</span><br><span>                 *pui32      = ui32;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui32);</span><br><span>@@ -686,21 +684,21 @@</span><br><span>             {</span><br><span>               if (no_of_bits <= 8)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-                guint8 ui8 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+          guint8 ui8 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                 pui8      = pui8DATA(data, pDescr->offset);</span><br><span>                 *pui8     = ui8 + (guint8)pDescr->descr.value;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 16)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-              guint16 ui16 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+                guint16 ui16 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                 pui16       = pui16DATA(data, pDescr->offset);</span><br><span>                 *pui16      = ui16 + (guint16)pDescr->descr.value;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui16);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 32)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-              guint32 ui32 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+                guint32 ui32 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                 pui32       = pui32DATA(data, pDescr->offset);</span><br><span>                 *pui32      = ui32 + (guint16)pDescr->descr.value;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui32);</span><br><span>@@ -767,7 +765,7 @@</span><br><span> </span><br><span>                 while (nCount > 0)</span><br><span>                 {</span><br><span style="color: hsl(0, 100%, 40%);">-             *pui8 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+               *pui8 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                   LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>                   pui8++;</span><br><span>                   bit_offset += no_of_bits;</span><br><span>@@ -780,7 +778,7 @@</span><br><span> </span><br><span>                 while (nCount > 0)</span><br><span>                 {</span><br><span style="color: hsl(0, 100%, 40%);">-                *pui16 = bitvec_read_field(vector, &readIndex,  no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+              *pui16 = bitvec_read_field(vector, readIndex,  no_of_bits);</span><br><span>                   LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , *pui16);</span><br><span>                   pui16++;</span><br><span>                   bit_offset += no_of_bits;</span><br><span>@@ -856,13 +854,13 @@</span><br><span> </span><br><span>               if (no_of_bits <= 32)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-              guint32 ui32 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint32 ui32 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>                 pui32       = pui32DATA(data, pDescr->offset);</span><br><span>                 *pui32      = ui32;</span><br><span>               }</span><br><span>               else if (no_of_bits <= 64)</span><br><span>               {</span><br><span style="color: hsl(0, 100%, 40%);">-               guint64 ui64 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         guint64 ui64 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>                 pui64       = pui64DATA(data, pDescr->offset);</span><br><span>                 *pui64      = ui64;</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %lu | ", pDescr->sz , *pui64);</span><br><span>@@ -927,7 +925,7 @@</span><br><span>         }</span><br><span>         else</span><br><span>         {</span><br><span style="color: hsl(0, 100%, 40%);">-       fExist = bitvec_read_field(vector, &readIndex, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        fExist = bitvec_read_field(vector, readIndex, 1);</span><br><span>         }</span><br><span> </span><br><span>         *pui8 = fExist;</span><br><span>@@ -966,7 +964,7 @@</span><br><span>         /* the "regular" M_NEXT_EXIST description element */</span><br><span> </span><br><span>         fExist = 0x00;</span><br><span style="color: hsl(0, 100%, 40%);">-   if (bitvec_read_field(vector, &readIndex, 1))</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bitvec_read_field(vector, readIndex, 1))</span><br><span>         {</span><br><span>           fExist = 0x01;</span><br><span>         }</span><br><span>@@ -1009,7 +1007,7 @@</span><br><span>         }</span><br><span> </span><br><span>         /* the "regular" M_NEXT_EXIST_LH description element */</span><br><span style="color: hsl(0, 100%, 40%);">-        fExist = get_masked_bits8(vector,readIndex,bit_offset, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        fExist = get_masked_bits8(vector, readIndex, bit_offset, 1);</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)fExist);</span><br><span>         *pui8++   = fExist;</span><br><span>         remaining_bits_len -= 1;</span><br><span>@@ -1059,7 +1057,7 @@</span><br><span> </span><br><span>             if (nB1 > 0)</span><br><span>             { /* take care of the first byte - it will be right aligned */</span><br><span style="color: hsl(0, 100%, 40%);">-          *pui8 = bitvec_read_field(vector, &readIndex, nB1);</span><br><span style="color: hsl(120, 100%, 40%);">+       *pui8 = bitvec_read_field(vector, readIndex, nB1);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits  -= nB1;</span><br><span>@@ -1069,7 +1067,7 @@</span><br><span>             /* remaining no_of_bits is a multiple of 8 or 0 */</span><br><span>             while (no_of_bits > 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-       *pui8 = bitvec_read_field(vector, &readIndex, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+         *pui8 = bitvec_read_field(vector, readIndex, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits -= 8;</span><br><span>@@ -1113,14 +1111,14 @@</span><br><span> </span><br><span>             while (no_of_bits >= 8)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-       *pui8 = bitvec_read_field(vector, &readIndex, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+         *pui8 = bitvec_read_field(vector, readIndex, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits -= 8;</span><br><span>             }</span><br><span>             if (no_of_bits > 0)</span><br><span>             { </span><br><span style="color: hsl(0, 100%, 40%);">-       *pui8 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+        *pui8 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               bit_offset += no_of_bits;</span><br><span>@@ -1144,13 +1142,13 @@</span><br><span>             guint8 bits_to_handle = remaining_bits_len%8;</span><br><span>             if (bits_to_handle > 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGPC(DCSN1, LOGL_NOTICE, "%" PRIu64 "|", bitvec_read_field(vector, &readIndex, bits_to_handle));</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGPC(DCSN1, LOGL_NOTICE, "%" PRIu64 "|", bitvec_read_field(vector, readIndex, bits_to_handle));</span><br><span>               remaining_bits_len -= bits_to_handle;</span><br><span>               bit_offset += bits_to_handle;</span><br><span>             }</span><br><span>             else if (bits_to_handle == 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-       LOGPC(DCSN1, LOGL_NOTICE, "%" PRIu64 "|", bitvec_read_field(vector, &readIndex, 8));</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGPC(DCSN1, LOGL_NOTICE, "%" PRIu64 "|", bitvec_read_field(vector, readIndex, 8));</span><br><span>               remaining_bits_len -= 8;</span><br><span>               bit_offset += 8;</span><br><span>             }</span><br><span>@@ -1191,7 +1189,7 @@</span><br><span>           while (count > 0)</span><br><span>           {</span><br><span>             readIndex -= 8;</span><br><span style="color: hsl(0, 100%, 40%);">-          *pui8 = bitvec_read_field(vector, &readIndex, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+         *pui8 = bitvec_read_field(vector, readIndex, 8);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>             pui8++;</span><br><span>             bit_offset += 8;</span><br><span>@@ -1224,7 +1222,7 @@</span><br><span>           remaining_bits_len--;</span><br><span> </span><br><span>           /* extract and store no_of_bits long element from bitstream */</span><br><span style="color: hsl(0, 100%, 40%);">-         *pui8 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+        *pui8 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>           LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           pui8++;</span><br><span>           remaining_bits_len -= no_of_bits;</span><br><span>@@ -1238,7 +1236,7 @@</span><br><span>           bit_offset += no_of_bits;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)bitvec_read_field(vector, &readIndex, 1));</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)bitvec_read_field(vector, readIndex, 1));</span><br><span>         /* existNextElement() returned FALSE, 1 bit consumed */</span><br><span>         bit_offset++;</span><br><span> </span><br><span>@@ -1290,7 +1288,7 @@</span><br><span>           }</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)bitvec_read_field(vector, &readIndex, 1));</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)bitvec_read_field(vector, readIndex, 1));</span><br><span> </span><br><span>         /* existNextElement() returned FALSE, 1 bit consumed */</span><br><span>         bit_offset++;</span><br><span>@@ -1372,7 +1370,7 @@</span><br><span> </span><br><span>         if (no_of_bits <= 32)</span><br><span>         {</span><br><span style="color: hsl(0, 100%, 40%);">-        ui32 = bitvec_read_field(vector, &readIndex, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+         ui32 = bitvec_read_field(vector, readIndex, no_of_bits);</span><br><span>         }</span><br><span>         else</span><br><span>         {</span><br><span>@@ -1424,7 +1422,7 @@</span><br><span> </span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, bitvec *vector, unsigned& writeIndex, void* data)</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec *vector, unsigned *writeIndex, void* data)</span><br><span> {</span><br><span>   gint  remaining_bits_len = ar->remaining_bits_len;</span><br><span>   gint  bit_offset         = ar->bit_offset;</span><br><span>@@ -1432,6 +1430,7 @@</span><br><span>   guint16* pui16;</span><br><span>   guint32* pui32;</span><br><span>   guint64* pui64;</span><br><span style="color: hsl(120, 100%, 40%);">+  unsigned ib;</span><br><span> </span><br><span>   guint8 Tag = STANDARD_TAG;</span><br><span> </span><br><span>@@ -1449,7 +1448,7 @@</span><br><span>         if (remaining_bits_len > 0)</span><br><span>         {</span><br><span>           pui8  = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-      bitvec_write_field(vector, &writeIndex, *pui8, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 1);</span><br><span>           LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           /* end add the bit value to protocol tree */</span><br><span>         }</span><br><span>@@ -1483,19 +1482,19 @@</span><br><span>           if (no_of_bits <= 8)</span><br><span>           {</span><br><span>             pui8      = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-     bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           }</span><br><span>           else if (no_of_bits <= 16)</span><br><span>           {</span><br><span>             pui16       = pui16DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-         bitvec_write_field(vector, &writeIndex, *pui16, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+      bitvec_write_field(vector, writeIndex, *pui16, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui16);</span><br><span>           }</span><br><span>           else if (no_of_bits <= 32)</span><br><span>           {</span><br><span>             pui32       = pui32DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-         bitvec_write_field(vector, &writeIndex, *pui32, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+      bitvec_write_field(vector, writeIndex, *pui32, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui32);</span><br><span>           }</span><br><span>           else</span><br><span>@@ -1528,19 +1527,19 @@</span><br><span>           if (no_of_bits <= 8)</span><br><span>           {</span><br><span>             pui8      = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-      bitvec_write_field(vector, &writeIndex, *pui8 - (guint8)pDescr->descr.value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+      bitvec_write_field(vector, writeIndex, *pui8 - (guint8)pDescr->descr.value, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)(*pui8 - (guint8)pDescr->descr.value));</span><br><span>           }</span><br><span>           else if (no_of_bits <= 16)</span><br><span>           {</span><br><span>             pui16       = pui16DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-     bitvec_write_field(vector, &writeIndex, *pui16 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+            bitvec_write_field(vector, writeIndex, *pui16 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , (unsigned short)(*pui16 - (guint16)pDescr->descr.value));</span><br><span>           }</span><br><span>           else if (no_of_bits <= 32)</span><br><span>           {</span><br><span>             pui32       = pui32DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-           bitvec_write_field(vector, &writeIndex, *pui32 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+            bitvec_write_field(vector, writeIndex, *pui32 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , (unsigned int)(*pui32 - (guint16)pDescr->descr.value));</span><br><span>           }</span><br><span>           else</span><br><span>@@ -1569,12 +1568,12 @@</span><br><span>           if (no_of_bits <= 8)</span><br><span>           {</span><br><span>             pui8      = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-          bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>             // TODO : Change get_masked_bits8()</span><br><span style="color: hsl(0, 100%, 40%);">-            writeIndex -= no_of_bits;</span><br><span style="color: hsl(120, 100%, 40%);">+            *writeIndex -= no_of_bits;</span><br><span>             guint8 ui8 = get_masked_bits8(vector, writeIndex, bit_offset, no_of_bits);</span><br><span style="color: hsl(0, 100%, 40%);">-            writeIndex -= no_of_bits;</span><br><span style="color: hsl(0, 100%, 40%);">-       bitvec_write_field(vector, &writeIndex, ui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+            *writeIndex -= no_of_bits;</span><br><span style="color: hsl(120, 100%, 40%);">+         bitvec_write_field(vector, writeIndex, ui8, no_of_bits);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span> </span><br><span>           }</span><br><span>@@ -1612,7 +1611,7 @@</span><br><span>             pui8 = pui8DATA(data, pDescr->offset);</span><br><span>             do</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-        bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               bit_offset += no_of_bits;</span><br><span>@@ -1694,19 +1693,19 @@</span><br><span> </span><br><span>           if (no_of_bits <= 32)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-            for(unsigned ib = 0; ib < 4; ib++)</span><br><span style="color: hsl(120, 100%, 40%);">+            for(ib = 0; ib < 4; ib++)</span><br><span>             {</span><br><span>               pui8      = pui8DATA(data, pDescr->offset+ib);</span><br><span style="color: hsl(0, 100%, 40%);">-           bitvec_write_field(vector, &writeIndex, *pui8, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s[%u] = %u | ", pDescr->sz , ib, (unsigned)*pui8);</span><br><span>             }</span><br><span>           }</span><br><span>           else if (no_of_bits <= 64)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-            for(unsigned ib = 0; ib < 8; ib++)</span><br><span style="color: hsl(120, 100%, 40%);">+            for(ib = 0; ib < 8; ib++)</span><br><span>             {</span><br><span>               pui8      = pui8DATA(data, pDescr->offset+ib);</span><br><span style="color: hsl(0, 100%, 40%);">-         bitvec_write_field(vector, &writeIndex, *pui8, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s[%u] = %u | ", pDescr->sz , ib, (unsigned)*pui8);</span><br><span>             }</span><br><span>           }</span><br><span>@@ -1761,7 +1760,7 @@</span><br><span>         guint8 no_of_bits = pChoice->bits;</span><br><span>         guint8 value = pChoice->value;</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pChoice->descr.sz , (unsigned)value);</span><br><span style="color: hsl(0, 100%, 40%);">-        bitvec_write_field(vector, &writeIndex, value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, value, no_of_bits);</span><br><span> </span><br><span>         CSN_DESCR   descr[2];</span><br><span>         gint16      Status;</span><br><span>@@ -1799,16 +1798,16 @@</span><br><span>         unsigned lengthIndex;</span><br><span> </span><br><span>         // store writeIndex for length value (7 bit)</span><br><span style="color: hsl(0, 100%, 40%);">-        lengthIndex = writeIndex;</span><br><span style="color: hsl(0, 100%, 40%);">-        writeIndex += length_len;</span><br><span style="color: hsl(120, 100%, 40%);">+        lengthIndex = *writeIndex;</span><br><span style="color: hsl(120, 100%, 40%);">+        *writeIndex += length_len;</span><br><span>         bit_offset += length_len;</span><br><span>         remaining_bits_len -= length_len;</span><br><span>         arT.direction = 0;</span><br><span>         csnStreamInit(&arT, bit_offset, remaining_bits_len);</span><br><span>         Status = serialize(&arT, vector, writeIndex, pvDATA(data, pDescr->offset));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   bitvec_write_field(vector, &lengthIndex, writeIndex-lengthIndex-length_len, length_len);</span><br><span style="color: hsl(0, 100%, 40%);">-        LOGPC(DCSN1, LOGL_NOTICE, "%s length = %u | ", pDescr->sz , (unsigned)(writeIndex-lengthIndex));</span><br><span style="color: hsl(120, 100%, 40%);">+     bitvec_write_field(vector, &lengthIndex, *writeIndex - lengthIndex - length_len, length_len);</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGPC(DCSN1, LOGL_NOTICE, "%s length = %u | ", pDescr->sz , (unsigned)(*writeIndex - lengthIndex));</span><br><span> </span><br><span>         if (Status >= 0)</span><br><span>         {</span><br><span>@@ -1846,10 +1845,10 @@</span><br><span>         /* Assign UnionType */</span><br><span>         pui8  = pui8DATA(data, pDescr->offset);</span><br><span>        //read index from data and write to vector</span><br><span style="color: hsl(0, 100%, 40%);">-      bitvec_write_field(vector, &writeIndex, *pui8, Bits);</span><br><span style="color: hsl(120, 100%, 40%);">+     bitvec_write_field(vector, writeIndex, *pui8, Bits);</span><br><span> </span><br><span>     //decode index </span><br><span style="color: hsl(0, 100%, 40%);">-        writeIndex -= Bits;</span><br><span style="color: hsl(120, 100%, 40%);">+        *writeIndex -= Bits;</span><br><span>         </span><br><span>         while (Bits > 0)</span><br><span>         {</span><br><span>@@ -1857,11 +1856,11 @@</span><br><span> </span><br><span>           if (CSN_UNION_LH == pDescr->type)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-            index |= get_masked_bits8(vector,writeIndex, bit_offset, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+            index |= get_masked_bits8(vector, writeIndex, bit_offset, 1);</span><br><span>           }</span><br><span>           else</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-          index |= bitvec_read_field(vector, &writeIndex, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+       index |= bitvec_read_field(vector, writeIndex, 1);</span><br><span>           }</span><br><span> </span><br><span>           remaining_bits_len--;</span><br><span>@@ -1869,8 +1868,8 @@</span><br><span>           Bits--;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        writeIndex -= Bits;</span><br><span style="color: hsl(0, 100%, 40%);">-   bitvec_write_field(vector, &writeIndex, index, Bits);</span><br><span style="color: hsl(120, 100%, 40%);">+        *writeIndex -= Bits;</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, index, Bits);</span><br><span> </span><br><span> </span><br><span>         /* script index to continue on, limited in case we do not have a power of 2 */</span><br><span>@@ -1883,7 +1882,7 @@</span><br><span>           case CSN_BIT:</span><br><span>           {</span><br><span>             pui8  = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-          bitvec_write_field(vector, &writeIndex, *pui8, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 1);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>             remaining_bits_len -= 1;</span><br><span>             bit_offset++;</span><br><span>@@ -1907,19 +1906,19 @@</span><br><span>               if (no_of_bits <= 8)</span><br><span>               {</span><br><span>                 pui8      = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-           bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+               bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 16)</span><br><span>               {</span><br><span>                 pui16       = pui16DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-             bitvec_write_field(vector, &writeIndex, *pui16, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui16, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui16);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 32)</span><br><span>               {</span><br><span>                 pui32       = pui32DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-             bitvec_write_field(vector, &writeIndex, *pui32, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui32, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui32);</span><br><span>               }</span><br><span>               else</span><br><span>@@ -1946,19 +1945,19 @@</span><br><span>               if (no_of_bits <= 8)</span><br><span>               {</span><br><span>                 pui8      = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-              bitvec_write_field(vector, &writeIndex, *pui8 - (guint8)pDescr->descr.value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui8 - (guint8)pDescr->descr.value, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)(*pui8 - (guint8)pDescr->descr.value));</span><br><span>               }</span><br><span>               else if (no_of_bits <= 16)</span><br><span>               {</span><br><span>                 pui16       = pui16DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-         bitvec_write_field(vector, &writeIndex, *pui16 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+            bitvec_write_field(vector, writeIndex, *pui16 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , (unsigned short)(*pui16 - (guint16)pDescr->descr.value));</span><br><span>               }</span><br><span>               else if (no_of_bits <= 32)</span><br><span>               {</span><br><span>                 pui32       = pui32DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-               bitvec_write_field(vector, &writeIndex, *pui32 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+            bitvec_write_field(vector, writeIndex, *pui32 - (guint16)pDescr->descr.value, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , (unsigned int)(*pui32 - (guint16)pDescr->descr.value));</span><br><span>               }</span><br><span>               else</span><br><span>@@ -1987,12 +1986,12 @@</span><br><span>               if (no_of_bits <= 8)</span><br><span>               {</span><br><span>                 pui8      = pui8DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-          bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+               bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>                 // TODO : Change get_masked_bits8()</span><br><span style="color: hsl(0, 100%, 40%);">-                writeIndex -= no_of_bits;</span><br><span style="color: hsl(120, 100%, 40%);">+                *writeIndex -= no_of_bits;</span><br><span>                 guint8 ui8 = get_masked_bits8(vector, writeIndex, bit_offset, no_of_bits);</span><br><span style="color: hsl(0, 100%, 40%);">-                writeIndex -= no_of_bits;</span><br><span style="color: hsl(0, 100%, 40%);">-           bitvec_write_field(vector, &writeIndex, ui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+                *writeIndex -= no_of_bits;</span><br><span style="color: hsl(120, 100%, 40%);">+             bitvec_write_field(vector, writeIndex, ui8, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span> </span><br><span>               }</span><br><span>@@ -2030,7 +2029,7 @@</span><br><span>                 pui8 = pui8DATA(data, pDescr->offset);</span><br><span>                 do</span><br><span>                 {</span><br><span style="color: hsl(0, 100%, 40%);">-            bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+               bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>                   LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>                   pui8++;</span><br><span>                   bit_offset += no_of_bits;</span><br><span>@@ -2112,13 +2111,13 @@</span><br><span>               if (no_of_bits <= 32)</span><br><span>               {</span><br><span>                 pui32 = pui32DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-         bitvec_write_field(vector, &writeIndex, *pui32, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui32, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %d | ", pDescr->sz , *pui32);</span><br><span>               }</span><br><span>               else if (no_of_bits <= 64)</span><br><span>               {</span><br><span>                 pui64 = pui64DATA(data, pDescr->offset);</span><br><span style="color: hsl(0, 100%, 40%);">-           bitvec_write_field(vector, &writeIndex, *pui64, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui64, no_of_bits);</span><br><span>                 LOGPC(DCSN1, LOGL_NOTICE, "%s = %lu | ", pDescr->sz , *pui64);</span><br><span>               }</span><br><span>               else</span><br><span>@@ -2176,7 +2175,7 @@</span><br><span>         unsigned exist = 0;</span><br><span>         pui8  = pui8DATA(data, pDescr->offset);</span><br><span>         exist = *pui8;</span><br><span style="color: hsl(0, 100%, 40%);">-      bitvec_write_field(vector, &writeIndex, *pui8, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 1);</span><br><span>         writeIndex--;</span><br><span>         if (CSN_EXIST_LH == pDescr->type)</span><br><span>         {</span><br><span>@@ -2184,10 +2183,10 @@</span><br><span>         }</span><br><span>         else</span><br><span>         {</span><br><span style="color: hsl(0, 100%, 40%);">-       fExist = bitvec_read_field(vector, &writeIndex, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+       fExist = bitvec_read_field(vector, writeIndex, 1);</span><br><span>         }</span><br><span>         writeIndex--;</span><br><span style="color: hsl(0, 100%, 40%);">-      bitvec_write_field(vector, &writeIndex, fExist, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, fExist, 1);</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz, (unsigned)fExist);</span><br><span>         pDescr++;</span><br><span>         remaining_bits_len -= 1;</span><br><span>@@ -2217,7 +2216,7 @@</span><br><span>           break;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- bitvec_write_field(vector, &writeIndex, *pui8, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 1);</span><br><span>         fExist = *pui8;</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>         remaining_bits_len -= 1;</span><br><span>@@ -2257,11 +2256,11 @@</span><br><span>         }</span><br><span> </span><br><span>         /* the "regular" M_NEXT_EXIST_LH description element */</span><br><span style="color: hsl(0, 100%, 40%);">- bitvec_write_field(vector, &writeIndex, *pui8, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 1);</span><br><span>         writeIndex--;</span><br><span style="color: hsl(0, 100%, 40%);">-        fExist = get_masked_bits8(vector,writeIndex, bit_offset, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        fExist = get_masked_bits8(vector, writeIndex, bit_offset, 1);</span><br><span>         writeIndex--;</span><br><span style="color: hsl(0, 100%, 40%);">-  bitvec_write_field(vector, &writeIndex, fExist, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, fExist, 1);</span><br><span>         pui8++;</span><br><span>         remaining_bits_len -= 1;</span><br><span> </span><br><span>@@ -2310,7 +2309,7 @@</span><br><span> </span><br><span>             if (nB1 > 0)</span><br><span>             { /* take care of the first byte - it will be right aligned */</span><br><span style="color: hsl(0, 100%, 40%);">-        bitvec_write_field(vector, &writeIndex, *pui8, nB1);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui8, nB1);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits  -= nB1;</span><br><span>@@ -2320,7 +2319,7 @@</span><br><span>             /* remaining no_of_bits is a multiple of 8 or 0 */</span><br><span>             while (no_of_bits > 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-              bitvec_write_field(vector, &writeIndex, *pui8, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits -= 8;</span><br><span>@@ -2366,14 +2365,14 @@</span><br><span> </span><br><span>             while (no_of_bits > 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-       bitvec_write_field(vector, &writeIndex, *pui8, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits -= 8;</span><br><span>             }</span><br><span>             if (nB1 > 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-              bitvec_write_field(vector, &writeIndex, *pui8, nB1);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, *pui8, nB1);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>               pui8++;</span><br><span>               no_of_bits  -= nB1;</span><br><span>@@ -2405,14 +2404,14 @@</span><br><span>                * < padding bits > ::= { null | 0 < spare padding > ! < Ignore : 1 bit** = < no string > > } ;</span><br><span>               */</span><br><span>               guint8 fl = filler&(0xff>>(8-bits_to_handle + 1));</span><br><span style="color: hsl(0, 100%, 40%);">-             bitvec_write_field(vector, &writeIndex, fl, bits_to_handle);</span><br><span style="color: hsl(120, 100%, 40%);">+              bitvec_write_field(vector, writeIndex, fl, bits_to_handle);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%u|", fl);</span><br><span>               remaining_bits_len -= bits_to_handle;</span><br><span>               bit_offset += bits_to_handle;</span><br><span>             }</span><br><span>             else if (bits_to_handle == 0)</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-       bitvec_write_field(vector, &writeIndex, filler, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, filler, 8);</span><br><span>               LOGPC(DCSN1, LOGL_NOTICE, "%u|", filler);</span><br><span>               remaining_bits_len -= 8;</span><br><span>               bit_offset += 8;</span><br><span>@@ -2453,7 +2452,7 @@</span><br><span> </span><br><span>           while (count > 0)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-      bitvec_write_field(vector, &writeIndex, *pui8, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+        bitvec_write_field(vector, writeIndex, *pui8, 8);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>             pui8++;</span><br><span>             bit_offset += 8;</span><br><span>@@ -2480,13 +2479,13 @@</span><br><span>         ElementCount = *pui8DATA(data, (gint16)pDescr->descr.value);</span><br><span>         while (ElementCount > 0)</span><br><span>         { /* tag control shows existence of next list elements */</span><br><span style="color: hsl(0, 100%, 40%);">-          bitvec_write_field(vector, &writeIndex, Tag, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+          bitvec_write_field(vector, writeIndex, Tag, 1);</span><br><span>           LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)Tag);</span><br><span>           bit_offset++;</span><br><span>           remaining_bits_len--;</span><br><span> </span><br><span>           /* extract and store no_of_bits long element from bitstream */</span><br><span style="color: hsl(0, 100%, 40%);">-    bitvec_write_field(vector, &writeIndex, *pui8, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       bitvec_write_field(vector, writeIndex, *pui8, no_of_bits);</span><br><span>           LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)*pui8);</span><br><span>           pui8++;</span><br><span>           remaining_bits_len -= no_of_bits;</span><br><span>@@ -2500,7 +2499,7 @@</span><br><span>           bit_offset += no_of_bits;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       bitvec_write_field(vector, &writeIndex, !Tag, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ bitvec_write_field(vector, writeIndex, !Tag, 1);</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)(!Tag));</span><br><span>         bit_offset++;</span><br><span>         remaining_bits_len--;</span><br><span>@@ -2522,7 +2521,7 @@</span><br><span> </span><br><span>         while (ElementCount > 0)</span><br><span>         { /* tag control shows existence of next list elements */</span><br><span style="color: hsl(0, 100%, 40%);">-        bitvec_write_field(vector, &writeIndex, Tag, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+          bitvec_write_field(vector, writeIndex, Tag, 1);</span><br><span>           LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)Tag);</span><br><span>           bit_offset++;</span><br><span> </span><br><span>@@ -2553,7 +2552,7 @@</span><br><span>           }</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- bitvec_write_field(vector, &writeIndex, !Tag, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ bitvec_write_field(vector, writeIndex, !Tag, 1);</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)(!Tag));</span><br><span>         bit_offset++;</span><br><span> </span><br><span>@@ -2591,7 +2590,7 @@</span><br><span>         { /* get data element */</span><br><span>           if (ElementCount != ElementNum)</span><br><span>           {</span><br><span style="color: hsl(0, 100%, 40%);">-       bitvec_write_field(vector, &writeIndex, Tag, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+          bitvec_write_field(vector, writeIndex, Tag, 1);</span><br><span>             LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)Tag);</span><br><span>             bit_offset++;</span><br><span>             remaining_bits_len--;</span><br><span>@@ -2618,7 +2617,7 @@</span><br><span>           }</span><br><span> </span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-  bitvec_write_field(vector, &writeIndex, !Tag, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ bitvec_write_field(vector, writeIndex, !Tag, 1);</span><br><span>         bit_offset++;</span><br><span>         remaining_bits_len--;</span><br><span>         Tag = STANDARD_TAG; /* in case it was set to "reversed" */</span><br><span>@@ -2629,7 +2628,7 @@</span><br><span>       case CSN_FIXED:</span><br><span>       { /* Verify the fixed bits */</span><br><span>         guint8  no_of_bits = (guint8) pDescr->i;</span><br><span style="color: hsl(0, 100%, 40%);">-       bitvec_write_field(vector, &writeIndex, pDescr->offset, no_of_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+   bitvec_write_field(vector, writeIndex, pDescr->offset, no_of_bits);</span><br><span>         LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)pDescr->offset);</span><br><span>         remaining_bits_len   -= no_of_bits;</span><br><span>         bit_offset += no_of_bits;</span><br><span>diff --git a/src/csn1.h b/src/csn1.h</span><br><span>index 1015e69..d81d82b 100644</span><br><span>--- a/src/csn1.h</span><br><span>+++ b/src/csn1.h</span><br><span>@@ -28,12 +28,7 @@</span><br><span> #ifndef _PACKET_CSN1_H_</span><br><span> #define _PACKET_CSN1_H_</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-extern "C" {</span><br><span> #include <osmocom/core/bitvec.h></span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <iostream></span><br><span style="color: hsl(0, 100%, 40%);">-#include <cstdlib></span><br><span> </span><br><span> #define MIN(a,b) (((a)<(b))?(a):(b))</span><br><span> //#define max(a,b) (((a)>(b))?(a):(b))</span><br><span>@@ -86,7 +81,7 @@</span><br><span>   gint  direction;           /* 0 - decode; 1 - encode */</span><br><span> } csnStream_t;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-typedef gint16 (*StreamSerializeFcn_t)(csnStream_t* ar, bitvec *vector, unsigned& readIndex, void* data);</span><br><span style="color: hsl(120, 100%, 40%);">+typedef gint16 (*StreamSerializeFcn_t)(csnStream_t* ar, struct bitvec *vector, unsigned *readIndex, void* data);</span><br><span> typedef enum</span><br><span> {</span><br><span>   CSN_END = 0,</span><br><span>@@ -234,9 +229,9 @@</span><br><span> * RETURNS:  int  Number of bits left to be unpacked. Negative Error code if failed to unpack all bits</span><br><span> ******************************************************************************/</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-gint16 csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, bitvec *vector, unsigned& readIndex, void* data);</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 csnStreamDecoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec *vector, unsigned *readIndex, void* data);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, bitvec *vector, unsigned& readIndex, void* data);</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, struct bitvec *vector, unsigned *writeIndex, void* data);</span><br><span> </span><br><span> /* CSN struct macro's */</span><br><span> #define  CSN_DESCR_BEGIN(_STRUCT)\</span><br><span>diff --git a/src/gsm_rlcmac.cpp b/src/gsm_rlcmac.cpp</span><br><span>index ef7abcd..d62c3af 100644</span><br><span>--- a/src/gsm_rlcmac.cpp</span><br><span>+++ b/src/gsm_rlcmac.cpp</span><br><span>@@ -184,7 +184,7 @@</span><br><span> CSN_DESCR_END     (EGPRS_AckNack_Desc_t)</span><br><span> </span><br><span> /*< EGPRS Ack/Nack Description IE >*/</span><br><span style="color: hsl(0, 100%, 40%);">-gint16 Egprs_Ack_Nack_Desc_w_len_Dissector(csnStream_t* ar, bitvec *vector, unsigned& readIndex, void* data)</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 Egprs_Ack_Nack_Desc_w_len_Dissector(csnStream_t* ar, bitvec *vector, unsigned *readIndex, void* data)</span><br><span> {</span><br><span>   if (ar->direction == 0)</span><br><span>   {</span><br><span>@@ -745,7 +745,7 @@</span><br><span>   M_UINT       (Receive_N_PDU_Number_t,  value,  8),</span><br><span> CSN_DESCR_END  (Receive_N_PDU_Number_t)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-gint16 Receive_N_PDU_Number_list_Dissector(csnStream_t* ar, bitvec *vector, unsigned& readIndex, void* data)</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 Receive_N_PDU_Number_list_Dissector(csnStream_t* ar, bitvec *vector, unsigned *readIndex, void* data)</span><br><span> {</span><br><span>   if (ar->direction == 0)</span><br><span>   {</span><br><span>@@ -856,7 +856,7 @@</span><br><span>   M_UINT_OR_NULL      (Content_t,  PS_HandoverCapability,  1),</span><br><span> CSN_DESCR_END         (Content_t)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-gint16 Content_Dissector(csnStream_t* ar, bitvec *vector, unsigned& readIndex, void* data)</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 Content_Dissector(csnStream_t* ar, bitvec *vector, unsigned *readIndex, void* data)</span><br><span> {</span><br><span>   if (ar->direction == 0)</span><br><span>     {</span><br><span>@@ -880,7 +880,7 @@</span><br><span>   M_REC_TARRAY        (Additional_access_technologies_t, Additional_access_technologies[0], Additional_access_technologies_struct_t, Count_additional_access_technologies),</span><br><span> CSN_DESCR_END         (Additional_access_technologies_t)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-gint16 Additional_access_technologies_Dissector(csnStream_t* ar, bitvec* vector, unsigned& readIndex, void* data)</span><br><span style="color: hsl(120, 100%, 40%);">+gint16 Additional_access_technologies_Dissector(csnStream_t* ar, bitvec* vector, unsigned *readIndex, void* data)</span><br><span> {</span><br><span>   if (ar->direction == 0)</span><br><span>   {</span><br><span>@@ -4825,73 +4825,73 @@</span><br><span>        * CSNDESCR is an array that holds the different element types</span><br><span>        * ar is the csn context holding the bitcount, offset and output</span><br><span>        */</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Failure_t), vector, readIndex, &data->u.Packet_Cell_Change_Failure);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Failure_t), vector, &readIndex, &data->u.Packet_Cell_Change_Failure);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CONTROL_ACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Control_Acknowledgement_t), vector, readIndex, &data->u.Packet_Control_Acknowledgement);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Control_Acknowledgement_t), vector, &readIndex, &data->u.Packet_Control_Acknowledgement);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_DOWNLINK_ACK_NACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Downlink_Ack_Nack_t), vector, readIndex, &data->u.Packet_Downlink_Ack_Nack);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Downlink_Ack_Nack_t), vector, &readIndex, &data->u.Packet_Downlink_Ack_Nack);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Uplink_Dummy_Control_Block_t), vector, readIndex, &data->u.Packet_Uplink_Dummy_Control_Block);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Uplink_Dummy_Control_Block_t), vector, &readIndex, &data->u.Packet_Uplink_Dummy_Control_Block);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_MEASUREMENT_REPORT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Measurement_Report_t), vector, readIndex, &data->u.Packet_Measurement_Report);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Measurement_Report_t), vector, &readIndex, &data->u.Packet_Measurement_Report);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_RESOURCE_REQUEST:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Resource_Request_t), vector, readIndex, &data->u.Packet_Resource_Request);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Resource_Request_t), vector, &readIndex, &data->u.Packet_Resource_Request);</span><br><span>       break;</span><br><span>     }</span><br><span> </span><br><span>     case MT_PACKET_MOBILE_TBF_STATUS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Mobile_TBF_Status_t), vector, readIndex, &data->u.Packet_Mobile_TBF_Status);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Mobile_TBF_Status_t), vector, &readIndex, &data->u.Packet_Mobile_TBF_Status);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PSI_STATUS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PSI_Status_t), vector, readIndex, &data->u.Packet_PSI_Status);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PSI_Status_t), vector, &readIndex, &data->u.Packet_PSI_Status);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_EGPRS_PACKET_DOWNLINK_ACK_NACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(EGPRS_PD_AckNack_t), vector, readIndex, &data->u.Egprs_Packet_Downlink_Ack_Nack);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(EGPRS_PD_AckNack_t), vector, &readIndex, &data->u.Egprs_Packet_Downlink_Ack_Nack);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PAUSE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Pause_t), vector, readIndex, &data->u.Packet_Pause);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Pause_t), vector, &readIndex, &data->u.Packet_Pause);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_ENHANCED_MEASUREMENT_REPORT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Enh_Measurement_Report_t), vector, readIndex, &data->u.Packet_Enh_Measurement_Report);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Enh_Measurement_Report_t), vector, &readIndex, &data->u.Packet_Enh_Measurement_Report);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_ADDITIONAL_MS_RAC:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), vector, readIndex, &data->u.Additional_MS_Rad_Access_Cap);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), vector, &readIndex, &data->u.Additional_MS_Rad_Access_Cap);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CELL_CHANGE_NOTIFICATION:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Notification_t), vector, readIndex, &data->u.Packet_Cell_Change_Notification);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Notification_t), vector, &readIndex, &data->u.Packet_Cell_Change_Notification);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SI_STATUS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_SI_Status_t), vector, readIndex, &data->u.Packet_SI_Status);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_SI_Status_t), vector, &readIndex, &data->u.Packet_SI_Status);</span><br><span>       break;</span><br><span>     }</span><br><span>     default:</span><br><span>@@ -4963,127 +4963,127 @@</span><br><span>   {</span><br><span>     case MT_PACKET_ACCESS_REJECT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Access_Reject_t), vector, readIndex, &data->u.Packet_Access_Reject);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Access_Reject_t), vector, &readIndex, &data->u.Packet_Access_Reject);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CELL_CHANGE_ORDER:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Order_t), vector, readIndex, &data->u.Packet_Cell_Change_Order);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Order_t), vector, &readIndex, &data->u.Packet_Cell_Change_Order);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CELL_CHANGE_CONTINUE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Continue_t), vector, readIndex, &data->u.Packet_Cell_Change_Continue);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Cell_Change_Continue_t), vector, &readIndex, &data->u.Packet_Cell_Change_Continue);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_DOWNLINK_ASSIGNMENT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Downlink_Assignment_t), vector, readIndex, &data->u.Packet_Downlink_Assignment);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Downlink_Assignment_t), vector, &readIndex, &data->u.Packet_Downlink_Assignment);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_MEASUREMENT_ORDER:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Measurement_Order_t), vector, readIndex, &data->u.Packet_Measurement_Order);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Measurement_Order_t), vector, &readIndex, &data->u.Packet_Measurement_Order);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_NEIGHBOUR_CELL_DATA:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Neighbour_Cell_Data_t), vector, readIndex, &data->u.Packet_Neighbour_Cell_Data);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Neighbour_Cell_Data_t), vector, &readIndex, &data->u.Packet_Neighbour_Cell_Data);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SERVING_CELL_DATA:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Serving_Cell_Data_t), vector, readIndex, &data->u.Packet_Serving_Cell_Data);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Serving_Cell_Data_t), vector, &readIndex, &data->u.Packet_Serving_Cell_Data);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PAGING_REQUEST:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Paging_Request_t), vector, readIndex, &data->u.Packet_Paging_Request);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Paging_Request_t), vector, &readIndex, &data->u.Packet_Paging_Request);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PDCH_RELEASE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PDCH_Release_t), vector, readIndex, &data->u.Packet_PDCH_Release);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PDCH_Release_t), vector, &readIndex, &data->u.Packet_PDCH_Release);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_POLLING_REQ:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Polling_Request_t), vector, readIndex, &data->u.Packet_Polling_Request);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Polling_Request_t), vector, &readIndex, &data->u.Packet_Polling_Request);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_POWER_CONTROL_TIMING_ADVANCE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Power_Control_Timing_Advance_t), vector, readIndex, &data->u.Packet_Power_Control_Timing_Advance);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Power_Control_Timing_Advance_t), vector, &readIndex, &data->u.Packet_Power_Control_Timing_Advance);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PRACH_PARAMETERS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PRACH_Parameters_t), vector, readIndex, &data->u.Packet_PRACH_Parameters);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PRACH_Parameters_t), vector, &readIndex, &data->u.Packet_PRACH_Parameters);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_QUEUEING_NOTIFICATION:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Queueing_Notification_t), vector, readIndex, &data->u.Packet_Queueing_Notification);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Queueing_Notification_t), vector, &readIndex, &data->u.Packet_Queueing_Notification);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_TIMESLOT_RECONFIGURE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Timeslot_Reconfigure_t), vector, readIndex, &data->u.Packet_Timeslot_Reconfigure);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Timeslot_Reconfigure_t), vector, &readIndex, &data->u.Packet_Timeslot_Reconfigure);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_TBF_RELEASE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_TBF_Release_t), vector, readIndex, &data->u.Packet_TBF_Release);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_TBF_Release_t), vector, &readIndex, &data->u.Packet_TBF_Release);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_UPLINK_ACK_NACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Uplink_Ack_Nack_t), vector, readIndex, &data->u.Packet_Uplink_Ack_Nack);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Uplink_Ack_Nack_t), vector, &readIndex, &data->u.Packet_Uplink_Ack_Nack);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_UPLINK_ASSIGNMENT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Uplink_Assignment_t), vector, readIndex, &data->u.Packet_Uplink_Assignment);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Uplink_Assignment_t), vector, &readIndex, &data->u.Packet_Uplink_Assignment);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_HANDOVER_COMMAND:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Handover_Command_t), vector, readIndex, &data->u.Packet_Handover_Command);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Handover_Command_t), vector, &readIndex, &data->u.Packet_Handover_Command);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PHYSICAL_INFORMATION:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PhysicalInformation_t), vector, readIndex, &data->u.Packet_Handover_Command);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_PhysicalInformation_t), vector, &readIndex, &data->u.Packet_Handover_Command);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Downlink_Dummy_Control_Block_t), vector, readIndex, &data->u.Packet_Downlink_Dummy_Control_Block);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(Packet_Downlink_Dummy_Control_Block_t), vector, &readIndex, &data->u.Packet_Downlink_Dummy_Control_Block);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_1:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI1_t), vector, readIndex, &data->u.PSI1);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI1_t), vector, &readIndex, &data->u.PSI1);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_2:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI2_t), vector, readIndex, &data->u.PSI2);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI2_t), vector, &readIndex, &data->u.PSI2);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_3:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI3_t), vector, readIndex, &data->u.PSI3);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI3_t), vector, &readIndex, &data->u.PSI3);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_5:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI5_t), vector, readIndex, &data->u.PSI5);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI5_t), vector, &readIndex, &data->u.PSI5);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_13:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI13_t), vector, readIndex, &data->u.PSI13);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(PSI13_t), vector, &readIndex, &data->u.PSI13);</span><br><span>       break;</span><br><span>     }</span><br><span>     default:</span><br><span>@@ -5108,73 +5108,73 @@</span><br><span>        * CSNDESCR is an array that holds the different element types</span><br><span>        * ar is the csn context holding the bitcount, offset and output</span><br><span>        */</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Failure_t), vector, writeIndex, &data->u.Packet_Cell_Change_Failure);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Failure_t), vector, &writeIndex, &data->u.Packet_Cell_Change_Failure);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CONTROL_ACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Control_Acknowledgement_t), vector, writeIndex, &data->u.Packet_Control_Acknowledgement);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Control_Acknowledgement_t), vector, &writeIndex, &data->u.Packet_Control_Acknowledgement);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_DOWNLINK_ACK_NACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Downlink_Ack_Nack_t), vector, writeIndex, &data->u.Packet_Downlink_Ack_Nack);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Downlink_Ack_Nack_t), vector, &writeIndex, &data->u.Packet_Downlink_Ack_Nack);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Uplink_Dummy_Control_Block_t), vector, writeIndex, &data->u.Packet_Uplink_Dummy_Control_Block);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Uplink_Dummy_Control_Block_t), vector, &writeIndex, &data->u.Packet_Uplink_Dummy_Control_Block);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_MEASUREMENT_REPORT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Measurement_Report_t), vector, writeIndex, &data->u.Packet_Measurement_Report);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Measurement_Report_t), vector, &writeIndex, &data->u.Packet_Measurement_Report);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_RESOURCE_REQUEST:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Resource_Request_t), vector, writeIndex, &data->u.Packet_Resource_Request);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Resource_Request_t), vector, &writeIndex, &data->u.Packet_Resource_Request);</span><br><span>       break;</span><br><span>     }</span><br><span> </span><br><span>     case MT_PACKET_MOBILE_TBF_STATUS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Mobile_TBF_Status_t), vector, writeIndex, &data->u.Packet_Mobile_TBF_Status);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Mobile_TBF_Status_t), vector, &writeIndex, &data->u.Packet_Mobile_TBF_Status);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PSI_STATUS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PSI_Status_t), vector, writeIndex, &data->u.Packet_PSI_Status);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PSI_Status_t), vector, &writeIndex, &data->u.Packet_PSI_Status);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_EGPRS_PACKET_DOWNLINK_ACK_NACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(EGPRS_PD_AckNack_t), vector, writeIndex, &data->u.Egprs_Packet_Downlink_Ack_Nack);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(EGPRS_PD_AckNack_t), vector, &writeIndex, &data->u.Egprs_Packet_Downlink_Ack_Nack);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PAUSE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Pause_t), vector, writeIndex, &data->u.Packet_Pause);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Pause_t), vector, &writeIndex, &data->u.Packet_Pause);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_ENHANCED_MEASUREMENT_REPORT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Enh_Measurement_Report_t), vector, writeIndex, &data->u.Packet_Enh_Measurement_Report);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Enh_Measurement_Report_t), vector, &writeIndex, &data->u.Packet_Enh_Measurement_Report);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_ADDITIONAL_MS_RAC:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), vector, writeIndex, &data->u.Additional_MS_Rad_Access_Cap);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), vector, &writeIndex, &data->u.Additional_MS_Rad_Access_Cap);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CELL_CHANGE_NOTIFICATION:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Notification_t), vector, writeIndex, &data->u.Packet_Cell_Change_Notification);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Notification_t), vector, &writeIndex, &data->u.Packet_Cell_Change_Notification);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SI_STATUS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_SI_Status_t), vector, writeIndex, &data->u.Packet_SI_Status);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_SI_Status_t), vector, &writeIndex, &data->u.Packet_SI_Status);</span><br><span>       break;</span><br><span>     }</span><br><span>     default:</span><br><span>@@ -5245,127 +5245,127 @@</span><br><span>   {</span><br><span>     case MT_PACKET_ACCESS_REJECT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Access_Reject_t), vector, writeIndex, &data->u.Packet_Access_Reject);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Access_Reject_t), vector, &writeIndex, &data->u.Packet_Access_Reject);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CELL_CHANGE_ORDER:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Order_t), vector, writeIndex, &data->u.Packet_Cell_Change_Order);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Order_t), vector, &writeIndex, &data->u.Packet_Cell_Change_Order);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_CELL_CHANGE_CONTINUE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Continue_t), vector, writeIndex, &data->u.Packet_Cell_Change_Continue);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Cell_Change_Continue_t), vector, &writeIndex, &data->u.Packet_Cell_Change_Continue);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_DOWNLINK_ASSIGNMENT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Downlink_Assignment_t), vector, writeIndex, &data->u.Packet_Downlink_Assignment);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Downlink_Assignment_t), vector, &writeIndex, &data->u.Packet_Downlink_Assignment);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_MEASUREMENT_ORDER:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Measurement_Order_t), vector, writeIndex, &data->u.Packet_Measurement_Order);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Measurement_Order_t), vector, &writeIndex, &data->u.Packet_Measurement_Order);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_NEIGHBOUR_CELL_DATA:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Neighbour_Cell_Data_t), vector, writeIndex, &data->u.Packet_Neighbour_Cell_Data);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Neighbour_Cell_Data_t), vector, &writeIndex, &data->u.Packet_Neighbour_Cell_Data);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SERVING_CELL_DATA:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Serving_Cell_Data_t), vector, writeIndex, &data->u.Packet_Serving_Cell_Data);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Serving_Cell_Data_t), vector, &writeIndex, &data->u.Packet_Serving_Cell_Data);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PAGING_REQUEST:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Paging_Request_t), vector, writeIndex, &data->u.Packet_Paging_Request);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Paging_Request_t), vector, &writeIndex, &data->u.Packet_Paging_Request);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PDCH_RELEASE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PDCH_Release_t), vector, writeIndex, &data->u.Packet_PDCH_Release);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PDCH_Release_t), vector, &writeIndex, &data->u.Packet_PDCH_Release);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_POLLING_REQ:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Polling_Request_t), vector, writeIndex, &data->u.Packet_Polling_Request);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Polling_Request_t), vector, &writeIndex, &data->u.Packet_Polling_Request);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_POWER_CONTROL_TIMING_ADVANCE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Power_Control_Timing_Advance_t), vector, writeIndex, &data->u.Packet_Power_Control_Timing_Advance);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Power_Control_Timing_Advance_t), vector, &writeIndex, &data->u.Packet_Power_Control_Timing_Advance);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PRACH_PARAMETERS:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PRACH_Parameters_t), vector, writeIndex, &data->u.Packet_PRACH_Parameters);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PRACH_Parameters_t), vector, &writeIndex, &data->u.Packet_PRACH_Parameters);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_QUEUEING_NOTIFICATION:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Queueing_Notification_t), vector, writeIndex, &data->u.Packet_Queueing_Notification);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Queueing_Notification_t), vector, &writeIndex, &data->u.Packet_Queueing_Notification);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_TIMESLOT_RECONFIGURE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Timeslot_Reconfigure_t), vector, writeIndex, &data->u.Packet_Timeslot_Reconfigure);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Timeslot_Reconfigure_t), vector, &writeIndex, &data->u.Packet_Timeslot_Reconfigure);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_TBF_RELEASE:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_TBF_Release_t), vector, writeIndex, &data->u.Packet_TBF_Release);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_TBF_Release_t), vector, &writeIndex, &data->u.Packet_TBF_Release);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_UPLINK_ACK_NACK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Uplink_Ack_Nack_t), vector, writeIndex, &data->u.Packet_Uplink_Ack_Nack);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Uplink_Ack_Nack_t), vector, &writeIndex, &data->u.Packet_Uplink_Ack_Nack);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_UPLINK_ASSIGNMENT:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Uplink_Assignment_t), vector, writeIndex, &data->u.Packet_Uplink_Assignment);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Uplink_Assignment_t), vector, &writeIndex, &data->u.Packet_Uplink_Assignment);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_HANDOVER_COMMAND:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Handover_Command_t), vector, writeIndex, &data->u.Packet_Handover_Command);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Handover_Command_t), vector, &writeIndex, &data->u.Packet_Handover_Command);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_PHYSICAL_INFORMATION:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PhysicalInformation_t), vector, writeIndex, &data->u.Packet_Handover_Command);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_PhysicalInformation_t), vector, &writeIndex, &data->u.Packet_Handover_Command);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_DOWNLINK_DUMMY_CONTROL_BLOCK:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Downlink_Dummy_Control_Block_t), vector, writeIndex, &data->u.Packet_Downlink_Dummy_Control_Block);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(Packet_Downlink_Dummy_Control_Block_t), vector, &writeIndex, &data->u.Packet_Downlink_Dummy_Control_Block);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_1:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI1_t), vector, writeIndex, &data->u.PSI1);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI1_t), vector, &writeIndex, &data->u.PSI1);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_2:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI2_t), vector, writeIndex, &data->u.PSI2);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI2_t), vector, &writeIndex, &data->u.PSI2);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_3:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI3_t), vector, writeIndex, &data->u.PSI3);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI3_t), vector, &writeIndex, &data->u.PSI3);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_5:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI5_t), vector, writeIndex, &data->u.PSI5);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI5_t), vector, &writeIndex, &data->u.PSI5);</span><br><span>       break;</span><br><span>     }</span><br><span>     case MT_PACKET_SYSTEM_INFO_13:</span><br><span>     {</span><br><span style="color: hsl(0, 100%, 40%);">-      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI13_t), vector, writeIndex, &data->u.PSI13);</span><br><span style="color: hsl(120, 100%, 40%);">+      /*ret =*/ csnStreamEncoder(&ar, CSNDESCR(PSI13_t), vector, &writeIndex, &data->u.PSI13);</span><br><span>       break;</span><br><span>     }</span><br><span>     default:</span><br><span>@@ -5515,5 +5515,5 @@</span><br><span>   csnStream_t      ar;</span><br><span>   unsigned readIndex = 0;</span><br><span>   csnStreamInit(&ar, 0, 8 * vector->data_len);</span><br><span style="color: hsl(0, 100%, 40%);">-  /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(MS_Radio_Access_capability_t), vector, readIndex, data);</span><br><span style="color: hsl(120, 100%, 40%);">+  /*ret =*/ csnStreamDecoder(&ar, CSNDESCR(MS_Radio_Access_capability_t), vector, &readIndex, data);</span><br><span> }</span><br><span>diff --git a/src/gsm_rlcmac.h b/src/gsm_rlcmac.h</span><br><span>index a4750e8..717f84c 100644</span><br><span>--- a/src/gsm_rlcmac.h</span><br><span>+++ b/src/gsm_rlcmac.h</span><br><span>@@ -32,7 +32,10 @@</span><br><span> #ifndef __PACKET_GSM_RLCMAC_H__</span><br><span> #define __PACKET_GSM_RLCMAC_H__</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+extern "C" {</span><br><span> #include "csn1.h"</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <iostream></span><br><span> #include <cstdlib></span><br><span> </span><br><span>diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp</span><br><span>index acfe56a..7cad0f4 100644</span><br><span>--- a/tests/rlcmac/RLCMACTest.cpp</span><br><span>+++ b/tests/rlcmac/RLCMACTest.cpp</span><br><span>@@ -23,7 +23,6 @@</span><br><span> #include <iostream></span><br><span> #include <cstdlib></span><br><span> #include <cstring></span><br><span style="color: hsl(0, 100%, 40%);">-#include "csn1.h"</span><br><span> #include "gsm_rlcmac.h"</span><br><span> #include "gprs_rlcmac.h"</span><br><span> </span><br><span>@@ -35,6 +34,8 @@</span><br><span> #include <osmocom/core/utils.h></span><br><span> #include <osmocom/core/msgb.h></span><br><span> #include <osmocom/core/application.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include "csn1.h"</span><br><span> }</span><br><span> using namespace std;</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17010">change 17010</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/c/osmo-pcu/+/17010"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I56d8b7fbd2f9f4e0bdd6b09d0366fe7eb7aa327a </div>
<div style="display:none"> Gerrit-Change-Number: 17010 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>