--- uhd-3.15.0.0/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp 2020-07-10 08:20:19.298928111 +0200 @@ -12,8 +12,8 @@ #include #include #include -#include #include +#include using namespace uhd; using namespace uhd::rfnoc; @@ -56,17 +56,17 @@ } } _tree->access(get_arg_path("base_addr/value", i)) - .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize, + .add_coerced_subscriber(std::bind(&dma_fifo_block_ctrl_impl::resize, this, - _1, - boost::ref(_perifs[i].depth), + std::placeholders::_1, + std::ref(_perifs[i].depth), i)) .set(_perifs[i].base_addr); _tree->access(get_arg_path("depth/value", i)) - .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize, + .add_coerced_subscriber(std::bind(&dma_fifo_block_ctrl_impl::resize, this, - boost::ref(_perifs[i].base_addr), - _1, + std::ref(_perifs[i].base_addr), + std::placeholders::_1, i)) .set(_perifs[i].depth); } --- uhd-3.15.0.0/host/lib/usrp/multi_usrp.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/multi_usrp.cpp 2020-07-10 08:21:23.055249380 +0200 @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -214,9 +215,9 @@ static gain_fcns_t make_gain_fcns_from_subtree(property_tree::sptr subtree){ gain_fcns_t gain_fcns; - gain_fcns.get_range = boost::bind(&get_gain_range, subtree); - gain_fcns.get_value = boost::bind(&get_gain_value, subtree); - gain_fcns.set_value = boost::bind(&set_gain_value, subtree, _1); + gain_fcns.get_range = std::bind(&get_gain_range, subtree); + gain_fcns.get_value = std::bind(&get_gain_value, subtree); + gain_fcns.set_value = std::bind(&set_gain_value, subtree, std::placeholders::_1); return gain_fcns; } --- uhd-3.15.0.0/host/lib/usrp/cores/rx_dsp_core_3000.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/cores/rx_dsp_core_3000.cpp 2020-07-10 09:11:51.962173717 +0200 @@ -297,16 +297,16 @@ void populate_subtree(property_tree::sptr subtree) { subtree->create("rate/range") - .set_publisher(boost::bind(&rx_dsp_core_3000::get_host_rates, this)); + .set_publisher(std::bind(&rx_dsp_core_3000::get_host_rates, this)); subtree->create("rate/value") .set(DEFAULT_RATE) - .set_coercer(boost::bind(&rx_dsp_core_3000::set_host_rate, this, _1)); + .set_coercer(std::bind(&rx_dsp_core_3000::set_host_rate, this, std::placeholders::_1)); subtree->create("freq/value") .set(DEFAULT_CORDIC_FREQ) - .set_coercer(boost::bind(&rx_dsp_core_3000::set_freq, this, _1)) + .set_coercer(std::bind(&rx_dsp_core_3000::set_freq, this, std::placeholders::_1)) .set_publisher([this]() { return this->get_freq(); }); subtree->create("freq/range") - .set_publisher(boost::bind(&rx_dsp_core_3000::get_freq_range, this)); + .set_publisher(std::bind(&rx_dsp_core_3000::get_freq_range, this)); } private: --- uhd-3.15.0.0/host/lib/usrp/cores/tx_dsp_core_3000.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/cores/tx_dsp_core_3000.cpp 2020-07-10 11:18:11.977775916 +0200 @@ -16,6 +16,7 @@ #include //sleep #include #include +#include #define REG_DSP_TX_FREQ _dsp_base + 0 #define REG_DSP_TX_SCALE_IQ _dsp_base + 4 @@ -184,16 +185,16 @@ void populate_subtree(property_tree::sptr subtree) { subtree->create("rate/range") - .set_publisher(boost::bind(&tx_dsp_core_3000::get_host_rates, this)); + .set_publisher(std::bind(&tx_dsp_core_3000::get_host_rates, this)); subtree->create("rate/value") .set(DEFAULT_RATE) - .set_coercer(boost::bind(&tx_dsp_core_3000::set_host_rate, this, _1)); + .set_coercer(std::bind(&tx_dsp_core_3000::set_host_rate, this, std::placeholders::_1)); subtree->create("freq/value") .set(DEFAULT_CORDIC_FREQ) - .set_coercer(boost::bind(&tx_dsp_core_3000::set_freq, this, _1)) + .set_coercer(std::bind(&tx_dsp_core_3000::set_freq, this, std::placeholders::_1)) .set_publisher([this]() { return this->get_freq(); }); subtree->create("freq/range") - .set_publisher(boost::bind(&tx_dsp_core_3000::get_freq_range, this)); + .set_publisher(std::bind(&tx_dsp_core_3000::get_freq_range, this)); } private: --- uhd-3.15.0.0/host/lib/usrp/dboard/db_xcvr2450.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_xcvr2450.cpp 2020-07-10 11:37:10.671607082 +0200 @@ -222,23 +222,23 @@ this->get_rx_subtree()->create("name") .set("XCVR2450 RX"); this->get_rx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&xcvr2450::get_locked, this)); + .set_publisher(std::bind(&xcvr2450::get_locked, this)); this->get_rx_subtree()->create("sensors/rssi") - .set_publisher(boost::bind(&xcvr2450::get_rssi, this)); + .set_publisher(std::bind(&xcvr2450::get_rssi, this)); for(const std::string &name: xcvr_rx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&xcvr2450::set_rx_gain, this, _1, name)) + .set_coercer(std::bind(&xcvr2450::set_rx_gain, this, std::placeholders::_1, name)) .set(xcvr_rx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(xcvr_rx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, _1)) + .set_coercer(std::bind(&xcvr2450::set_lo_freq, this, std::placeholders::_1)) .set(double(2.45e9)); this->get_rx_subtree()->create("freq/range") .set(xcvr_freq_range); this->get_rx_subtree()->create("antenna/value") - .add_coerced_subscriber(boost::bind(&xcvr2450::set_rx_ant, this, _1)) + .add_coerced_subscriber(std::bind(&xcvr2450::set_rx_ant, this, std::placeholders::_1)) .set(xcvr_antennas.at(0)); this->get_rx_subtree()->create >("antenna/options") .set(xcvr_antennas); @@ -249,7 +249,7 @@ this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") - .set_coercer(boost::bind(&xcvr2450::set_rx_bandwidth, this, _1)) //complex bandpass bandwidth + .set_coercer(std::bind(&xcvr2450::set_rx_bandwidth, this, std::placeholders::_1)) //complex bandpass bandwidth .set(2.0*_rx_bandwidth); //_rx_bandwidth in lowpass, convert to complex bandpass this->get_rx_subtree()->create("bandwidth/range") .set(xcvr_rx_bandwidth_range); @@ -260,21 +260,21 @@ this->get_tx_subtree()->create("name") .set("XCVR2450 TX"); this->get_tx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&xcvr2450::get_locked, this)); + .set_publisher(std::bind(&xcvr2450::get_locked, this)); for(const std::string &name: xcvr_tx_gain_ranges.keys()){ this->get_tx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&xcvr2450::set_tx_gain, this, _1, name)) + .set_coercer(std::bind(&xcvr2450::set_tx_gain, this, std::placeholders::_1, name)) .set(xcvr_tx_gain_ranges[name].start()); this->get_tx_subtree()->create("gains/"+name+"/range") .set(xcvr_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") - .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, _1)) + .set_coercer(std::bind(&xcvr2450::set_lo_freq, this, std::placeholders::_1)) .set(double(2.45e9)); this->get_tx_subtree()->create("freq/range") .set(xcvr_freq_range); this->get_tx_subtree()->create("antenna/value") - .add_coerced_subscriber(boost::bind(&xcvr2450::set_tx_ant, this, _1)) + .add_coerced_subscriber(std::bind(&xcvr2450::set_tx_ant, this, std::placeholders::_1)) .set(xcvr_antennas.at(1)); this->get_tx_subtree()->create >("antenna/options") .set(xcvr_antennas); @@ -285,7 +285,7 @@ this->get_tx_subtree()->create("use_lo_offset") .set(false); this->get_tx_subtree()->create("bandwidth/value") - .set_coercer(boost::bind(&xcvr2450::set_tx_bandwidth, this, _1)) //complex bandpass bandwidth + .set_coercer(std::bind(&xcvr2450::set_tx_bandwidth, this, std::placeholders::_1)) //complex bandpass bandwidth .set(2.0*_tx_bandwidth); //_tx_bandwidth in lowpass, convert to complex bandpass this->get_tx_subtree()->create("bandwidth/range") .set(xcvr_tx_bandwidth_range); --- uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_common.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_common.cpp 2020-07-10 13:05:02.423047555 +0200 @@ -146,20 +146,20 @@ else this->get_rx_subtree()->create("name").set("SBX/CBX RX"); this->get_rx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_RX)); + .set_publisher(std::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_RX)); for(const std::string &name: sbx_rx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&sbx_xcvr::set_rx_gain, this, _1, name)) + .set_coercer(std::bind(&sbx_xcvr::set_rx_gain, this, std::placeholders::_1, name)) .set(sbx_rx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(sbx_rx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, _1)) + .set_coercer(std::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, std::placeholders::_1)) .set((freq_range.start() + freq_range.stop())/2.0); this->get_rx_subtree()->create("freq/range").set(freq_range); this->get_rx_subtree()->create("antenna/value") - .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_rx_ant, this, _1)) + .add_coerced_subscriber(std::bind(&sbx_xcvr::set_rx_ant, this, std::placeholders::_1)) .set("RX2"); this->get_rx_subtree()->create >("antenna/options") .set(sbx_rx_antennas); @@ -187,20 +187,20 @@ else this->get_tx_subtree()->create("name").set("SBX/CBX TX"); this->get_tx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_TX)); + .set_publisher(std::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_TX)); for(const std::string &name: sbx_tx_gain_ranges.keys()){ this->get_tx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&sbx_xcvr::set_tx_gain, this, _1, name)) + .set_coercer(std::bind(&sbx_xcvr::set_tx_gain, this, std::placeholders::_1, name)) .set(sbx_tx_gain_ranges[name].start()); this->get_tx_subtree()->create("gains/"+name+"/range") .set(sbx_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") - .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, _1)) + .set_coercer(std::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, std::placeholders::_1)) .set((freq_range.start() + freq_range.stop())/2.0); this->get_tx_subtree()->create("freq/range").set(freq_range); this->get_tx_subtree()->create("antenna/value") - .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_tx_ant, this, _1)) + .add_coerced_subscriber(std::bind(&sbx_xcvr::set_tx_ant, this, std::placeholders::_1)) .set(sbx_tx_antennas.at(0)); this->get_tx_subtree()->create >("antenna/options") .set(sbx_tx_antennas); --- uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version3.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version3.cpp 2020-07-10 13:05:49.216127388 +0200 @@ -20,8 +20,8 @@ sbx_xcvr::sbx_version3::sbx_version3(sbx_xcvr *_self_sbx_xcvr) { //register the handle to our base SBX class self_base = _self_sbx_xcvr; - _txlo = adf435x_iface::make_adf4350(boost::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_TX, _1)); - _rxlo = adf435x_iface::make_adf4350(boost::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_RX, _1)); + _txlo = adf435x_iface::make_adf4350(std::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1)); + _rxlo = adf435x_iface::make_adf4350(std::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1)); } sbx_xcvr::sbx_version3::~sbx_version3(void){ --- uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version4.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version4.cpp 2020-07-10 13:06:38.189195412 +0200 @@ -20,8 +20,8 @@ sbx_xcvr::sbx_version4::sbx_version4(sbx_xcvr *_self_sbx_xcvr) { //register the handle to our base SBX class self_base = _self_sbx_xcvr; - _txlo = adf435x_iface::make_adf4351(boost::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_TX, _1)); - _rxlo = adf435x_iface::make_adf4351(boost::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_RX, _1)); + _txlo = adf435x_iface::make_adf4351(std::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1)); + _rxlo = adf435x_iface::make_adf4351(std::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1)); } --- uhd-3.15.0.0/host/lib/usrp/dboard/db_cbx.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_cbx.cpp 2020-07-10 13:13:36.733594629 +0200 @@ -19,8 +19,8 @@ sbx_xcvr::cbx::cbx(sbx_xcvr *_self_sbx_xcvr) { //register the handle to our base CBX class self_base = _self_sbx_xcvr; - _txlo = max287x_iface::make(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, _1)); - _rxlo = max287x_iface::make(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, _1)); + _txlo = max287x_iface::make(std::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1)); + _rxlo = max287x_iface::make(std::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1)); } --- uhd-3.15.0.0/host/lib/usrp/dboard/db_ubx.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_ubx.cpp 2020-07-10 14:55:54.540343277 +0200 @@ -395,10 +395,10 @@ // Initialize LOs if (_rev == 0) { - _txlo1 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, _1)); - _txlo2 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1)); - _rxlo1 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1)); - _rxlo2 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1)); + _txlo1 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, std::placeholders::_1)); + _txlo2 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, std::placeholders::_1)); + _rxlo1 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, std::placeholders::_1)); + _rxlo2 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, std::placeholders::_1)); std::vector los{_txlo1, _txlo2, _rxlo1, _rxlo2}; for(max287x_iface::sptr lo: los) { @@ -409,10 +409,10 @@ } else if (_rev == 1 or _rev == 2) { - _txlo1 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, _1)); - _txlo2 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1)); - _rxlo1 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1)); - _rxlo2 = max287x_iface::make(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1)); + _txlo1 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, std::placeholders::_1)); + _txlo2 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, std::placeholders::_1)); + _rxlo1 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, std::placeholders::_1)); + _rxlo2 = max287x_iface::make(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, std::placeholders::_1)); std::vector los{_txlo1, _txlo2, _rxlo1, _rxlo2}; for(max287x_iface::sptr lo: los) { @@ -439,12 +439,12 @@ get_rx_subtree()->create >("power_mode/options") .set(ubx_power_modes); get_rx_subtree()->create("power_mode/value") - .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_power_mode, this, _1)) + .add_coerced_subscriber(std::bind(&ubx_xcvr::set_power_mode, this, std::placeholders::_1)) .set("performance"); get_rx_subtree()->create >("xcvr_mode/options") .set(ubx_xcvr_modes); get_rx_subtree()->create("xcvr_mode/value") - .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_xcvr_mode, this, _1)) + .add_coerced_subscriber(std::bind(&ubx_xcvr::set_xcvr_mode, this, std::placeholders::_1)) .set("FDX"); get_rx_subtree()->create >("temp_comp_mode/options") .set(ubx_temp_comp_modes); @@ -456,13 +456,13 @@ get_tx_subtree()->create >("power_mode/options") .set(ubx_power_modes); get_tx_subtree()->create("power_mode/value") - .add_coerced_subscriber(boost::bind(&uhd::property::set, &get_rx_subtree()->access("power_mode/value"), _1)) - .set_publisher(boost::bind(&uhd::property::get, &get_rx_subtree()->access("power_mode/value"))); + .add_coerced_subscriber(std::bind(&uhd::property::set, &get_rx_subtree()->access("power_mode/value"), std::placeholders::_1)) + .set_publisher(std::bind(&uhd::property::get, &get_rx_subtree()->access("power_mode/value"))); get_tx_subtree()->create >("xcvr_mode/options") .set(ubx_xcvr_modes); get_tx_subtree()->create("xcvr_mode/value") - .add_coerced_subscriber(boost::bind(&uhd::property::set, &get_rx_subtree()->access("xcvr_mode/value"), _1)) - .set_publisher(boost::bind(&uhd::property::get, &get_rx_subtree()->access("xcvr_mode/value"))); + .add_coerced_subscriber(std::bind(&uhd::property::set, &get_rx_subtree()->access("xcvr_mode/value"), std::placeholders::_1)) + .set_publisher(std::bind(&uhd::property::get, &get_rx_subtree()->access("xcvr_mode/value"))); get_tx_subtree()->create >("temp_comp_mode/options") .set(ubx_temp_comp_modes); get_tx_subtree() @@ -486,20 +486,20 @@ get_tx_subtree()->create("tune_args") .set(device_addr_t()); get_tx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "TXLO")); + .set_publisher(std::bind(&ubx_xcvr::get_locked, this, "TXLO")); get_tx_subtree()->create("gains/PGA0/value") - .set_coercer(boost::bind(&ubx_xcvr::set_tx_gain, this, _1)).set(0); + .set_coercer(std::bind(&ubx_xcvr::set_tx_gain, this, std::placeholders::_1)).set(0); get_tx_subtree()->create("gains/PGA0/range") .set(ubx_tx_gain_range); get_tx_subtree()->create("freq/value") - .set_coercer(boost::bind(&ubx_xcvr::set_tx_freq, this, _1)) + .set_coercer(std::bind(&ubx_xcvr::set_tx_freq, this, std::placeholders::_1)) .set(ubx_freq_range.start()); get_tx_subtree()->create("freq/range") .set(ubx_freq_range); get_tx_subtree()->create >("antenna/options") .set(ubx_tx_antennas); get_tx_subtree()->create("antenna/value") - .set_coercer(boost::bind(&ubx_xcvr::set_tx_ant, this, _1)) + .set_coercer(std::bind(&ubx_xcvr::set_tx_ant, this, std::placeholders::_1)) .set(ubx_tx_antennas.at(0)); get_tx_subtree()->create("connection") .set("QI"); @@ -512,7 +512,7 @@ get_tx_subtree()->create("bandwidth/range") .set(freq_range_t(bw, bw)); get_tx_subtree()->create("sync_delay") - .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, true, _1)) + .add_coerced_subscriber(std::bind(&ubx_xcvr::set_sync_delay, this, true, std::placeholders::_1)) .set(0); //////////////////////////////////////////////////////////////////// @@ -522,21 +522,21 @@ get_rx_subtree()->create("tune_args") .set(device_addr_t()); get_rx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "RXLO")); + .set_publisher(std::bind(&ubx_xcvr::get_locked, this, "RXLO")); get_rx_subtree()->create("gains/PGA0/value") - .set_coercer(boost::bind(&ubx_xcvr::set_rx_gain, this, _1)) + .set_coercer(std::bind(&ubx_xcvr::set_rx_gain, this, std::placeholders::_1)) .set(0); get_rx_subtree()->create("gains/PGA0/range") .set(ubx_rx_gain_range); get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&ubx_xcvr::set_rx_freq, this, _1)) + .set_coercer(std::bind(&ubx_xcvr::set_rx_freq, this, std::placeholders::_1)) .set(ubx_freq_range.start()); get_rx_subtree()->create("freq/range") .set(ubx_freq_range); get_rx_subtree()->create >("antenna/options") .set(ubx_rx_antennas); get_rx_subtree()->create("antenna/value") - .set_coercer(boost::bind(&ubx_xcvr::set_rx_ant, this, _1)).set("RX2"); + .set_coercer(std::bind(&ubx_xcvr::set_rx_ant, this, std::placeholders::_1)).set("RX2"); get_rx_subtree()->create("connection") .set("IQ"); get_rx_subtree()->create("enabled") @@ -548,7 +548,7 @@ get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(bw, bw)); get_rx_subtree()->create("sync_delay") - .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, false, _1)) + .add_coerced_subscriber(std::bind(&ubx_xcvr::set_sync_delay, this, false, std::placeholders::_1)) .set(0); } --- uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx.cpp 2020-07-10 16:14:10.521569631 +0200 @@ -195,16 +195,16 @@ this->get_rx_subtree()->create("name") .set("DBSRX"); this->get_rx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&dbsrx::get_locked, this)); + .set_publisher(std::bind(&dbsrx::get_locked, this)); for(const std::string &name: dbsrx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&dbsrx::set_gain, this, _1, name)) + .set_coercer(std::bind(&dbsrx::set_gain, this, std::placeholders::_1, name)) .set(dbsrx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(dbsrx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&dbsrx::set_lo_freq, this, _1)); + .set_coercer(std::bind(&dbsrx::set_lo_freq, this, std::placeholders::_1)); this->get_rx_subtree()->create("freq/range") .set(dbsrx_freq_range); this->get_rx_subtree()->create("antenna/value") @@ -218,7 +218,7 @@ this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") - .set_coercer(boost::bind(&dbsrx::set_bandwidth, this, _1)); + .set_coercer(std::bind(&dbsrx::set_bandwidth, this, std::placeholders::_1)); this->get_rx_subtree()->create("bandwidth/range") .set(dbsrx_bandwidth_range); --- uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx.cpp 2020-07-10 16:20:42.599445562 +0200 @@ -180,12 +180,12 @@ this->get_rx_subtree()->create("sensors"); //phony property so this dir exists for(const std::string &name: get_tvrx_gain_ranges().keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&tvrx::set_gain, this, _1, name)); + .set_coercer(std::bind(&tvrx::set_gain, this, std::placeholders::_1, name)); this->get_rx_subtree()->create("gains/"+name+"/range") .set(get_tvrx_gain_ranges()[name]); } this->get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&tvrx::set_freq, this, _1)); + .set_coercer(std::bind(&tvrx::set_freq, this, std::placeholders::_1)); this->get_rx_subtree()->create("freq/range") .set(tvrx_freq_range); this->get_rx_subtree()->create("antenna/value") --- uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx2.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx2.cpp 2020-07-10 16:21:28.555863262 +0200 @@ -176,16 +176,16 @@ this->get_rx_subtree()->create("name") .set("DBSRX"); this->get_rx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&dbsrx2::get_locked, this)); + .set_publisher(std::bind(&dbsrx2::get_locked, this)); for(const std::string &name: dbsrx2_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&dbsrx2::set_gain, this, _1, name)) + .set_coercer(std::bind(&dbsrx2::set_gain, this, std::placeholders::_1, name)) .set(dbsrx2_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(dbsrx2_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&dbsrx2::set_lo_freq, this, _1)) + .set_coercer(std::bind(&dbsrx2::set_lo_freq, this, std::placeholders::_1)) .set(dbsrx2_freq_range.start()); this->get_rx_subtree()->create("freq/range") .set(dbsrx2_freq_range); @@ -203,7 +203,7 @@ double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX); this->get_rx_subtree()->create("bandwidth/value") - .set_coercer(boost::bind(&dbsrx2::set_bandwidth, this, _1)) + .set_coercer(std::bind(&dbsrx2::set_bandwidth, this, std::placeholders::_1)) .set(2.0*(0.8*codec_rate/2.0)); //bandwidth in lowpass, convert to complex bandpass //default to anti-alias at different codec_rate this->get_rx_subtree()->create("bandwidth/range") --- uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx2.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx2.cpp 2020-07-10 16:22:25.432221803 +0200 @@ -951,19 +951,19 @@ this->get_rx_subtree()->create("name") .set("TVRX2"); this->get_rx_subtree()->create("sensors/lo_locked") - .set_publisher(boost::bind(&tvrx2::get_locked, this)); + .set_publisher(std::bind(&tvrx2::get_locked, this)); this->get_rx_subtree()->create("sensors/rssi") - .set_publisher(boost::bind(&tvrx2::get_rssi, this)); + .set_publisher(std::bind(&tvrx2::get_rssi, this)); this->get_rx_subtree()->create("sensors/temperature") - .set_publisher(boost::bind(&tvrx2::get_temp, this)); + .set_publisher(std::bind(&tvrx2::get_temp, this)); for(const std::string &name: tvrx2_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") - .set_coercer(boost::bind(&tvrx2::set_gain, this, _1, name)); + .set_coercer(std::bind(&tvrx2::set_gain, this, std::placeholders::_1, name)); this->get_rx_subtree()->create("gains/"+name+"/range") .set(tvrx2_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") - .set_coercer(boost::bind(&tvrx2::set_lo_freq, this, _1)); + .set_coercer(std::bind(&tvrx2::set_lo_freq, this, std::placeholders::_1)); this->get_rx_subtree()->create("freq/range") .set(tvrx2_freq_range); this->get_rx_subtree()->create("antenna/value") @@ -973,12 +973,12 @@ this->get_rx_subtree()->create("connection") .set(tvrx2_sd_name_to_conn[get_subdev_name()]); this->get_rx_subtree()->create("enabled") - .set_coercer(boost::bind(&tvrx2::set_enabled, this, _1)) + .set_coercer(std::bind(&tvrx2::set_enabled, this, std::placeholders::_1)) .set(_enabled); this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") - .set_coercer(boost::bind(&tvrx2::set_bandwidth, this, _1)) + .set_coercer(std::bind(&tvrx2::set_bandwidth, this, std::placeholders::_1)) .set(_bandwidth); this->get_rx_subtree()->create("bandwidth/range") .set(tvrx2_bandwidth_range); --- uhd-3.15.0.0/host/lib/usrp/b100/b100_impl.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/b100/b100_impl.cpp 2020-07-10 16:59:19.426894232 +0200 @@ -274,7 +274,7 @@ _tree->create(mb_path / "name").set("B100"); _tree->create(mb_path / "codename").set("B-Hundo"); _tree->create(mb_path / "load_eeprom") - .add_coerced_subscriber(boost::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, _1)); + .add_coerced_subscriber(std::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, std::placeholders::_1)); //////////////////////////////////////////////////////////////////// // setup the mboard eeprom @@ -282,20 +282,20 @@ const mboard_eeprom_t mb_eeprom = this->get_mb_eeprom(_fx2_ctrl); _tree->create(mb_path / "eeprom") .set(mb_eeprom) - .add_coerced_subscriber(boost::bind(&b100_impl::set_mb_eeprom, this, _1)); + .add_coerced_subscriber(std::bind(&b100_impl::set_mb_eeprom, this, std::placeholders::_1)); //////////////////////////////////////////////////////////////////// // create clock control objects //////////////////////////////////////////////////////////////////// //^^^ clock created up top, just reg props here... ^^^ _tree->create(mb_path / "tick_rate") - .set_publisher(boost::bind(&b100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl)) - .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, _1)) - .add_coerced_subscriber(boost::bind(&b100_impl::update_tick_rate, this, _1)); + .set_publisher(std::bind(&b100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl)) + .add_coerced_subscriber(std::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, std::placeholders::_1)) + .add_coerced_subscriber(std::bind(&b100_impl::update_tick_rate, this, std::placeholders::_1)); //add_coerced_subscriber the command time while we are at it _tree->create(mb_path / "time/cmd") - .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, _1)); + .add_coerced_subscriber(std::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, std::placeholders::_1)); //////////////////////////////////////////////////////////////////// // create codec control objects @@ -306,20 +306,20 @@ _tree->create(rx_codec_path / "name").set("ad9522"); _tree->create(rx_codec_path / "gains/pga/range").set(b100_codec_ctrl::rx_pga_gain_range); _tree->create(rx_codec_path / "gains/pga/value") - .set_coercer(boost::bind(&b100_impl::update_rx_codec_gain, this, _1)) + .set_coercer(std::bind(&b100_impl::update_rx_codec_gain, this, std::placeholders::_1)) .set(0.0); _tree->create(tx_codec_path / "name").set("ad9522"); _tree->create(tx_codec_path / "gains/pga/range").set(b100_codec_ctrl::tx_pga_gain_range); _tree->create(tx_codec_path / "gains/pga/value") - .add_coerced_subscriber(boost::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, _1)) - .set_publisher(boost::bind(&b100_codec_ctrl::get_tx_pga_gain, _codec_ctrl)) + .add_coerced_subscriber(std::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, std::placeholders::_1)) + .set_publisher(std::bind(&b100_codec_ctrl::get_tx_pga_gain, _codec_ctrl)) .set(0.0); //////////////////////////////////////////////////////////////////// // and do the misc mboard sensors //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "sensors/ref_locked") - .set_publisher(boost::bind(&b100_impl::get_ref_locked, this)); + .set_publisher(std::bind(&b100_impl::get_ref_locked, this)); //////////////////////////////////////////////////////////////////// // create frontend control objects @@ -328,27 +328,27 @@ _tx_fe = tx_frontend_core_200::make(_fifo_ctrl, TOREG(SR_TX_FE)); _tree->create(mb_path / "rx_subdev_spec") - .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_subdev_spec, this, _1)); + .add_coerced_subscriber(std::bind(&b100_impl::update_rx_subdev_spec, this, std::placeholders::_1)); _tree->create(mb_path / "tx_subdev_spec") - .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_subdev_spec, this, _1)); + .add_coerced_subscriber(std::bind(&b100_impl::update_tx_subdev_spec, this, std::placeholders::_1)); const fs_path rx_fe_path = mb_path / "rx_frontends" / "A"; const fs_path tx_fe_path = mb_path / "tx_frontends" / "A"; _tree->create >(rx_fe_path / "dc_offset" / "value") - .set_coercer(boost::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, _1)) + .set_coercer(std::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, std::placeholders::_1)) .set(std::complex(0.0, 0.0)); _tree->create(rx_fe_path / "dc_offset" / "enable") - .add_coerced_subscriber(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, _1)) + .add_coerced_subscriber(std::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, std::placeholders::_1)) .set(true); _tree->create >(rx_fe_path / "iq_balance" / "value") - .add_coerced_subscriber(boost::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, _1)) + .add_coerced_subscriber(std::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, std::placeholders::_1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "dc_offset" / "value") - .set_coercer(boost::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, _1)) + .set_coercer(std::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, std::placeholders::_1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "iq_balance" / "value") - .add_coerced_subscriber(boost::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, _1)) + .add_coerced_subscriber(std::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, std::placeholders::_1)) .set(std::complex(0.0, 0.0)); //////////////////////////////////////////////////////////////////// @@ -367,20 +367,20 @@ _rx_dsps[dspno]->set_link_rate(B100_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") - .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], _1)); + .add_coerced_subscriber(std::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], std::placeholders::_1)); fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno); _tree->create(rx_dsp_path / "rate/range") - .set_publisher(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno])); + .set_publisher(std::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno])); _tree->create(rx_dsp_path / "rate/value") .set(1e6) //some default - .set_coercer(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], _1)) - .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_samp_rate, this, dspno, _1)); + .set_coercer(std::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], std::placeholders::_1)) + .add_coerced_subscriber(std::bind(&b100_impl::update_rx_samp_rate, this, dspno, std::placeholders::_1)); _tree->create(rx_dsp_path / "freq/value") - .set_coercer(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], _1)); + .set_coercer(std::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], std::placeholders::_1)); _tree->create(rx_dsp_path / "freq/range") - .set_publisher(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno])); + .set_publisher(std::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno])); _tree->create(rx_dsp_path / "stream_cmd") - .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], _1)); + .add_coerced_subscriber(std::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], std::placeholders::_1)); } //////////////////////////////////////////////////////////////////// @@ -391,17 +391,17 @@ ); _tx_dsp->set_link_rate(B100_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") - .add_coerced_subscriber(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, _1)); + .add_coerced_subscriber(std::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, std::placeholders::_1)); _tree->create(mb_path / "tx_dsps/0/rate/range") - .set_publisher(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp)); + .set_publisher(std::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp)); _tree->create(mb_path / "tx_dsps/0/rate/value") .set(1e6) //some default - .set_coercer(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, _1)) - .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_samp_rate, this, 0, _1)); + .set_coercer(std::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, std::placeholders::_1)) + .add_coerced_subscriber(std::bind(&b100_impl::update_tx_samp_rate, this, 0, std::placeholders::_1)); _tree->create(mb_path / "tx_dsps/0/freq/value") - .set_coercer(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsp, _1)); + .set_coercer(std::bind(&tx_dsp_core_200::set_freq, _tx_dsp, std::placeholders::_1)); _tree->create(mb_path / "tx_dsps/0/freq/range") - .set_publisher(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp)); + .set_publisher(std::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp)); //////////////////////////////////////////////////////////////////// // create time control objects @@ -415,21 +415,21 @@ _fifo_ctrl, TOREG(SR_TIME64), time64_rb_bases ); _tree->access(mb_path / "tick_rate") - .add_coerced_subscriber(boost::bind(&time64_core_200::set_tick_rate, _time64, _1)); + .add_coerced_subscriber(std::bind(&time64_core_200::set_tick_rate, _time64, std::placeholders::_1)); _tree->create(mb_path / "time/now") - .set_publisher(boost::bind(&time64_core_200::get_time_now, _time64)) - .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_now, _time64, _1)); + .set_publisher(std::bind(&time64_core_200::get_time_now, _time64)) + .add_coerced_subscriber(std::bind(&time64_core_200::set_time_now, _time64, std::placeholders::_1)); _tree->create(mb_path / "time/pps") - .set_publisher(boost::bind(&time64_core_200::get_time_last_pps, _time64)) - .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_next_pps, _time64, _1)); + .set_publisher(std::bind(&time64_core_200::get_time_last_pps, _time64)) + .add_coerced_subscriber(std::bind(&time64_core_200::set_time_next_pps, _time64, std::placeholders::_1)); //setup time source props _tree->create(mb_path / "time_source/value") - .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_source, _time64, _1)); + .add_coerced_subscriber(std::bind(&time64_core_200::set_time_source, _time64, std::placeholders::_1)); _tree->create >(mb_path / "time_source/options") - .set_publisher(boost::bind(&time64_core_200::get_time_sources, _time64)); + .set_publisher(std::bind(&time64_core_200::get_time_sources, _time64)); //setup reference source props _tree->create(mb_path / "clock_source/value") - .add_coerced_subscriber(boost::bind(&b100_impl::update_clock_source, this, _1)); + .add_coerced_subscriber(std::bind(&b100_impl::update_clock_source, this, std::placeholders::_1)); static const std::vector clock_sources = { "internal", "external", "auto" }; @@ -440,7 +440,7 @@ //////////////////////////////////////////////////////////////////// _user = user_settings_core_200::make(_fifo_ctrl, TOREG(SR_USER_REGS)); _tree->create(mb_path / "user/regs") - .add_coerced_subscriber(boost::bind(&user_settings_core_200::set_reg, _user, _1)); + .add_coerced_subscriber(std::bind(&user_settings_core_200::set_reg, _user, std::placeholders::_1)); //////////////////////////////////////////////////////////////////// // create dboard control objects @@ -458,13 +458,13 @@ //create the properties and register subscribers _tree->create(mb_path / "dboards/A/rx_eeprom") .set(rx_db_eeprom) - .add_coerced_subscriber(boost::bind(&b100_impl::set_db_eeprom, this, "rx", _1)); + .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "rx", std::placeholders::_1)); _tree->create(mb_path / "dboards/A/tx_eeprom") .set(tx_db_eeprom) - .add_coerced_subscriber(boost::bind(&b100_impl::set_db_eeprom, this, "tx", _1)); + .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "tx", std::placeholders::_1)); _tree->create(mb_path / "dboards/A/gdb_eeprom") .set(gdb_eeprom) - .add_coerced_subscriber(boost::bind(&b100_impl::set_db_eeprom, this, "gdb", _1)); + .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "gdb", std::placeholders::_1)); //create a new dboard interface and manager _dboard_manager = dboard_manager::make( @@ -477,12 +477,12 @@ const fs_path db_tx_fe_path = mb_path / "dboards" / "A" / "tx_frontends"; for(const std::string &name: _tree->list(db_tx_fe_path)){ _tree->access(db_tx_fe_path / name / "freq" / "value") - .add_coerced_subscriber(boost::bind(&b100_impl::set_tx_fe_corrections, this, _1)); + .add_coerced_subscriber(std::bind(&b100_impl::set_tx_fe_corrections, this, std::placeholders::_1)); } const fs_path db_rx_fe_path = mb_path / "dboards" / "A" / "rx_frontends"; for(const std::string &name: _tree->list(db_rx_fe_path)){ _tree->access(db_rx_fe_path / name / "freq" / "value") - .add_coerced_subscriber(boost::bind(&b100_impl::set_rx_fe_corrections, this, _1)); + .add_coerced_subscriber(std::bind(&b100_impl::set_rx_fe_corrections, this, std::placeholders::_1)); } //initialize io handling @@ -498,7 +498,7 @@ this->update_rates(); _tree->access(mb_path / "tick_rate") //now add_coerced_subscriber the clock rate setter - .add_coerced_subscriber(boost::bind(&b100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, _1)); + .add_coerced_subscriber(std::bind(&b100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, std::placeholders::_1)); //reset cordic rates and their properties to zero for(const std::string &name: _tree->list(mb_path / "rx_dsps")){ --- uhd-3.15.0.0/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp 2020-07-10 17:00:26.443197840 +0200 @@ -151,7 +151,7 @@ _tree->create("rx_codecs" / _radio_slot / "gains" / "digital" / "range") .set(meta_range_t(0, 6.0, 0.5)); _tree->create("rx_codecs" / _radio_slot / "gains" / "digital" / "value") - .add_coerced_subscriber(boost::bind(&x300_adc_ctrl::set_gain, _adc, _1)) + .add_coerced_subscriber(std::bind(&x300_adc_ctrl::set_gain, _adc, std::placeholders::_1)) .set(0); //////////////////////////////////////////////////////////////// @@ -187,7 +187,7 @@ if (_tree->exists(fs_path("time") / "cmd")) { _tree->access(fs_path("time") / "cmd") .add_coerced_subscriber( - boost::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, _1, i)); + std::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, std::placeholders::_1, i)); } } @@ -816,11 +816,11 @@ // Add to tree _tree->create(db_path / EEPROM_PATHS[i]) .set(_db_eeproms[addr]) - .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::_set_db_eeprom, + .add_coerced_subscriber(std::bind(&x300_radio_ctrl_impl::_set_db_eeprom, this, zpu_i2c, (BASE_ADDR | addr), - _1)); + std::placeholders::_1)); } // create a new dboard interface @@ -893,8 +893,8 @@ ->access(db_path / "rx_frontends" / _rx_fe_map[i].db_fe_name / "antenna" / "value") - .add_desired_subscriber(boost::bind( - &x300_radio_ctrl_impl::_update_atr_leds, this, _1, i)); + .add_desired_subscriber(std::bind( + &x300_radio_ctrl_impl::_update_atr_leds, this, std::placeholders::_1, i)); _update_atr_leds(_tree ->access(db_path / "rx_frontends" / _rx_fe_map[i].db_fe_name @@ -917,11 +917,11 @@ ->access( db_tx_fe_path / _tx_fe_map[i].db_fe_name / "freq" / "value") .add_coerced_subscriber( - boost::bind(&x300_radio_ctrl_impl::set_tx_fe_corrections, + std::bind(&x300_radio_ctrl_impl::set_tx_fe_corrections, this, db_path, _root_path / "tx_fe_corrections" / _tx_fe_map[i].db_fe_name, - _1)); + std::placeholders::_1)); } } } @@ -934,11 +934,11 @@ ->access( db_rx_fe_path / _tx_fe_map[i].db_fe_name / "freq" / "value") .add_coerced_subscriber( - boost::bind(&x300_radio_ctrl_impl::set_rx_fe_corrections, + std::bind(&x300_radio_ctrl_impl::set_rx_fe_corrections, this, db_path, _root_path / "rx_fe_corrections" / _tx_fe_map[i].db_fe_name, - _1)); + std::placeholders::_1)); } } } --- uhd-3.15.0.0/host/lib/usrp_clock/octoclock/octoclock_impl.cpp.orig 2020-01-01 05:21:49.000000000 +0100 +++ uhd-3.15.0.0/host/lib/usrp_clock/octoclock/octoclock_impl.cpp 2020-07-10 17:05:19.151612102 +0200 @@ -232,21 +232,21 @@ _oc_dict[oc].eeprom = octoclock_eeprom_t(_oc_dict[oc].ctrl_xport, _proto_ver); _tree->create(oc_path / "eeprom") .set(_oc_dict[oc].eeprom) - .add_coerced_subscriber(boost::bind(&octoclock_impl::_set_eeprom, this, oc, _1)); + .add_coerced_subscriber(std::bind(&octoclock_impl::_set_eeprom, this, oc, std::placeholders::_1)); //////////////////////////////////////////////////////////////////// // Initialize non-GPSDO sensors //////////////////////////////////////////////////////////////////// _tree->create(oc_path / "time") - .set_publisher(boost::bind(&octoclock_impl::_get_time, this, oc)); + .set_publisher(std::bind(&octoclock_impl::_get_time, this, oc)); _tree->create(oc_path / "sensors/ext_ref_detected") - .set_publisher(boost::bind(&octoclock_impl::_ext_ref_detected, this, oc)); + .set_publisher(std::bind(&octoclock_impl::_ext_ref_detected, this, oc)); _tree->create(oc_path / "sensors/gps_detected") - .set_publisher(boost::bind(&octoclock_impl::_gps_detected, this, oc)); + .set_publisher(std::bind(&octoclock_impl::_gps_detected, this, oc)); _tree->create(oc_path / "sensors/using_ref") - .set_publisher(boost::bind(&octoclock_impl::_which_ref, this, oc)); + .set_publisher(std::bind(&octoclock_impl::_which_ref, this, oc)); _tree->create(oc_path / "sensors/switch_pos") - .set_publisher(boost::bind(&octoclock_impl::_switch_pos, this, oc)); + .set_publisher(std::bind(&octoclock_impl::_switch_pos, this, oc)); //////////////////////////////////////////////////////////////////// // Check reference and GPSDO @@ -266,7 +266,7 @@ if(_oc_dict[oc].gps and _oc_dict[oc].gps->gps_detected()){ for(const std::string &name: _oc_dict[oc].gps->get_sensors()){ _tree->create(oc_path / "sensors" / name) - .set_publisher(boost::bind(&gps_ctrl::get_sensor, _oc_dict[oc].gps, name)); + .set_publisher(std::bind(&gps_ctrl::get_sensor, _oc_dict[oc].gps, name)); } } else{