]> git.pld-linux.org Git - packages/uhd.git/blob - uhd-boost.patch
fixup more shebangs
[packages/uhd.git] / uhd-boost.patch
1 --- uhd-3.15.0.0/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp.orig       2020-01-01 05:21:49.000000000 +0100
2 +++ uhd-3.15.0.0/host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp    2020-07-10 08:20:19.298928111 +0200
3 @@ -12,8 +12,8 @@
4  #include <uhdlib/rfnoc/wb_iface_adapter.hpp>
5  #include <uhdlib/usrp/cores/dma_fifo_core_3000.hpp>
6  #include <boost/format.hpp>
7 -#include <boost/make_shared.hpp>
8  #include <boost/thread/mutex.hpp>
9 +#include <functional>
10  
11  using namespace uhd;
12  using namespace uhd::rfnoc;
13 @@ -56,17 +56,17 @@
14                  }
15              }
16              _tree->access<int>(get_arg_path("base_addr/value", i))
17 -                .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize,
18 +                .add_coerced_subscriber(std::bind(&dma_fifo_block_ctrl_impl::resize,
19                      this,
20 -                    _1,
21 -                    boost::ref(_perifs[i].depth),
22 +                    std::placeholders::_1,
23 +                    std::ref(_perifs[i].depth),
24                      i))
25                  .set(_perifs[i].base_addr);
26              _tree->access<int>(get_arg_path("depth/value", i))
27 -                .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize,
28 +                .add_coerced_subscriber(std::bind(&dma_fifo_block_ctrl_impl::resize,
29                      this,
30 -                    boost::ref(_perifs[i].base_addr),
31 -                    _1,
32 +                    std::ref(_perifs[i].base_addr),
33 +                    std::placeholders::_1,
34                      i))
35                  .set(_perifs[i].depth);
36          }
37 --- uhd-3.15.0.0/host/lib/usrp/multi_usrp.cpp.orig      2020-01-01 05:21:49.000000000 +0100
38 +++ uhd-3.15.0.0/host/lib/usrp/multi_usrp.cpp   2020-07-10 08:21:23.055249380 +0200
39 @@ -24,6 +24,7 @@
40  #include <boost/format.hpp>
41  #include <boost/algorithm/string.hpp>
42  #include <algorithm>
43 +#include <functional>
44  #include <cmath>
45  #include <bitset>
46  #include <chrono>
47 @@ -214,9 +215,9 @@
48  
49  static gain_fcns_t make_gain_fcns_from_subtree(property_tree::sptr subtree){
50      gain_fcns_t gain_fcns;
51 -    gain_fcns.get_range = boost::bind(&get_gain_range, subtree);
52 -    gain_fcns.get_value = boost::bind(&get_gain_value, subtree);
53 -    gain_fcns.set_value = boost::bind(&set_gain_value, subtree, _1);
54 +    gain_fcns.get_range = std::bind(&get_gain_range, subtree);
55 +    gain_fcns.get_value = std::bind(&get_gain_value, subtree);
56 +    gain_fcns.set_value = std::bind(&set_gain_value, subtree, std::placeholders::_1);
57      return gain_fcns;
58  }
59  
60 --- uhd-3.15.0.0/host/lib/usrp/cores/rx_dsp_core_3000.cpp.orig  2020-01-01 05:21:49.000000000 +0100
61 +++ uhd-3.15.0.0/host/lib/usrp/cores/rx_dsp_core_3000.cpp       2020-07-10 09:11:51.962173717 +0200
62 @@ -297,16 +297,16 @@
63      void populate_subtree(property_tree::sptr subtree)
64      {
65          subtree->create<meta_range_t>("rate/range")
66 -            .set_publisher(boost::bind(&rx_dsp_core_3000::get_host_rates, this));
67 +            .set_publisher(std::bind(&rx_dsp_core_3000::get_host_rates, this));
68          subtree->create<double>("rate/value")
69              .set(DEFAULT_RATE)
70 -            .set_coercer(boost::bind(&rx_dsp_core_3000::set_host_rate, this, _1));
71 +            .set_coercer(std::bind(&rx_dsp_core_3000::set_host_rate, this, std::placeholders::_1));
72          subtree->create<double>("freq/value")
73              .set(DEFAULT_CORDIC_FREQ)
74 -            .set_coercer(boost::bind(&rx_dsp_core_3000::set_freq, this, _1))
75 +            .set_coercer(std::bind(&rx_dsp_core_3000::set_freq, this, std::placeholders::_1))
76              .set_publisher([this]() { return this->get_freq(); });
77          subtree->create<meta_range_t>("freq/range")
78 -            .set_publisher(boost::bind(&rx_dsp_core_3000::get_freq_range, this));
79 +            .set_publisher(std::bind(&rx_dsp_core_3000::get_freq_range, this));
80      }
81  
82  private:
83 --- uhd-3.15.0.0/host/lib/usrp/cores/tx_dsp_core_3000.cpp.orig  2020-01-01 05:21:49.000000000 +0100
84 +++ uhd-3.15.0.0/host/lib/usrp/cores/tx_dsp_core_3000.cpp       2020-07-10 11:18:11.977775916 +0200
85 @@ -16,6 +16,7 @@
86  #include <boost/thread/thread.hpp> //sleep
87  #include <algorithm>
88  #include <cmath>
89 +#include <functional>
90  
91  #define REG_DSP_TX_FREQ _dsp_base + 0
92  #define REG_DSP_TX_SCALE_IQ _dsp_base + 4
93 @@ -184,16 +185,16 @@
94      void populate_subtree(property_tree::sptr subtree)
95      {
96          subtree->create<meta_range_t>("rate/range")
97 -            .set_publisher(boost::bind(&tx_dsp_core_3000::get_host_rates, this));
98 +            .set_publisher(std::bind(&tx_dsp_core_3000::get_host_rates, this));
99          subtree->create<double>("rate/value")
100              .set(DEFAULT_RATE)
101 -            .set_coercer(boost::bind(&tx_dsp_core_3000::set_host_rate, this, _1));
102 +            .set_coercer(std::bind(&tx_dsp_core_3000::set_host_rate, this, std::placeholders::_1));
103          subtree->create<double>("freq/value")
104              .set(DEFAULT_CORDIC_FREQ)
105 -            .set_coercer(boost::bind(&tx_dsp_core_3000::set_freq, this, _1))
106 +            .set_coercer(std::bind(&tx_dsp_core_3000::set_freq, this, std::placeholders::_1))
107              .set_publisher([this]() { return this->get_freq(); });
108          subtree->create<meta_range_t>("freq/range")
109 -            .set_publisher(boost::bind(&tx_dsp_core_3000::get_freq_range, this));
110 +            .set_publisher(std::bind(&tx_dsp_core_3000::get_freq_range, this));
111      }
112  
113  private:
114 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_xcvr2450.cpp.orig      2020-01-01 05:21:49.000000000 +0100
115 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_xcvr2450.cpp   2020-07-10 11:37:10.671607082 +0200
116 @@ -222,23 +222,23 @@
117      this->get_rx_subtree()->create<std::string>("name")
118          .set("XCVR2450 RX");
119      this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
120 -        .set_publisher(boost::bind(&xcvr2450::get_locked, this));
121 +        .set_publisher(std::bind(&xcvr2450::get_locked, this));
122      this->get_rx_subtree()->create<sensor_value_t>("sensors/rssi")
123 -        .set_publisher(boost::bind(&xcvr2450::get_rssi, this));
124 +        .set_publisher(std::bind(&xcvr2450::get_rssi, this));
125      for(const std::string &name:  xcvr_rx_gain_ranges.keys()){
126          this->get_rx_subtree()->create<double>("gains/"+name+"/value")
127 -            .set_coercer(boost::bind(&xcvr2450::set_rx_gain, this, _1, name))
128 +            .set_coercer(std::bind(&xcvr2450::set_rx_gain, this, std::placeholders::_1, name))
129              .set(xcvr_rx_gain_ranges[name].start());
130          this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
131              .set(xcvr_rx_gain_ranges[name]);
132      }
133      this->get_rx_subtree()->create<double>("freq/value")
134 -        .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, _1))
135 +        .set_coercer(std::bind(&xcvr2450::set_lo_freq, this, std::placeholders::_1))
136          .set(double(2.45e9));
137      this->get_rx_subtree()->create<meta_range_t>("freq/range")
138          .set(xcvr_freq_range);
139      this->get_rx_subtree()->create<std::string>("antenna/value")
140 -        .add_coerced_subscriber(boost::bind(&xcvr2450::set_rx_ant, this, _1))
141 +        .add_coerced_subscriber(std::bind(&xcvr2450::set_rx_ant, this, std::placeholders::_1))
142          .set(xcvr_antennas.at(0));
143      this->get_rx_subtree()->create<std::vector<std::string> >("antenna/options")
144          .set(xcvr_antennas);
145 @@ -249,7 +249,7 @@
146      this->get_rx_subtree()->create<bool>("use_lo_offset")
147          .set(false);
148      this->get_rx_subtree()->create<double>("bandwidth/value")
149 -        .set_coercer(boost::bind(&xcvr2450::set_rx_bandwidth, this, _1)) //complex bandpass bandwidth 
150 +        .set_coercer(std::bind(&xcvr2450::set_rx_bandwidth, this, std::placeholders::_1)) //complex bandpass bandwidth 
151          .set(2.0*_rx_bandwidth); //_rx_bandwidth in lowpass, convert to complex bandpass
152      this->get_rx_subtree()->create<meta_range_t>("bandwidth/range")
153          .set(xcvr_rx_bandwidth_range);
154 @@ -260,21 +260,21 @@
155      this->get_tx_subtree()->create<std::string>("name")
156          .set("XCVR2450 TX");
157      this->get_tx_subtree()->create<sensor_value_t>("sensors/lo_locked")
158 -        .set_publisher(boost::bind(&xcvr2450::get_locked, this));
159 +        .set_publisher(std::bind(&xcvr2450::get_locked, this));
160      for(const std::string &name:  xcvr_tx_gain_ranges.keys()){
161          this->get_tx_subtree()->create<double>("gains/"+name+"/value")
162 -            .set_coercer(boost::bind(&xcvr2450::set_tx_gain, this, _1, name))
163 +            .set_coercer(std::bind(&xcvr2450::set_tx_gain, this, std::placeholders::_1, name))
164              .set(xcvr_tx_gain_ranges[name].start());
165          this->get_tx_subtree()->create<meta_range_t>("gains/"+name+"/range")
166              .set(xcvr_tx_gain_ranges[name]);
167      }
168      this->get_tx_subtree()->create<double>("freq/value")
169 -        .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, _1))
170 +        .set_coercer(std::bind(&xcvr2450::set_lo_freq, this, std::placeholders::_1))
171          .set(double(2.45e9));
172      this->get_tx_subtree()->create<meta_range_t>("freq/range")
173          .set(xcvr_freq_range);
174      this->get_tx_subtree()->create<std::string>("antenna/value")
175 -        .add_coerced_subscriber(boost::bind(&xcvr2450::set_tx_ant, this, _1))
176 +        .add_coerced_subscriber(std::bind(&xcvr2450::set_tx_ant, this, std::placeholders::_1))
177          .set(xcvr_antennas.at(1));
178      this->get_tx_subtree()->create<std::vector<std::string> >("antenna/options")
179          .set(xcvr_antennas);
180 @@ -285,7 +285,7 @@
181      this->get_tx_subtree()->create<bool>("use_lo_offset")
182          .set(false);
183      this->get_tx_subtree()->create<double>("bandwidth/value")
184 -        .set_coercer(boost::bind(&xcvr2450::set_tx_bandwidth, this, _1)) //complex bandpass bandwidth
185 +        .set_coercer(std::bind(&xcvr2450::set_tx_bandwidth, this, std::placeholders::_1)) //complex bandpass bandwidth
186          .set(2.0*_tx_bandwidth); //_tx_bandwidth in lowpass, convert to complex bandpass
187      this->get_tx_subtree()->create<meta_range_t>("bandwidth/range")
188          .set(xcvr_tx_bandwidth_range);
189 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_common.cpp.orig    2020-01-01 05:21:49.000000000 +0100
190 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_common.cpp 2020-07-10 13:05:02.423047555 +0200
191 @@ -146,20 +146,20 @@
192      else this->get_rx_subtree()->create<std::string>("name").set("SBX/CBX RX");
193  
194      this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
195 -        .set_publisher(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_RX));
196 +        .set_publisher(std::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_RX));
197      for(const std::string &name:  sbx_rx_gain_ranges.keys()){
198          this->get_rx_subtree()->create<double>("gains/"+name+"/value")
199 -            .set_coercer(boost::bind(&sbx_xcvr::set_rx_gain, this, _1, name))
200 +            .set_coercer(std::bind(&sbx_xcvr::set_rx_gain, this, std::placeholders::_1, name))
201              .set(sbx_rx_gain_ranges[name].start());
202          this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
203              .set(sbx_rx_gain_ranges[name]);
204      }
205      this->get_rx_subtree()->create<double>("freq/value")
206 -        .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, _1))
207 +        .set_coercer(std::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, std::placeholders::_1))
208          .set((freq_range.start() + freq_range.stop())/2.0);
209      this->get_rx_subtree()->create<meta_range_t>("freq/range").set(freq_range);
210      this->get_rx_subtree()->create<std::string>("antenna/value")
211 -        .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_rx_ant, this, _1))
212 +        .add_coerced_subscriber(std::bind(&sbx_xcvr::set_rx_ant, this, std::placeholders::_1))
213          .set("RX2");
214      this->get_rx_subtree()->create<std::vector<std::string> >("antenna/options")
215          .set(sbx_rx_antennas);
216 @@ -187,20 +187,20 @@
217      else this->get_tx_subtree()->create<std::string>("name").set("SBX/CBX TX");
218  
219      this->get_tx_subtree()->create<sensor_value_t>("sensors/lo_locked")
220 -        .set_publisher(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_TX));
221 +        .set_publisher(std::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_TX));
222      for(const std::string &name:  sbx_tx_gain_ranges.keys()){
223          this->get_tx_subtree()->create<double>("gains/"+name+"/value")
224 -            .set_coercer(boost::bind(&sbx_xcvr::set_tx_gain, this, _1, name))
225 +            .set_coercer(std::bind(&sbx_xcvr::set_tx_gain, this, std::placeholders::_1, name))
226              .set(sbx_tx_gain_ranges[name].start());
227          this->get_tx_subtree()->create<meta_range_t>("gains/"+name+"/range")
228              .set(sbx_tx_gain_ranges[name]);
229      }
230      this->get_tx_subtree()->create<double>("freq/value")
231 -        .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, _1))
232 +        .set_coercer(std::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, std::placeholders::_1))
233          .set((freq_range.start() + freq_range.stop())/2.0);
234      this->get_tx_subtree()->create<meta_range_t>("freq/range").set(freq_range);
235      this->get_tx_subtree()->create<std::string>("antenna/value")
236 -        .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_tx_ant, this, _1))
237 +        .add_coerced_subscriber(std::bind(&sbx_xcvr::set_tx_ant, this, std::placeholders::_1))
238          .set(sbx_tx_antennas.at(0));
239      this->get_tx_subtree()->create<std::vector<std::string> >("antenna/options")
240          .set(sbx_tx_antennas);
241 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version3.cpp.orig  2020-01-01 05:21:49.000000000 +0100
242 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version3.cpp       2020-07-10 13:05:49.216127388 +0200
243 @@ -20,8 +20,8 @@
244  sbx_xcvr::sbx_version3::sbx_version3(sbx_xcvr *_self_sbx_xcvr) {
245      //register the handle to our base SBX class
246      self_base = _self_sbx_xcvr;
247 -    _txlo = adf435x_iface::make_adf4350(boost::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_TX, _1));
248 -    _rxlo = adf435x_iface::make_adf4350(boost::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_RX, _1));
249 +    _txlo = adf435x_iface::make_adf4350(std::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1));
250 +    _rxlo = adf435x_iface::make_adf4350(std::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1));
251  }
252  
253  sbx_xcvr::sbx_version3::~sbx_version3(void){
254 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version4.cpp.orig  2020-01-01 05:21:49.000000000 +0100
255 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_sbx_version4.cpp       2020-07-10 13:06:38.189195412 +0200
256 @@ -20,8 +20,8 @@
257  sbx_xcvr::sbx_version4::sbx_version4(sbx_xcvr *_self_sbx_xcvr) {
258      //register the handle to our base SBX class
259      self_base = _self_sbx_xcvr;
260 -    _txlo = adf435x_iface::make_adf4351(boost::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_TX, _1));
261 -    _rxlo = adf435x_iface::make_adf4351(boost::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_RX, _1));
262 +    _txlo = adf435x_iface::make_adf4351(std::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1));
263 +    _rxlo = adf435x_iface::make_adf4351(std::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1));
264  }
265  
266  
267 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_cbx.cpp.orig   2020-01-01 05:21:49.000000000 +0100
268 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_cbx.cpp        2020-07-10 13:13:36.733594629 +0200
269 @@ -19,8 +19,8 @@
270  sbx_xcvr::cbx::cbx(sbx_xcvr *_self_sbx_xcvr) {
271      //register the handle to our base CBX class
272      self_base = _self_sbx_xcvr;
273 -    _txlo = max287x_iface::make<max2870>(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, _1));
274 -    _rxlo = max287x_iface::make<max2870>(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, _1));
275 +    _txlo = max287x_iface::make<max2870>(std::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1));
276 +    _rxlo = max287x_iface::make<max2870>(std::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1));
277  }
278  
279  
280 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_ubx.cpp.orig   2020-01-01 05:21:49.000000000 +0100
281 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_ubx.cpp        2020-07-10 14:55:54.540343277 +0200
282 @@ -395,10 +395,10 @@
283          // Initialize LOs
284          if (_rev == 0)
285          {
286 -            _txlo1 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, _1));
287 -            _txlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));
288 -            _rxlo1 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1));
289 -            _rxlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1));
290 +            _txlo1 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, std::placeholders::_1));
291 +            _txlo2 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, std::placeholders::_1));
292 +            _rxlo1 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, std::placeholders::_1));
293 +            _rxlo2 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, std::placeholders::_1));
294              std::vector<max287x_iface::sptr> los{_txlo1, _txlo2, _rxlo1, _rxlo2};
295              for(max287x_iface::sptr lo:  los)
296              {
297 @@ -409,10 +409,10 @@
298          }
299          else if (_rev == 1 or _rev == 2)
300          {
301 -            _txlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, _1));
302 -            _txlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));
303 -            _rxlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1));
304 -            _rxlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1));
305 +            _txlo1 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, std::placeholders::_1));
306 +            _txlo2 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, std::placeholders::_1));
307 +            _rxlo1 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, std::placeholders::_1));
308 +            _rxlo2 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, std::placeholders::_1));
309              std::vector<max287x_iface::sptr> los{_txlo1, _txlo2, _rxlo1, _rxlo2};
310              for(max287x_iface::sptr lo:  los)
311              {
312 @@ -439,12 +439,12 @@
313          get_rx_subtree()->create<std::vector<std::string> >("power_mode/options")
314              .set(ubx_power_modes);
315          get_rx_subtree()->create<std::string>("power_mode/value")
316 -            .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_power_mode, this, _1))
317 +            .add_coerced_subscriber(std::bind(&ubx_xcvr::set_power_mode, this, std::placeholders::_1))
318              .set("performance");
319          get_rx_subtree()->create<std::vector<std::string> >("xcvr_mode/options")
320              .set(ubx_xcvr_modes);
321          get_rx_subtree()->create<std::string>("xcvr_mode/value")
322 -            .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_xcvr_mode, this, _1))
323 +            .add_coerced_subscriber(std::bind(&ubx_xcvr::set_xcvr_mode, this, std::placeholders::_1))
324              .set("FDX");
325          get_rx_subtree()->create<std::vector<std::string> >("temp_comp_mode/options")
326              .set(ubx_temp_comp_modes);
327 @@ -456,13 +456,13 @@
328          get_tx_subtree()->create<std::vector<std::string> >("power_mode/options")
329              .set(ubx_power_modes);
330          get_tx_subtree()->create<std::string>("power_mode/value")
331 -            .add_coerced_subscriber(boost::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("power_mode/value"), _1))
332 -            .set_publisher(boost::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("power_mode/value")));
333 +            .add_coerced_subscriber(std::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("power_mode/value"), std::placeholders::_1))
334 +            .set_publisher(std::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("power_mode/value")));
335          get_tx_subtree()->create<std::vector<std::string> >("xcvr_mode/options")
336              .set(ubx_xcvr_modes);
337          get_tx_subtree()->create<std::string>("xcvr_mode/value")
338 -            .add_coerced_subscriber(boost::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("xcvr_mode/value"), _1))
339 -            .set_publisher(boost::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("xcvr_mode/value")));
340 +            .add_coerced_subscriber(std::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("xcvr_mode/value"), std::placeholders::_1))
341 +            .set_publisher(std::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("xcvr_mode/value")));
342          get_tx_subtree()->create<std::vector<std::string> >("temp_comp_mode/options")
343              .set(ubx_temp_comp_modes);
344          get_tx_subtree()
345 @@ -486,20 +486,20 @@
346          get_tx_subtree()->create<device_addr_t>("tune_args")
347              .set(device_addr_t());
348          get_tx_subtree()->create<sensor_value_t>("sensors/lo_locked")
349 -            .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "TXLO"));
350 +            .set_publisher(std::bind(&ubx_xcvr::get_locked, this, "TXLO"));
351          get_tx_subtree()->create<double>("gains/PGA0/value")
352 -            .set_coercer(boost::bind(&ubx_xcvr::set_tx_gain, this, _1)).set(0);
353 +            .set_coercer(std::bind(&ubx_xcvr::set_tx_gain, this, std::placeholders::_1)).set(0);
354          get_tx_subtree()->create<meta_range_t>("gains/PGA0/range")
355              .set(ubx_tx_gain_range);
356          get_tx_subtree()->create<double>("freq/value")
357 -            .set_coercer(boost::bind(&ubx_xcvr::set_tx_freq, this, _1))
358 +            .set_coercer(std::bind(&ubx_xcvr::set_tx_freq, this, std::placeholders::_1))
359              .set(ubx_freq_range.start());
360          get_tx_subtree()->create<meta_range_t>("freq/range")
361              .set(ubx_freq_range);
362          get_tx_subtree()->create<std::vector<std::string> >("antenna/options")
363              .set(ubx_tx_antennas);
364          get_tx_subtree()->create<std::string>("antenna/value")
365 -            .set_coercer(boost::bind(&ubx_xcvr::set_tx_ant, this, _1))
366 +            .set_coercer(std::bind(&ubx_xcvr::set_tx_ant, this, std::placeholders::_1))
367              .set(ubx_tx_antennas.at(0));
368          get_tx_subtree()->create<std::string>("connection")
369              .set("QI");
370 @@ -512,7 +512,7 @@
371          get_tx_subtree()->create<meta_range_t>("bandwidth/range")
372              .set(freq_range_t(bw, bw));
373          get_tx_subtree()->create<int64_t>("sync_delay")
374 -            .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, true, _1))
375 +            .add_coerced_subscriber(std::bind(&ubx_xcvr::set_sync_delay, this, true, std::placeholders::_1))
376              .set(0);
377  
378          ////////////////////////////////////////////////////////////////////
379 @@ -522,21 +522,21 @@
380          get_rx_subtree()->create<device_addr_t>("tune_args")
381              .set(device_addr_t());
382          get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
383 -            .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "RXLO"));
384 +            .set_publisher(std::bind(&ubx_xcvr::get_locked, this, "RXLO"));
385          get_rx_subtree()->create<double>("gains/PGA0/value")
386 -            .set_coercer(boost::bind(&ubx_xcvr::set_rx_gain, this, _1))
387 +            .set_coercer(std::bind(&ubx_xcvr::set_rx_gain, this, std::placeholders::_1))
388              .set(0);
389          get_rx_subtree()->create<meta_range_t>("gains/PGA0/range")
390              .set(ubx_rx_gain_range);
391          get_rx_subtree()->create<double>("freq/value")
392 -            .set_coercer(boost::bind(&ubx_xcvr::set_rx_freq, this, _1))
393 +            .set_coercer(std::bind(&ubx_xcvr::set_rx_freq, this, std::placeholders::_1))
394              .set(ubx_freq_range.start());
395          get_rx_subtree()->create<meta_range_t>("freq/range")
396              .set(ubx_freq_range);
397          get_rx_subtree()->create<std::vector<std::string> >("antenna/options")
398              .set(ubx_rx_antennas);
399          get_rx_subtree()->create<std::string>("antenna/value")
400 -            .set_coercer(boost::bind(&ubx_xcvr::set_rx_ant, this, _1)).set("RX2");
401 +            .set_coercer(std::bind(&ubx_xcvr::set_rx_ant, this, std::placeholders::_1)).set("RX2");
402          get_rx_subtree()->create<std::string>("connection")
403              .set("IQ");
404          get_rx_subtree()->create<bool>("enabled")
405 @@ -548,7 +548,7 @@
406          get_rx_subtree()->create<meta_range_t>("bandwidth/range")
407              .set(freq_range_t(bw, bw));
408          get_rx_subtree()->create<int64_t>("sync_delay")
409 -            .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, false, _1))
410 +            .add_coerced_subscriber(std::bind(&ubx_xcvr::set_sync_delay, this, false, std::placeholders::_1))
411              .set(0);
412      }
413  
414 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx.cpp.orig 2020-01-01 05:21:49.000000000 +0100
415 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx.cpp      2020-07-10 16:14:10.521569631 +0200
416 @@ -195,16 +195,16 @@
417      this->get_rx_subtree()->create<std::string>("name")
418          .set("DBSRX");
419      this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
420 -        .set_publisher(boost::bind(&dbsrx::get_locked, this));
421 +        .set_publisher(std::bind(&dbsrx::get_locked, this));
422      for(const std::string &name:  dbsrx_gain_ranges.keys()){
423          this->get_rx_subtree()->create<double>("gains/"+name+"/value")
424 -            .set_coercer(boost::bind(&dbsrx::set_gain, this, _1, name))
425 +            .set_coercer(std::bind(&dbsrx::set_gain, this, std::placeholders::_1, name))
426              .set(dbsrx_gain_ranges[name].start());
427          this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
428              .set(dbsrx_gain_ranges[name]);
429      }
430      this->get_rx_subtree()->create<double>("freq/value")
431 -        .set_coercer(boost::bind(&dbsrx::set_lo_freq, this, _1));
432 +        .set_coercer(std::bind(&dbsrx::set_lo_freq, this, std::placeholders::_1));
433      this->get_rx_subtree()->create<meta_range_t>("freq/range")
434          .set(dbsrx_freq_range);
435      this->get_rx_subtree()->create<std::string>("antenna/value")
436 @@ -218,7 +218,7 @@
437      this->get_rx_subtree()->create<bool>("use_lo_offset")
438          .set(false);
439      this->get_rx_subtree()->create<double>("bandwidth/value")
440 -        .set_coercer(boost::bind(&dbsrx::set_bandwidth, this, _1));
441 +        .set_coercer(std::bind(&dbsrx::set_bandwidth, this, std::placeholders::_1));
442      this->get_rx_subtree()->create<meta_range_t>("bandwidth/range")
443          .set(dbsrx_bandwidth_range);
444  
445 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx.cpp.orig  2020-01-01 05:21:49.000000000 +0100
446 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx.cpp       2020-07-10 16:20:42.599445562 +0200
447 @@ -180,12 +180,12 @@
448      this->get_rx_subtree()->create<int>("sensors"); //phony property so this dir exists
449      for(const std::string &name:  get_tvrx_gain_ranges().keys()){
450          this->get_rx_subtree()->create<double>("gains/"+name+"/value")
451 -            .set_coercer(boost::bind(&tvrx::set_gain, this, _1, name));
452 +            .set_coercer(std::bind(&tvrx::set_gain, this, std::placeholders::_1, name));
453          this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
454              .set(get_tvrx_gain_ranges()[name]);
455      }
456      this->get_rx_subtree()->create<double>("freq/value")
457 -        .set_coercer(boost::bind(&tvrx::set_freq, this, _1));
458 +        .set_coercer(std::bind(&tvrx::set_freq, this, std::placeholders::_1));
459      this->get_rx_subtree()->create<meta_range_t>("freq/range")
460          .set(tvrx_freq_range);
461      this->get_rx_subtree()->create<std::string>("antenna/value")
462 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx2.cpp.orig        2020-01-01 05:21:49.000000000 +0100
463 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_dbsrx2.cpp     2020-07-10 16:21:28.555863262 +0200
464 @@ -176,16 +176,16 @@
465      this->get_rx_subtree()->create<std::string>("name")
466          .set("DBSRX");
467      this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
468 -        .set_publisher(boost::bind(&dbsrx2::get_locked, this));
469 +        .set_publisher(std::bind(&dbsrx2::get_locked, this));
470      for(const std::string &name:  dbsrx2_gain_ranges.keys()){
471          this->get_rx_subtree()->create<double>("gains/"+name+"/value")
472 -            .set_coercer(boost::bind(&dbsrx2::set_gain, this, _1, name))
473 +            .set_coercer(std::bind(&dbsrx2::set_gain, this, std::placeholders::_1, name))
474              .set(dbsrx2_gain_ranges[name].start());
475          this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
476              .set(dbsrx2_gain_ranges[name]);
477      }
478      this->get_rx_subtree()->create<double>("freq/value")
479 -        .set_coercer(boost::bind(&dbsrx2::set_lo_freq, this, _1))
480 +        .set_coercer(std::bind(&dbsrx2::set_lo_freq, this, std::placeholders::_1))
481          .set(dbsrx2_freq_range.start());
482      this->get_rx_subtree()->create<meta_range_t>("freq/range")
483          .set(dbsrx2_freq_range);
484 @@ -203,7 +203,7 @@
485      double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX);
486  
487      this->get_rx_subtree()->create<double>("bandwidth/value")
488 -        .set_coercer(boost::bind(&dbsrx2::set_bandwidth, this, _1))
489 +        .set_coercer(std::bind(&dbsrx2::set_bandwidth, this, std::placeholders::_1))
490          .set(2.0*(0.8*codec_rate/2.0)); //bandwidth in lowpass, convert to complex bandpass
491                                          //default to anti-alias at different codec_rate
492      this->get_rx_subtree()->create<meta_range_t>("bandwidth/range")
493 --- uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx2.cpp.orig 2020-01-01 05:21:49.000000000 +0100
494 +++ uhd-3.15.0.0/host/lib/usrp/dboard/db_tvrx2.cpp      2020-07-10 16:22:25.432221803 +0200
495 @@ -951,19 +951,19 @@
496      this->get_rx_subtree()->create<std::string>("name")
497          .set("TVRX2");
498      this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
499 -        .set_publisher(boost::bind(&tvrx2::get_locked, this));
500 +        .set_publisher(std::bind(&tvrx2::get_locked, this));
501      this->get_rx_subtree()->create<sensor_value_t>("sensors/rssi")
502 -        .set_publisher(boost::bind(&tvrx2::get_rssi, this));
503 +        .set_publisher(std::bind(&tvrx2::get_rssi, this));
504      this->get_rx_subtree()->create<sensor_value_t>("sensors/temperature")
505 -        .set_publisher(boost::bind(&tvrx2::get_temp, this));
506 +        .set_publisher(std::bind(&tvrx2::get_temp, this));
507      for(const std::string &name:  tvrx2_gain_ranges.keys()){
508          this->get_rx_subtree()->create<double>("gains/"+name+"/value")
509 -            .set_coercer(boost::bind(&tvrx2::set_gain, this, _1, name));
510 +            .set_coercer(std::bind(&tvrx2::set_gain, this, std::placeholders::_1, name));
511          this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
512              .set(tvrx2_gain_ranges[name]);
513      }
514      this->get_rx_subtree()->create<double>("freq/value")
515 -        .set_coercer(boost::bind(&tvrx2::set_lo_freq, this, _1));
516 +        .set_coercer(std::bind(&tvrx2::set_lo_freq, this, std::placeholders::_1));
517      this->get_rx_subtree()->create<meta_range_t>("freq/range")
518          .set(tvrx2_freq_range);
519      this->get_rx_subtree()->create<std::string>("antenna/value")
520 @@ -973,12 +973,12 @@
521      this->get_rx_subtree()->create<std::string>("connection")
522          .set(tvrx2_sd_name_to_conn[get_subdev_name()]);
523      this->get_rx_subtree()->create<bool>("enabled")
524 -        .set_coercer(boost::bind(&tvrx2::set_enabled, this, _1))
525 +        .set_coercer(std::bind(&tvrx2::set_enabled, this, std::placeholders::_1))
526          .set(_enabled);
527      this->get_rx_subtree()->create<bool>("use_lo_offset")
528          .set(false);
529      this->get_rx_subtree()->create<double>("bandwidth/value")
530 -        .set_coercer(boost::bind(&tvrx2::set_bandwidth, this, _1))
531 +        .set_coercer(std::bind(&tvrx2::set_bandwidth, this, std::placeholders::_1))
532          .set(_bandwidth);
533      this->get_rx_subtree()->create<meta_range_t>("bandwidth/range")
534          .set(tvrx2_bandwidth_range);
535 --- uhd-3.15.0.0/host/lib/usrp/b100/b100_impl.cpp.orig  2020-01-01 05:21:49.000000000 +0100
536 +++ uhd-3.15.0.0/host/lib/usrp/b100/b100_impl.cpp       2020-07-10 16:59:19.426894232 +0200
537 @@ -274,7 +274,7 @@
538      _tree->create<std::string>(mb_path / "name").set("B100");
539      _tree->create<std::string>(mb_path / "codename").set("B-Hundo");
540      _tree->create<std::string>(mb_path / "load_eeprom")
541 -        .add_coerced_subscriber(boost::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, _1));
542 +        .add_coerced_subscriber(std::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, std::placeholders::_1));
543  
544      ////////////////////////////////////////////////////////////////////
545      // setup the mboard eeprom
546 @@ -282,20 +282,20 @@
547      const mboard_eeprom_t mb_eeprom = this->get_mb_eeprom(_fx2_ctrl);
548      _tree->create<mboard_eeprom_t>(mb_path / "eeprom")
549          .set(mb_eeprom)
550 -        .add_coerced_subscriber(boost::bind(&b100_impl::set_mb_eeprom, this, _1));
551 +        .add_coerced_subscriber(std::bind(&b100_impl::set_mb_eeprom, this, std::placeholders::_1));
552  
553      ////////////////////////////////////////////////////////////////////
554      // create clock control objects
555      ////////////////////////////////////////////////////////////////////
556      //^^^ clock created up top, just reg props here... ^^^
557      _tree->create<double>(mb_path / "tick_rate")
558 -        .set_publisher(boost::bind(&b100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl))
559 -        .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, _1))
560 -        .add_coerced_subscriber(boost::bind(&b100_impl::update_tick_rate, this, _1));
561 +        .set_publisher(std::bind(&b100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl))
562 +        .add_coerced_subscriber(std::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, std::placeholders::_1))
563 +        .add_coerced_subscriber(std::bind(&b100_impl::update_tick_rate, this, std::placeholders::_1));
564  
565      //add_coerced_subscriber the command time while we are at it
566      _tree->create<time_spec_t>(mb_path / "time/cmd")
567 -        .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, _1));
568 +        .add_coerced_subscriber(std::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, std::placeholders::_1));
569  
570      ////////////////////////////////////////////////////////////////////
571      // create codec control objects
572 @@ -306,20 +306,20 @@
573      _tree->create<std::string>(rx_codec_path / "name").set("ad9522");
574      _tree->create<meta_range_t>(rx_codec_path / "gains/pga/range").set(b100_codec_ctrl::rx_pga_gain_range);
575      _tree->create<double>(rx_codec_path / "gains/pga/value")
576 -        .set_coercer(boost::bind(&b100_impl::update_rx_codec_gain, this, _1))
577 +        .set_coercer(std::bind(&b100_impl::update_rx_codec_gain, this, std::placeholders::_1))
578          .set(0.0);
579      _tree->create<std::string>(tx_codec_path / "name").set("ad9522");
580      _tree->create<meta_range_t>(tx_codec_path / "gains/pga/range").set(b100_codec_ctrl::tx_pga_gain_range);
581      _tree->create<double>(tx_codec_path / "gains/pga/value")
582 -        .add_coerced_subscriber(boost::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, _1))
583 -        .set_publisher(boost::bind(&b100_codec_ctrl::get_tx_pga_gain, _codec_ctrl))
584 +        .add_coerced_subscriber(std::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, std::placeholders::_1))
585 +        .set_publisher(std::bind(&b100_codec_ctrl::get_tx_pga_gain, _codec_ctrl))
586          .set(0.0);
587  
588      ////////////////////////////////////////////////////////////////////
589      // and do the misc mboard sensors
590      ////////////////////////////////////////////////////////////////////
591      _tree->create<sensor_value_t>(mb_path / "sensors/ref_locked")
592 -        .set_publisher(boost::bind(&b100_impl::get_ref_locked, this));
593 +        .set_publisher(std::bind(&b100_impl::get_ref_locked, this));
594  
595      ////////////////////////////////////////////////////////////////////
596      // create frontend control objects
597 @@ -328,27 +328,27 @@
598      _tx_fe = tx_frontend_core_200::make(_fifo_ctrl, TOREG(SR_TX_FE));
599  
600      _tree->create<subdev_spec_t>(mb_path / "rx_subdev_spec")
601 -        .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_subdev_spec, this, _1));
602 +        .add_coerced_subscriber(std::bind(&b100_impl::update_rx_subdev_spec, this, std::placeholders::_1));
603      _tree->create<subdev_spec_t>(mb_path / "tx_subdev_spec")
604 -        .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_subdev_spec, this, _1));
605 +        .add_coerced_subscriber(std::bind(&b100_impl::update_tx_subdev_spec, this, std::placeholders::_1));
606  
607      const fs_path rx_fe_path = mb_path / "rx_frontends" / "A";
608      const fs_path tx_fe_path = mb_path / "tx_frontends" / "A";
609  
610      _tree->create<std::complex<double> >(rx_fe_path / "dc_offset" / "value")
611 -        .set_coercer(boost::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, _1))
612 +        .set_coercer(std::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, std::placeholders::_1))
613          .set(std::complex<double>(0.0, 0.0));
614      _tree->create<bool>(rx_fe_path / "dc_offset" / "enable")
615 -        .add_coerced_subscriber(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, _1))
616 +        .add_coerced_subscriber(std::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, std::placeholders::_1))
617          .set(true);
618      _tree->create<std::complex<double> >(rx_fe_path / "iq_balance" / "value")
619 -        .add_coerced_subscriber(boost::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, _1))
620 +        .add_coerced_subscriber(std::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, std::placeholders::_1))
621          .set(std::complex<double>(0.0, 0.0));
622      _tree->create<std::complex<double> >(tx_fe_path / "dc_offset" / "value")
623 -        .set_coercer(boost::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, _1))
624 +        .set_coercer(std::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, std::placeholders::_1))
625          .set(std::complex<double>(0.0, 0.0));
626      _tree->create<std::complex<double> >(tx_fe_path / "iq_balance" / "value")
627 -        .add_coerced_subscriber(boost::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, _1))
628 +        .add_coerced_subscriber(std::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, std::placeholders::_1))
629          .set(std::complex<double>(0.0, 0.0));
630  
631      ////////////////////////////////////////////////////////////////////
632 @@ -367,20 +367,20 @@
633  
634          _rx_dsps[dspno]->set_link_rate(B100_LINK_RATE_BPS);
635          _tree->access<double>(mb_path / "tick_rate")
636 -            .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], _1));
637 +            .add_coerced_subscriber(std::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], std::placeholders::_1));
638          fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno);
639          _tree->create<meta_range_t>(rx_dsp_path / "rate/range")
640 -            .set_publisher(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno]));
641 +            .set_publisher(std::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno]));
642          _tree->create<double>(rx_dsp_path / "rate/value")
643              .set(1e6) //some default
644 -            .set_coercer(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], _1))
645 -            .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_samp_rate, this, dspno, _1));
646 +            .set_coercer(std::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], std::placeholders::_1))
647 +            .add_coerced_subscriber(std::bind(&b100_impl::update_rx_samp_rate, this, dspno, std::placeholders::_1));
648          _tree->create<double>(rx_dsp_path / "freq/value")
649 -            .set_coercer(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], _1));
650 +            .set_coercer(std::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], std::placeholders::_1));
651          _tree->create<meta_range_t>(rx_dsp_path / "freq/range")
652 -            .set_publisher(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno]));
653 +            .set_publisher(std::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno]));
654          _tree->create<stream_cmd_t>(rx_dsp_path / "stream_cmd")
655 -            .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], _1));
656 +            .add_coerced_subscriber(std::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], std::placeholders::_1));
657      }
658  
659      ////////////////////////////////////////////////////////////////////
660 @@ -391,17 +391,17 @@
661      );
662      _tx_dsp->set_link_rate(B100_LINK_RATE_BPS);
663      _tree->access<double>(mb_path / "tick_rate")
664 -        .add_coerced_subscriber(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, _1));
665 +        .add_coerced_subscriber(std::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, std::placeholders::_1));
666      _tree->create<meta_range_t>(mb_path / "tx_dsps/0/rate/range")
667 -        .set_publisher(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp));
668 +        .set_publisher(std::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp));
669      _tree->create<double>(mb_path / "tx_dsps/0/rate/value")
670          .set(1e6) //some default
671 -        .set_coercer(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, _1))
672 -        .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_samp_rate, this, 0, _1));
673 +        .set_coercer(std::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, std::placeholders::_1))
674 +        .add_coerced_subscriber(std::bind(&b100_impl::update_tx_samp_rate, this, 0, std::placeholders::_1));
675      _tree->create<double>(mb_path / "tx_dsps/0/freq/value")
676 -        .set_coercer(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsp, _1));
677 +        .set_coercer(std::bind(&tx_dsp_core_200::set_freq, _tx_dsp, std::placeholders::_1));
678      _tree->create<meta_range_t>(mb_path / "tx_dsps/0/freq/range")
679 -        .set_publisher(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp));
680 +        .set_publisher(std::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp));
681  
682      ////////////////////////////////////////////////////////////////////
683      // create time control objects
684 @@ -415,21 +415,21 @@
685          _fifo_ctrl, TOREG(SR_TIME64), time64_rb_bases
686      );
687      _tree->access<double>(mb_path / "tick_rate")
688 -        .add_coerced_subscriber(boost::bind(&time64_core_200::set_tick_rate, _time64, _1));
689 +        .add_coerced_subscriber(std::bind(&time64_core_200::set_tick_rate, _time64, std::placeholders::_1));
690      _tree->create<time_spec_t>(mb_path / "time/now")
691 -        .set_publisher(boost::bind(&time64_core_200::get_time_now, _time64))
692 -        .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_now, _time64, _1));
693 +        .set_publisher(std::bind(&time64_core_200::get_time_now, _time64))
694 +        .add_coerced_subscriber(std::bind(&time64_core_200::set_time_now, _time64, std::placeholders::_1));
695      _tree->create<time_spec_t>(mb_path / "time/pps")
696 -        .set_publisher(boost::bind(&time64_core_200::get_time_last_pps, _time64))
697 -        .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_next_pps, _time64, _1));
698 +        .set_publisher(std::bind(&time64_core_200::get_time_last_pps, _time64))
699 +        .add_coerced_subscriber(std::bind(&time64_core_200::set_time_next_pps, _time64, std::placeholders::_1));
700      //setup time source props
701      _tree->create<std::string>(mb_path / "time_source/value")
702 -        .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_source, _time64, _1));
703 +        .add_coerced_subscriber(std::bind(&time64_core_200::set_time_source, _time64, std::placeholders::_1));
704      _tree->create<std::vector<std::string> >(mb_path / "time_source/options")
705 -        .set_publisher(boost::bind(&time64_core_200::get_time_sources, _time64));
706 +        .set_publisher(std::bind(&time64_core_200::get_time_sources, _time64));
707      //setup reference source props
708      _tree->create<std::string>(mb_path / "clock_source/value")
709 -        .add_coerced_subscriber(boost::bind(&b100_impl::update_clock_source, this, _1));
710 +        .add_coerced_subscriber(std::bind(&b100_impl::update_clock_source, this, std::placeholders::_1));
711      static const std::vector<std::string> clock_sources = {
712          "internal", "external", "auto"
713      };
714 @@ -440,7 +440,7 @@
715      ////////////////////////////////////////////////////////////////////
716      _user = user_settings_core_200::make(_fifo_ctrl, TOREG(SR_USER_REGS));
717      _tree->create<user_settings_core_200::user_reg_t>(mb_path / "user/regs")
718 -        .add_coerced_subscriber(boost::bind(&user_settings_core_200::set_reg, _user, _1));
719 +        .add_coerced_subscriber(std::bind(&user_settings_core_200::set_reg, _user, std::placeholders::_1));
720  
721      ////////////////////////////////////////////////////////////////////
722      // create dboard control objects
723 @@ -458,13 +458,13 @@
724      //create the properties and register subscribers
725      _tree->create<dboard_eeprom_t>(mb_path / "dboards/A/rx_eeprom")
726          .set(rx_db_eeprom)
727 -        .add_coerced_subscriber(boost::bind(&b100_impl::set_db_eeprom, this, "rx", _1));
728 +        .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "rx", std::placeholders::_1));
729      _tree->create<dboard_eeprom_t>(mb_path / "dboards/A/tx_eeprom")
730          .set(tx_db_eeprom)
731 -        .add_coerced_subscriber(boost::bind(&b100_impl::set_db_eeprom, this, "tx", _1));
732 +        .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "tx", std::placeholders::_1));
733      _tree->create<dboard_eeprom_t>(mb_path / "dboards/A/gdb_eeprom")
734          .set(gdb_eeprom)
735 -        .add_coerced_subscriber(boost::bind(&b100_impl::set_db_eeprom, this, "gdb", _1));
736 +        .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "gdb", std::placeholders::_1));
737  
738      //create a new dboard interface and manager
739      _dboard_manager = dboard_manager::make(
740 @@ -477,12 +477,12 @@
741      const fs_path db_tx_fe_path = mb_path / "dboards" / "A" / "tx_frontends";
742      for(const std::string &name:  _tree->list(db_tx_fe_path)){
743          _tree->access<double>(db_tx_fe_path / name / "freq" / "value")
744 -            .add_coerced_subscriber(boost::bind(&b100_impl::set_tx_fe_corrections, this, _1));
745 +            .add_coerced_subscriber(std::bind(&b100_impl::set_tx_fe_corrections, this, std::placeholders::_1));
746      }
747      const fs_path db_rx_fe_path = mb_path / "dboards" / "A" / "rx_frontends";
748      for(const std::string &name:  _tree->list(db_rx_fe_path)){
749          _tree->access<double>(db_rx_fe_path / name / "freq" / "value")
750 -            .add_coerced_subscriber(boost::bind(&b100_impl::set_rx_fe_corrections, this, _1));
751 +            .add_coerced_subscriber(std::bind(&b100_impl::set_rx_fe_corrections, this, std::placeholders::_1));
752      }
753  
754      //initialize io handling
755 @@ -498,7 +498,7 @@
756      this->update_rates();
757  
758      _tree->access<double>(mb_path / "tick_rate") //now add_coerced_subscriber the clock rate setter
759 -        .add_coerced_subscriber(boost::bind(&b100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, _1));
760 +        .add_coerced_subscriber(std::bind(&b100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, std::placeholders::_1));
761  
762      //reset cordic rates and their properties to zero
763      for(const std::string &name:  _tree->list(mb_path / "rx_dsps")){
764 --- uhd-3.15.0.0/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp.orig       2020-01-01 05:21:49.000000000 +0100
765 +++ uhd-3.15.0.0/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp    2020-07-10 17:00:26.443197840 +0200
766 @@ -151,7 +151,7 @@
767      _tree->create<meta_range_t>("rx_codecs" / _radio_slot / "gains" / "digital" / "range")
768          .set(meta_range_t(0, 6.0, 0.5));
769      _tree->create<double>("rx_codecs" / _radio_slot / "gains" / "digital" / "value")
770 -        .add_coerced_subscriber(boost::bind(&x300_adc_ctrl::set_gain, _adc, _1))
771 +        .add_coerced_subscriber(std::bind(&x300_adc_ctrl::set_gain, _adc, std::placeholders::_1))
772          .set(0);
773  
774      ////////////////////////////////////////////////////////////////
775 @@ -187,7 +187,7 @@
776          if (_tree->exists(fs_path("time") / "cmd")) {
777              _tree->access<time_spec_t>(fs_path("time") / "cmd")
778                  .add_coerced_subscriber(
779 -                    boost::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, _1, i));
780 +                    std::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, std::placeholders::_1, i));
781          }
782      }
783  
784 @@ -816,11 +816,11 @@
785          // Add to tree
786          _tree->create<dboard_eeprom_t>(db_path / EEPROM_PATHS[i])
787              .set(_db_eeproms[addr])
788 -            .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::_set_db_eeprom,
789 +            .add_coerced_subscriber(std::bind(&x300_radio_ctrl_impl::_set_db_eeprom,
790                  this,
791                  zpu_i2c,
792                  (BASE_ADDR | addr),
793 -                _1));
794 +                std::placeholders::_1));
795      }
796  
797      // create a new dboard interface
798 @@ -893,8 +893,8 @@
799                      ->access<std::string>(db_path / "rx_frontends"
800                                            / _rx_fe_map[i].db_fe_name / "antenna"
801                                            / "value")
802 -                    .add_desired_subscriber(boost::bind(
803 -                        &x300_radio_ctrl_impl::_update_atr_leds, this, _1, i));
804 +                    .add_desired_subscriber(std::bind(
805 +                        &x300_radio_ctrl_impl::_update_atr_leds, this, std::placeholders::_1, i));
806                  _update_atr_leds(_tree
807                                       ->access<std::string>(db_path / "rx_frontends"
808                                                             / _rx_fe_map[i].db_fe_name
809 @@ -917,11 +917,11 @@
810                      ->access<double>(
811                          db_tx_fe_path / _tx_fe_map[i].db_fe_name / "freq" / "value")
812                      .add_coerced_subscriber(
813 -                        boost::bind(&x300_radio_ctrl_impl::set_tx_fe_corrections,
814 +                        std::bind(&x300_radio_ctrl_impl::set_tx_fe_corrections,
815                              this,
816                              db_path,
817                              _root_path / "tx_fe_corrections" / _tx_fe_map[i].db_fe_name,
818 -                            _1));
819 +                            std::placeholders::_1));
820              }
821          }
822      }
823 @@ -934,11 +934,11 @@
824                      ->access<double>(
825                          db_rx_fe_path / _tx_fe_map[i].db_fe_name / "freq" / "value")
826                      .add_coerced_subscriber(
827 -                        boost::bind(&x300_radio_ctrl_impl::set_rx_fe_corrections,
828 +                        std::bind(&x300_radio_ctrl_impl::set_rx_fe_corrections,
829                              this,
830                              db_path,
831                              _root_path / "rx_fe_corrections" / _tx_fe_map[i].db_fe_name,
832 -                            _1));
833 +                            std::placeholders::_1));
834              }
835          }
836      }
837 --- uhd-3.15.0.0/host/lib/usrp_clock/octoclock/octoclock_impl.cpp.orig  2020-01-01 05:21:49.000000000 +0100
838 +++ uhd-3.15.0.0/host/lib/usrp_clock/octoclock/octoclock_impl.cpp       2020-07-10 17:05:19.151612102 +0200
839 @@ -232,21 +232,21 @@
840          _oc_dict[oc].eeprom = octoclock_eeprom_t(_oc_dict[oc].ctrl_xport, _proto_ver);
841          _tree->create<octoclock_eeprom_t>(oc_path / "eeprom")
842              .set(_oc_dict[oc].eeprom)
843 -            .add_coerced_subscriber(boost::bind(&octoclock_impl::_set_eeprom, this, oc, _1));
844 +            .add_coerced_subscriber(std::bind(&octoclock_impl::_set_eeprom, this, oc, std::placeholders::_1));
845  
846          ////////////////////////////////////////////////////////////////////
847          // Initialize non-GPSDO sensors
848          ////////////////////////////////////////////////////////////////////
849          _tree->create<uint32_t>(oc_path / "time")
850 -            .set_publisher(boost::bind(&octoclock_impl::_get_time, this, oc));
851 +            .set_publisher(std::bind(&octoclock_impl::_get_time, this, oc));
852          _tree->create<sensor_value_t>(oc_path / "sensors/ext_ref_detected")
853 -            .set_publisher(boost::bind(&octoclock_impl::_ext_ref_detected, this, oc));
854 +            .set_publisher(std::bind(&octoclock_impl::_ext_ref_detected, this, oc));
855          _tree->create<sensor_value_t>(oc_path / "sensors/gps_detected")
856 -            .set_publisher(boost::bind(&octoclock_impl::_gps_detected, this, oc));
857 +            .set_publisher(std::bind(&octoclock_impl::_gps_detected, this, oc));
858          _tree->create<sensor_value_t>(oc_path / "sensors/using_ref")
859 -            .set_publisher(boost::bind(&octoclock_impl::_which_ref, this, oc));
860 +            .set_publisher(std::bind(&octoclock_impl::_which_ref, this, oc));
861          _tree->create<sensor_value_t>(oc_path / "sensors/switch_pos")
862 -            .set_publisher(boost::bind(&octoclock_impl::_switch_pos, this, oc));
863 +            .set_publisher(std::bind(&octoclock_impl::_switch_pos, this, oc));
864  
865          ////////////////////////////////////////////////////////////////////
866          // Check reference and GPSDO
867 @@ -266,7 +266,7 @@
868                  if(_oc_dict[oc].gps and _oc_dict[oc].gps->gps_detected()){
869                      for(const std::string &name:  _oc_dict[oc].gps->get_sensors()){
870                          _tree->create<sensor_value_t>(oc_path / "sensors" / name)
871 -                            .set_publisher(boost::bind(&gps_ctrl::get_sensor, _oc_dict[oc].gps, name));
872 +                            .set_publisher(std::bind(&gps_ctrl::get_sensor, _oc_dict[oc].gps, name));
873                      }
874                  }
875                  else{
This page took 0.163064 seconds and 3 git commands to generate.