<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>