From 37e6021955bbbfba22cdf11854473c6a3635d9a9 Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@openairinterface.org>
Date: Fri, 7 Oct 2022 08:28:51 +0200
Subject: [PATCH] Fix compilation warnings in oai_irisdevif

---
 sdr/IRIS/USERSPACE/LIB/iris_lib.cpp | 80 +++++++++++++----------------
 1 file changed, 35 insertions(+), 45 deletions(-)

diff --git a/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp b/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp
index 94e9adf54dd..051efe7a535 100644
--- a/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp
+++ b/sdr/IRIS/USERSPACE/LIB/iris_lib.cpp
@@ -88,7 +88,7 @@ static int trx_iris_start(openair0_device *device) {
     for (r = 0; r < s->device_num; r++) {
         int ret = s->iris[r]->activateStream(s->rxStream[r], flags, timeNs, 0);
         int ret2 = s->iris[r]->activateStream(s->txStream[r]);
-        if (ret < 0 | ret2 < 0)
+        if (ret < 0 || ret2 < 0)
             return -1;
     }
     return 0;
@@ -135,12 +135,7 @@ static void trx_iris_end(openair0_device *device) {
 static int
 trx_iris_write(openair0_device *device, openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) {
     using namespace std::chrono;
-    static long long int loop = 0;
-    static long time_min = 0, time_max = 0, time_avg = 0;
-    struct timespec tp_start, tp_end;
-    long time_diff;
 
-    int ret = 0, ret_i = 0;
     int flag = 0;
 
     iris_state_t *s = (iris_state_t *) device->priv;
@@ -161,20 +156,17 @@ trx_iris_write(openair0_device *device, openair0_timestamp timestamp, void **buf
       }
     }
 
-    clock_gettime(CLOCK_MONOTONIC_RAW, &tp_start);
-
     // This hack was added by cws to help keep packets flowing
 
     if (flags)
         flag |= SOAPY_SDR_HAS_TIME;
     else {
-        long long tempHack = s->iris[0]->getHardwareTime("");
         return nsamps;
     }
 
     if (flags == 2 || flags == 1) { // start of burst
 
-    } else if (flags == 3 | flags == 4) {
+    } else if (flags == 3 || flags == 4) {
         flag |= SOAPY_SDR_END_BURST;
     }
 
@@ -196,7 +188,7 @@ trx_iris_write(openair0_device *device, openair0_timestamp timestamp, void **buf
         printf("\n");
         //printf("\nHardware time before write: %lld, tx_time_stamp: %lld\n", s->iris[0]->getHardwareTime(""), timeNs);
 #endif
-        ret = s->iris[r]->writeStream(s->txStream[r], (void **) samps, (size_t)(nsamps), flag, timeNs, 1000000);
+        const int ret = s->iris[r]->writeStream(s->txStream[r], (void **) samps, (size_t)(nsamps), flag, timeNs, 1000000);
 
         if (ret < 0)
             printf("Unable to write stream!\n");
@@ -231,7 +223,7 @@ static int trx_iris_read(openair0_device *device, openair0_timestamp *ptimestamp
     bool time_set = false;
     long long timeNs = 0;
     int flags;
-    int samples_received;
+    int samples_received = 0;
     uint32_t *samps[2]; //= (uint32_t **)buff;
 
     int r;
@@ -255,7 +247,7 @@ static int trx_iris_read(openair0_device *device, openair0_timestamp *ptimestamp
         if (ret < 0) {
             if (ret == SOAPY_SDR_TIME_ERROR)
                 printf("[recv] Time Error in tx stream!\n");
-            else if (ret == SOAPY_SDR_OVERFLOW | (flags & SOAPY_SDR_END_ABRUPT))
+            else if (ret == SOAPY_SDR_OVERFLOW || (flags & SOAPY_SDR_END_ABRUPT))
                 printf("[recv] Overflow occured!\n");
             else if (ret == SOAPY_SDR_TIMEOUT)
                 printf("[recv] Timeout occured!\n");
@@ -344,15 +336,16 @@ void *set_freq_thread(void *arg) {
            device->openair0_cfg[0].rx_freq[0]);
     // add check for the number of channels in the cfg
     for (r = 0; r < s->device_num; r++) {
-        for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
+        for (i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
             if (i < s->rx_num_channels)
                 s->iris[r]->setFrequency(SOAPY_SDR_RX, i, "RF", device->openair0_cfg[0].rx_freq[i]);
         }
-        for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
+        for (i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
             if (i < s->tx_num_channels)
                 s->iris[r]->setFrequency(SOAPY_SDR_TX, i, "RF", device->openair0_cfg[0].tx_freq[i]);
         }
     }
+    return NULL;
 }
 
 /*! \brief Set frequencies (TX/RX)
@@ -364,16 +357,15 @@ void *set_freq_thread(void *arg) {
 int trx_iris_set_freq(openair0_device *device, openair0_config_t *openair0_cfg)
 {
   iris_state_t *s = (iris_state_t *)device->priv;
-  pthread_t f_thread;
   int r, i;
   for (r = 0; r < s->device_num; r++) {
     printf("Setting Iris TX Freq %f, RX Freq %f\n", openair0_cfg[0].tx_freq[0], openair0_cfg[0].rx_freq[0]);
-    for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
+    for (i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
       if (i < s->rx_num_channels) {
         s->iris[r]->setFrequency(SOAPY_SDR_RX, i, "RF", openair0_cfg[0].rx_freq[i]);
       }
     }
-    for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
+    for (i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
       if (i < s->tx_num_channels) {
         s->iris[r]->setFrequency(SOAPY_SDR_TX, i, "RF", openair0_cfg[0].tx_freq[i]);
       }
@@ -495,11 +487,9 @@ extern "C" {
 */
 int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
 
-    size_t i, r, card;
     int bw_gain_adjust = 0;
     openair0_cfg[0].rx_gain_calib_table = calib_table_iris;
-    iris_state_t *s = (iris_state_t *) malloc(sizeof(iris_state_t));
-    memset(s, 0, sizeof(iris_state_t));
+    iris_state_t *s = (iris_state_t *) calloc(1, sizeof(*s));
 
     std::string devFE("DEV");
     std::string cbrsFE("CBRS");
@@ -576,7 +566,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
         exit(-1);
     }
 
-    for (r = 0; r < s->device_num; r++) {
+    for (int r = 0; r < s->device_num; r++) {
         //this is unnecessary -- it will set the correct master clock based on sample rate
         /*switch ((int) openair0_cfg[0].sample_rate) {
             case 1920000:
@@ -600,7 +590,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
                 break;
         }*/
 
-        for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
+        for (int i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
             if (i < s->rx_num_channels) {
                 s->iris[r]->setSampleRate(SOAPY_SDR_RX, i, openair0_cfg[0].sample_rate / SAMPLE_RATE_DOWN);
 #ifdef MOVE_DC
@@ -633,7 +623,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
                 s->iris[r]->setDCOffsetMode(SOAPY_SDR_RX, i, true); // move somewhere else
             }
         }
-        for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
+        for (int i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
             if (i < s->tx_num_channels) {
                 s->iris[r]->setSampleRate(SOAPY_SDR_TX, i, openair0_cfg[0].sample_rate / SAMPLE_RATE_DOWN);
 #ifdef MOVE_DC
@@ -682,24 +672,24 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
         rx_filt_bw *= 3;
 #endif
         /* Setting TX/RX BW */
-        for (i = 0; i < s->tx_num_channels; i++) {
-            if (i < s->iris[r]->getNumChannels(SOAPY_SDR_TX)) {
+        for (int i = 0; i < s->tx_num_channels; i++) {
+            if (i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX)) {
                 s->iris[r]->setBandwidth(SOAPY_SDR_TX, i, tx_filt_bw);
-                printf("Setting tx bandwidth on channel %zu/%lu: BW %f (readback %f)\n", i,
+                printf("Setting tx bandwidth on channel %d/%lu: BW %f (readback %f)\n", i,
                        s->iris[r]->getNumChannels(SOAPY_SDR_TX), tx_filt_bw / 1e6,
                        s->iris[r]->getBandwidth(SOAPY_SDR_TX, i) / 1e6);
             }
         }
-        for (i = 0; i < s->rx_num_channels; i++) {
-            if (i < s->iris[r]->getNumChannels(SOAPY_SDR_RX)) {
+        for (int i = 0; i < s->rx_num_channels; i++) {
+            if (i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX)) {
                 s->iris[r]->setBandwidth(SOAPY_SDR_RX, i, rx_filt_bw);
-                printf("Setting rx bandwidth on channel %zu/%lu : BW %f (readback %f)\n", i,
+                printf("Setting rx bandwidth on channel %d/%lu : BW %f (readback %f)\n", i,
                        s->iris[r]->getNumChannels(SOAPY_SDR_RX), rx_filt_bw / 1e6,
                        s->iris[r]->getBandwidth(SOAPY_SDR_RX, i) / 1e6);
             }
         }
 
-        for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
+        for (int i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
             if (i < s->tx_num_channels) {
                 printf("\nUsing SKLK calibration...\n");
                 s->iris[r]->writeSetting(SOAPY_SDR_TX, i, "CALIBRATE", "SKLK");
@@ -708,7 +698,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
 
         }
 
-        for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
+        for (int i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
             if (i < s->rx_num_channels) {
                 printf("\nUsing SKLK calibration...\n");
                 s->iris[r]->writeSetting(SOAPY_SDR_RX, i, "CALIBRATE", "SKLK");
@@ -718,7 +708,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
         }
 
         if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) == 0) {
-            for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
+            for (int i = 0; i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
                 if (openair0_cfg[0].duplex_mode == 0) {
                     printf("\nFDD: Setting receive antenna to %s\n", s->iris[r]->listAntennas(SOAPY_SDR_RX, i)[1].c_str());
                     if (i < s->rx_num_channels)
@@ -741,22 +731,22 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
         rxStreamArgs["WIRE"] = SOAPY_SDR_CS16;
 
         std::vector <size_t> channels;
-        for (i = 0; i < s->rx_num_channels; i++)
-            if (i < s->iris[r]->getNumChannels(SOAPY_SDR_RX))
+        for (int i = 0; i < s->rx_num_channels; i++)
+            if (i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX))
                 channels.push_back(i);
         s->rxStream.push_back(s->iris[r]->setupStream(SOAPY_SDR_RX, SOAPY_SDR_CS16, channels));//, rxStreamArgs));
 
         std::vector <size_t> tx_channels = {};
-        for (i = 0; i < s->tx_num_channels; i++)
-            if (i < s->iris[r]->getNumChannels(SOAPY_SDR_TX))
+        for (int i = 0; i < s->tx_num_channels; i++)
+            if (i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX))
                 tx_channels.push_back(i);
         s->txStream.push_back(s->iris[r]->setupStream(SOAPY_SDR_TX, SOAPY_SDR_CS16, tx_channels)); //, arg));
         //s->iris[r]->setHardwareTime(0, "");
 
         std::cout << "Front end detected: " << s->iris[r]->getHardwareInfo()["frontend"] << "\n";
-        for (i = 0; i < s->rx_num_channels; i++) {
-            if (i < s->iris[r]->getNumChannels(SOAPY_SDR_RX)) {
-                printf("RX Channel %zu\n", i);
+        for (int i = 0; i < s->rx_num_channels; i++) {
+            if (i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_RX)) {
+                printf("RX Channel %d\n", i);
                 printf("Actual RX sample rate: %fMSps...\n", (s->iris[r]->getSampleRate(SOAPY_SDR_RX, i) / 1e6));
                 printf("Actual RX frequency: %fGHz...\n", (s->iris[r]->getFrequency(SOAPY_SDR_RX, i) / 1e9));
                 printf("Actual RX gain: %f...\n", (s->iris[r]->getGain(SOAPY_SDR_RX, i)));
@@ -772,9 +762,9 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
             }
         }
 
-        for (i = 0; i < s->tx_num_channels; i++) {
-            if (i < s->iris[r]->getNumChannels(SOAPY_SDR_TX)) {
-                printf("TX Channel %zu\n", i);
+        for (int i = 0; i < s->tx_num_channels; i++) {
+            if (i < (int) s->iris[r]->getNumChannels(SOAPY_SDR_TX)) {
+                printf("TX Channel %d\n", i);
                 printf("Actual TX sample rate: %fMSps...\n", (s->iris[r]->getSampleRate(SOAPY_SDR_TX, i) / 1e6));
                 printf("Actual TX frequency: %fGHz...\n", (s->iris[r]->getFrequency(SOAPY_SDR_TX, i) / 1e9));
                 printf("Actual TX gain: %f...\n", (s->iris[r]->getGain(SOAPY_SDR_TX, i)));
@@ -791,10 +781,10 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
         }
     }
     s->iris[0]->writeSetting("SYNC_DELAYS", "");
-    for (r = 0; r < s->device_num; r++)
+    for (int r = 0; r < s->device_num; r++)
         s->iris[r]->setHardwareTime(0, "TRIGGER");
     s->iris[0]->writeSetting("TRIGGER_GEN", "");
-    for (r = 0; r < s->device_num; r++)
+    for (int r = 0; r < s->device_num; r++)
         printf("Device timestamp: %f...\n", (s->iris[r]->getHardwareTime("TRIGGER") / 1e9));
 
     device->priv = s;
-- 
GitLab