[packages/uhd] - updated to 3.15.0.0 - updated boost patch - added link,mpm-build patches - build also -mpm-* packa
qboosh
qboosh at pld-linux.org
Wed Jul 29 22:31:11 CEST 2020
commit 0cfe325a3308f4c613cbdb7e0c8d9eaf0e0766de
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Wed Jul 29 22:33:00 2020 +0200
- updated to 3.15.0.0
- updated boost patch
- added link,mpm-build patches
- build also -mpm-* packages
uhd-boost.patch | 1067 +++++++++++++++++++++------------------------------
uhd-libdir.patch | 22 +-
uhd-link.patch | 13 +
uhd-mpm-build.patch | 40 ++
uhd.spec | 202 ++++++++--
5 files changed, 667 insertions(+), 677 deletions(-)
---
diff --git a/uhd.spec b/uhd.spec
index 97b5d2d..54c8bf3 100644
--- a/uhd.spec
+++ b/uhd.spec
@@ -1,28 +1,39 @@
+#
+# Conditional build
+%bcond_without mpm # Module Peripheral Manager (run on embedded devices)
+
Summary: Universal Hardware Driver for Ettus Research products
Summary(pl.UTF-8): Uniwersalny sterownik sprzętowy do produktów Ettus Research
Name: uhd
-Version: 3.10.1.1
+Version: 3.15.0.0
Release: 1
License: GPL v3+
Group: Applications/System
-Source0: https://files.ettus.com/binaries/uhd/src/%{name}-%{version}.tar.gz
-# Source0-md5: 7b33dffef36c7c029104a49b0151b1ae
+#Source0Download: https://github.com/EttusResearch/uhd/releases
+Source0: https://github.com/EttusResearch/uhd/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: cf589d5130ebd8348e3dbf129a7c5c38
Patch0: %{name}-boost.patch
Patch1: %{name}-libdir.patch
+Patch2: %{name}-link.patch
+Patch3: %{name}-mpm-build.patch
URL: https://www.ettus.com/sdr-software/uhd-usrp-hardware-driver/
-BuildRequires: boost-devel >= 1.53
-BuildRequires: cmake >= 2.8.0
+BuildRequires: boost-devel >= 1.58
+BuildRequires: cmake >= 3.5.1
BuildRequires: doxygen
BuildRequires: gpsd-devel >= 3.11
-BuildRequires: libstdc++-devel >= 6:4.8.0
+BuildRequires: libstdc++-devel >= 6:5
BuildRequires: libusb-devel >= 1.0
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
-BuildRequires: python >= 1:2.7
-BuildRequires: python-Mako >= 0.4.2
-BuildRequires: python-requests >= 2.0
+BuildRequires: python3 >= 1:3.5
+BuildRequires: python3-Mako >= 0.4.2
+BuildRequires: python3-devel >= 1:3.5
+BuildRequires: python3-numpy >= 1.7
+BuildRequires: python3-requests >= 2.0
BuildRequires: rpm-pythonprov
+%if %{with mpm}
BuildRequires: udev-devel
+%endif
Requires: %{name}-libs = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -91,37 +102,117 @@ Documentation for USRP Hardware Driver for Ettus Research products.
Dokumentacja do biblioteki USRP Hardware Driver (sterownika dla
sprzętu USRP) do produktów Ettus Research.
+%package -n python3-uhd
+Summary: Python interface for USRP Hardware Driver library
+Summary(pl.UTF-8): Interfejs Pythona do biblioteki USRP Hardware Driver
+Group: Libraries/Python
+
+%description -n python3-uhd
+Python interface for USRP Hardware Driver library.
+
+%description -n python3-uhd -l pl.UTF-8
+Interfejs Pythona do biblioteki USRP Hardware Driver.
+
+%package mpm
+Summary: USRP Module Peripheral Manager
+Summary(pl.UTF-8): USRP Module Peripheral Manager - zarządca urządzeń peryferyjnych
+Group: Applications/System
+Requires: %{name}-mpm-libs = %{version}-%{release}
+
+%description mpm
+USRP Module Peripheral Manager.
+
+%description mpm -l pl.UTF-8
+USRP Module Peripheral Manager - zarządca urządzeń peryferyjnych.
+
+%package mpm-libs
+Summary: USRP Module Peripheral Manager library
+Summary(pl.UTF-8): Biblioteka USRP Module Peripheral Manager
+Group: Libraries
+
+%description mpm-libs
+USRP Module Peripheral Manager library.
+
+%description mpm-libs -l pl.UTF-8
+Biblioteka USRP Module Peripheral Manager.
+
+%package mpm-devel
+Summary: USRP Module Peripheral Manager library
+Summary(pl.UTF-8): Biblioteka USRP Module Peripheral Manager
+Group: Development/Libraries
+Requires: %{name}-mpm-libs = %{version}-%{release}
+
+%description mpm-devel
+USRP Module Peripheral Manager library.
+
+%description mpm-devel -l pl.UTF-8
+Biblioteka USRP Module Peripheral Manager.
+
+%package -n python3-usrp_mpm
+Summary: Python USRP Module Peripheral Manager library
+Summary(pl.UTF-8): Biblioteka USRP Module Peripheral Manager dla Pythona
+Group: Libraries/Python
+Requires: %{name}-mpm-libs = %{version}-%{release}
+
+%description -n python3-usrp_mpm
+Python USRP Module Peripheral Manager library.
+
+%description -n python3-usrp_mpm -l pl.UTF-8
+Biblioteka USRP Module Peripheral Manager dla Pythona.
+
%prep
-%setup -q -n UHD_%{version}_release
+%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
-%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' utils/{converter_benchmark.py,uhd_images_downloader.py.in,usrp2_{card_burner,card_burner_gui,recovery}.py,usrp_n2xx_net_burner{,_gui}.py}
-%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' utils/latency/graph.py
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/examples/python/*.py
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/utils/{converter_benchmark.py,usrp2_{card_burner,card_burner_gui,recovery}.py}
+%{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/utils/latency/graph.py
+%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' mpm/python/{n3xx_bist,usrp_hwd.py,usrp_update_fs}
+%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' mpm/tools/mpm_{debug,shell}.py
%build
-install -d build
-cd build
-%cmake .. \
+install -d build-{host,mpm}
+cd build-host
+%cmake ../host \
-DENABLE_USB=ON
%{__make}
+%if %{with mpm}
+cd ../build-mpm
+%cmake ../mpm
+
+# -DMPM_DEVICE= n3xx (Mykonos+Magnesium), e320, e31x
+%endif
+
+%{__make}
+
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C build install \
+%{__make} -C build-host install \
DESTDIR=$RPM_BUILD_ROOT
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/utils/usrp_n2xx_simple_net_burner
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/utils/usrp_x3xx_fpga_burner
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/utils/latency/run_tests.py
-
+# outdated (binaries removed)
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/{octoclock_firmware_burner,usrp_n2xx_simple_net_burner,usrp_x3xx_fpga_burner}.1*
+# not packaging tests
+%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/tests \
+ $RPM_BUILD_ROOT%{_libdir}/%{name}/utils/latency/run_tests.py
# packaged as %doc
%{__rm} $RPM_BUILD_ROOT%{_docdir}/uhd/{LICENSE,README.md}
-# not packaged
-%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/tests
+%if %{with mpm}
+%{__make} -C build-mpm install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/aurora_bist_test.py
+%endif
+
+%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
+%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
%clean
rm -rf $RPM_BUILD_ROOT
@@ -129,10 +220,12 @@ rm -rf $RPM_BUILD_ROOT
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
+%post mpm-libs -p /sbin/ldconfig
+%postun mpm-libs -p /sbin/ldconfig
+
%files
%defattr(644,root,root,755)
-%doc LICENSE README.md
-%attr(755,root,root) %{_bindir}/octoclock_firmware_burner
+%doc host/{LICENSE,README.md}
%attr(755,root,root) %{_bindir}/uhd_cal_rx_iq_balance
%attr(755,root,root) %{_bindir}/uhd_cal_tx_dc_offset
%attr(755,root,root) %{_bindir}/uhd_cal_tx_iq_balance
@@ -142,9 +235,6 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/uhd_images_downloader
%attr(755,root,root) %{_bindir}/uhd_usrp_probe
%attr(755,root,root) %{_bindir}/usrp2_card_burner
-%attr(755,root,root) %{_bindir}/usrp_n2xx_simple_net_burner
-%attr(755,root,root) %{_bindir}/usrp_x3xx_fpga_burner
-%{_mandir}/man1/octoclock_firmware_burner.1*
%{_mandir}/man1/uhd_cal_rx_iq_balance.1*
%{_mandir}/man1/uhd_cal_tx_dc_offset.1*
%{_mandir}/man1/uhd_cal_tx_iq_balance.1*
@@ -154,8 +244,6 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/uhd_images_downloader.1*
%{_mandir}/man1/uhd_usrp_probe.1*
%{_mandir}/man1/usrp2_card_burner.1*
-%{_mandir}/man1/usrp_n2xx_simple_net_burner.1*
-%{_mandir}/man1/usrp_x3xx_fpga_burner.1*
%dir %{_libdir}/%{name}/utils
%attr(755,root,root) %{_libdir}/%{name}/utils/b2xx_fx3_utils
%attr(755,root,root) %{_libdir}/%{name}/utils/converter_benchmark
@@ -165,12 +253,9 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/%{name}/utils/query_gpsdo_sensors
%attr(755,root,root) %{_libdir}/%{name}/utils/uhd_images_downloader.py
%attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_card_burner.py
-%attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_card_burner_gui.py
%attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_recovery.py
%attr(755,root,root) %{_libdir}/%{name}/utils/usrp_burn_db_eeprom
%attr(755,root,root) %{_libdir}/%{name}/utils/usrp_burn_mb_eeprom
-%attr(755,root,root) %{_libdir}/%{name}/utils/usrp_n2xx_net_burner.py
-%attr(755,root,root) %{_libdir}/%{name}/utils/usrp_n2xx_net_burner_gui.py
%{_libdir}/%{name}/utils/uhd-usrp.rules
%dir %{_libdir}/%{name}/utils/latency
%attr(755,root,root) %{_libdir}/%{name}/utils/latency/graph.py
@@ -179,8 +264,7 @@ rm -rf $RPM_BUILD_ROOT
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libuhd.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libuhd.so.003
+%attr(755,root,root) %{_libdir}/libuhd.so.3.15.0
%dir %{_libdir}/%{name}
%files devel
@@ -199,3 +283,53 @@ rm -rf $RPM_BUILD_ROOT
%files doc
%defattr(644,root,root,755)
%{_docdir}/%{name}
+
+%files -n python3-uhd
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/uhd
+%attr(755,root,root) %{py3_sitedir}/uhd/libpyuhd.so
+%{py3_sitedir}/uhd/*.py
+%{py3_sitedir}/uhd/__pycache__
+
+%if %{with mpm}
+%files mpm
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/db-dump
+%attr(755,root,root) %{_bindir}/db-id
+%attr(755,root,root) %{_bindir}/db-init
+%attr(755,root,root) %{_bindir}/eeprom-blank
+%attr(755,root,root) %{_bindir}/eeprom-dump
+%attr(755,root,root) %{_bindir}/eeprom-id
+%attr(755,root,root) %{_bindir}/eeprom-init
+%attr(755,root,root) %{_bindir}/eeprom-set-flags
+%attr(755,root,root) %{_bindir}/fan-limits
+%attr(755,root,root) %{_bindir}/mpm_debug.py
+%attr(755,root,root) %{_bindir}/mpm_shell.py
+%attr(755,root,root) %{_bindir}/n3xx_bist
+%attr(755,root,root) %{_bindir}/usrp_hwd.py
+%attr(755,root,root) %{_bindir}/usrp_update_fs
+%{systemdunitdir}/usrp-hwd.service
+
+%files mpm-libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libusrp-periphs.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libusrp-periphs.so.3
+
+%files mpm-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libusrp-periphs.so
+%{_includedir}/mpm
+
+%files -n python3-usrp_mpm
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/usrp_mpm
+%attr(755,root,root) %{py3_sitedir}/usrp_mpm/libpyusrp_periphs.so
+%{py3_sitedir}/usrp_mpm/*.py
+%{py3_sitedir}/usrp_mpm/__pycache__
+%{py3_sitedir}/usrp_mpm/chips
+%{py3_sitedir}/usrp_mpm/cores
+%{py3_sitedir}/usrp_mpm/dboard_manager
+%{py3_sitedir}/usrp_mpm/periph_manager
+%{py3_sitedir}/usrp_mpm/sys_utils
+%{py3_sitedir}/usrp_mpm/xports
+%endif
diff --git a/uhd-boost.patch b/uhd-boost.patch
index 0d7e336..f0d55d5 100644
--- a/uhd-boost.patch
+++ b/uhd-boost.patch
@@ -1,396 +1,285 @@
---- UHD_3.10.1.1_release/include/uhd/utils/byteswap.ipp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/include/uhd/utils/byteswap.ipp 2020-07-08 05:40:29.600351207 +0200
-@@ -99,12 +99,12 @@
- /***********************************************************************
- * Define the templated network to/from host conversions
- **********************************************************************/
--#include <boost/detail/endian.hpp>
-+#include <boost/predef/other/endian.h>
-
- namespace uhd {
-
- template<typename T> UHD_INLINE T ntohx(T num){
-- #ifdef BOOST_BIG_ENDIAN
-+ #if BOOST_ENDIAN_BIG_BYTE
- return num;
- #else
- return uhd::byteswap(num);
-@@ -112,7 +112,7 @@
- }
-
- template<typename T> UHD_INLINE T htonx(T num){
-- #ifdef BOOST_BIG_ENDIAN
-+ #if BOOST_ENDIAN_BIG_BYTE
- return num;
- #else
- return uhd::byteswap(num);
-@@ -120,7 +120,7 @@
- }
-
- template<typename T> UHD_INLINE T wtohx(T num){
-- #ifdef BOOST_BIG_ENDIAN
-+ #if BOOST_ENDIAN_BIG_BYTE
- return uhd::byteswap(num);
- #else
- return num;
-@@ -128,7 +128,7 @@
- }
-
- template<typename T> UHD_INLINE T htowx(T num){
-- #ifdef BOOST_BIG_ENDIAN
-+ #if BOOST_ENDIAN_BIG_BYTE
- return uhd::byteswap(num);
- #else
- return num;
---- UHD_3.10.1.1_release/lib/rfnoc/ddc_block_ctrl_impl.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/rfnoc/ddc_block_ctrl_impl.cpp 2020-07-08 19:19:33.150784423 +0200
-@@ -53,43 +53,43 @@
- for (size_t chan = 0; chan < get_input_ports().size(); chan++) {
- double default_freq = get_arg<double>("freq", chan);
- _tree->access<double>(get_arg_path("freq/value", chan))
-- .set_coercer(boost::bind(&ddc_block_ctrl_impl::set_freq, this, _1, chan))
-+ .set_coercer(boost::bind(&ddc_block_ctrl_impl::set_freq, this, boost::placeholders::_1, chan))
- .set(default_freq);
- ;
- double default_output_rate = get_arg<double>("output_rate", chan);
- _tree->access<double>(get_arg_path("output_rate/value", chan))
-- .set_coercer(boost::bind(&ddc_block_ctrl_impl::set_output_rate, this, _1, chan))
-+ .set_coercer(boost::bind(&ddc_block_ctrl_impl::set_output_rate, this, boost::placeholders::_1, chan))
- .set(default_output_rate)
- ;
- _tree->access<double>(get_arg_path("input_rate/value", chan))
-- .add_coerced_subscriber(boost::bind(&ddc_block_ctrl_impl::set_input_rate, this, _1, chan))
-+ .add_coerced_subscriber(boost::bind(&ddc_block_ctrl_impl::set_input_rate, this, boost::placeholders::_1, chan))
- ;
-
- // Legacy properties (for backward compat w/ multi_usrp)
- const uhd::fs_path dsp_base_path = _root_path / "legacy_api" / chan;
- // Legacy properties
- _tree->create<double>(dsp_base_path / "rate/value")
-- .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("output_rate/value", chan), _1))
-+ .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("output_rate/value", chan), boost::placeholders::_1))
- .set_publisher(boost::bind(&lambda_forward_prop, _tree, get_arg_path("output_rate/value", chan)))
- ;
- _tree->create<uhd::meta_range_t>(dsp_base_path / "rate/range")
- .set_publisher(boost::bind(&ddc_block_ctrl_impl::get_output_rates, this))
- ;
- _tree->create<double>(dsp_base_path / "freq/value")
-- .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("freq/value", chan), _1))
-+ .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("freq/value", chan), boost::placeholders::_1))
- .set_publisher(boost::bind(&lambda_forward_prop, _tree, get_arg_path("freq/value", chan)))
- ;
- _tree->create<uhd::meta_range_t>(dsp_base_path / "freq/range")
- .set_publisher(boost::bind(&ddc_block_ctrl_impl::get_freq_range, this))
- ;
- _tree->access<uhd::time_spec_t>("time/cmd")
-- .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_time, this, _1, chan))
-+ .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_time, this, boost::placeholders::_1, chan))
- ;
- if (_tree->exists("tick_rate")) {
- const double tick_rate = _tree->access<double>("tick_rate").get();
- set_command_tick_rate(tick_rate, chan);
- _tree->access<double>("tick_rate")
-- .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_tick_rate, this, _1, chan))
-+ .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_tick_rate, this, boost::placeholders::_1, chan))
- ;
- }
-
---- UHD_3.10.1.1_release/lib/rfnoc/duc_block_ctrl_impl.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/rfnoc/duc_block_ctrl_impl.cpp 2020-07-08 20:26:53.098898147 +0200
-@@ -53,43 +53,43 @@
- for (size_t chan = 0; chan < get_input_ports().size(); chan++) {
- double default_freq = get_arg<double>("freq", chan);
- _tree->access<double>(get_arg_path("freq/value", chan))
-- .set_coercer(boost::bind(&duc_block_ctrl_impl::set_freq, this, _1, chan))
-+ .set_coercer(boost::bind(&duc_block_ctrl_impl::set_freq, this, boost::placeholders::_1, chan))
- .set(default_freq);
- ;
- double default_input_rate = get_arg<double>("input_rate", chan);
- _tree->access<double>(get_arg_path("input_rate/value", chan))
-- .set_coercer(boost::bind(&duc_block_ctrl_impl::set_input_rate, this, _1, chan))
-+ .set_coercer(boost::bind(&duc_block_ctrl_impl::set_input_rate, this, boost::placeholders::_1, chan))
- .set(default_input_rate)
- ;
- _tree->access<double>(get_arg_path("output_rate/value", chan))
-- .add_coerced_subscriber(boost::bind(&duc_block_ctrl_impl::set_output_rate, this, _1, chan))
-+ .add_coerced_subscriber(boost::bind(&duc_block_ctrl_impl::set_output_rate, this, boost::placeholders::_1, chan))
- ;
-
- // Legacy properties (for backward compat w/ multi_usrp)
- const uhd::fs_path dsp_base_path = _root_path / "legacy_api" / chan;
- // Legacy properties
- _tree->create<double>(dsp_base_path / "rate/value")
-- .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("input_rate/value", chan), _1))
-+ .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("input_rate/value", chan), boost::placeholders::_1))
- .set_publisher(boost::bind(&lambda_forward_prop, _tree, get_arg_path("input_rate/value", chan)))
- ;
- _tree->create<uhd::meta_range_t>(dsp_base_path / "rate/range")
- .set_publisher(boost::bind(&duc_block_ctrl_impl::get_input_rates, this))
- ;
- _tree->create<double>(dsp_base_path / "freq/value")
-- .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("freq/value", chan), _1))
-+ .set_coercer(boost::bind(&lambda_forward_prop, _tree, get_arg_path("freq/value", chan), boost::placeholders::_1))
- .set_publisher(boost::bind(&lambda_forward_prop, _tree, get_arg_path("freq/value", chan)))
- ;
- _tree->create<uhd::meta_range_t>(dsp_base_path / "freq/range")
- .set_publisher(boost::bind(&duc_block_ctrl_impl::get_freq_range, this))
- ;
- _tree->access<uhd::time_spec_t>("time/cmd")
-- .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_time, this, _1, chan))
-+ .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_time, this, boost::placeholders::_1, chan))
- ;
- if (_tree->exists("tick_rate")) {
- const double tick_rate = _tree->access<double>("tick_rate").get();
- set_command_tick_rate(tick_rate, chan);
- _tree->access<double>("tick_rate")
-- .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_tick_rate, this, _1, chan))
-+ .add_coerced_subscriber(boost::bind(&block_ctrl_base::set_command_tick_rate, this, boost::placeholders::_1, chan))
- ;
- }
-
---- UHD_3.10.1.1_release/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp 2020-07-08 21:00:50.884525182 +0200
-@@ -43,19 +43,19 @@
- // poke32 functor
- boost::bind(
- static_cast< void (block_ctrl_base::*)(const uint32_t, const uint32_t, const size_t) >(&block_ctrl_base::sr_write),
-- this, _1, _2, i
-+ this, boost::placeholders::_1, boost::placeholders::_2, i
- ),
- // peek32 functor
- boost::bind(
- static_cast< uint32_t (block_ctrl_base::*)(const uint32_t, const size_t) >(&block_ctrl_base::user_reg_read32),
- this,
-- _1, i
-+ boost::placeholders::_1, i
- ),
- // peek64 functor
- boost::bind(
- static_cast< uint64_t (block_ctrl_base::*)(const uint32_t, const size_t) >(&block_ctrl_base::user_reg_read64),
- this,
-- _1, i
-+ boost::placeholders::_1, i
- )
- );
- static const uint32_t USER_SR_BASE = 128*4;
-@@ -81,11 +81,11 @@
+--- 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 <uhdlib/rfnoc/wb_iface_adapter.hpp>
+ #include <uhdlib/usrp/cores/dma_fifo_core_3000.hpp>
+ #include <boost/format.hpp>
+-#include <boost/make_shared.hpp>
+ #include <boost/thread/mutex.hpp>
++#include <functional>
+
+ using namespace uhd;
+ using namespace uhd::rfnoc;
+@@ -56,17 +56,17 @@
}
}
_tree->access<int>(get_arg_path("base_addr/value", i))
-- .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize, this, _1, boost::ref(_perifs[i].depth), i))
-+ .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize, this, boost::placeholders::_1, boost::ref(_perifs[i].depth), i))
- .set(_perifs[i].base_addr)
- ;
+- .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<int>(get_arg_path("depth/value", i))
-- .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize, this, boost::ref(_perifs[i].base_addr), _1, i))
-+ .add_coerced_subscriber(boost::bind(&dma_fifo_block_ctrl_impl::resize, this, boost::ref(_perifs[i].base_addr), boost::placeholders::_1, i))
- .set(_perifs[i].depth)
- ;
+- .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.10.1.1_release/lib/usrp/multi_usrp.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/multi_usrp.cpp 2020-07-08 21:03:33.130312888 +0200
-@@ -221,7 +221,7 @@
+--- 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 <boost/format.hpp>
+ #include <boost/algorithm/string.hpp>
+ #include <algorithm>
++#include <functional>
+ #include <cmath>
+ #include <bitset>
+ #include <chrono>
+@@ -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.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.set_value = boost::bind(&set_gain_value, subtree, boost::placeholders::_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.10.1.1_release/lib/usrp/cores/rx_vita_core_3000.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/cores/rx_vita_core_3000.cpp 2020-07-08 21:23:54.500362825 +0200
-@@ -74,7 +74,7 @@
- // At 1 ms * 200 MHz = 200k cycles, 8 bytes * 200k cycles = 1.6 MB
- // of flushed data, when the typical amount of data buffered
- // is on the order of kilobytes
-- boost::this_thread::sleep(boost::posix_time::milliseconds(1.0));
-+ boost::this_thread::sleep(boost::posix_time::milliseconds(1));
-
- _iface->poke32(REG_FC_WINDOW, window_size-1);
- _iface->poke32(REG_FC_ENABLE, window_size?1:0);
---- UHD_3.10.1.1_release/lib/usrp/cores/rx_dsp_core_3000.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/cores/rx_dsp_core_3000.cpp 2020-07-08 22:08:18.879261980 +0200
-@@ -284,11 +284,11 @@
- ;
+--- 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<meta_range_t>("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<double>("rate/value")
.set(DEFAULT_RATE)
-- .set_coercer(boost::bind(&rx_dsp_core_3000::set_host_rate, this, _1))
-+ .set_coercer(boost::bind(&rx_dsp_core_3000::set_host_rate, this, boost::placeholders::_1))
- ;
+- .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<double>("freq/value")
.set(DEFAULT_CORDIC_FREQ)
- .set_coercer(boost::bind(&rx_dsp_core_3000::set_freq, this, _1))
-+ .set_coercer(boost::bind(&rx_dsp_core_3000::set_freq, this, boost::placeholders::_1))
- ;
++ .set_coercer(std::bind(&rx_dsp_core_3000::set_freq, this, std::placeholders::_1))
+ .set_publisher([this]() { return this->get_freq(); });
subtree->create<meta_range_t>("freq/range")
- .set_publisher(boost::bind(&rx_dsp_core_3000::get_freq_range, this))
---- UHD_3.10.1.1_release/lib/usrp/cores/tx_dsp_core_3000.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/cores/tx_dsp_core_3000.cpp 2020-07-08 22:08:52.442413486 +0200
-@@ -184,11 +184,11 @@
- ;
+- .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 <boost/thread/thread.hpp> //sleep
+ #include <algorithm>
+ #include <cmath>
++#include <functional>
+
+ #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<meta_range_t>("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<double>("rate/value")
.set(DEFAULT_RATE)
-- .set_coercer(boost::bind(&tx_dsp_core_3000::set_host_rate, this, _1))
-+ .set_coercer(boost::bind(&tx_dsp_core_3000::set_host_rate, this, boost::placeholders::_1))
- ;
+- .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<double>("freq/value")
.set(DEFAULT_CORDIC_FREQ)
- .set_coercer(boost::bind(&tx_dsp_core_3000::set_freq, this, _1))
-+ .set_coercer(boost::bind(&tx_dsp_core_3000::set_freq, this, boost::placeholders::_1))
- ;
++ .set_coercer(std::bind(&tx_dsp_core_3000::set_freq, this, std::placeholders::_1))
+ .set_publisher([this]() { return this->get_freq(); });
subtree->create<meta_range_t>("freq/range")
- .set_publisher(boost::bind(&tx_dsp_core_3000::get_freq_range, this))
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_xcvr2450.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_xcvr2450.cpp 2020-07-08 22:28:53.719238944 +0200
-@@ -236,18 +236,18 @@
- .set_publisher(boost::bind(&xcvr2450::get_rssi, this));
- BOOST_FOREACH(const std::string &name, xcvr_rx_gain_ranges.keys()){
+- .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<std::string>("name")
+ .set("XCVR2450 RX");
+ this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
+- .set_publisher(boost::bind(&xcvr2450::get_locked, this));
++ .set_publisher(std::bind(&xcvr2450::get_locked, this));
+ this->get_rx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&xcvr2450::set_rx_gain, this, _1, name))
-+ .set_coercer(boost::bind(&xcvr2450::set_rx_gain, this, boost::placeholders::_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<meta_range_t>("gains/"+name+"/range")
.set(xcvr_rx_gain_ranges[name]);
}
this->get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, _1))
-+ .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&xcvr2450::set_lo_freq, this, std::placeholders::_1))
.set(double(2.45e9));
this->get_rx_subtree()->create<meta_range_t>("freq/range")
.set(xcvr_freq_range);
this->get_rx_subtree()->create<std::string>("antenna/value")
- .add_coerced_subscriber(boost::bind(&xcvr2450::set_rx_ant, this, _1))
-+ .add_coerced_subscriber(boost::bind(&xcvr2450::set_rx_ant, this, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&xcvr2450::set_rx_ant, this, std::placeholders::_1))
.set(xcvr_antennas.at(0));
this->get_rx_subtree()->create<std::vector<std::string> >("antenna/options")
.set(xcvr_antennas);
-@@ -258,7 +258,7 @@
+@@ -249,7 +249,7 @@
this->get_rx_subtree()->create<bool>("use_lo_offset")
.set(false);
this->get_rx_subtree()->create<double>("bandwidth/value")
- .set_coercer(boost::bind(&xcvr2450::set_rx_bandwidth, this, _1)) //complex bandpass bandwidth
-+ .set_coercer(boost::bind(&xcvr2450::set_rx_bandwidth, this, boost::placeholders::_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<meta_range_t>("bandwidth/range")
.set(xcvr_rx_bandwidth_range);
-@@ -272,18 +272,18 @@
- .set_publisher(boost::bind(&xcvr2450::get_locked, this));
- BOOST_FOREACH(const std::string &name, xcvr_tx_gain_ranges.keys()){
+@@ -260,21 +260,21 @@
+ this->get_tx_subtree()->create<std::string>("name")
+ .set("XCVR2450 TX");
+ this->get_tx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&xcvr2450::set_tx_gain, this, _1, name))
-+ .set_coercer(boost::bind(&xcvr2450::set_tx_gain, this, boost::placeholders::_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<meta_range_t>("gains/"+name+"/range")
.set(xcvr_tx_gain_ranges[name]);
}
this->get_tx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, _1))
-+ .set_coercer(boost::bind(&xcvr2450::set_lo_freq, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&xcvr2450::set_lo_freq, this, std::placeholders::_1))
.set(double(2.45e9));
this->get_tx_subtree()->create<meta_range_t>("freq/range")
.set(xcvr_freq_range);
this->get_tx_subtree()->create<std::string>("antenna/value")
- .add_coerced_subscriber(boost::bind(&xcvr2450::set_tx_ant, this, _1))
-+ .add_coerced_subscriber(boost::bind(&xcvr2450::set_tx_ant, this, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&xcvr2450::set_tx_ant, this, std::placeholders::_1))
.set(xcvr_antennas.at(1));
this->get_tx_subtree()->create<std::vector<std::string> >("antenna/options")
.set(xcvr_antennas);
-@@ -294,7 +294,7 @@
+@@ -285,7 +285,7 @@
this->get_tx_subtree()->create<bool>("use_lo_offset")
.set(false);
this->get_tx_subtree()->create<double>("bandwidth/value")
- .set_coercer(boost::bind(&xcvr2450::set_tx_bandwidth, this, _1)) //complex bandpass bandwidth
-+ .set_coercer(boost::bind(&xcvr2450::set_tx_bandwidth, this, boost::placeholders::_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<meta_range_t>("bandwidth/range")
.set(xcvr_tx_bandwidth_range);
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_sbx_common.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_sbx_common.cpp 2020-07-08 22:29:40.068987846 +0200
-@@ -162,17 +162,17 @@
- .set_publisher(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_RX));
- BOOST_FOREACH(const std::string &name, sbx_rx_gain_ranges.keys()){
+--- 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<std::string>("name").set("SBX/CBX RX");
+
+ this->get_rx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&sbx_xcvr::set_rx_gain, this, _1, name))
-+ .set_coercer(boost::bind(&sbx_xcvr::set_rx_gain, this, boost::placeholders::_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<meta_range_t>("gains/"+name+"/range")
.set(sbx_rx_gain_ranges[name]);
}
this->get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, _1))
-+ .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, boost::placeholders::_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<meta_range_t>("freq/range").set(freq_range);
this->get_rx_subtree()->create<std::string>("antenna/value")
- .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_rx_ant, this, _1))
-+ .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_rx_ant, this, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&sbx_xcvr::set_rx_ant, this, std::placeholders::_1))
.set("RX2");
this->get_rx_subtree()->create<std::vector<std::string> >("antenna/options")
.set(sbx_rx_antennas);
-@@ -203,17 +203,17 @@
- .set_publisher(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_TX));
- BOOST_FOREACH(const std::string &name, sbx_tx_gain_ranges.keys()){
+@@ -187,20 +187,20 @@
+ else this->get_tx_subtree()->create<std::string>("name").set("SBX/CBX TX");
+
+ this->get_tx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&sbx_xcvr::set_tx_gain, this, _1, name))
-+ .set_coercer(boost::bind(&sbx_xcvr::set_tx_gain, this, boost::placeholders::_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<meta_range_t>("gains/"+name+"/range")
.set(sbx_tx_gain_ranges[name]);
}
this->get_tx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, _1))
-+ .set_coercer(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, boost::placeholders::_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<meta_range_t>("freq/range").set(freq_range);
this->get_tx_subtree()->create<std::string>("antenna/value")
- .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_tx_ant, this, _1))
-+ .add_coerced_subscriber(boost::bind(&sbx_xcvr::set_tx_ant, this, boost::placeholders::_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<std::vector<std::string> >("antenna/options")
.set(sbx_tx_antennas);
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_sbx_version3.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_sbx_version3.cpp 2020-07-08 22:36:13.023525695 +0200
-@@ -30,8 +30,8 @@
+--- 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(boost::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_TX, boost::placeholders::_1));
-+ _rxlo = adf435x_iface::make_adf4350(boost::bind(&sbx_xcvr::sbx_version3::write_lo_regs, this, dboard_iface::UNIT_RX, boost::placeholders::_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.10.1.1_release/lib/usrp/dboard/db_sbx_version4.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_sbx_version4.cpp 2020-07-09 06:17:05.980383443 +0200
-@@ -30,8 +30,8 @@
+--- 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(boost::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_TX, boost::placeholders::_1));
-+ _rxlo = adf435x_iface::make_adf4351(boost::bind(&sbx_xcvr::sbx_version4::write_lo_regs, this, dboard_iface::UNIT_RX, boost::placeholders::_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.10.1.1_release/lib/usrp/dboard/db_cbx.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_cbx.cpp 2020-07-09 06:17:37.116881429 +0200
-@@ -29,8 +29,8 @@
+--- 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<max2870>(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, _1));
- _rxlo = max287x_iface::make<max2870>(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, _1));
-+ _txlo = max287x_iface::make<max2870>(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, boost::placeholders::_1));
-+ _rxlo = max287x_iface::make<max2870>(boost::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, boost::placeholders::_1));
++ _txlo = max287x_iface::make<max2870>(std::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_TX, std::placeholders::_1));
++ _rxlo = max287x_iface::make<max2870>(std::bind(&sbx_xcvr::cbx::write_lo_regs, this, dboard_iface::UNIT_RX, std::placeholders::_1));
}
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_ubx.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_ubx.cpp 2020-07-09 06:18:37.829885852 +0200
-@@ -365,10 +365,10 @@
+--- 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)
{
@@ -398,14 +287,14 @@
- _txlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));
- _rxlo1 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1));
- _rxlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1));
-+ _txlo1 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, boost::placeholders::_1));
-+ _txlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, boost::placeholders::_1));
-+ _rxlo1 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, boost::placeholders::_1));
-+ _rxlo2 = max287x_iface::make<max2870>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, boost::placeholders::_1));
- std::vector<max287x_iface::sptr> los = boost::assign::list_of(_txlo1)(_txlo2)(_rxlo1)(_rxlo2);
- BOOST_FOREACH(max287x_iface::sptr lo, los)
++ _txlo1 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, std::placeholders::_1));
++ _txlo2 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, std::placeholders::_1));
++ _rxlo1 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, std::placeholders::_1));
++ _rxlo2 = max287x_iface::make<max2870>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, std::placeholders::_1));
+ std::vector<max287x_iface::sptr> los{_txlo1, _txlo2, _rxlo1, _rxlo2};
+ for(max287x_iface::sptr lo: los)
{
-@@ -379,10 +379,10 @@
+@@ -409,10 +409,10 @@
}
else if (_rev == 1 or _rev == 2)
{
@@ -413,660 +302,574 @@
- _txlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));
- _rxlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, _1));
- _rxlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, _1));
-+ _txlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, boost::placeholders::_1));
-+ _txlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, boost::placeholders::_1));
-+ _rxlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, boost::placeholders::_1));
-+ _rxlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, boost::placeholders::_1));
- std::vector<max287x_iface::sptr> los = boost::assign::list_of(_txlo1)(_txlo2)(_rxlo1)(_rxlo2);
- BOOST_FOREACH(max287x_iface::sptr lo, los)
++ _txlo1 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, std::placeholders::_1));
++ _txlo2 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, std::placeholders::_1));
++ _rxlo1 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO1, std::placeholders::_1));
++ _rxlo2 = max287x_iface::make<max2871>(std::bind(&ubx_xcvr::write_spi_regs, this, RXLO2, std::placeholders::_1));
+ std::vector<max287x_iface::sptr> los{_txlo1, _txlo2, _rxlo1, _rxlo2};
+ for(max287x_iface::sptr lo: los)
{
-@@ -409,22 +409,22 @@
+@@ -439,12 +439,12 @@
get_rx_subtree()->create<std::vector<std::string> >("power_mode/options")
.set(ubx_power_modes);
get_rx_subtree()->create<std::string>("power_mode/value")
- .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_power_mode, this, _1))
-+ .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_power_mode, this, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&ubx_xcvr::set_power_mode, this, std::placeholders::_1))
.set("performance");
get_rx_subtree()->create<std::vector<std::string> >("xcvr_mode/options")
.set(ubx_xcvr_modes);
get_rx_subtree()->create<std::string>("xcvr_mode/value")
- .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_xcvr_mode, this, _1))
-+ .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_xcvr_mode, this, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&ubx_xcvr::set_xcvr_mode, this, std::placeholders::_1))
.set("FDX");
+ get_rx_subtree()->create<std::vector<std::string> >("temp_comp_mode/options")
+ .set(ubx_temp_comp_modes);
+@@ -456,13 +456,13 @@
get_tx_subtree()->create<std::vector<std::string> >("power_mode/options")
.set(ubx_power_modes);
get_tx_subtree()->create<std::string>("power_mode/value")
- .add_coerced_subscriber(boost::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("power_mode/value"), _1))
-+ .add_coerced_subscriber(boost::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("power_mode/value"), boost::placeholders::_1))
- .set_publisher(boost::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("power_mode/value")));
+- .set_publisher(boost::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("power_mode/value")));
++ .add_coerced_subscriber(std::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("power_mode/value"), std::placeholders::_1))
++ .set_publisher(std::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("power_mode/value")));
get_tx_subtree()->create<std::vector<std::string> >("xcvr_mode/options")
.set(ubx_xcvr_modes);
get_tx_subtree()->create<std::string>("xcvr_mode/value")
- .add_coerced_subscriber(boost::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("xcvr_mode/value"), _1))
-+ .add_coerced_subscriber(boost::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("xcvr_mode/value"), boost::placeholders::_1))
- .set_publisher(boost::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("xcvr_mode/value")));
-
- ////////////////////////////////////////////////////////////////////
-@@ -436,18 +436,18 @@
+- .set_publisher(boost::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("xcvr_mode/value")));
++ .add_coerced_subscriber(std::bind(&uhd::property<std::string>::set, &get_rx_subtree()->access<std::string>("xcvr_mode/value"), std::placeholders::_1))
++ .set_publisher(std::bind(&uhd::property<std::string>::get, &get_rx_subtree()->access<std::string>("xcvr_mode/value")));
+ get_tx_subtree()->create<std::vector<std::string> >("temp_comp_mode/options")
+ .set(ubx_temp_comp_modes);
+ get_tx_subtree()
+@@ -486,20 +486,20 @@
+ get_tx_subtree()->create<device_addr_t>("tune_args")
+ .set(device_addr_t());
get_tx_subtree()->create<sensor_value_t>("sensors/lo_locked")
- .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "TXLO"));
+- .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "TXLO"));
++ .set_publisher(std::bind(&ubx_xcvr::get_locked, this, "TXLO"));
get_tx_subtree()->create<double>("gains/PGA0/value")
- .set_coercer(boost::bind(&ubx_xcvr::set_tx_gain, this, _1)).set(0);
-+ .set_coercer(boost::bind(&ubx_xcvr::set_tx_gain, this, boost::placeholders::_1)).set(0);
++ .set_coercer(std::bind(&ubx_xcvr::set_tx_gain, this, std::placeholders::_1)).set(0);
get_tx_subtree()->create<meta_range_t>("gains/PGA0/range")
.set(ubx_tx_gain_range);
get_tx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&ubx_xcvr::set_tx_freq, this, _1))
-+ .set_coercer(boost::bind(&ubx_xcvr::set_tx_freq, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&ubx_xcvr::set_tx_freq, this, std::placeholders::_1))
.set(ubx_freq_range.start());
get_tx_subtree()->create<meta_range_t>("freq/range")
.set(ubx_freq_range);
get_tx_subtree()->create<std::vector<std::string> >("antenna/options")
.set(ubx_tx_antennas);
get_tx_subtree()->create<std::string>("antenna/value")
-- .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_tx_ant, this, _1))
-+ .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_tx_ant, this, boost::placeholders::_1))
+- .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<std::string>("connection")
.set("QI");
-@@ -460,7 +460,7 @@
+@@ -512,7 +512,7 @@
get_tx_subtree()->create<meta_range_t>("bandwidth/range")
.set(freq_range_t(bw, bw));
get_tx_subtree()->create<int64_t>("sync_delay")
- .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, true, _1))
-+ .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, true, boost::placeholders::_1))
- .set(-8);
++ .add_coerced_subscriber(std::bind(&ubx_xcvr::set_sync_delay, this, true, std::placeholders::_1))
+ .set(0);
////////////////////////////////////////////////////////////////////
-@@ -472,19 +472,19 @@
+@@ -522,21 +522,21 @@
+ get_rx_subtree()->create<device_addr_t>("tune_args")
+ .set(device_addr_t());
get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
- .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "RXLO"));
+- .set_publisher(boost::bind(&ubx_xcvr::get_locked, this, "RXLO"));
++ .set_publisher(std::bind(&ubx_xcvr::get_locked, this, "RXLO"));
get_rx_subtree()->create<double>("gains/PGA0/value")
- .set_coercer(boost::bind(&ubx_xcvr::set_rx_gain, this, _1))
-+ .set_coercer(boost::bind(&ubx_xcvr::set_rx_gain, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&ubx_xcvr::set_rx_gain, this, std::placeholders::_1))
.set(0);
get_rx_subtree()->create<meta_range_t>("gains/PGA0/range")
.set(ubx_rx_gain_range);
get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&ubx_xcvr::set_rx_freq, this, _1))
-+ .set_coercer(boost::bind(&ubx_xcvr::set_rx_freq, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&ubx_xcvr::set_rx_freq, this, std::placeholders::_1))
.set(ubx_freq_range.start());
get_rx_subtree()->create<meta_range_t>("freq/range")
.set(ubx_freq_range);
get_rx_subtree()->create<std::vector<std::string> >("antenna/options")
.set(ubx_rx_antennas);
get_rx_subtree()->create<std::string>("antenna/value")
-- .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_rx_ant, this, _1)).set("RX2");
-+ .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_rx_ant, this, boost::placeholders::_1)).set("RX2");
+- .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<std::string>("connection")
.set("IQ");
get_rx_subtree()->create<bool>("enabled")
-@@ -496,7 +496,7 @@
+@@ -548,7 +548,7 @@
get_rx_subtree()->create<meta_range_t>("bandwidth/range")
.set(freq_range_t(bw, bw));
get_rx_subtree()->create<int64_t>("sync_delay")
- .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, false, _1))
-+ .add_coerced_subscriber(boost::bind(&ubx_xcvr::set_sync_delay, this, false, boost::placeholders::_1))
- .set(-8);
++ .add_coerced_subscriber(std::bind(&ubx_xcvr::set_sync_delay, this, false, std::placeholders::_1))
+ .set(0);
}
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_dbsrx.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_dbsrx.cpp 2020-07-09 06:20:21.969321680 +0200
-@@ -207,13 +207,13 @@
- .set_publisher(boost::bind(&dbsrx::get_locked, this));
- BOOST_FOREACH(const std::string &name, dbsrx_gain_ranges.keys()){
+--- 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<std::string>("name")
+ .set("DBSRX");
+ this->get_rx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&dbsrx::set_gain, this, _1, name))
-+ .set_coercer(boost::bind(&dbsrx::set_gain, this, boost::placeholders::_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<meta_range_t>("gains/"+name+"/range")
.set(dbsrx_gain_ranges[name]);
}
this->get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&dbsrx::set_lo_freq, this, _1));
-+ .set_coercer(boost::bind(&dbsrx::set_lo_freq, this, boost::placeholders::_1));
++ .set_coercer(std::bind(&dbsrx::set_lo_freq, this, std::placeholders::_1));
this->get_rx_subtree()->create<meta_range_t>("freq/range")
.set(dbsrx_freq_range);
this->get_rx_subtree()->create<std::string>("antenna/value")
-@@ -227,7 +227,7 @@
+@@ -218,7 +218,7 @@
this->get_rx_subtree()->create<bool>("use_lo_offset")
.set(false);
this->get_rx_subtree()->create<double>("bandwidth/value")
- .set_coercer(boost::bind(&dbsrx::set_bandwidth, this, _1));
-+ .set_coercer(boost::bind(&dbsrx::set_bandwidth, this, boost::placeholders::_1));
++ .set_coercer(std::bind(&dbsrx::set_bandwidth, this, std::placeholders::_1));
this->get_rx_subtree()->create<meta_range_t>("bandwidth/range")
.set(dbsrx_bandwidth_range);
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_tvrx.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_tvrx.cpp 2020-07-09 06:21:12.305715651 +0200
-@@ -190,12 +190,12 @@
+--- 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<int>("sensors"); //phony property so this dir exists
- BOOST_FOREACH(const std::string &name, get_tvrx_gain_ranges().keys()){
+ for(const std::string &name: get_tvrx_gain_ranges().keys()){
this->get_rx_subtree()->create<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&tvrx::set_gain, this, _1, name));
-+ .set_coercer(boost::bind(&tvrx::set_gain, this, boost::placeholders::_1, name));
++ .set_coercer(std::bind(&tvrx::set_gain, this, std::placeholders::_1, name));
this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
.set(get_tvrx_gain_ranges()[name]);
}
this->get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&tvrx::set_freq, this, _1));
-+ .set_coercer(boost::bind(&tvrx::set_freq, this, boost::placeholders::_1));
++ .set_coercer(std::bind(&tvrx::set_freq, this, std::placeholders::_1));
this->get_rx_subtree()->create<meta_range_t>("freq/range")
.set(tvrx_freq_range);
this->get_rx_subtree()->create<std::string>("antenna/value")
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_dbsrx2.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_dbsrx2.cpp 2020-07-09 06:23:43.534896372 +0200
-@@ -194,13 +194,13 @@
- .set_publisher(boost::bind(&dbsrx2::get_locked, this));
- BOOST_FOREACH(const std::string &name, dbsrx2_gain_ranges.keys()){
+--- 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<std::string>("name")
+ .set("DBSRX");
+ this->get_rx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&dbsrx2::set_gain, this, _1, name))
-+ .set_coercer(boost::bind(&dbsrx2::set_gain, this, boost::placeholders::_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<meta_range_t>("gains/"+name+"/range")
.set(dbsrx2_gain_ranges[name]);
}
this->get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&dbsrx2::set_lo_freq, this, _1))
-+ .set_coercer(boost::bind(&dbsrx2::set_lo_freq, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&dbsrx2::set_lo_freq, this, std::placeholders::_1))
.set(dbsrx2_freq_range.start());
this->get_rx_subtree()->create<meta_range_t>("freq/range")
.set(dbsrx2_freq_range);
-@@ -218,7 +218,7 @@
+@@ -203,7 +203,7 @@
double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX);
this->get_rx_subtree()->create<double>("bandwidth/value")
- .set_coercer(boost::bind(&dbsrx2::set_bandwidth, this, _1))
-+ .set_coercer(boost::bind(&dbsrx2::set_bandwidth, this, boost::placeholders::_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<meta_range_t>("bandwidth/range")
---- UHD_3.10.1.1_release/lib/usrp/dboard/db_tvrx2.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/db_tvrx2.cpp 2020-07-09 06:26:07.947447355 +0200
-@@ -964,12 +964,12 @@
- .set_publisher(boost::bind(&tvrx2::get_temp, this));
- BOOST_FOREACH(const std::string &name, tvrx2_gain_ranges.keys()){
+--- 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<std::string>("name")
+ .set("TVRX2");
+ this->get_rx_subtree()->create<sensor_value_t>("sensors/lo_locked")
+- .set_publisher(boost::bind(&tvrx2::get_locked, this));
++ .set_publisher(std::bind(&tvrx2::get_locked, this));
+ this->get_rx_subtree()->create<sensor_value_t>("sensors/rssi")
+- .set_publisher(boost::bind(&tvrx2::get_rssi, this));
++ .set_publisher(std::bind(&tvrx2::get_rssi, this));
+ this->get_rx_subtree()->create<sensor_value_t>("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<double>("gains/"+name+"/value")
- .set_coercer(boost::bind(&tvrx2::set_gain, this, _1, name));
-+ .set_coercer(boost::bind(&tvrx2::set_gain, this, boost::placeholders::_1, name));
++ .set_coercer(std::bind(&tvrx2::set_gain, this, std::placeholders::_1, name));
this->get_rx_subtree()->create<meta_range_t>("gains/"+name+"/range")
.set(tvrx2_gain_ranges[name]);
}
this->get_rx_subtree()->create<double>("freq/value")
- .set_coercer(boost::bind(&tvrx2::set_lo_freq, this, _1));
-+ .set_coercer(boost::bind(&tvrx2::set_lo_freq, this, boost::placeholders::_1));
++ .set_coercer(std::bind(&tvrx2::set_lo_freq, this, std::placeholders::_1));
this->get_rx_subtree()->create<meta_range_t>("freq/range")
.set(tvrx2_freq_range);
this->get_rx_subtree()->create<std::string>("antenna/value")
-@@ -979,12 +979,12 @@
+@@ -973,12 +973,12 @@
this->get_rx_subtree()->create<std::string>("connection")
.set(tvrx2_sd_name_to_conn[get_subdev_name()]);
this->get_rx_subtree()->create<bool>("enabled")
- .set_coercer(boost::bind(&tvrx2::set_enabled, this, _1))
-+ .set_coercer(boost::bind(&tvrx2::set_enabled, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&tvrx2::set_enabled, this, std::placeholders::_1))
.set(_enabled);
this->get_rx_subtree()->create<bool>("use_lo_offset")
.set(false);
this->get_rx_subtree()->create<double>("bandwidth/value")
- .set_coercer(boost::bind(&tvrx2::set_bandwidth, this, _1))
-+ .set_coercer(boost::bind(&tvrx2::set_bandwidth, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&tvrx2::set_bandwidth, this, std::placeholders::_1))
.set(_bandwidth);
this->get_rx_subtree()->create<meta_range_t>("bandwidth/range")
.set(tvrx2_bandwidth_range);
---- UHD_3.10.1.1_release/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp 2020-07-09 06:30:57.462545585 +0200
-@@ -51,14 +51,14 @@
- }
- //Initialize synthesizer objects
- _lo1_iface[size_t(CH1)] = adf5355_iface::make(
-- boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_TX, _1));
-+ boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_TX, boost::placeholders::_1));
- _lo1_iface[size_t(CH2)] = adf5355_iface::make(
-- boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_TX, _1));
-+ boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_TX, boost::placeholders::_1));
-
- _lo2_iface[size_t(CH1)] = adf435x_iface::make_adf4351(
-- boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_RX, _1));
-+ boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_RX, boost::placeholders::_1));
- _lo2_iface[size_t(CH2)] = adf435x_iface::make_adf4351(
-- boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_RX, _1));
-+ boost::bind(&twinrx_ctrl_impl::_write_lo_spi, this, dboard_iface::UNIT_RX, boost::placeholders::_1));
-
- // Assert synthesizer chip enables
- _gpio_iface->set_field(twinrx_gpio::FIELD_LO1_CE_CH1, 1);
---- UHD_3.10.1.1_release/lib/usrp/b100/b100_impl.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/b100/b100_impl.cpp 2020-07-09 06:40:34.302753906 +0200
-@@ -279,7 +279,7 @@
+--- 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<std::string>(mb_path / "name").set("B100");
_tree->create<std::string>(mb_path / "codename").set("B-Hundo");
_tree->create<std::string>(mb_path / "load_eeprom")
- .add_coerced_subscriber(boost::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, _1));
-+ .add_coerced_subscriber(boost::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, std::placeholders::_1));
////////////////////////////////////////////////////////////////////
// setup the mboard eeprom
-@@ -287,7 +287,7 @@
- const mboard_eeprom_t mb_eeprom(*_fx2_ctrl, B100_EEPROM_MAP_KEY);
+@@ -282,20 +282,20 @@
+ const mboard_eeprom_t mb_eeprom = this->get_mb_eeprom(_fx2_ctrl);
_tree->create<mboard_eeprom_t>(mb_path / "eeprom")
.set(mb_eeprom)
- .add_coerced_subscriber(boost::bind(&b100_impl::set_mb_eeprom, this, _1));
-+ .add_coerced_subscriber(boost::bind(&b100_impl::set_mb_eeprom, this, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&b100_impl::set_mb_eeprom, this, std::placeholders::_1));
////////////////////////////////////////////////////////////////////
// create clock control objects
-@@ -295,12 +295,12 @@
+ ////////////////////////////////////////////////////////////////////
//^^^ clock created up top, just reg props here... ^^^
_tree->create<double>(mb_path / "tick_rate")
- .set_publisher(boost::bind(&b100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl))
+- .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));
-+ .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, boost::placeholders::_1))
-+ .add_coerced_subscriber(boost::bind(&b100_impl::update_tick_rate, this, boost::placeholders::_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<time_spec_t>(mb_path / "time/cmd")
- .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, _1));
-+ .add_coerced_subscriber(boost::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, std::placeholders::_1));
////////////////////////////////////////////////////////////////////
// create codec control objects
-@@ -311,12 +311,12 @@
+@@ -306,20 +306,20 @@
_tree->create<std::string>(rx_codec_path / "name").set("ad9522");
_tree->create<meta_range_t>(rx_codec_path / "gains/pga/range").set(b100_codec_ctrl::rx_pga_gain_range);
_tree->create<double>(rx_codec_path / "gains/pga/value")
- .set_coercer(boost::bind(&b100_impl::update_rx_codec_gain, this, _1))
-+ .set_coercer(boost::bind(&b100_impl::update_rx_codec_gain, this, boost::placeholders::_1))
++ .set_coercer(std::bind(&b100_impl::update_rx_codec_gain, this, std::placeholders::_1))
.set(0.0);
_tree->create<std::string>(tx_codec_path / "name").set("ad9522");
_tree->create<meta_range_t>(tx_codec_path / "gains/pga/range").set(b100_codec_ctrl::tx_pga_gain_range);
_tree->create<double>(tx_codec_path / "gains/pga/value")
- .add_coerced_subscriber(boost::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, _1))
-+ .add_coerced_subscriber(boost::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, boost::placeholders::_1))
- .set_publisher(boost::bind(&b100_codec_ctrl::get_tx_pga_gain, _codec_ctrl))
+- .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);
-@@ -333,27 +333,27 @@
+ ////////////////////////////////////////////////////////////////////
+ // and do the misc mboard sensors
+ ////////////////////////////////////////////////////////////////////
+ _tree->create<sensor_value_t>(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<subdev_spec_t>(mb_path / "rx_subdev_spec")
- .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_subdev_spec, this, _1));
-+ .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_subdev_spec, this, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&b100_impl::update_rx_subdev_spec, this, std::placeholders::_1));
_tree->create<subdev_spec_t>(mb_path / "tx_subdev_spec")
- .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_subdev_spec, this, _1));
-+ .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_subdev_spec, this, boost::placeholders::_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<std::complex<double> >(rx_fe_path / "dc_offset" / "value")
- .set_coercer(boost::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, _1))
-+ .set_coercer(boost::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, boost::placeholders::_1))
++ .set_coercer(std::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, std::placeholders::_1))
.set(std::complex<double>(0.0, 0.0));
_tree->create<bool>(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(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, std::placeholders::_1))
.set(true);
_tree->create<std::complex<double> >(rx_fe_path / "iq_balance" / "value")
- .add_coerced_subscriber(boost::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, _1))
-+ .add_coerced_subscriber(boost::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, std::placeholders::_1))
.set(std::complex<double>(0.0, 0.0));
_tree->create<std::complex<double> >(tx_fe_path / "dc_offset" / "value")
- .set_coercer(boost::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, _1))
-+ .set_coercer(boost::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, boost::placeholders::_1))
++ .set_coercer(std::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, std::placeholders::_1))
.set(std::complex<double>(0.0, 0.0));
_tree->create<std::complex<double> >(tx_fe_path / "iq_balance" / "value")
- .add_coerced_subscriber(boost::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, _1))
-+ .add_coerced_subscriber(boost::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, boost::placeholders::_1))
++ .add_coerced_subscriber(std::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, std::placeholders::_1))
.set(std::complex<double>(0.0, 0.0));
////////////////////////////////////////////////////////////////////
-@@ -372,20 +372,20 @@
+@@ -367,20 +367,20 @@
_rx_dsps[dspno]->set_link_rate(B100_LINK_RATE_BPS);
_tree->access<double>(mb_path / "tick_rate")
- .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], _1));
-+ .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], boost::placeholders::_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<meta_range_t>(rx_dsp_path / "rate/range")
- .set_publisher(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno]));
+- .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<double>(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(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], boost::placeholders::_1))
-+ .add_coerced_subscriber(boost::bind(&b100_impl::update_rx_samp_rate, this, dspno, boost::placeholders::_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<double>(rx_dsp_path / "freq/value")
- .set_coercer(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], _1));
-+ .set_coercer(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], boost::placeholders::_1));
++ .set_coercer(std::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], std::placeholders::_1));
_tree->create<meta_range_t>(rx_dsp_path / "freq/range")
- .set_publisher(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno]));
+- .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<stream_cmd_t>(rx_dsp_path / "stream_cmd")
- .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], _1));
-+ .add_coerced_subscriber(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], std::placeholders::_1));
}
////////////////////////////////////////////////////////////////////
-@@ -396,15 +396,15 @@
+@@ -391,17 +391,17 @@
);
_tx_dsp->set_link_rate(B100_LINK_RATE_BPS);
_tree->access<double>(mb_path / "tick_rate")
- .add_coerced_subscriber(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, _1));
-+ .add_coerced_subscriber(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, std::placeholders::_1));
_tree->create<meta_range_t>(mb_path / "tx_dsps/0/rate/range")
- .set_publisher(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp));
+- .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<double>(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(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, boost::placeholders::_1))
-+ .add_coerced_subscriber(boost::bind(&b100_impl::update_tx_samp_rate, this, 0, boost::placeholders::_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<double>(mb_path / "tx_dsps/0/freq/value")
- .set_coercer(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsp, _1));
-+ .set_coercer(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsp, boost::placeholders::_1));
++ .set_coercer(std::bind(&tx_dsp_core_200::set_freq, _tx_dsp, std::placeholders::_1));
_tree->create<meta_range_t>(mb_path / "tx_dsps/0/freq/range")
- .set_publisher(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp));
+- .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));
-@@ -420,21 +420,21 @@
+ ////////////////////////////////////////////////////////////////////
+ // create time control objects
+@@ -415,21 +415,21 @@
_fifo_ctrl, TOREG(SR_TIME64), time64_rb_bases
);
_tree->access<double>(mb_path / "tick_rate")
- .add_coerced_subscriber(boost::bind(&time64_core_200::set_tick_rate, _time64, _1));
-+ .add_coerced_subscriber(boost::bind(&time64_core_200::set_tick_rate, _time64, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&time64_core_200::set_tick_rate, _time64, std::placeholders::_1));
_tree->create<time_spec_t>(mb_path / "time/now")
- .set_publisher(boost::bind(&time64_core_200::get_time_now, _time64))
+- .set_publisher(boost::bind(&time64_core_200::get_time_now, _time64))
- .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_now, _time64, _1));
-+ .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_now, _time64, boost::placeholders::_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<time_spec_t>(mb_path / "time/pps")
- .set_publisher(boost::bind(&time64_core_200::get_time_last_pps, _time64))
+- .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));
-+ .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_next_pps, _time64, boost::placeholders::_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<std::string>(mb_path / "time_source/value")
- .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_source, _time64, _1));
-+ .add_coerced_subscriber(boost::bind(&time64_core_200::set_time_source, _time64, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&time64_core_200::set_time_source, _time64, std::placeholders::_1));
_tree->create<std::vector<std::string> >(mb_path / "time_source/options")
- .set_publisher(boost::bind(&time64_core_200::get_time_sources, _time64));
+- .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<std::string>(mb_path / "clock_source/value")
- .add_coerced_subscriber(boost::bind(&b100_impl::update_clock_source, this, _1));
-+ .add_coerced_subscriber(boost::bind(&b100_impl::update_clock_source, this, boost::placeholders::_1));
- static const std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external")("auto");
- _tree->create<std::vector<std::string> >(mb_path / "clock_source/options").set(clock_sources);
-
-@@ -443,7 +443,7 @@
++ .add_coerced_subscriber(std::bind(&b100_impl::update_clock_source, this, std::placeholders::_1));
+ static const std::vector<std::string> clock_sources = {
+ "internal", "external", "auto"
+ };
+@@ -440,7 +440,7 @@
////////////////////////////////////////////////////////////////////
_user = user_settings_core_200::make(_fifo_ctrl, TOREG(SR_USER_REGS));
_tree->create<user_settings_core_200::user_reg_t>(mb_path / "user/regs")
- .add_coerced_subscriber(boost::bind(&user_settings_core_200::set_reg, _user, _1));
-+ .add_coerced_subscriber(boost::bind(&user_settings_core_200::set_reg, _user, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&user_settings_core_200::set_reg, _user, std::placeholders::_1));
////////////////////////////////////////////////////////////////////
// create dboard control objects
-@@ -461,13 +461,13 @@
+@@ -458,13 +458,13 @@
//create the properties and register subscribers
_tree->create<dboard_eeprom_t>(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(boost::bind(&b100_impl::set_db_eeprom, this, "rx", boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "rx", std::placeholders::_1));
_tree->create<dboard_eeprom_t>(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(boost::bind(&b100_impl::set_db_eeprom, this, "tx", boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&b100_impl::set_db_eeprom, this, "tx", std::placeholders::_1));
_tree->create<dboard_eeprom_t>(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(boost::bind(&b100_impl::set_db_eeprom, this, "gdb", boost::placeholders::_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(
-@@ -480,12 +480,12 @@
+@@ -477,12 +477,12 @@
const fs_path db_tx_fe_path = mb_path / "dboards" / "A" / "tx_frontends";
- BOOST_FOREACH(const std::string &name, _tree->list(db_tx_fe_path)){
+ for(const std::string &name: _tree->list(db_tx_fe_path)){
_tree->access<double>(db_tx_fe_path / name / "freq" / "value")
- .add_coerced_subscriber(boost::bind(&b100_impl::set_tx_fe_corrections, this, _1));
-+ .add_coerced_subscriber(boost::bind(&b100_impl::set_tx_fe_corrections, this, boost::placeholders::_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";
- BOOST_FOREACH(const std::string &name, _tree->list(db_rx_fe_path)){
+ for(const std::string &name: _tree->list(db_rx_fe_path)){
_tree->access<double>(db_rx_fe_path / name / "freq" / "value")
- .add_coerced_subscriber(boost::bind(&b100_impl::set_rx_fe_corrections, this, _1));
-+ .add_coerced_subscriber(boost::bind(&b100_impl::set_rx_fe_corrections, this, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&b100_impl::set_rx_fe_corrections, this, std::placeholders::_1));
}
//initialize io handling
-@@ -501,7 +501,7 @@
+@@ -498,7 +498,7 @@
this->update_rates();
_tree->access<double>(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(boost::bind(&b100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, boost::placeholders::_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
- BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){
---- UHD_3.10.1.1_release/lib/usrp/x300/x300_radio_ctrl_impl.cpp.orig 2017-01-27 22:22:55.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/x300/x300_radio_ctrl_impl.cpp 2020-07-09 06:44:45.064728745 +0200
-@@ -85,7 +85,7 @@
- BOOST_FOREACH(const gpio_atr::gpio_attr_map_t::value_type attr, gpio_atr::gpio_attr_map) {
- _tree->create<uint32_t>(fs_path("gpio") / "FP0" / attr.second)
- .set(0)
-- .add_coerced_subscriber(boost::bind(&gpio_atr::gpio_atr_3000::set_gpio_attr, _fp_gpio, attr.first, _1));
-+ .add_coerced_subscriber(boost::bind(&gpio_atr::gpio_atr_3000::set_gpio_attr, _fp_gpio, attr.first, boost::placeholders::_1));
- }
- _tree->create<uint32_t>(fs_path("gpio") / "FP0" / "READBACK")
- .set_publisher(boost::bind(&gpio_atr::gpio_atr_3000::read_gpio, _fp_gpio));
-@@ -101,7 +101,7 @@
-
- _tree->create<meta_range_t>("rx_codecs" / _radio_slot / "gains" / "digital" / "range").set(meta_range_t(0, 6.0, 0.5));
+ 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<meta_range_t>("rx_codecs" / _radio_slot / "gains" / "digital" / "range")
+ .set(meta_range_t(0, 6.0, 0.5));
_tree->create<double>("rx_codecs" / _radio_slot / "gains" / "digital" / "value")
-- .add_coerced_subscriber(boost::bind(&x300_adc_ctrl::set_gain, _adc, _1)).set(0)
-+ .add_coerced_subscriber(boost::bind(&x300_adc_ctrl::set_gain, _adc, boost::placeholders::_1)).set(0)
- ;
+- .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);
////////////////////////////////////////////////////////////////
-@@ -128,7 +128,7 @@
-
+@@ -187,7 +187,7 @@
if (_tree->exists(fs_path("time") / "cmd")) {
_tree->access<time_spec_t>(fs_path("time") / "cmd")
-- .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, _1, i));
-+ .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, boost::placeholders::_1, i));
+ .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));
}
}
-@@ -352,7 +352,7 @@
+@@ -816,11 +816,11 @@
+ // Add to tree
_tree->create<dboard_eeprom_t>(db_path / EEPROM_PATHS[i])
.set(_db_eeproms[addr])
- .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::_set_db_eeprom,
-- this, zpu_i2c, (BASE_ADDR | addr), _1));
-+ this, zpu_i2c, (BASE_ADDR | addr), boost::placeholders::_1));
+- .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
-@@ -414,7 +414,7 @@
- if (_tree->exists(db_path / "rx_frontends" / _rx_fe_map[i].db_fe_name / "antenna" / "value")) {
- // We need a desired subscriber for antenna/value because the experts don't coerce that property.
- _tree->access<std::string>(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(boost::bind(&x300_radio_ctrl_impl::_update_atr_leds, this, boost::placeholders::_1, i));
- }
- _update_atr_leds("", i); //init anyway, even if never called
- }
-@@ -427,7 +427,7 @@
- if (_tree->exists(db_tx_fe_path / _tx_fe_map[i].db_fe_name / "freq" / "value")) {
- _tree->access<double>(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, this, db_path,
-- _root_path / "tx_fe_corrections" / _tx_fe_map[i].db_fe_name, _1));
-+ _root_path / "tx_fe_corrections" / _tx_fe_map[i].db_fe_name, boost::placeholders::_1));
+ // create a new dboard interface
+@@ -893,8 +893,8 @@
+ ->access<std::string>(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<std::string>(db_path / "rx_frontends"
+ / _rx_fe_map[i].db_fe_name
+@@ -917,11 +917,11 @@
+ ->access<double>(
+ 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));
}
}
}
-@@ -438,7 +438,7 @@
- _tree->access<double>(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, this, db_path,
- _root_path / "rx_fe_corrections" / _tx_fe_map[i].db_fe_name,
-- _1));
-+ boost::placeholders::_1));
+@@ -934,11 +934,11 @@
+ ->access<double>(
+ 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.10.1.1_release/lib/usrp/x300/x300_impl.cpp.orig 2017-01-27 22:22:55.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp/x300/x300_impl.cpp 2020-07-09 06:47:51.430385783 +0200
-@@ -1422,7 +1422,7 @@
-
- bool x300_impl::wait_for_clk_locked(mboard_members_t& mb, uint32_t which, double timeout)
- {
-- boost::system_time timeout_time = boost::get_system_time() + boost::posix_time::milliseconds(timeout * 1000.0);
-+ boost::system_time timeout_time = boost::get_system_time() + boost::posix_time::milliseconds(static_cast<int64_t>(timeout * 1000.0));
- do {
- if (mb.fw_regmap->clock_status_reg.read(which)==1)
- return true;
---- UHD_3.10.1.1_release/lib/usrp_clock/octoclock/octoclock_impl.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/usrp_clock/octoclock/octoclock_impl.cpp 2020-07-09 06:54:58.391406069 +0200
-@@ -243,7 +243,7 @@
+--- 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<octoclock_eeprom_t>(oc_path / "eeprom")
.set(_oc_dict[oc].eeprom)
- .add_coerced_subscriber(boost::bind(&octoclock_impl::_set_eeprom, this, oc, _1));
-+ .add_coerced_subscriber(boost::bind(&octoclock_impl::_set_eeprom, this, oc, boost::placeholders::_1));
++ .add_coerced_subscriber(std::bind(&octoclock_impl::_set_eeprom, this, oc, std::placeholders::_1));
////////////////////////////////////////////////////////////////////
// Initialize non-GPSDO sensors
---- UHD_3.10.1.1_release/lib/transport/udp_zero_copy.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/transport/udp_zero_copy.cpp 2020-07-09 16:41:02.940903362 +0200
-@@ -190,7 +190,7 @@
- _socket = socket_sptr(new asio::ip::udp::socket(_io_service));
- _socket->open(asio::ip::udp::v4());
- _socket->connect(receiver_endpoint);
-- _sock_fd = _socket->native();
-+ _sock_fd = _socket->native_handle();
-
- //allocate re-usable managed receive buffers
- for (size_t i = 0; i < get_num_recv_frames(); i++){
---- UHD_3.10.1.1_release/lib/transport/gen_vrt_if_packet.py.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/transport/gen_vrt_if_packet.py 2020-07-09 17:18:08.118848539 +0200
-@@ -33,11 +33,11 @@
- #include <uhd/exception.hpp>
- #include <uhd/transport/vrt_if_packet.hpp>
- #include <uhd/utils/byteswap.hpp>
--#include <boost/detail/endian.hpp>
-+#include <boost/predef/other/endian.h>
- #include <vector>
-
- //define the endian macros to convert integers
--#ifdef BOOST_BIG_ENDIAN
-+#if BOOST_ENDIAN_BIG_BYTE
- #define BE_MACRO(x) (x)
- #define LE_MACRO(x) uhd::byteswap(x)
- #else
---- UHD_3.10.1.1_release/lib/transport/tcp_zero_copy.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/transport/tcp_zero_copy.cpp 2020-07-09 16:47:09.155586073 +0200
-@@ -154,7 +154,7 @@
- //create, open, and connect the socket
- _socket.reset(new asio::ip::tcp::socket(_io_service));
- _socket->connect(receiver_endpoint);
-- _sock_fd = _socket->native();
-+ _sock_fd = _socket->native_handle();
-
- //packets go out ASAP
- asio::ip::tcp::no_delay option(true);
---- UHD_3.10.1.1_release/lib/transport/udp_simple.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/lib/transport/udp_simple.cpp 2020-07-09 17:50:29.444998139 +0200
-@@ -56,7 +56,7 @@
- }
-
- size_t recv(const asio::mutable_buffer &buff, double timeout){
-- if (not wait_for_recv_ready(_socket->native(), timeout)) return 0;
-+ if (not wait_for_recv_ready(_socket->native_handle(), timeout)) return 0;
- return _socket->receive_from(asio::buffer(buff), _recv_endpoint);
- }
-
---- UHD_3.10.1.1_release/examples/rx_samples_to_file.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/examples/rx_samples_to_file.cpp 2020-07-09 18:39:59.402241834 +0200
-@@ -178,7 +178,7 @@
-
- while (true) {
- if ((not first_lock_time.is_not_a_date_time()) and
-- (boost::get_system_time() > (first_lock_time + boost::posix_time::seconds(setup_time))))
-+ (boost::get_system_time() > (first_lock_time + boost::posix_time::seconds(static_cast<int64_t>(setup_time)))))
- {
- std::cout << " locked." << std::endl;
- break;
-@@ -192,7 +192,7 @@
- else {
- first_lock_time = boost::system_time(); //reset to 'not a date time'
-
-- if (boost::get_system_time() > (start + boost::posix_time::seconds(setup_time))){
-+ if (boost::get_system_time() > (start + boost::posix_time::seconds(static_cast<int64_t>(setup_time)))){
- std::cout << std::endl;
- throw std::runtime_error(str(boost::format("timed out waiting for consecutive locks on sensor \"%s\"") % sensor_name));
- }
-@@ -312,15 +312,15 @@
- //set the antenna
- if (vm.count("ant")) usrp->set_rx_antenna(ant);
-
-- boost::this_thread::sleep(boost::posix_time::seconds(setup_time)); //allow for some setup time
-+ boost::this_thread::sleep(boost::posix_time::seconds(static_cast<int64_t>(setup_time))); //allow for some setup time
-
- //check Ref and LO Lock detect
- if (not vm.count("skip-lo")){
-- check_locked_sensor(usrp->get_rx_sensor_names(0), "lo_locked", boost::bind(&uhd::usrp::multi_usrp::get_rx_sensor, usrp, _1, 0), setup_time);
-+ check_locked_sensor(usrp->get_rx_sensor_names(0), "lo_locked", boost::bind(&uhd::usrp::multi_usrp::get_rx_sensor, usrp, boost::placeholders::_1, 0), setup_time);
- if (ref == "mimo")
-- check_locked_sensor(usrp->get_mboard_sensor_names(0), "mimo_locked", boost::bind(&uhd::usrp::multi_usrp::get_mboard_sensor, usrp, _1, 0), setup_time);
-+ check_locked_sensor(usrp->get_mboard_sensor_names(0), "mimo_locked", boost::bind(&uhd::usrp::multi_usrp::get_mboard_sensor, usrp, boost::placeholders::_1, 0), setup_time);
- if (ref == "external")
-- check_locked_sensor(usrp->get_mboard_sensor_names(0), "ref_locked", boost::bind(&uhd::usrp::multi_usrp::get_mboard_sensor, usrp, _1, 0), setup_time);
-+ check_locked_sensor(usrp->get_mboard_sensor_names(0), "ref_locked", boost::bind(&uhd::usrp::multi_usrp::get_mboard_sensor, usrp, boost::placeholders::_1, 0), setup_time);
- }
-
- if (total_num_samps == 0){
---- UHD_3.10.1.1_release/examples/benchmark_rate.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/examples/benchmark_rate.cpp 2020-07-09 18:42:41.548030081 +0200
-@@ -31,7 +31,7 @@
-
- namespace po = boost::program_options;
-
--const double CLOCK_TIMEOUT = 1000; // 1000mS timeout for external clock locking
-+const int CLOCK_TIMEOUT = 1000; // 1000mS timeout for external clock locking
- const double INIT_DELAY = 0.05; // 50mS initial delay before transmit
- //typedef boost::atomic<bool> atomic_bool;
- // We'll fake atomic bools for now, for more backward compat.
-@@ -471,7 +471,7 @@
- const long usecs = long((duration - secs)*1e6);
- boost::this_thread::sleep(boost::posix_time::seconds(secs)
- + boost::posix_time::microseconds(usecs)
-- + boost::posix_time::milliseconds( (rx_channel_nums.size() <= 1 and tx_channel_nums.size() <= 1) ? 0 : (INIT_DELAY * 1000))
-+ + boost::posix_time::milliseconds( (rx_channel_nums.size() <= 1 and tx_channel_nums.size() <= 1) ? 0 : static_cast<int64_t>(INIT_DELAY * 1000))
- );
-
- //interrupt and join the threads
---- UHD_3.10.1.1_release/examples/network_relay.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/examples/network_relay.cpp 2020-07-09 18:47:38.346422186 +0200
-@@ -127,7 +127,7 @@
- wait_for_thread.notify_one(); // notify constructor that this thread has started
- std::vector<char> buff(insane_mtu);
- while (not boost::this_thread::interruption_requested()){
-- if (wait_for_recv_ready(_server_socket->native())){
-+ if (wait_for_recv_ready(_server_socket->native_handle())){
- boost::mutex::scoped_lock lock(_endpoint_mutex);
- const size_t len = _server_socket->receive_from(asio::buffer(&buff.front(), buff.size()), _endpoint);
- lock.unlock();
-@@ -153,7 +153,7 @@
- wait_for_thread.notify_one(); // notify constructor that this thread has started
- std::vector<char> buff(insane_mtu);
- while (not boost::this_thread::interruption_requested()){
-- if (wait_for_recv_ready(_client_socket->native())){
-+ if (wait_for_recv_ready(_client_socket->native_handle())){
- const size_t len = _client_socket->receive(asio::buffer(&buff.front(), buff.size()));
- boost::mutex::scoped_lock lock(_endpoint_mutex);
- _server_socket->send_to(asio::buffer(&buff.front(), len), _endpoint);
---- UHD_3.10.1.1_release/examples/tx_samples_from_file.cpp.orig 2017-01-18 19:00:32.000000000 +0100
-+++ UHD_3.10.1.1_release/examples/tx_samples_from_file.cpp 2020-07-09 18:49:11.789249296 +0200
-@@ -193,7 +193,7 @@
- else if (type == "short") send_from_file<std::complex<short> >(usrp, "sc16", wirefmt, file, spb);
- else throw std::runtime_error("Unknown type " + type);
-
-- if(repeat and delay != 0.0) boost::this_thread::sleep(boost::posix_time::milliseconds(delay));
-+ if(repeat and delay != 0.0) boost::this_thread::sleep(boost::posix_time::milliseconds(static_cast<int64_t>(delay)));
- } while(repeat and not stop_signal_called);
+ ////////////////////////////////////////////////////////////////////
+ _tree->create<uint32_t>(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<sensor_value_t>(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<sensor_value_t>(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<sensor_value_t>(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<sensor_value_t>(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));
- //finished
+ ////////////////////////////////////////////////////////////////////
+ // 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<sensor_value_t>(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{
diff --git a/uhd-libdir.patch b/uhd-libdir.patch
index 35998ce..0367d53 100644
--- a/uhd-libdir.patch
+++ b/uhd-libdir.patch
@@ -1,17 +1,17 @@
---- UHD_3.10.1.1_release/CMakeLists.txt.orig 2017-01-27 22:22:55.000000000 +0100
-+++ UHD_3.10.1.1_release/CMakeLists.txt 2020-07-09 21:06:53.997822406 +0200
-@@ -395,14 +395,6 @@
+--- uhd-3.15.0.0/host/CMakeLists.txt.orig 2020-07-10 06:56:50.762728346 +0200
++++ uhd-3.15.0.0/host/CMakeLists.txt 2020-07-10 07:16:02.483155608 +0200
+@@ -416,14 +416,6 @@
########################################################################
# Create Pkg Config File
########################################################################
--FOREACH(inc ${Boost_INCLUDE_DIRS})
-- LIST(APPEND UHD_PC_CFLAGS "-I${inc}")
--ENDFOREACH(inc)
+-foreach(inc ${Boost_INCLUDE_DIRS})
+- list(APPEND UHD_PC_CFLAGS "-I${inc}")
+-endforeach(inc)
-
--FOREACH(lib ${Boost_LIBRARY_DIRS})
-- LIST(APPEND UHD_PC_LIBS "-L${lib}")
--ENDFOREACH(lib)
+-foreach(lib ${Boost_LIBRARY_DIRS})
+- list(APPEND UHD_PC_LIBS "-L${lib}")
+-endforeach(lib)
-
#use space-separation format for the pc file
- STRING(REPLACE ";" " " UHD_PC_REQUIRES "${UHD_PC_REQUIRES}")
- STRING(REPLACE ";" " " UHD_PC_CFLAGS "${UHD_PC_CFLAGS}")
+ string(REPLACE ";" " " UHD_PC_REQUIRES "${UHD_PC_REQUIRES}")
+ string(REPLACE ";" " " UHD_PC_CFLAGS "${UHD_PC_CFLAGS}")
diff --git a/uhd-link.patch b/uhd-link.patch
new file mode 100644
index 0000000..ec14340
--- /dev/null
+++ b/uhd-link.patch
@@ -0,0 +1,13 @@
+Build libuhd_test as static to avoid visibility issues
+--- uhd-3.15.0.0/host/tests/common/CMakeLists.txt.orig 2020-01-01 05:21:49.000000000 +0100
++++ uhd-3.15.0.0/host/tests/common/CMakeLists.txt 2020-07-10 20:09:57.071597860 +0200
+@@ -8,7 +8,8 @@
+ # Build uhd_test static lib
+ ########################################################################
+ include_directories("${CMAKE_SOURCE_DIR}/lib/include")
+-add_library(uhd_test ${CMAKE_CURRENT_SOURCE_DIR}/mock_ctrl_iface_impl.cpp
++add_library(uhd_test STATIC
++ ${CMAKE_CURRENT_SOURCE_DIR}/mock_ctrl_iface_impl.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/mock_zero_copy.cpp
+ ${CMAKE_SOURCE_DIR}/lib/rfnoc/graph_impl.cpp
+ ${CMAKE_SOURCE_DIR}/lib/rfnoc/async_msg_handler.cpp
diff --git a/uhd-mpm-build.patch b/uhd-mpm-build.patch
new file mode 100644
index 0000000..cc5ec83
--- /dev/null
+++ b/uhd-mpm-build.patch
@@ -0,0 +1,40 @@
+--- uhd-3.15.0.0/mpm/lib/i2c/CMakeLists.txt.orig 2020-01-01 05:21:49.000000000 +0100
++++ uhd-3.15.0.0/mpm/lib/i2c/CMakeLists.txt 2020-07-10 21:45:41.727143057 +0200
+@@ -3,6 +3,8 @@
+ #
+ # SPDX-License-Identifier: GPL-3.0-or-later
+ #
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE64_SOURCE")
++
+ set(I2C_SOURCES
+ ${CMAKE_CURRENT_SOURCE_DIR}/i2cdev_iface.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/i2c_regs_iface.cpp
+--- uhd-3.15.0.0/mpm/tools/eeprom.c.orig 2020-07-10 21:47:16.076631922 +0200
++++ uhd-3.15.0.0/mpm/tools/eeprom.c 2020-07-10 21:47:18.816617078 +0200
+@@ -278,7 +278,7 @@
+ size_t len = sizeof(*ep);
+ size_t got = 0;
+
+- fd = open(path, O_WRONLY | O_CREAT);
++ fd = open(path, O_WRONLY | O_CREAT, 0666);
+ if (fd < 0) {
+ perror("Could not open file:\n");
+ return;
+@@ -303,7 +303,7 @@
+ size_t len = sizeof(*ep);
+ size_t got = 0;
+
+- fd = open(path, O_WRONLY | O_CREAT);
++ fd = open(path, O_WRONLY | O_CREAT, 0666);
+ if (fd < 0) {
+ perror("Could not open file:\n");
+ return;
+@@ -397,7 +397,7 @@
+ size_t len = sizeof(*ep);
+ size_t i;
+
+- fd = open(path, O_WRONLY | O_CREAT);
++ fd = open(path, O_WRONLY | O_CREAT, 0666);
+ if (fd < 0) {
+ perror("Could not open file:\n");
+ return;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/uhd.git/commitdiff/0cfe325a3308f4c613cbdb7e0c8d9eaf0e0766de
More information about the pld-cvs-commit
mailing list