<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-trx/+/14366">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Rename and move STOP signal from Transceiver to main<br><br>The callback actually belongs there, since it's the code/thread in main the one<br>actually in charge of stopping everything. It simplifies current code,<br>and more important, allows for new clients of this signal to use it.<br>This callback will also be used in forthcoming commits by code<br>controlling rate_ctr thresholds to stop the process if the VTY<br>configured threshold is used.<br><br>Change-Id: Id4159e64225c6606fef34a74b24f37c3a071aceb<br>---<br>M CommonLibs/osmo_signal.h<br>M Transceiver52M/Transceiver.cpp<br>M Transceiver52M/Transceiver.h<br>M Transceiver52M/osmo-trx.cpp<br>4 files changed, 9 insertions(+), 24 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/66/14366/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CommonLibs/osmo_signal.h b/CommonLibs/osmo_signal.h</span><br><span>index 7299171..6ee1bf9 100644</span><br><span>--- a/CommonLibs/osmo_signal.h</span><br><span>+++ b/CommonLibs/osmo_signal.h</span><br><span>@@ -26,13 +26,13 @@</span><br><span> </span><br><span> /* Signalling subsystems */</span><br><span> enum signal_subsystems {</span><br><span style="color: hsl(0, 100%, 40%);">-       SS_TRANSC,</span><br><span style="color: hsl(120, 100%, 40%);">+    SS_MAIN,</span><br><span>     SS_DEVICE,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* SS_TRANSC signals */</span><br><span style="color: hsl(0, 100%, 40%);">-enum SS_TRANSC {</span><br><span style="color: hsl(0, 100%, 40%);">-     S_TRANSC_STOP_REQUIRED, /* Transceiver fatal error, it should be stopped */</span><br><span style="color: hsl(120, 100%, 40%);">+/* SS_MAIN signals */</span><br><span style="color: hsl(120, 100%, 40%);">+enum SS_MAIN {</span><br><span style="color: hsl(120, 100%, 40%);">+    S_MAIN_STOP_REQUIRED, /* TRX fatal error, it should be stopped */</span><br><span> };</span><br><span> </span><br><span> /* SS_DEVICE signals */</span><br><span>diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp</span><br><span>index 54b9ddd..9c55d02 100644</span><br><span>--- a/Transceiver52M/Transceiver.cpp</span><br><span>+++ b/Transceiver52M/Transceiver.cpp</span><br><span>@@ -119,7 +119,7 @@</span><br><span>   : mBasePort(wBasePort), mLocalAddr(TRXAddress), mRemoteAddr(GSMcoreAddress),</span><br><span>     mClockSocket(TRXAddress, wBasePort, GSMcoreAddress, wBasePort + 100),</span><br><span>     mTransmitLatency(wTransmitLatency), mRadioInterface(wRadioInterface),</span><br><span style="color: hsl(0, 100%, 40%);">-    rssiOffset(wRssiOffset), sig_cbfn(NULL),</span><br><span style="color: hsl(120, 100%, 40%);">+    rssiOffset(wRssiOffset),</span><br><span>     mSPSTx(tx_sps), mSPSRx(rx_sps), mChans(chans), mEdge(false), mOn(false), mForceClockInterface(false),</span><br><span>     mTxFreq(0.0), mRxFreq(0.0), mTSC(0), mMaxExpectedDelayAB(0), mMaxExpectedDelayNB(0),</span><br><span>     mWriteBurstToDiskMask(0)</span><br><span>@@ -225,17 +225,6 @@</span><br><span>   return true;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-void Transceiver::setSignalHandler(osmo_signal_cbfn cbfn)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  if (this->sig_cbfn)</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_signal_unregister_handler(SS_TRANSC, this->sig_cbfn, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  if (cbfn) {</span><br><span style="color: hsl(0, 100%, 40%);">-    this->sig_cbfn = cbfn;</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_signal_register_handler(SS_TRANSC, this->sig_cbfn, NULL);</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%);">-</span><br><span> /*</span><br><span>  * Start the transceiver</span><br><span>  *</span><br><span>@@ -910,7 +899,7 @@</span><br><span>     usleep(100000);</span><br><span>   } else if (rc < 0) {</span><br><span>     LOG(FATAL) << "radio Interface receive failed, requesting stop.";</span><br><span style="color: hsl(0, 100%, 40%);">-    osmo_signal_dispatch(SS_TRANSC, S_TRANSC_STOP_REQUIRED, this);</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo_signal_dispatch(SS_MAIN, S_MAIN_STOP_REQUIRED, NULL);</span><br><span>   } else if (mForceClockInterface || mTransmitDeadlineClock > mLastClockUpdateTime + GSM::Time(216,0)) {</span><br><span>     mForceClockInterface = false;</span><br><span>     writeClockInterface();</span><br><span>diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h</span><br><span>index 432e3b4..4614efe 100644</span><br><span>--- a/Transceiver52M/Transceiver.h</span><br><span>+++ b/Transceiver52M/Transceiver.h</span><br><span>@@ -130,8 +130,6 @@</span><br><span>   /** accessor for number of channels */</span><br><span>   size_t numChans() const { return mChans; };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  void setSignalHandler(osmo_signal_cbfn cbfn);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>   /** Codes for channel combinations */</span><br><span>   typedef enum {</span><br><span>     FILL,               ///< Channel is transmitted, but unused</span><br><span>@@ -181,8 +179,6 @@</span><br><span> </span><br><span>   double rssiOffset;                      ///< RSSI to dBm conversion offset</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  osmo_signal_cbfn *sig_cbfn;              ///< Registered Signal Handler to announce events.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>   /** modulate and add a burst to the transmit queue */</span><br><span>   void addRadioVector(size_t chan, BitVector &bits,</span><br><span>                       int RSSI, GSM::Time &wTime);</span><br><span>diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp</span><br><span>index a79c26e..05489bd 100644</span><br><span>--- a/Transceiver52M/osmo-trx.cpp</span><br><span>+++ b/Transceiver52M/osmo-trx.cpp</span><br><span>@@ -123,7 +123,7 @@</span><br><span>                     void *handler_data, void *signal_data)</span><br><span> {</span><br><span>     switch (signal) {</span><br><span style="color: hsl(0, 100%, 40%);">-       case S_TRANSC_STOP_REQUIRED:</span><br><span style="color: hsl(120, 100%, 40%);">+  case S_MAIN_STOP_REQUIRED:</span><br><span>           gshutdown = true;</span><br><span>                 break;</span><br><span>  default:</span><br><span>@@ -152,8 +152,6 @@</span><br><span>               return -1;</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        transceiver->setSignalHandler(transc_sig_cb);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>        for (size_t i = 0; i < trx->cfg.num_chans; i++) {</span><br><span>              fifo = radio->receiveFIFO(i);</span><br><span>             if (fifo && transceiver->receiveFIFO(fifo, i))</span><br><span>@@ -627,6 +625,7 @@</span><br><span>                      return EXIT_FAILURE;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_signal_register_handler(SS_MAIN, transc_sig_cb, NULL);</span><br><span>  trx_rate_ctr_init(tall_trx_ctx, g_trx_ctx);</span><br><span> </span><br><span>      srandom(time(NULL));</span><br><span>@@ -641,5 +640,6 @@</span><br><span> </span><br><span>       osmo_fd_unregister(&signal_ofd);</span><br><span>         osmo_fd_close(&signal_ofd);</span><br><span style="color: hsl(120, 100%, 40%);">+       osmo_signal_unregister_handler(SS_MAIN, transc_sig_cb, NULL);</span><br><span>        return 0;</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-trx/+/14366">change 14366</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-trx/+/14366"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-trx </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Id4159e64225c6606fef34a74b24f37c3a071aceb </div>
<div style="display:none"> Gerrit-Change-Number: 14366 </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>