<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17627">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Move gsm_rlcmac.cpp -> .c<br><br>Original file from wireshark.git (packet-gsm_csn1.c) is being built and<br>maintained as a C file. There's no real need for us to maintain it as a<br>C++, and doing so will make both files derive over time (as already<br>happened). Let's keep it as a C compiler (which btw seems to be more<br>strict) to make it easier to port patches back and forth wireshark.git.<br><br>Take the chance to move some declarations we added to csn1.h to be able<br>to build it out of wireshark. Let's keep those in a separate header file<br>to ease looking for differences.<br><br>Change-Id: I818a8ae947f002d35142f9f5473454cfd80e1830<br>---<br>M src/Makefile.am<br>M src/bts.h<br>M src/csn1.h<br>M src/decoding.h<br>M src/encoding.h<br>M src/gprs_rlcmac.h<br>R src/gsm_rlcmac.c<br>M src/gsm_rlcmac.h<br>M src/pdch.cpp<br>M src/pdch.h<br>M src/tbf.cpp<br>A src/wireshark_compat.h<br>M tests/rlcmac/RLCMACTest.cpp<br>13 files changed, 62 insertions(+), 37 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/27/17627/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 eb1e389..54c6f1b 100644</span><br><span>--- a/src/Makefile.am</span><br><span>+++ b/src/Makefile.am</span><br><span>@@ -41,7 +41,7 @@</span><br><span> libgprs_la_SOURCES = \</span><br><span>      gprs_debug.cpp \</span><br><span>     csn1.c \</span><br><span style="color: hsl(0, 100%, 40%);">-        gsm_rlcmac.cpp \</span><br><span style="color: hsl(120, 100%, 40%);">+      gsm_rlcmac.c \</span><br><span>       gprs_bssgp_pcu.cpp \</span><br><span>         gprs_rlcmac.cpp \</span><br><span>    gprs_rlcmac_sched.cpp \</span><br><span>@@ -106,7 +106,8 @@</span><br><span>        gprs_codel.h \</span><br><span>       gprs_coding_scheme.h \</span><br><span>       coding_scheme.h \</span><br><span style="color: hsl(0, 100%, 40%);">-       egprs_rlc_compression.h</span><br><span style="color: hsl(120, 100%, 40%);">+       egprs_rlc_compression.h \</span><br><span style="color: hsl(120, 100%, 40%);">+     wireshark_compat.h</span><br><span> </span><br><span> osmo_pcu_SOURCES = pcu_main.cpp</span><br><span> </span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index 823138b..4fddc0b 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -29,10 +29,10 @@</span><br><span> #include <osmocom/core/tdef.h></span><br><span> #include <osmocom/gsm/l1sap.h></span><br><span> #include <osmocom/gsm/protocol/gsm_04_08.h></span><br><span style="color: hsl(0, 100%, 40%);">-       #include <mslot_class.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "mslot_class.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span> #include "poll_controller.h"</span><br><span> #include "sba.h"</span><br><span> #include "tbf.h"</span><br><span>diff --git a/src/csn1.h b/src/csn1.h</span><br><span>index 50cd9ef..a637d57 100644</span><br><span>--- a/src/csn1.h</span><br><span>+++ b/src/csn1.h</span><br><span>@@ -29,9 +29,7 @@</span><br><span> #define _PACKET_CSN1_H_</span><br><span> </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%);">-#define MIN(a,b) (((a)<(b))?(a):(b))</span><br><span style="color: hsl(0, 100%, 40%);">-//#define max(a,b) (((a)>(b))?(a):(b))</span><br><span style="color: hsl(120, 100%, 40%);">+#include "wireshark_compat.h"</span><br><span> </span><br><span> /* Error codes */</span><br><span> #define  CSN_OK                               0</span><br><span>@@ -46,17 +44,6 @@</span><br><span> #define  CSN_ERROR_MESSAGE_TOO_LONG          -9</span><br><span> #define  CSN_ERROR_                         -10</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define FALSE (0)</span><br><span style="color: hsl(0, 100%, 40%);">-#define TRUE  (1)</span><br><span style="color: hsl(0, 100%, 40%);">-typedef signed int gint32;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef signed short gint16;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef int gint;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef unsigned int guint;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef gint gboolean;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef unsigned char guint8;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef unsigned short guint16;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef unsigned int guint32;</span><br><span style="color: hsl(0, 100%, 40%);">-typedef unsigned long guint64;</span><br><span> /* CallBack return status */</span><br><span> typedef gint16 CSN_CallBackStatus_t;</span><br><span> </span><br><span>diff --git a/src/decoding.h b/src/decoding.h</span><br><span>index d1371d5..4df2080 100644</span><br><span>--- a/src/decoding.h</span><br><span>+++ b/src/decoding.h</span><br><span>@@ -18,8 +18,9 @@</span><br><span>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.</span><br><span>  */</span><br><span> #pragma once</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span style="color: hsl(120, 100%, 40%);">+extern "C" {</span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> #include "rlc.h"</span><br><span> </span><br><span> #include <stdint.h></span><br><span>diff --git a/src/encoding.h b/src/encoding.h</span><br><span>index 31f74d1..2365f07 100644</span><br><span>--- a/src/encoding.h</span><br><span>+++ b/src/encoding.h</span><br><span>@@ -21,10 +21,10 @@</span><br><span> #pragma once</span><br><span> </span><br><span> #include <stdint.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span> #include <gprs_coding_scheme.h></span><br><span> extern "C" {</span><br><span> #include <osmocom/gsm/l1sap.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> </span><br><span> struct gprs_rlcmac_tbf;</span><br><span>diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h</span><br><span>index 6d87107..789b8db 100644</span><br><span>--- a/src/gprs_rlcmac.h</span><br><span>+++ b/src/gprs_rlcmac.h</span><br><span>@@ -24,7 +24,6 @@</span><br><span> #include <stdbool.h></span><br><span> </span><br><span> #ifdef __cplusplus</span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span> #include <gsm_timer.h></span><br><span> #include <pcu_l1_if.h></span><br><span> </span><br><span>@@ -33,6 +32,7 @@</span><br><span> #include <osmocom/core/timer.h></span><br><span> #include <osmocom/core/bitvec.h></span><br><span> #include <osmocom/pcu/pcuif_proto.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span>diff --git a/src/gsm_rlcmac.cpp b/src/gsm_rlcmac.c</span><br><span>similarity index 99%</span><br><span>rename from src/gsm_rlcmac.cpp</span><br><span>rename to src/gsm_rlcmac.c</span><br><span>index 5db8bbd..5a6634c 100644</span><br><span>--- a/src/gsm_rlcmac.cpp</span><br><span>+++ b/src/gsm_rlcmac.c</span><br><span>@@ -29,18 +29,15 @@</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%);">-extern "C" {</span><br><span> #include <osmocom/core/utils.h></span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/bitvec.h></span><br><span> </span><br><span> #include "gsm_rlcmac.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include "csn1.h"</span><br><span> /* Initialize the protocol and registered fields</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 <gprs_debug.h></span><br><span style="color: hsl(0, 100%, 40%);">-using namespace std;</span><br><span> </span><br><span> /* Payload type as defined in TS 44.060 / 10.4.7 */</span><br><span> #define PAYLOAD_TYPE_DATA              0</span><br><span>diff --git a/src/gsm_rlcmac.h b/src/gsm_rlcmac.h</span><br><span>index 1a448e4..48abac0 100644</span><br><span>--- a/src/gsm_rlcmac.h</span><br><span>+++ b/src/gsm_rlcmac.h</span><br><span>@@ -32,12 +32,8 @@</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(0, 100%, 40%);">-extern "C" {</span><br><span style="color: hsl(0, 100%, 40%);">-#include "csn1.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 style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/bitvec.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "wireshark_compat.h"</span><br><span> </span><br><span> #ifndef PRE_PACKED</span><br><span> #define PRE_PACKED</span><br><span>diff --git a/src/pdch.cpp b/src/pdch.cpp</span><br><span>index 1505068..92f5728 100644</span><br><span>--- a/src/pdch.cpp</span><br><span>+++ b/src/pdch.cpp</span><br><span>@@ -34,7 +34,6 @@</span><br><span> #include <tbf.h></span><br><span> #include <tbf_ul.h></span><br><span> #include <cxx_linuxlist.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span> </span><br><span> extern "C" {</span><br><span> #include <osmocom/core/talloc.h></span><br><span>@@ -44,7 +43,9 @@</span><br><span> #include <osmocom/core/gsmtap.h></span><br><span> #include <osmocom/core/logging.h></span><br><span> #include <osmocom/core/utils.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include "coding_scheme.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> </span><br><span> #include <errno.h></span><br><span>diff --git a/src/pdch.h b/src/pdch.h</span><br><span>index 821fb90..97b4b23 100644</span><br><span>--- a/src/pdch.h</span><br><span>+++ b/src/pdch.h</span><br><span>@@ -24,9 +24,9 @@</span><br><span> #ifdef __cplusplus</span><br><span> extern "C" {</span><br><span> #include <osmocom/core/linuxlist.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span> #include <gprs_coding_scheme.h></span><br><span> #include <bts.h></span><br><span> #endif</span><br><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index 9cba354..73d7ea9 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -32,7 +32,6 @@</span><br><span> #include <gprs_ms.h></span><br><span> #include <pcu_utils.h></span><br><span> #include <gprs_ms_storage.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <gsm_rlcmac.h></span><br><span> #include <sba.h></span><br><span> #include <gprs_coding_scheme.h></span><br><span> #include <gsm_timer.h></span><br><span>@@ -48,6 +47,8 @@</span><br><span> #include <osmocom/core/bitvec.h></span><br><span> #include <osmocom/core/rate_ctr.h></span><br><span> #include <osmocom/gsm/protocol/gsm_04_08.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> </span><br><span> #include <errno.h></span><br><span>diff --git a/src/wireshark_compat.h b/src/wireshark_compat.h</span><br><span>new file mode 100644</span><br><span>index 0000000..0b7db05</span><br><span>--- /dev/null</span><br><span>+++ b/src/wireshark_compat.h</span><br><span>@@ -0,0 +1,39 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/* wireshark_compat.h</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (C) 2020 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is free software; you can redistribute it and/or</span><br><span style="color: hsl(120, 100%, 40%);">+ * modify it under the terms of the GNU General Public License</span><br><span style="color: hsl(120, 100%, 40%);">+ * as published by the Free Software Foundation; either version 2</span><br><span style="color: hsl(120, 100%, 40%);">+ * of the License, or (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(120, 100%, 40%);">+ * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(120, 100%, 40%);">+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(120, 100%, 40%);">+ * GNU General Public License for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * You should have received a copy of the GNU General Public License</span><br><span style="color: hsl(120, 100%, 40%);">+ * along with this program; if not, write to the Free Software</span><br><span style="color: hsl(120, 100%, 40%);">+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* This header contains a few definitions required by rlcmac and csn1 files</span><br><span style="color: hsl(120, 100%, 40%);">+ * originally imported from wireshark packet-gsm_rlcmac.* and package-csn1.*,</span><br><span style="color: hsl(120, 100%, 40%);">+ * in order to keep code as similar as possible to ease maintainability and port</span><br><span style="color: hsl(120, 100%, 40%);">+ * of patches.</span><br><span style="color: hsl(120, 100%, 40%);">+*/</span><br><span style="color: hsl(120, 100%, 40%);">+#pragma once</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define MIN(a,b) (((a)<(b))?(a):(b))</span><br><span style="color: hsl(120, 100%, 40%);">+//#define max(a,b) (((a)>(b))?(a):(b))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define FALSE (0)</span><br><span style="color: hsl(120, 100%, 40%);">+#define TRUE  (1)</span><br><span style="color: hsl(120, 100%, 40%);">+typedef signed int gint32;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef signed short gint16;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef int gint;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef unsigned int guint;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef gint gboolean;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef unsigned char guint8;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef unsigned short guint16;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef unsigned int guint32;</span><br><span style="color: hsl(120, 100%, 40%);">+typedef unsigned long guint64;</span><br><span>diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp</span><br><span>index a21c22d..0215cc8 100644</span><br><span>--- a/tests/rlcmac/RLCMACTest.cpp</span><br><span>+++ b/tests/rlcmac/RLCMACTest.cpp</span><br><span>@@ -24,7 +24,6 @@</span><br><span> #include <cstdlib></span><br><span> #include <cstring></span><br><span> #include <assert.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include "gsm_rlcmac.h"</span><br><span> #include "gprs_rlcmac.h"</span><br><span> #include "decoding.h"</span><br><span> </span><br><span>@@ -38,6 +37,7 @@</span><br><span> #include <osmocom/core/application.h></span><br><span> </span><br><span> #include "csn1.h"</span><br><span style="color: hsl(120, 100%, 40%);">+#include "gsm_rlcmac.h"</span><br><span> }</span><br><span> using namespace std;</span><br><span> </span><br><span>@@ -215,7 +215,9 @@</span><br><span>     msgb_free(m);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+extern "C" {</span><br><span> int encode_gsm_ra_cap(struct bitvec *vector, MS_Radio_Access_capability_t * data);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> void testRAcap(void *test_ctx)</span><br><span> {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17627">change 17627</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/+/17627"/><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: I818a8ae947f002d35142f9f5473454cfd80e1830 </div>
<div style="display:none"> Gerrit-Change-Number: 17627 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>