diff options
Diffstat (limited to 'host/lib')
27 files changed, 95 insertions, 53 deletions
diff --git a/host/lib/convert/convert_fc32_item32.cpp b/host/lib/convert/convert_fc32_item32.cpp index 29bfefd46..641fc2608 100644 --- a/host/lib/convert/convert_fc32_item32.cpp +++ b/host/lib/convert/convert_fc32_item32.cpp @@ -28,7 +28,7 @@ typedef boost::uint32_t (*to32_type)(boost::uint32_t);  template <typename type, to32_type tohost>  struct convert_fc32_item32_1_to_star_1 : public converter  { -    convert_fc32_item32_1_to_star_1(void) +    convert_fc32_item32_1_to_star_1(void):_scalar(0.0)      {          //NOP      } @@ -48,9 +48,9 @@ struct convert_fc32_item32_1_to_star_1 : public converter          {              const item32_t i32 = tohost(input[i++]);              const item32_t q32 = tohost(input[i++]); -            const float i_f32 = reinterpret_cast<const float &>(i32); -            const float q_f32 = reinterpret_cast<const float &>(q32); -            output[o] = std::complex<type>(type(i_f32*_scalar), type(q_f32*_scalar)); +            const float *i_f32p = reinterpret_cast<const float *>(&i32); +            const float *q_f32p = reinterpret_cast<const float *>(&q32); +            output[o] = std::complex<type>(type((*i_f32p)*_scalar), type((*q_f32p)*_scalar));          }      } @@ -60,7 +60,7 @@ struct convert_fc32_item32_1_to_star_1 : public converter  template <typename type, to32_type towire>  struct convert_star_1_to_fc32_item32_1 : public converter  { -    convert_star_1_to_fc32_item32_1(void) +    convert_star_1_to_fc32_item32_1(void):_scalar(0.0)      {          //NOP      } @@ -80,9 +80,10 @@ struct convert_star_1_to_fc32_item32_1 : public converter          {              const float i_f32 = type(input[i].real()*_scalar);              const float q_f32 = type(input[i].imag()*_scalar); -            const item32_t i32 = towire(reinterpret_cast<const item32_t &>(i_f32)); -            const item32_t q32 = towire(reinterpret_cast<const item32_t &>(q_f32)); -            output[o++] = i32; output[o++] = q32; +            const item32_t *i32p = reinterpret_cast<const item32_t *>(&i_f32); +            const item32_t *q32p = reinterpret_cast<const item32_t *>(&q_f32); +            output[o++] = towire(*i32p); +            output[o++] = towire(*q32p);          }      } diff --git a/host/lib/convert/convert_pack_sc12.cpp b/host/lib/convert/convert_pack_sc12.cpp index 680814994..92cd5d152 100644 --- a/host/lib/convert/convert_pack_sc12.cpp +++ b/host/lib/convert/convert_pack_sc12.cpp @@ -67,7 +67,7 @@ void convert_star_4_to_sc12_item32_3  template <typename type, towire32_type towire>  struct convert_star_1_to_sc12_item32_1 : public converter  { -    convert_star_1_to_sc12_item32_1(void) +    convert_star_1_to_sc12_item32_1(void):_scalar(0.0)      {          //NOP      } diff --git a/host/lib/convert/convert_unpack_sc12.cpp b/host/lib/convert/convert_unpack_sc12.cpp index f578b6c95..6583eb21f 100644 --- a/host/lib/convert/convert_unpack_sc12.cpp +++ b/host/lib/convert/convert_unpack_sc12.cpp @@ -73,7 +73,7 @@ void convert_sc12_item32_3_to_star_4  template <typename type, tohost32_type tohost>  struct convert_sc12_item32_1_to_star_1 : public converter  { -    convert_sc12_item32_1_to_star_1(void) +    convert_sc12_item32_1_to_star_1(void):_scalar(0.0)      {          //NOP      } diff --git a/host/lib/convert/sse2_fc32_to_sc16.cpp b/host/lib/convert/sse2_fc32_to_sc16.cpp index 90bf0ed04..f5a2b7610 100644 --- a/host/lib/convert/sse2_fc32_to_sc16.cpp +++ b/host/lib/convert/sse2_fc32_to_sc16.cpp @@ -51,7 +51,9 @@ DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_SIMD){      //dispatch according to alignment      switch (size_t(input) & 0xf){      case 0x8: -        xx_to_item32_sc16<uhd::htowx>(input, output, 1, scale_factor); i++; +        xx_to_item32_sc16<uhd::htowx>(input, output, 1, scale_factor); +        i++; +        break;      case 0x0:          convert_fc32_1_to_item32_1_nswap_guts(_)          break; @@ -91,7 +93,9 @@ DECLARE_CONVERTER(fc32, 1, sc16_item32_be, 1, PRIORITY_SIMD){      //dispatch according to alignment      switch (size_t(input) & 0xf){      case 0x8: -        xx_to_item32_sc16<uhd::htonx>(input, output, 1, scale_factor); i++; +        xx_to_item32_sc16<uhd::htonx>(input, output, 1, scale_factor); +        i++; +        break;      case 0x0:          convert_fc32_1_to_item32_1_bswap_guts(_)          break; diff --git a/host/lib/convert/sse2_sc16_to_fc32.cpp b/host/lib/convert/sse2_sc16_to_fc32.cpp index c03e41585..7a9860970 100644 --- a/host/lib/convert/sse2_sc16_to_fc32.cpp +++ b/host/lib/convert/sse2_sc16_to_fc32.cpp @@ -53,7 +53,9 @@ DECLARE_CONVERTER(sc16_item32_le, 1, fc32, 1, PRIORITY_SIMD){      //dispatch according to alignment      switch (size_t(output) & 0xf){      case 0x8: -        item32_sc16_to_xx<uhd::htowx>(input, output, 1, scale_factor); i++; +        item32_sc16_to_xx<uhd::htowx>(input, output, 1, scale_factor); +        i++; +        break;      case 0x0:          convert_item32_1_to_fc32_1_nswap_guts(_)          break; @@ -95,7 +97,9 @@ DECLARE_CONVERTER(sc16_item32_be, 1, fc32, 1, PRIORITY_SIMD){      //dispatch according to alignment      switch (size_t(output) & 0xf){      case 0x8: -        item32_sc16_to_xx<uhd::htonx>(input, output, 1, scale_factor); i++; +        item32_sc16_to_xx<uhd::htonx>(input, output, 1, scale_factor); +        i++; +        break;      case 0x0:          convert_item32_1_to_fc32_1_bswap_guts(_)          break; diff --git a/host/lib/transport/super_recv_packet_handler.hpp b/host/lib/transport/super_recv_packet_handler.hpp index 688228e49..5080182d6 100644 --- a/host/lib/transport/super_recv_packet_handler.hpp +++ b/host/lib/transport/super_recv_packet_handler.hpp @@ -246,7 +246,8 @@ private:      struct xport_chan_props_type{          xport_chan_props_type(void):              packet_count(0), -            handle_overflow(&handle_overflow_nop) +            handle_overflow(&handle_overflow_nop), +            fc_update_window(0)          {}          get_buff_type get_buff;          issue_stream_cmd_type issue_stream_cmd; diff --git a/host/lib/transport/super_send_packet_handler.hpp b/host/lib/transport/super_send_packet_handler.hpp index 41f030ea6..ae483d1f3 100644 --- a/host/lib/transport/super_send_packet_handler.hpp +++ b/host/lib/transport/super_send_packet_handler.hpp @@ -239,7 +239,7 @@ private:      size_t _header_offset_words32;      double _tick_rate, _samp_rate;      struct xport_chan_props_type{ -        xport_chan_props_type(void):has_sid(false){} +        xport_chan_props_type(void):has_sid(false),sid(0){}          get_buff_type get_buff;          bool has_sid;          boost::uint32_t sid; diff --git a/host/lib/transport/udp_zero_copy.cpp b/host/lib/transport/udp_zero_copy.cpp index 166177177..7b6a476f5 100644 --- a/host/lib/transport/udp_zero_copy.cpp +++ b/host/lib/transport/udp_zero_copy.cpp @@ -68,7 +68,7 @@ static void check_registry_for_fast_send_threshold(const size_t mtu){  class udp_zero_copy_asio_mrb : public managed_recv_buffer{  public:      udp_zero_copy_asio_mrb(void *mem, int sock_fd, const size_t frame_size): -        _mem(mem), _sock_fd(sock_fd), _frame_size(frame_size) { /*NOP*/ } +        _mem(mem), _sock_fd(sock_fd), _frame_size(frame_size), _len(0) { /*NOP*/ }      void release(void){          _claimer.release(); @@ -87,6 +87,7 @@ public:          if (wait_for_recv_ready(_sock_fd, timeout)){              _len = ::recv(_sock_fd, (char *)_mem, _frame_size, 0); +            UHD_ASSERT_THROW(_len > 0); // TODO: Handle case of recv error              index++; //advances the caller's buffer              return make(this, _mem, size_t(_len));          } diff --git a/host/lib/types/tune.cpp b/host/lib/types/tune.cpp index 154f0990f..7697bd966 100644 --- a/host/lib/types/tune.cpp +++ b/host/lib/types/tune.cpp @@ -24,7 +24,9 @@ using namespace uhd;  tune_request_t::tune_request_t(double target_freq):      target_freq(target_freq),      rf_freq_policy(POLICY_AUTO), -    dsp_freq_policy(POLICY_AUTO) +    rf_freq(0.0), +    dsp_freq_policy(POLICY_AUTO), +    dsp_freq(0.0)  {      /* NOP */  } @@ -33,7 +35,8 @@ tune_request_t::tune_request_t(double target_freq, double lo_off):      target_freq(target_freq),      rf_freq_policy(POLICY_MANUAL),      rf_freq(target_freq + lo_off), -    dsp_freq_policy(POLICY_AUTO) +    dsp_freq_policy(POLICY_AUTO), +    dsp_freq(0.0)  {      /* NOP */  } diff --git a/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp b/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp index 2096e4ef4..451cdae50 100644 --- a/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp +++ b/host/lib/usrp/b100/usb_zero_copy_wrapper.cpp @@ -167,6 +167,7 @@ public:      usb_zero_copy_wrapper(zero_copy_if::sptr usb_zc, const size_t frame_boundary):          _internal_zc(usb_zc),          _frame_boundary(frame_boundary), +        _last_recv_offset(0),          _next_recv_buff_index(0)      {          for (size_t i = 0; i < this->get_num_recv_frames(); i++){ diff --git a/host/lib/usrp/b200/b200_iface.cpp b/host/lib/usrp/b200/b200_iface.cpp index 1d05e159c..457b380b6 100644 --- a/host/lib/usrp/b200/b200_iface.cpp +++ b/host/lib/usrp/b200/b200_iface.cpp @@ -158,6 +158,9 @@ bool parse_record(std::string *record, boost::uint16_t &len, \      std::istringstream(record->substr(3, 4)) >> std::hex >> addr;      std::istringstream(record->substr(7, 2)) >> std::hex >> type; +    if (len >2 * (record->length() - 9))  // sanity check to prevent buffer overrun +        return false; +      for (i = 0; i < len; i++) {          std::istringstream(record->substr(9 + 2 * i, 2)) >> std::hex >> val;          data[i] = (unsigned char) val; @@ -214,13 +217,13 @@ public:      } -    void write_i2c(boost::uint16_t addr, const byte_vector_t &bytes) +    void write_i2c(boost::uint16_t addr __attribute__ ((unused)), const byte_vector_t &bytes __attribute__ ((unused)))      {          throw uhd::not_implemented_error("b200 write i2c");      } -    byte_vector_t read_i2c(boost::uint16_t addr, size_t num_bytes) +    byte_vector_t read_i2c(boost::uint16_t addr __attribute__ ((unused)), size_t num_bytes __attribute__ ((unused)))      {          throw uhd::not_implemented_error("b200 read i2c");      } @@ -293,7 +296,7 @@ public:      } -    void load_firmware(const std::string filestring, bool force = false) +    void load_firmware(const std::string filestring, bool force  __attribute__ ((unused)) = false)      {          const char *filename = filestring.c_str(); @@ -323,6 +326,9 @@ public:              std::string record;              file >> record; +        if (!record.length() > 0) +            continue; +              /* Check for valid Intel HEX record. */              if (!checksum(&record) || !parse_record(&record, len, \                          lower_address_bits, type, data)) { @@ -419,7 +425,9 @@ public:          UHD_THROW_INVALID_CODE_PATH(); -        fx3_control_write(B200_VREQ_FPGA_RESET, 0x00, 0x00, data, 4); +        // Below is dead code as long as UHD_THROW_INVALID_CODE_PATH(); is declared above. +        // It is preservered here in a comment in case it is needed later: +        // fx3_control_write(B200_VREQ_FPGA_RESET, 0x00, 0x00, data, 4);      }      boost::uint8_t get_usb_speed(void) { diff --git a/host/lib/usrp/common/fx2_ctrl.cpp b/host/lib/usrp/common/fx2_ctrl.cpp index 6111efea9..1cacc45cf 100644 --- a/host/lib/usrp/common/fx2_ctrl.cpp +++ b/host/lib/usrp/common/fx2_ctrl.cpp @@ -119,6 +119,9 @@ bool parse_record(std::string *record, unsigned int &len,      std::istringstream(record->substr(3, 4)) >> std::hex >> addr;      std::istringstream(record->substr(7, 2)) >> std::hex >> type; +    if (len >2 * (record->length() - 9))  // sanity check to prevent buffer overrun +        return false; +      for (i = 0; i < len; i++) {          std::istringstream(record->substr(9 + 2 * i, 2)) >> std::hex >> val;          data[i] = (unsigned char) val; @@ -181,6 +184,9 @@ public:             std::string record;             file >> record; +        if (!record.length() > 0) +            continue; +              //check for valid record              if (not checksum(&record) or not parse_record(&record, len, addr, type, data)) {                  throw uhd::io_error("usrp_load_firmware: bad record checksum"); diff --git a/host/lib/usrp/cores/rx_dsp_core_200.cpp b/host/lib/usrp/cores/rx_dsp_core_200.cpp index ef6b85de9..2fdc220b5 100644 --- a/host/lib/usrp/cores/rx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_200.cpp @@ -59,8 +59,11 @@ public:          const size_t dsp_base, const size_t ctrl_base,          const boost::uint32_t sid, const bool lingering_packet      ): -        _iface(iface), _dsp_base(dsp_base), _ctrl_base(ctrl_base), _sid(sid) +        _iface(iface), _dsp_base(dsp_base), _ctrl_base(ctrl_base),  _sid(sid)      { +        // previously uninitialized - assuming zero for all +        _tick_rate = _link_rate = _host_extra_scaling = _fxpt_scalar_correction = 0.0; +          //init to something so update method has reasonable defaults          _scaling_adjustment = 1.0;          _dsp_extra_scaling = 1.0; diff --git a/host/lib/usrp/cores/rx_dsp_core_3000.cpp b/host/lib/usrp/cores/rx_dsp_core_3000.cpp index 7b3324f74..525916032 100644 --- a/host/lib/usrp/cores/rx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/rx_dsp_core_3000.cpp @@ -50,10 +50,13 @@ public:      ):          _iface(iface), _dsp_base(dsp_base)      { +        // previously uninitialized - assuming zero for all +        _link_rate = _host_extra_scaling = _fxpt_scalar_correction = 0.0; +          //init to something so update method has reasonable defaults          _scaling_adjustment = 1.0;          _dsp_extra_scaling = 1.0; -        this->set_tick_rate(1.0); +        _tick_rate = 1.0;      }      ~rx_dsp_core_3000_impl(void) diff --git a/host/lib/usrp/cores/rx_frontend_core_200.cpp b/host/lib/usrp/cores/rx_frontend_core_200.cpp index 09b36c1a6..864b5cc53 100644 --- a/host/lib/usrp/cores/rx_frontend_core_200.cpp +++ b/host/lib/usrp/cores/rx_frontend_core_200.cpp @@ -38,7 +38,7 @@ static boost::uint32_t fs_to_bits(const double num, const size_t bits){  class rx_frontend_core_200_impl : public rx_frontend_core_200{  public:      rx_frontend_core_200_impl(wb_iface::sptr iface, const size_t base): -        _iface(iface), _base(base) +        _i_dc_off(0), _q_dc_off(0), _iface(iface), _base(base)      {          //NOP      } diff --git a/host/lib/usrp/cores/time64_core_200.cpp b/host/lib/usrp/cores/time64_core_200.cpp index 11b310362..ad5e6477c 100644 --- a/host/lib/usrp/cores/time64_core_200.cpp +++ b/host/lib/usrp/cores/time64_core_200.cpp @@ -48,6 +48,7 @@ public:      ):          _iface(iface), _base(base),          _readback_bases(readback_bases), +        _tick_rate(0.0),          _mimo_delay_cycles(mimo_delay_cycles)      {          _sources.push_back("none"); diff --git a/host/lib/usrp/cores/tx_dsp_core_200.cpp b/host/lib/usrp/cores/tx_dsp_core_200.cpp index 808f13028..f8aa87aa3 100644 --- a/host/lib/usrp/cores/tx_dsp_core_200.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_200.cpp @@ -60,6 +60,9 @@ public:      ):          _iface(iface), _dsp_base(dsp_base), _ctrl_base(ctrl_base), _sid(sid)      { +        // previously uninitialized - assuming zero for all +        _tick_rate = _link_rate = _host_extra_scaling = _fxpt_scalar_correction = 0.0; +          //init to something so update method has reasonable defaults          _scaling_adjustment = 1.0;          _dsp_extra_scaling = 1.0; diff --git a/host/lib/usrp/cores/tx_dsp_core_3000.cpp b/host/lib/usrp/cores/tx_dsp_core_3000.cpp index feb749cd9..6fde70c5f 100644 --- a/host/lib/usrp/cores/tx_dsp_core_3000.cpp +++ b/host/lib/usrp/cores/tx_dsp_core_3000.cpp @@ -45,10 +45,13 @@ public:      ):          _iface(iface), _dsp_base(dsp_base)      { +        // previously uninitialized - assuming zero for all +        _link_rate = _host_extra_scaling = _fxpt_scalar_correction = 0.0; +          //init to something so update method has reasonable defaults          _scaling_adjustment = 1.0;          _dsp_extra_scaling = 1.0; -        this->set_tick_rate(1.0); +        _tick_rate = 1.0;      }      void set_tick_rate(const double rate){ diff --git a/host/lib/usrp/dboard/db_dbsrx.cpp b/host/lib/usrp/dboard/db_dbsrx.cpp index b1cee4aa7..9d04d8e16 100644 --- a/host/lib/usrp/dboard/db_dbsrx.cpp +++ b/host/lib/usrp/dboard/db_dbsrx.cpp @@ -179,7 +179,7 @@ dbsrx::dbsrx(ctor_args_t args) : rx_dboard_base(args){                  "DBSRX: incorrect dbid\n"                  "Expected dbid 0x0002 and R193\n"                  "found dbid == %d\n" -                "Please see the daughterboard app notes"  +                "Please see the daughterboard app notes"                  ) % this->get_rx_id().to_pp_string();      //warn user about incorrect DBID on non-USRP1, requires R194 populated @@ -188,7 +188,7 @@ dbsrx::dbsrx(ctor_args_t args) : rx_dboard_base(args){                  "DBSRX: incorrect dbid\n"                  "Expected dbid 0x000D and R194\n"                  "found dbid == %d\n" -                "Please see the daughterboard app notes"  +                "Please see the daughterboard app notes"                  ) % this->get_rx_id().to_pp_string();      //send initial register settings @@ -305,13 +305,13 @@ double dbsrx::set_lo_freq(double target_freq){              goto done_loop;          } -    }  +    }      done_loop: -    //Assert because we failed to find a suitable combination of ref_clock, R and N  +    //Assert because we failed to find a suitable combination of ref_clock, R and N      UHD_ASSERT_THROW(ref_clock <= 27.0e6 and ref_clock >= 0.0); -    UHD_ASSERT_THROW(ref_clock/m >= 1e6 and ref_clock/m <= 2.5e6); +    UHD_ASSERT_THROW(m and ref_clock/m >= 1e6 and ref_clock/m <= 2.5e6);      UHD_ASSERT_THROW((pfd_freq >= dbsrx_pfd_freq_range.start()) and (pfd_freq <= dbsrx_pfd_freq_range.stop()));      UHD_ASSERT_THROW((N >= 256) and (N <= 32768)); @@ -332,7 +332,7 @@ double dbsrx::set_lo_freq(double target_freq){      _max2118_write_regs.r_divider = (max2118_write_regs_t::r_divider_t) r;      _max2118_write_regs.set_n_divider(N);      _max2118_write_regs.ade_vco_ade_read = max2118_write_regs_t::ADE_VCO_ADE_READ_ENABLED; -     +      //compute prescaler variables      int scaler = actual_freq > 1125e6 ? 2 : 4;      _max2118_write_regs.div2 = scaler == 4 ? max2118_write_regs_t::DIV2_DIV4 : max2118_write_regs_t::DIV2_DIV2; @@ -377,7 +377,7 @@ double dbsrx::set_lo_freq(double target_freq){          if (_max2118_read_regs.adc == 0){              if (_max2118_write_regs.osc_band == 0){                  UHD_MSG(warning) << boost::format( -                        "DBSRX: Tuning exceeded vco range, _max2118_write_regs.osc_band == %d\n"  +                        "DBSRX: Tuning exceeded vco range, _max2118_write_regs.osc_band == %d\n"                          ) % int(_max2118_write_regs.osc_band);                  UHD_ASSERT_THROW(_max2118_read_regs.adc != 0); //just to cause a throw              } @@ -389,7 +389,7 @@ double dbsrx::set_lo_freq(double target_freq){          if (_max2118_read_regs.adc == 7){              if (_max2118_write_regs.osc_band == 7){                  UHD_MSG(warning) << boost::format( -                        "DBSRX: Tuning exceeded vco range, _max2118_write_regs.osc_band == %d\n"  +                        "DBSRX: Tuning exceeded vco range, _max2118_write_regs.osc_band == %d\n"                          ) % int(_max2118_write_regs.osc_band);                  UHD_ASSERT_THROW(_max2118_read_regs.adc != 7); //just to cause a throw              } @@ -408,7 +408,7 @@ double dbsrx::set_lo_freq(double target_freq){          //allow for setup time before checking condition again          boost::this_thread::sleep(boost::posix_time::milliseconds(10));      } -       +      UHD_LOGV(often) << boost::format(          "DBSRX: final vco %d, vtune adc %d"      ) % int(_max2118_write_regs.osc_band) % int(_max2118_read_regs.adc) << std::endl; @@ -417,7 +417,7 @@ double dbsrx::set_lo_freq(double target_freq){      if (_max2118_read_regs.adc <= 2) _max2118_write_regs.cp_current = max2118_write_regs_t::CP_CURRENT_I_CP_100UA;      else if (_max2118_read_regs.adc >= 5) _max2118_write_regs.cp_current = max2118_write_regs_t::CP_CURRENT_I_CP_400UA;      else _max2118_write_regs.cp_current = max2118_write_regs_t::CP_CURRENT_I_CP_200UA; -     +      //update charge pump bias current setting      send_reg(0x2, 0x2); @@ -524,7 +524,7 @@ double dbsrx::set_bandwidth(double bandwidth){      bandwidth = dbsrx_bandwidth_range.clip(bandwidth);      double ref_clock = this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX); -     +      //NOTE: _max2118_write_regs.m_divider set in set_lo_freq      //compute f_dac setting diff --git a/host/lib/usrp/dboard/db_tvrx.cpp b/host/lib/usrp/dboard/db_tvrx.cpp index edee46cd5..e9f60f765 100644 --- a/host/lib/usrp/dboard/db_tvrx.cpp +++ b/host/lib/usrp/dboard/db_tvrx.cpp @@ -267,7 +267,7 @@ static std::string get_band(double freq) {   * \return a voltage to feed the TVRX analog gain   */ -static double gain_interp(double gain, boost::array<double, 17> db_vector, boost::array<double, 17> volts_vector) { +static double gain_interp(double gain, const boost::array<double, 17>& db_vector, const boost::array<double, 17>& volts_vector) {      double volts;      gain = uhd::clip<double>(gain, db_vector.front(), db_vector.back()); //let's not get carried away here diff --git a/host/lib/usrp/dboard/db_wbx_common.hpp b/host/lib/usrp/dboard/db_wbx_common.hpp index 9e984dce7..d1beb160e 100644 --- a/host/lib/usrp/dboard/db_wbx_common.hpp +++ b/host/lib/usrp/dboard/db_wbx_common.hpp @@ -118,7 +118,7 @@ protected:       */      class wbx_versionx {      public: -        wbx_versionx() {} +        wbx_versionx():self_base(NULL) {}          ~wbx_versionx(void) {}          virtual double set_tx_gain(double gain, const std::string &name) = 0; diff --git a/host/lib/usrp/gps_ctrl.cpp b/host/lib/usrp/gps_ctrl.cpp index c3af75faa..105a52b30 100644 --- a/host/lib/usrp/gps_ctrl.cpp +++ b/host/lib/usrp/gps_ctrl.cpp @@ -223,7 +223,6 @@ private:          boost::this_thread::sleep(milliseconds(GPS_TIMEOUT_DELAY_MS));      }      throw uhd::value_error(str(boost::format("get_nmea(): no %s message found") % msgtype)); -    return std::string();    }    //helper function to retrieve a field from an NMEA sentence @@ -322,7 +321,6 @@ private:          boost::this_thread::sleep(milliseconds(GPS_TIMEOUT_DELAY_MS));      }      throw uhd::value_error("get_stat(): no servo message found"); -    return std::string();    }    uart_iface::sptr _uart; diff --git a/host/lib/usrp/usrp1/io_impl.cpp b/host/lib/usrp/usrp1/io_impl.cpp index d384eb13f..e1f17e5a6 100644 --- a/host/lib/usrp/usrp1/io_impl.cpp +++ b/host/lib/usrp/usrp1/io_impl.cpp @@ -63,7 +63,7 @@ static const size_t alignment_padding = 512;   * Helper struct to associate an offset with a buffer   **********************************************************************/  struct offset_send_buffer{ -    offset_send_buffer(void){ +    offset_send_buffer(void):offset(0){          /* NOP */      } diff --git a/host/lib/usrp/usrp1/usrp1_iface.cpp b/host/lib/usrp/usrp1/usrp1_iface.cpp index 9301721aa..7c64714b7 100644 --- a/host/lib/usrp/usrp1/usrp1_iface.cpp +++ b/host/lib/usrp/usrp1/usrp1_iface.cpp @@ -91,11 +91,11 @@ public:          return uhd::ntohx(value_out);      } -     +      void poke16(boost::uint32_t, boost::uint16_t) {          throw uhd::not_implemented_error("Unhandled command poke16()");      } -     +      boost::uint16_t peek16(boost::uint32_t) {          throw uhd::not_implemented_error("Unhandled command peek16()");          return 0; @@ -141,8 +141,8 @@ public:          if (readback) {              unsigned char buff[4] = { -                (bits >> 0) & 0xff, (bits >> 8) & 0xff, -                (bits >> 16) & 0xff, (bits >> 24) & 0xff +                (unsigned char)((bits >> 0) & 0xff), (unsigned char)((bits >> 8) & 0xff), +                (unsigned char)((bits >> 16) & 0xff), (unsigned char)((bits >> 24) & 0xff)              };              //conditions where there are two header bytes              if (num_bytes >= 3 and buff[num_bytes-1] != 0 and buff[num_bytes-2] != 0 and buff[num_bytes-3] == 0){ @@ -168,7 +168,7 @@ public:                                    (((boost::uint32_t)buff[1]) <<  8) |                                    (((boost::uint32_t)buff[2]) << 16) |                                    (((boost::uint32_t)buff[3]) << 24); -            return val;  +            return val;          }          else {              // Byteswap on num_bytes diff --git a/host/lib/usrp/usrp2/usrp2_clk_regs.hpp b/host/lib/usrp/usrp2/usrp2_clk_regs.hpp index 8b185eac0..45c0859d8 100644 --- a/host/lib/usrp/usrp2/usrp2_clk_regs.hpp +++ b/host/lib/usrp/usrp2/usrp2_clk_regs.hpp @@ -22,8 +22,9 @@  class usrp2_clk_regs_t {  public: -  usrp2_clk_regs_t(void) { ; } +  usrp2_clk_regs_t(void):test(0),fpga(0),adc(0),dac(0),serdes(0),exp(0),tx_db(0),rx_db(0) { ; }    usrp2_clk_regs_t(usrp2_iface::rev_type rev) { +    fpga = adc = serdes = exp = tx_db = 0;      test = 0;      fpga = 1;      dac = 3; @@ -54,7 +55,7 @@ public:          //dont throw, it may be unitialized          break;      } -     +      rx_db = 7;    } diff --git a/host/lib/usrp/usrp2/usrp2_iface.cpp b/host/lib/usrp/usrp2/usrp2_iface.cpp index 3b230ca69..5f97045e1 100644 --- a/host/lib/usrp/usrp2/usrp2_iface.cpp +++ b/host/lib/usrp/usrp2/usrp2_iface.cpp @@ -271,7 +271,7 @@ public:          //send and recv          usrp2_ctrl_data_t in_data = this->ctrl_send_and_recv(out_data, MIN_PROTO_COMPAT_I2C);          UHD_ASSERT_THROW(ntohl(in_data.id) == USRP2_CTRL_ID_HERES_THE_I2C_DATA_DUDE); -        UHD_ASSERT_THROW(in_data.data.i2c_args.addr = num_bytes); +        UHD_ASSERT_THROW(in_data.data.i2c_args.bytes == num_bytes);          //copy out the data          byte_vector_t result(num_bytes); diff --git a/host/lib/utils/paths.cpp b/host/lib/utils/paths.cpp index 53055314b..f9d8b613c 100644 --- a/host/lib/utils/paths.cpp +++ b/host/lib/utils/paths.cpp @@ -113,8 +113,8 @@ std::string uhd::get_tmp_path(void){      //try the stdio define if available      #ifdef P_tmpdir -    if (P_tmpdir != NULL) return P_tmpdir; -    #endif +    return P_tmpdir; +    #else      //try unix environment variables      tmp_path = std::getenv("TMPDIR"); @@ -122,6 +122,7 @@ std::string uhd::get_tmp_path(void){      //give up and use the unix default      return "/tmp"; +    #endif  }  std::string uhd::get_app_path(void){  | 
