Package: uhd / 3.15.0.0-4

Metadata

Package Version Patches format
uhd 3.15.0.0-4 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 docs n3xx document eeprom flags.patch | (download)

host/docs/usrp_n3xx.dox | 34 34 + 0 - 0 !
1 file changed, 34 insertions(+)

 [patch 01/62] docs: n3xx: document eeprom flags

Add a subsection to both N310- and N320 specific features to
document the EEPROM flags simliar to as it is done in the E320
documentation.

Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>

0002 fixup docs e320 Add documentation for gpio and eepro.patch | (download)

host/docs/usrp_e3xx.dox | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 [patch 02/62] fixup! docs: e320: add documentation for gpio and
 eeprom-flags


0003 mpm optionally generate XML report when running unit.patch | (download)

mpm/python/tests/run_unit_tests.py | 29 22 + 7 - 0 !
1 file changed, 22 insertions(+), 7 deletions(-)

 [patch 03/62] mpm: optionally generate xml report when running
 unittests

If the unittests are invoked with an extra argument -x, an XML report
is generated if the xmlrunner module is installed

0004 transport liberio correctly release resources on des.patch | (download)

host/lib/transport/liberio_zero_copy.cpp | 12 7 + 5 - 0 !
1 file changed, 7 insertions(+), 5 deletions(-)

 [patch 04/62] transport: liberio: correctly release resources on
 destruction

Stop the streaming and free the allocated buffers on destruction of the
liberio xport object.

Note: There is a lingering resource leak in the kernel module, this
patch merely orders the resource release correctly.

Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>

0005 replay Add time support to replay block.patch | (download)

host/examples/replay_samples_from_file.cpp | 62 45 + 17 - 0 !
host/include/uhd/rfnoc/blocks/replay.xml | 8 8 + 0 - 0 !
host/include/uhd/rfnoc/blocks/replay_x2.xml | 8 8 + 0 - 0 !
host/include/uhd/rfnoc/blocks/replay_x4.xml | 8 8 + 0 - 0 !
host/lib/rfnoc/replay_block_ctrl_impl.cpp | 75 50 + 25 - 0 !
5 files changed, 119 insertions(+), 42 deletions(-)

 [patch 05/62] replay: add time support to replay block


0006 images Update manifest.patch | (download)

images/manifest.txt | 10 5 + 5 - 0 !
1 file changed, 5 insertions(+), 5 deletions(-)

 [patch 06/62] images: update manifest

Update X3xx and N3xx FPGA images.

Signed-off-by: michael-west <michael.west@ettus.com>

0008 fixup replay Add time support to replay block.patch | (download)

host/lib/rfnoc/replay_block_ctrl_impl.cpp | 4 1 + 3 - 0 !
1 file changed, 1 insertion(+), 3 deletions(-)

 [patch 08/62] fixup! replay: add time support to replay block


0009 utils images downloader Add support for UHD_IMAGES_U.patch | (download)

host/utils/uhd_images_downloader.py.in | 42 26 + 16 - 0 !
1 file changed, 26 insertions(+), 16 deletions(-)

 [patch 09/62] utils: images downloader: add support for
 UHD_IMAGES_URL

- Read the UHD_IMAGES_URL environment variable. If set, it
  overrides the default value for --base-url

0010 utils image_downloader check write conditions.patch | (download)

host/utils/uhd_images_downloader.py.in | 13 13 + 0 - 0 !
1 file changed, 13 insertions(+)

 [patch 10/62] utils: image_downloader: check write conditions

Prior to downloading any images, check that the images destination:
- Is a valid directory
- Has valid permissions for images to be written

Images are downloaded to a temporary location before being written to
image destination, so these checks help avoid situation where images are
downloaded but unable to be written

0011 octoclock Apply clang format.patch | (download)

host/lib/usrp_clock/multi_usrp_clock.cpp | 47 27 + 20 - 0 !
host/lib/usrp_clock/octoclock/octoclock_eeprom.cpp | 125 70 + 55 - 0 !
host/lib/usrp_clock/octoclock/octoclock_image_loader.cpp | 327 177 + 150 - 0 !
host/lib/usrp_clock/octoclock/octoclock_impl.cpp | 441 247 + 194 - 0 !
host/lib/usrp_clock/octoclock/octoclock_impl.hpp | 50 26 + 24 - 0 !
host/lib/usrp_clock/octoclock/octoclock_uart.cpp | 268 139 + 129 - 0 !
host/lib/usrp_clock/octoclock/octoclock_uart.hpp | 22 13 + 9 - 0 !
host/lib/usrp_clock/usrp_clock_c.cpp | 156 63 + 93 - 0 !
8 files changed, 762 insertions(+), 674 deletions(-)

 [patch 11/62] octoclock: apply clang-format


0012 octoclock Avoid usage of uninitialized memory.patch | (download)

host/lib/usrp_clock/octoclock/octoclock_eeprom.cpp | 17 6 + 11 - 0 !
host/lib/usrp_clock/octoclock/octoclock_image_loader.cpp | 14 5 + 9 - 0 !
host/lib/usrp_clock/octoclock/octoclock_impl.cpp | 40 27 + 13 - 0 !
host/lib/usrp_clock/octoclock/octoclock_impl.hpp | 5 5 + 0 - 0 !
host/lib/usrp_clock/octoclock/octoclock_uart.cpp | 13 5 + 8 - 0 !
5 files changed, 48 insertions(+), 41 deletions(-)

 [patch 12/62] octoclock: avoid usage of uninitialized memory

The Octoclock host code would send uninitialized memory over the
network, which would be flagged by tools such as Valgrind. This patch
creates a factory function for OctoClock packets that initializes the
memory to zero, defaults the proto version to the OctoClock default, and
can provide a random sequence number if none is given.

0013 utils uhd_images_downloader use HTTPS instead of HTT.patch | (download)

host/utils/uhd_images_downloader.py.in | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 13/62] utils: uhd_images_downloader: use https instead of http
 to avoid redirect

Since the webserver responding to requests at http://files.ettus.com
replies with a redirect to the same URL, but using the https://
transport, this isn't only the safer thing we should be doing, anyways,
but also the quicker, since it saves the user from one unnecessary
redirect.

This is the 3.15-LTS variant of this fix.

0014 debian Use Python3 dependencies.patch | (download)

host/cmake/debian/control | 18 9 + 9 - 0 !
1 file changed, 9 insertions(+), 9 deletions(-)

 [patch 14/62] debian: use python3 dependencies

This updates the Debian control file to rely on the Python3 versions of
the respective dependencies.

0015 uhd Apply clang format against all .cpp and .hpp fil.patch | (download)

host/examples/ascii_art_dft.hpp | 6 4 + 2 - 0 !
host/examples/benchmark_rate.cpp | 26 19 + 7 - 0 !
host/examples/gpio.cpp | 2 1 + 1 - 0 !
host/examples/replay_samples_from_file.cpp | 16 7 + 9 - 0 !
host/examples/rfnoc_radio_loopback.cpp | 20 10 + 10 - 0 !
host/examples/txrx_loopback_to_file.cpp | 2 1 + 1 - 0 !
host/include/uhd/device3.hpp | 3 2 + 1 - 0 !
host/include/uhd/rfnoc/constants.hpp | 2 1 + 1 - 0 !
host/include/uhd/transport/bounded_buffer.hpp | 3 2 + 1 - 0 !
host/include/uhd/transport/muxed_zero_copy_if.hpp | 2 1 + 1 - 0 !
host/include/uhd/transport/nirio/rpc/rpc_common.hpp | 12 8 + 4 - 0 !
host/include/uhd/transport/nirio/rpc/usrprio_rpc_common.hpp | 3 2 + 1 - 0 !
host/include/uhd/transport/udp_constants.hpp | 2 2 + 0 - 0 !
host/include/uhd/transport/zero_copy.hpp | 3 2 + 1 - 0 !
host/include/uhd/types/device_addr.hpp | 3 2 + 1 - 0 !
host/include/uhd/types/dict.hpp | 6 4 + 2 - 0 !
host/include/uhd/types/filters.hpp | 3 2 + 1 - 0 !
host/include/uhd/types/ref_vector.hpp | 3 2 + 1 - 0 !
host/include/uhd/types/sid.hpp | 3 2 + 1 - 0 !
host/include/uhd/usrp/dboard_base.hpp | 2 1 + 1 - 0 !
host/include/uhd/usrp/dboard_manager.hpp | 2 1 + 1 - 0 !
host/include/uhd/usrp/multi_usrp.hpp | 2 1 + 1 - 0 !
host/include/uhd/utils/algorithm.hpp | 9 6 + 3 - 0 !
host/include/uhd/utils/byteswap.hpp | 12 8 + 4 - 0 !
host/include/uhd/utils/cast.hpp | 3 2 + 1 - 0 !
host/include/uhd/utils/dirty_tracked.hpp | 3 2 + 1 - 0 !
host/include/uhd/utils/gain_group.hpp | 2 1 + 1 - 0 !
host/include/uhd/utils/math.hpp | 12 8 + 4 - 0 !
host/include/uhd/utils/msg_task.hpp | 2 1 + 1 - 0 !
host/include/uhd/utils/scope_exit.hpp | 7 3 + 4 - 0 !
host/include/uhd/utils/soft_register.hpp | 5 3 + 2 - 0 !
host/lib/build_info.cpp | 158 80 + 78 - 0 !
host/lib/convert/convert_common.hpp | 292 143 + 149 - 0 !
host/lib/convert/convert_fc32_item32.cpp | 116 69 + 47 - 0 !
host/lib/convert/convert_impl.cpp | 131 64 + 67 - 0 !
host/lib/convert/convert_item32.cpp | 26 14 + 12 - 0 !
host/lib/convert/convert_pack_sc12.cpp | 151 90 + 61 - 0 !
host/lib/convert/convert_pack_sc12.hpp | 64 29 + 35 - 0 !
host/lib/convert/convert_unpack_sc12.cpp | 147 94 + 53 - 0 !
host/lib/convert/convert_unpack_sc12.hpp | 80 37 + 43 - 0 !
host/lib/convert/convert_with_neon.cpp | 122 63 + 59 - 0 !
host/lib/convert/convert_with_tables.cpp | 3 2 + 1 - 0 !
host/lib/convert/sse2_fc32_to_sc16.cpp | 160 85 + 75 - 0 !
host/lib/convert/sse2_fc32_to_sc8.cpp | 127 64 + 63 - 0 !
host/lib/convert/sse2_fc64_to_sc16.cpp | 138 73 + 65 - 0 !
host/lib/convert/sse2_fc64_to_sc8.cpp | 153 82 + 71 - 0 !
host/lib/convert/sse2_sc16_to_fc32.cpp | 162 84 + 78 - 0 !
host/lib/convert/sse2_sc16_to_fc64.cpp | 140 70 + 70 - 0 !
host/lib/convert/sse2_sc16_to_sc16.cpp | 240 130 + 110 - 0 !
host/lib/convert/sse2_sc8_to_fc32.cpp | 132 67 + 65 - 0 !
host/lib/convert/sse2_sc8_to_fc64.cpp | 168 86 + 82 - 0 !
host/lib/convert/ssse3_pack_sc12.cpp | 180 99 + 81 - 0 !
host/lib/convert/ssse3_unpack_sc12.cpp | 136 81 + 55 - 0 !
host/lib/deprecated.cpp | 41 19 + 22 - 0 !
host/lib/device.cpp | 143 63 + 80 - 0 !
host/lib/device3.cpp | 22 12 + 10 - 0 !
host/lib/error_c.cpp | 53 25 + 28 - 0 !
host/lib/exception.cpp | 75 48 + 27 - 0 !
host/lib/experts/expert_container.cpp | 337 190 + 147 - 0 !
host/lib/experts/expert_factory.cpp | 2 1 + 1 - 0 !
host/lib/image_loader.cpp | 64 34 + 30 - 0 !
host/lib/include/uhdlib/experts/expert_container.hpp | 350 177 + 173 - 0 !
host/lib/include/uhdlib/experts/expert_factory.hpp | 600 311 + 289 - 0 !
host/lib/include/uhdlib/experts/expert_nodes.hpp | 962 521 + 441 - 0 !
host/lib/include/uhdlib/rfnoc/async_msg.hpp | 126 64 + 62 - 0 !
host/lib/include/uhdlib/rfnoc/async_msg_handler.hpp | 20 7 + 13 - 0 !
host/lib/include/uhdlib/rfnoc/ctrl_iface.hpp | 15 5 + 10 - 0 !
host/lib/include/uhdlib/rfnoc/legacy_compat.hpp | 38 18 + 20 - 0 !
host/lib/include/uhdlib/rfnoc/radio_ctrl_impl.hpp | 249 144 + 105 - 0 !
host/lib/include/uhdlib/rfnoc/rpc_block_ctrl.hpp | 10 3 + 7 - 0 !
host/lib/include/uhdlib/rfnoc/rx_stream_terminator.hpp | 35 21 + 14 - 0 !
host/lib/include/uhdlib/rfnoc/tx_stream_terminator.hpp | 39 23 + 16 - 0 !
host/lib/include/uhdlib/rfnoc/utils.hpp | 76 38 + 38 - 0 !
host/lib/include/uhdlib/rfnoc/wb_iface_adapter.hpp | 38 22 + 16 - 0 !
host/lib/include/uhdlib/rfnoc/xports.hpp | 35 17 + 18 - 0 !
host/lib/include/uhdlib/transport/dpdk_common.hpp | 11 6 + 5 - 0 !
host/lib/include/uhdlib/transport/dpdk_simple.hpp | 8 4 + 4 - 0 !
host/lib/include/uhdlib/transport/dpdk_zero_copy.hpp | 21 10 + 11 - 0 !
host/lib/include/uhdlib/usrp/common/ad9361_ctrl.hpp | 80 40 + 40 - 0 !
host/lib/include/uhdlib/usrp/common/ad936x_manager.hpp | 35 13 + 22 - 0 !
host/lib/include/uhdlib/usrp/common/adf4001_ctrl.hpp | 68 30 + 38 - 0 !
host/lib/include/uhdlib/usrp/common/apply_corrections.hpp | 44 20 + 24 - 0 !
host/lib/include/uhdlib/usrp/common/async_packet_handler.hpp | 87 39 + 48 - 0 !
host/lib/include/uhdlib/usrp/common/fx2_ctrl.hpp | 66 31 + 35 - 0 !
host/lib/include/uhdlib/usrp/common/max287x.hpp | 618 299 + 319 - 0 !
host/lib/include/uhdlib/usrp/common/recv_packet_demuxer.hpp | 28 16 + 12 - 0 !
host/lib/include/uhdlib/usrp/common/recv_packet_demuxer_3000.hpp | 219 118 + 101 - 0 !
host/lib/include/uhdlib/usrp/common/validate_subdev_spec.hpp | 18 8 + 10 - 0 !
host/lib/include/uhdlib/usrp/constrained_device_args.hpp | 555 289 + 266 - 0 !
host/lib/include/uhdlib/usrp/cores/dma_fifo_core_3000.hpp | 15 8 + 7 - 0 !
host/lib/include/uhdlib/usrp/cores/dsp_core_utils.hpp | 10 4 + 6 - 0 !
host/lib/include/uhdlib/usrp/cores/gpio_atr_3000.hpp | 49 29 + 20 - 0 !
host/lib/include/uhdlib/usrp/cores/gpio_core_200.hpp | 19 11 + 8 - 0 !
host/lib/include/uhdlib/usrp/cores/i2c_core_100_wb32.hpp | 5 3 + 2 - 0 !
host/lib/include/uhdlib/usrp/cores/i2c_core_200.hpp | 7 4 + 3 - 0 !
host/lib/include/uhdlib/usrp/cores/radio_ctrl_core_3000.hpp | 14 6 + 8 - 0 !
host/lib/include/uhdlib/usrp/cores/rx_dsp_core_200.hpp | 23 12 + 11 - 0 !
host/lib/include/uhdlib/usrp/cores/rx_frontend_core_200.hpp | 10 5 + 5 - 0 !
host/lib/include/uhdlib/usrp/cores/rx_vita_core_3000.hpp | 13 5 + 8 - 0 !
host/lib/include/uhdlib/usrp/cores/spi_core_3000.hpp | 2 1 + 1 - 0 !
host/lib/include/uhdlib/usrp/cores/time64_core_200.hpp | 23 12 + 11 - 0 !
host/lib/include/uhdlib/usrp/cores/time_core_3000.hpp | 16 7 + 9 - 0 !
host/lib/include/uhdlib/usrp/cores/tx_dsp_core_200.hpp | 16 8 + 8 - 0 !
host/lib/include/uhdlib/usrp/cores/tx_frontend_core_200.hpp | 12 6 + 6 - 0 !
host/lib/include/uhdlib/usrp/cores/tx_vita_core_3000.hpp | 26 9 + 17 - 0 !
host/lib/include/uhdlib/usrp/cores/user_settings_core_200.hpp | 9 5 + 4 - 0 !
host/lib/include/uhdlib/usrp/cores/user_settings_core_3000.hpp | 13 7 + 6 - 0 !
host/lib/include/uhdlib/usrp/gpio_defs.hpp | 195 85 + 110 - 0 !
host/lib/include/uhdlib/utils/atomic.hpp | 97 50 + 47 - 0 !
host/lib/include/uhdlib/utils/auto_timer.hpp | 168 83 + 85 - 0 !
host/lib/include/uhdlib/utils/compat_check.hpp | 22 10 + 12 - 0 !
host/lib/include/uhdlib/utils/config_parser.hpp | 36 13 + 23 - 0 !
host/lib/include/uhdlib/utils/eeprom_utils.hpp | 54 23 + 31 - 0 !
host/lib/include/uhdlib/utils/ihex.hpp | 10 5 + 5 - 0 !
host/lib/include/uhdlib/utils/isatty.hpp | 52 26 + 26 - 0 !
host/lib/include/uhdlib/utils/math.hpp | 5 3 + 2 - 0 !
host/lib/include/uhdlib/utils/narrow.hpp | 7 4 + 3 - 0 !
host/lib/include/uhdlib/utils/paths.hpp | 13 6 + 7 - 0 !
host/lib/include/uhdlib/utils/prefs.hpp | 133 66 + 67 - 0 !
host/lib/include/uhdlib/utils/rpc.hpp | 160 76 + 84 - 0 !
host/lib/include/uhdlib/utils/system_time.hpp | 12 6 + 6 - 0 !
host/lib/rfnoc/block_ctrl_base.cpp | 2 1 + 1 - 0 !
host/lib/rfnoc/ctrl_iface.cpp | 4 2 + 2 - 0 !
host/lib/rfnoc/nocscript/expression.hpp | 3 2 + 1 - 0 !
host/lib/rfnoc/nocscript/parser.cpp | 5 3 + 2 - 0 !
host/lib/rfnoc/replay_block_ctrl_impl.cpp | 17 9 + 8 - 0 !
host/lib/rfnoc/source_block_ctrl_base.cpp | 3 1 + 2 - 0 !
host/lib/stream.cpp | 4 2 + 2 - 0 !
host/lib/stream_python.hpp | 126 56 + 70 - 0 !
host/lib/transport/dpdk_simple.cpp | 79 40 + 39 - 0 !
host/lib/transport/dpdk_zero_copy.cpp | 314 153 + 161 - 0 !
host/lib/transport/libusb1_base.hpp | 2 1 + 1 - 0 !
host/lib/transport/nirio/nifpga_lvbitx.cpp | 23 9 + 14 - 0 !
host/lib/transport/nirio/nirio_driver_iface_linux.cpp | 64 36 + 28 - 0 !
host/lib/transport/nirio/nirio_driver_iface_unsupported.cpp | 23 9 + 14 - 0 !
host/lib/transport/nirio/nirio_driver_iface_win.cpp | 118 72 + 46 - 0 !
host/lib/transport/nirio/nirio_resource_manager.cpp | 51 28 + 23 - 0 !
host/lib/transport/nirio/niriok_proxy.cpp | 77 36 + 41 - 0 !
host/lib/transport/nirio/niriok_proxy_impl_v1.cpp | 1324 655 + 669 - 0 !
host/lib/transport/nirio/niriok_proxy_impl_v2.cpp | 1485 727 + 758 - 0 !
host/lib/transport/nirio/niusrprio_session.cpp | 128 69 + 59 - 0 !
host/lib/transport/nirio/rpc/rpc_client.cpp | 189 106 + 83 - 0 !
host/lib/transport/nirio/rpc/usrprio_rpc_client.cpp | 53 30 + 23 - 0 !
host/lib/transport/nirio/status.cpp | 29 16 + 13 - 0 !
host/lib/transport/super_recv_packet_handler.hpp | 6 3 + 3 - 0 !
host/lib/transport/udp_zero_copy.cpp | 6 4 + 2 - 0 !
host/lib/types/byte_vector.cpp | 18 11 + 7 - 0 !
host/lib/types/device_addr.cpp | 100 55 + 45 - 0 !
host/lib/types/filters.cpp | 36 19 + 17 - 0 !
host/lib/types/filters_python.hpp | 28 13 + 15 - 0 !
host/lib/types/mac_addr.cpp | 42 22 + 20 - 0 !
host/lib/types/metadata.cpp | 15 8 + 7 - 0 !
host/lib/types/metadata_c.cpp | 316 110 + 206 - 0 !
host/lib/types/metadata_python.hpp | 92 43 + 49 - 0 !
host/lib/types/ranges.cpp | 124 68 + 56 - 0 !
host/lib/types/ranges_c.cpp | 152 49 + 103 - 0 !
host/lib/types/sensors.cpp | 139 60 + 79 - 0 !
host/lib/types/sensors_c.cpp | 237 82 + 155 - 0 !
host/lib/types/sensors_python.hpp | 28 16 + 12 - 0 !
host/lib/types/serial.cpp | 108 37 + 71 - 0 !
host/lib/types/serial_python.hpp | 12 5 + 7 - 0 !
host/lib/types/sid.cpp | 62 27 + 35 - 0 !
host/lib/types/string_vector_c.cpp | 67 21 + 46 - 0 !
host/lib/types/time_spec.cpp | 131 67 + 64 - 0 !
host/lib/types/time_spec_python.hpp | 17 8 + 9 - 0 !
host/lib/types/tune.cpp | 44 21 + 23 - 0 !
host/lib/types/tune_c.cpp | 35 20 + 15 - 0 !
host/lib/types/tune_python.hpp | 29 13 + 16 - 0 !
host/lib/types/types.cpp | 18 8 + 10 - 0 !
host/lib/types/types_python.hpp | 26 11 + 15 - 0 !
host/lib/types/usrp_info_c.cpp | 6 4 + 2 - 0 !
host/lib/types/wb_iface.cpp | 4 2 + 2 - 0 !
host/lib/usrp/b100/b100_impl.cpp | 504 278 + 226 - 0 !
host/lib/usrp/b100/b100_impl.hpp | 100 49 + 51 - 0 !
host/lib/usrp/b100/b100_regs.hpp | 49 24 + 25 - 0 !
host/lib/usrp/b100/clock_ctrl.cpp | 6 4 + 2 - 0 !
host/lib/usrp/b100/clock_ctrl.hpp | 14 7 + 7 - 0 !
host/lib/usrp/b100/codec_ctrl.cpp | 281 152 + 129 - 0 !
host/lib/usrp/b100/codec_ctrl.hpp | 11 6 + 5 - 0 !
host/lib/usrp/b100/dboard_iface.cpp | 233 128 + 105 - 0 !
host/lib/usrp/b100/fifo_ctrl_excelsior.cpp | 224 124 + 100 - 0 !
host/lib/usrp/b100/fifo_ctrl_excelsior.hpp | 14 6 + 8 - 0 !
host/lib/usrp/b100/io_impl.cpp | 225 125 + 100 - 0 !
host/lib/usrp/b100/mb_eeprom.cpp | 103 45 + 58 - 0 !
host/lib/usrp/b100/usb_zero_copy_wrapper.cpp | 181 104 + 77 - 0 !
host/lib/usrp/b200/b200_cores.cpp | 29 12 + 17 - 0 !
host/lib/usrp/b200/b200_cores.hpp | 26 12 + 14 - 0 !
host/lib/usrp/b200/b200_iface.cpp | 547 337 + 210 - 0 !
host/lib/usrp/b200/b200_iface.hpp | 103 42 + 61 - 0 !
host/lib/usrp/b200/b200_image_loader.cpp | 132 70 + 62 - 0 !
host/lib/usrp/b200/b200_impl.cpp | 1092 564 + 528 - 0 !
host/lib/usrp/b200/b200_impl.hpp | 183 103 + 80 - 0 !
host/lib/usrp/b200/b200_mb_eeprom.cpp | 56 25 + 31 - 0 !
host/lib/usrp/b200/b200_regs.hpp | 136 58 + 78 - 0 !
host/lib/usrp/b200/b200_uart.cpp | 63 31 + 32 - 0 !
host/lib/usrp/b200/b200_uart.hpp | 2 1 + 1 - 0 !
host/lib/usrp/common/ad9361_driver/ad9361_device.cpp | 1428 755 + 673 - 0 !
host/lib/usrp/common/adf4001_ctrl.cpp | 157 78 + 79 - 0 !
host/lib/usrp/common/adf435x.cpp | 4 1 + 3 - 0 !
host/lib/usrp/common/apply_corrections.cpp | 220 113 + 107 - 0 !
host/lib/usrp/common/fx2_ctrl.cpp | 241 132 + 109 - 0 !
host/lib/usrp/common/lmx2592.cpp | 391 181 + 210 - 0 !
host/lib/usrp/common/recv_packet_demuxer.cpp | 88 49 + 39 - 0 !
host/lib/usrp/common/validate_subdev_spec.cpp | 82 46 + 36 - 0 !
host/lib/usrp/cores/dma_fifo_core_3000.cpp | 291 162 + 129 - 0 !
host/lib/usrp/cores/dsp_core_utils.cpp | 22 10 + 12 - 0 !
host/lib/usrp/cores/gpio_atr_3000.cpp | 377 218 + 159 - 0 !
host/lib/usrp/cores/gpio_core_200.cpp | 205 119 + 86 - 0 !
host/lib/usrp/cores/i2c_core_100_wb32.cpp | 117 61 + 56 - 0 !
host/lib/usrp/cores/i2c_core_200.cpp | 124 66 + 58 - 0 !
host/lib/usrp/cores/radio_ctrl_core_3000.cpp | 280 146 + 134 - 0 !
host/lib/usrp/cores/rx_dsp_core_200.cpp | 297 168 + 129 - 0 !
host/lib/usrp/cores/rx_frontend_core_200.cpp | 92 51 + 41 - 0 !
host/lib/usrp/cores/rx_vita_core_3000.cpp | 113 55 + 58 - 0 !
host/lib/usrp/cores/spi_core_3000.cpp | 67 35 + 32 - 0 !
host/lib/usrp/cores/time64_core_200.cpp | 112 66 + 46 - 0 !
host/lib/usrp/cores/time_core_3000.cpp | 62 28 + 34 - 0 !
host/lib/usrp/cores/tx_dsp_core_200.cpp | 213 121 + 92 - 0 !
host/lib/usrp/cores/tx_frontend_core_200.cpp | 91 50 + 41 - 0 !
host/lib/usrp/cores/tx_vita_core_3000.cpp | 102 47 + 55 - 0 !
host/lib/usrp/cores/user_settings_core_200.cpp | 23 14 + 9 - 0 !
host/lib/usrp/cores/user_settings_core_3000.cpp | 49 28 + 21 - 0 !
host/lib/usrp/dboard/db_basic_and_lf.cpp | 229 113 + 116 - 0 !
host/lib/usrp/dboard/db_cbx.cpp | 55 30 + 25 - 0 !
host/lib/usrp/dboard/db_dbsrx.cpp | 548 299 + 249 - 0 !
host/lib/usrp/dboard/db_dbsrx2.cpp | 323 171 + 152 - 0 !
host/lib/usrp/dboard/db_rfx.cpp | 460 259 + 201 - 0 !
host/lib/usrp/dboard/db_sbx_common.cpp | 339 190 + 149 - 0 !
host/lib/usrp/dboard/db_sbx_common.hpp | 175 86 + 89 - 0 !
host/lib/usrp/dboard/db_sbx_version3.cpp | 50 28 + 22 - 0 !
host/lib/usrp/dboard/db_sbx_version4.cpp | 50 28 + 22 - 0 !
host/lib/usrp/dboard/db_tvrx.cpp | 465 275 + 190 - 0 !
host/lib/usrp/dboard/db_tvrx2.cpp | 1185 673 + 512 - 0 !
host/lib/usrp/dboard/db_twinrx.cpp | 405 228 + 177 - 0 !
host/lib/usrp/dboard/db_ubx.cpp | 853 425 + 428 - 0 !
host/lib/usrp/dboard/db_unknown.cpp | 141 68 + 73 - 0 !
host/lib/usrp/dboard/db_wbx_common.cpp | 103 58 + 45 - 0 !
host/lib/usrp/dboard/db_wbx_common.hpp | 135 69 + 66 - 0 !
host/lib/usrp/dboard/db_wbx_simple.cpp | 143 87 + 56 - 0 !
host/lib/usrp/dboard/db_wbx_version2.cpp | 235 141 + 94 - 0 !
host/lib/usrp/dboard/db_wbx_version3.cpp | 269 147 + 122 - 0 !
host/lib/usrp/dboard/db_wbx_version4.cpp | 283 156 + 127 - 0 !
host/lib/usrp/dboard/db_xcvr2450.cpp | 754 408 + 346 - 0 !
host/lib/usrp/dboard/e3xx/e31x_radio_ctrl_impl.cpp | 261 121 + 140 - 0 !
host/lib/usrp/dboard/e3xx/e31x_radio_ctrl_impl.hpp | 58 24 + 34 - 0 !
host/lib/usrp/dboard/e3xx/e31x_regs.hpp | 21 10 + 11 - 0 !
host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.cpp | 6 4 + 2 - 0 !
host/lib/usrp/dboard/e3xx/e3xx_ad9361_iface.hpp | 5 3 + 2 - 0 !
host/lib/usrp/dboard/e3xx/e3xx_bands.cpp | 32 21 + 11 - 0 !
host/lib/usrp/dboard/e3xx/e3xx_radio_ctrl_impl.cpp | 8 4 + 4 - 0 !
host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp | 779 317 + 462 - 0 !
host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp | 46 16 + 30 - 0 !
host/lib/usrp/dboard/magnesium/magnesium_ad9371_iface.cpp | 2 1 + 1 - 0 !
host/lib/usrp/dboard/magnesium/magnesium_ad9371_iface.hpp | 5 1 + 4 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_bands.cpp | 115 57 + 58 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_constants.hpp | 51 22 + 29 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_cpld_ctrl.cpp | 411 184 + 227 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_cpld_ctrl.hpp | 217 86 + 131 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_cpld.cpp | 329 144 + 185 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.cpp | 352 166 + 186 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp | 135 57 + 78 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_init.cpp | 949 410 + 539 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_lo.cpp | 466 235 + 231 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_ctrl.cpp | 620 387 + 233 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_ctrl.hpp | 39 25 + 14 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_experts.cpp | 368 200 + 168 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_experts.hpp | 633 332 + 301 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_gain_tables.cpp | 17 9 + 8 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_gain_tables.hpp | 63 36 + 27 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_ids.hpp | 8 4 + 4 - 0 !
host/lib/usrp/dboard/twinrx/twinrx_io.hpp | 541 329 + 212 - 0 !
host/lib/usrp/dboard_base.cpp | 77 45 + 32 - 0 !
host/lib/usrp/dboard_ctor_args.hpp | 30 16 + 14 - 0 !
host/lib/usrp/dboard_eeprom.cpp | 107 53 + 54 - 0 !
host/lib/usrp/dboard_eeprom_c.cpp | 122 42 + 80 - 0 !
host/lib/usrp/dboard_id.cpp | 45 29 + 16 - 0 !
host/lib/usrp/dboard_iface.cpp | 14 7 + 7 - 0 !
host/lib/usrp/dboard_iface_python.hpp | 77 35 + 42 - 0 !
host/lib/usrp/dboard_manager.cpp | 512 278 + 234 - 0 !
host/lib/usrp/device3/device3_flow_ctrl.hpp | 3 2 + 1 - 0 !
host/lib/usrp/device3/device3_io_impl.cpp | 45 16 + 29 - 0 !
host/lib/usrp/fe_connection.cpp | 50 29 + 21 - 0 !
host/lib/usrp/fe_connection_python.hpp | 14 6 + 8 - 0 !
host/lib/usrp/gps_ctrl.cpp | 573 284 + 289 - 0 !
host/lib/usrp/mboard_eeprom_c.cpp | 58 18 + 40 - 0 !
host/lib/usrp/mpmd/mpmd_find.cpp | 2 1 + 1 - 0 !
host/lib/usrp/mpmd/mpmd_impl.cpp | 3 2 + 1 - 0 !
host/lib/usrp/mpmd/mpmd_impl.hpp | 4 2 + 2 - 0 !
host/lib/usrp/mpmd/mpmd_xport_ctrl_dpdk_udp.cpp | 182 82 + 100 - 0 !
host/lib/usrp/mpmd/mpmd_xport_ctrl_dpdk_udp.hpp | 22 7 + 15 - 0 !
host/lib/usrp/mpmd/mpmd_xport_ctrl_liberio.cpp | 43 20 + 23 - 0 !
host/lib/usrp/mpmd/mpmd_xport_ctrl_udp.cpp | 23 8 + 15 - 0 !
host/lib/usrp/mpmd/mpmd_xport_mgr.cpp | 2 1 + 1 - 0 !
host/lib/usrp/multi_usrp.cpp | 2330 1315 + 1015 - 0 !
host/lib/usrp/multi_usrp_python.hpp | 546 409 + 137 - 0 !
host/lib/usrp/n230/n230_clk_pps_ctrl.cpp | 83 42 + 41 - 0 !
host/lib/usrp/n230/n230_clk_pps_ctrl.hpp | 13 6 + 7 - 0 !
host/lib/usrp/n230/n230_cores.cpp | 32 13 + 19 - 0 !
host/lib/usrp/n230/n230_cores.hpp | 28 13 + 15 - 0 !
host/lib/usrp/n230/n230_defaults.h | 3 3 + 0 - 0 !
host/lib/usrp/n230/n230_device_args.hpp | 110 61 + 49 - 0 !
host/lib/usrp/n230/n230_eeprom_manager.cpp | 129 67 + 62 - 0 !
host/lib/usrp/n230/n230_eeprom_manager.hpp | 23 12 + 11 - 0 !
host/lib/usrp/n230/n230_frontend_ctrl.cpp | 154 71 + 83 - 0 !
host/lib/usrp/n230/n230_frontend_ctrl.hpp | 39 13 + 26 - 0 !
host/lib/usrp/n230/n230_fw_ctrl_iface.cpp | 157 78 + 79 - 0 !
host/lib/usrp/n230/n230_fw_ctrl_iface.hpp | 26 11 + 15 - 0 !
host/lib/usrp/n230/n230_image_loader.cpp | 152 84 + 68 - 0 !
host/lib/usrp/n230/n230_impl.cpp | 567 314 + 253 - 0 !
host/lib/usrp/n230/n230_impl.hpp | 44 22 + 22 - 0 !
host/lib/usrp/n230/n230_resource_manager.cpp | 513 299 + 214 - 0 !
host/lib/usrp/n230/n230_resource_manager.hpp | 304 159 + 145 - 0 !
host/lib/usrp/n230/n230_stream_manager.cpp | 468 255 + 213 - 0 !
host/lib/usrp/n230/n230_stream_manager.hpp | 109 47 + 62 - 0 !
host/lib/usrp/n230/n230_uart.cpp | 76 37 + 39 - 0 !
host/lib/usrp/n230/n230_uart.hpp | 6 3 + 3 - 0 !
host/lib/usrp/subdev_spec.cpp | 67 39 + 28 - 0 !
host/lib/usrp/subdev_spec_c.cpp | 152 56 + 96 - 0 !
host/lib/usrp/subdev_spec_python.hpp | 14 6 + 8 - 0 !
host/lib/usrp/usrp1/codec_ctrl.cpp | 389 198 + 191 - 0 !
host/lib/usrp/usrp1/codec_ctrl.hpp | 14 5 + 9 - 0 !
host/lib/usrp/usrp1/dboard_iface.cpp | 439 225 + 214 - 0 !
host/lib/usrp/usrp1/io_impl.cpp | 679 353 + 326 - 0 !
host/lib/usrp/usrp1/mb_eeprom.cpp | 93 44 + 49 - 0 !
host/lib/usrp/usrp1/soft_time_ctrl.cpp | 189 104 + 85 - 0 !
host/lib/usrp/usrp1/soft_time_ctrl.hpp | 27 14 + 13 - 0 !
host/lib/usrp/usrp1/usrp1_calc_mux.hpp | 133 69 + 64 - 0 !
host/lib/usrp/usrp1/usrp1_iface.cpp | 141 69 + 72 - 0 !
host/lib/usrp/usrp1/usrp1_iface.hpp | 29 16 + 13 - 0 !
host/lib/usrp/usrp1/usrp1_impl.cpp | 425 234 + 191 - 0 !
host/lib/usrp/usrp1/usrp1_impl.hpp | 156 80 + 76 - 0 !
host/lib/usrp/usrp2/clock_ctrl.cpp | 469 258 + 211 - 0 !
host/lib/usrp/usrp2/clock_ctrl.hpp | 8 4 + 4 - 0 !
host/lib/usrp/usrp2/codec_ctrl.cpp | 308 165 + 143 - 0 !
host/lib/usrp/usrp2/codec_ctrl.hpp | 6 3 + 3 - 0 !
host/lib/usrp/usrp2/dboard_iface.cpp | 317 168 + 149 - 0 !
host/lib/usrp/usrp2/io_impl.cpp | 517 291 + 226 - 0 !
host/lib/usrp/usrp2/mb_eeprom.cpp | 251 134 + 117 - 0 !
host/lib/usrp/usrp2/n200_image_loader.cpp | 529 275 + 254 - 0 !
host/lib/usrp/usrp2/usrp2_clk_regs.hpp | 138 72 + 66 - 0 !
host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp | 181 96 + 85 - 0 !
host/lib/usrp/usrp2/usrp2_fifo_ctrl.hpp | 6 3 + 3 - 0 !
host/lib/usrp/usrp2/usrp2_iface.cpp | 500 284 + 216 - 0 !
host/lib/usrp/usrp2/usrp2_iface.hpp | 22 12 + 10 - 0 !
host/lib/usrp/usrp2/usrp2_impl.cpp | 1090 577 + 513 - 0 !
host/lib/usrp/usrp2/usrp2_impl.hpp | 116 59 + 57 - 0 !
host/lib/usrp/usrp2/usrp2_regs.hpp | 88 44 + 44 - 0 !
host/lib/usrp/usrp_c.cpp | 1609 581 + 1028 - 0 !
host/lib/usrp/x300/x300_defaults.hpp | 23 11 + 12 - 0 !
host/lib/usrp/x300/x300_device_args.hpp | 4 2 + 2 - 0 !
host/lib/usrp/x300/x300_image_loader.cpp | 5 2 + 3 - 0 !
host/lib/usrp/x300/x300_impl.cpp | 13 6 + 7 - 0 !
host/lib/usrp/x300/x300_mb_eeprom_iface.cpp | 2 1 + 1 - 0 !
host/lib/usrp/x300/x300_pcie_mgr.cpp | 2 1 + 1 - 0 !
host/lib/usrp/x300/x300_radio_ctrl_impl.cpp | 17 8 + 9 - 0 !
host/lib/usrp_clock/octoclock/octoclock_uart.cpp | 2 1 + 1 - 0 !
host/lib/utils/compat_check.cpp | 89 31 + 58 - 0 !
host/lib/utils/config_parser.cpp | 27 10 + 17 - 0 !
host/lib/utils/csv.cpp | 26 14 + 12 - 0 !
host/lib/utils/eeprom_utils.cpp | 15 7 + 8 - 0 !
host/lib/utils/gain_group.cpp | 141 77 + 64 - 0 !
host/lib/utils/ihex.cpp | 92 46 + 46 - 0 !
host/lib/utils/load_modules.cpp | 65 32 + 33 - 0 !
host/lib/utils/log.cpp | 4 2 + 2 - 0 !
host/lib/utils/log_c.cpp | 31 15 + 16 - 0 !
host/lib/utils/paths.cpp | 241 141 + 100 - 0 !
host/lib/utils/pathslib.cpp | 14 5 + 9 - 0 !
host/lib/utils/platform.cpp | 50 29 + 21 - 0 !
host/lib/utils/prefs.cpp | 115 49 + 66 - 0 !
host/lib/utils/static.cpp | 13 6 + 7 - 0 !
host/lib/utils/system_time.cpp | 37 20 + 17 - 0 !
host/lib/utils/tasks.cpp | 130 65 + 65 - 0 !
host/lib/utils/thread.cpp | 146 79 + 67 - 0 !
host/lib/utils/thread_priority_c.cpp | 16 6 + 10 - 0 !
host/lib/version.cpp | 13 8 + 5 - 0 !
host/lib/version_c.cpp | 29 10 + 19 - 0 !
host/python/pyuhd.cpp | 17 7 + 10 - 0 !
host/tests/dpdk_test.cpp | 110 45 + 65 - 0 !
host/tests/isatty_test.cpp | 3 1 + 2 - 0 !
host/tests/scope_exit_test.cpp | 5 2 + 3 - 0 !
host/utils/b2xx_fx3_utils.cpp | 7 4 + 3 - 0 !
host/utils/converter_benchmark.cpp | 8 5 + 3 - 0 !
382 files changed, 29725 insertions(+), 27770 deletions(-)

 [patch 15/62] uhd: apply clang-format against all .cpp and .hpp files
 in host/

Note: template_lvbitx.{cpp,hpp} need to be excluded from the
list of files that clang-format gets applied against.
host/lib/dep is also excluded from this change.

0016 mpm Apply clang format against all .cpp and .hpp fil.patch | (download)

mpm/include/mpm/ad9361/ad9361_ctrl.hpp | 61 22 + 39 - 0 !
mpm/include/mpm/ad9361/e31x_defaults.hpp | 33 21 + 12 - 0 !
mpm/include/mpm/ad937x/ad937x_ctrl.hpp | 37 19 + 18 - 0 !
mpm/include/mpm/dboards/e31x_db_manager.hpp | 23 13 + 10 - 0 !
mpm/include/mpm/types/types_python.hpp | 4 1 + 3 - 0 !
mpm/lib/dboards/e31x_db_manager.cpp | 27 15 + 12 - 0 !
mpm/lib/mykonos/ad937x_device.cpp | 5 3 + 2 - 0 !
mpm/lib/mykonos/config/ad937x_gain_ctrl_config.hpp | 6 4 + 2 - 0 !
8 files changed, 98 insertions(+), 98 deletions(-)

 [patch 16/62] mpm: apply clang-format against all .cpp and .hpp files


0017 mpm cmake adopt default enable values of modules.patch | (download)

mpm/CMakeLists.txt | 8 4 + 4 - 0 !
1 file changed, 4 insertions(+), 4 deletions(-)

 [patch 17/62] mpm: cmake: adopt default enable values of modules

The cmake script (macro MPM_REGISTER_COMPONENT) has an issue that the default
value is ignored which will be fixed in the following commit.

As a result of this issue, the modules Mykonos, Magnesium, E320 and E300 never
got enabled per default. It was always necessary to use an override
like ENABLE_MYKONOS=ON.

Therefore, change the default enable values so that a fix to MPM_REGISTER_COMPONENT
does not change the current behavior.

0018 mpm fixed cmake macro for enabling modules.patch | (download)

mpm/cmake/Modules/MPMComponent.cmake | 19 12 + 7 - 0 !
1 file changed, 12 insertions(+), 7 deletions(-)

 [patch 18/62] mpm: fixed cmake macro for enabling modules

The macro MPM_REGISTER_COMPONENT did not work as described: in case
the default enable was set to ON and all dependencies were met, the
module was still not enabled.

Also made the status prints more helpful:
- print the default value,
- print the user override (if one was provided)
- print the resulting VAR = VALUE
- print the override hint only if the user did not
  already specify an override

Example of old incorrect behavior:
-- Configuring Mykonos support...
--   Dependency ENABLE_LIBMPM = ON
--   Disabling Mykonos support.
--   Override with -DENABLE_MYKONOS=ON/OFF

Example of new correct behavior (also with changed prints):
-- Configuring Mykonos support...
--   Default value ENABLE_MYKONOS = ON
--   Dependency ENABLE_LIBMPM = ON
--   Enabling Mykonos support (ENABLE_MYKONOS = ON)
--   Override with -DENABLE_MYKONOS=ON/OFF

0019 thread Remove log messages for set_thread_name when .patch | (download)

host/lib/utils/thread.cpp | 6 4 + 2 - 0 !
1 file changed, 4 insertions(+), 2 deletions(-)

 [patch 19/62] thread: remove log messages for set_thread_name() when
 not supported

On systems like Windows, set_thread_name() is not supported, and would
previously log an error message telling the user that it can't set the
thread name. However, that prevents set_thread_name() to be called
before the logger is being set up, and the logger would like to use this
function.

Since it is obvious to the user if threads can be named or not, the log
message is considered redundant and is removed.

0020 log Remove LOG statement from _get_log_level.patch | (download)

host/lib/utils/log.cpp | 3 1 + 2 - 0 !
1 file changed, 1 insertion(+), 2 deletions(-)

 [patch 20/62] log: remove log statement from _get_log_level()

_get_log_level() is an internal function that only gets called during
setup, so the logger isn't ready yet. It thus now logs to stderr instead
of the logger.

0021 docs fix typo in stream.hpp.patch | (download)

host/include/uhd/stream.hpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 21/62] docs: fix typo in stream.hpp


0022 examples benchmark_rate clean print out.patch | (download)

host/examples/benchmark_rate.cpp | 20 11 + 9 - 0 !
1 file changed, 11 insertions(+), 9 deletions(-)

 [patch 22/62] examples: benchmark_rate clean print out

Cleans up the print out for the benchmark rate example. Removes
race condition that would cause send and receive initialization
messages to interleave to stdout.

0023 python Fix internal library name incl. suffix to mat.patch | (download)

host/python/CMakeLists.txt | 14 7 + 7 - 0 !
1 file changed, 7 insertions(+), 7 deletions(-)

 [patch 23/62] python: fix internal library name (incl. suffix) to
 match filename.

Instead of renaming the library file, this sets the suffix in CMake so
that the filename turns out as desired and also linker references know
the correct name.

0024 python Do not link against python lib for building a.patch | (download)

host/python/CMakeLists.txt | 11 10 + 1 - 0 !
1 file changed, 10 insertions(+), 1 deletion(-)

 [patch 24/62] python: do not link against python lib for building an
 extension module.

This fixes a segmentation fault when trying to use the python module on
OSX when built with conda (unsure why it doesn't arise otherwise).
Instead of linking against the python library, it is proper to not link
against the library and, for OSX builds, add linker options for
"-undefined" and "dynamic_lookup". This is precisely what the CMake
FindPython module does for linking against the Python::Module target.

See https://blog.tim-smith.us/2015/09/python-extension-modules-os-x
and https://bugs.python.org/issue36721

0025 python Set python module suffix to conform with PEP .patch | (download)

host/python/CMakeLists.txt | 11 10 + 1 - 0 !
1 file changed, 10 insertions(+), 1 deletion(-)

 [patch 25/62] python: set python module suffix to conform with pep
 3149.

This adds the python implementation, major and minor version numbers,
and any additional flags (debug, pymalloc, wide unicode) to the
extension module suffix as specified in PEP 3149.

Hat tip to @isuruf:
https://github.com/conda-forge/staged-recipes/pull/10076#discussion_r348721448

0026 lib utils Don t use hard coded path constants.patch | (download)

host/include/uhd/utils/paths.hpp | 3 3 + 0 - 0 !
host/lib/utils/paths.cpp | 29 27 + 2 - 0 !
2 files changed, 30 insertions(+), 2 deletions(-)

 [patch 26/62] lib: utils: don't use hard-coded path constants

This replaces the package path constant with a runtime library path
lookup. The package path is taken to be the parent directory of the
library directory.

When boost >= 1.61 is not available, this maintains the current behavior
of using CMake to set path contants.

Runtime path determination is preferable for making a relocatable
library so that it is not necessary to do string substitution on
relocated binaries (as with, for example, building a conda package).

0027 mpm catalina Add thread.cpp from UHD to included fil.patch | (download)

mpm/lib/catalina/CMakeLists.txt | 13 13 + 0 - 0 !
1 file changed, 13 insertions(+)

 [patch 27/62] mpm: catalina: add thread.cpp from uhd to included
 files

This avoids a linker error where set_thread_name and set_thread_priority
cannot be found.

0028 mpm cmake added date_time as required boost componen.patch | (download)

mpm/CMakeLists.txt | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 [patch 28/62] mpm: cmake: added date_time as required boost component

this fixes the error of a missing symbol
_ZNK5boost9gregorian10greg_month15as_short_stringEv
in /usr/lib/libusrp-periphs.so.4 when building
with Boost 1.71

0029 utils images downloader Handle missing content lengt.patch | (download)

host/utils/uhd_images_downloader.py.in | 25 18 + 7 - 0 !
1 file changed, 18 insertions(+), 7 deletions(-)

 [patch 29/62] utils: images downloader: handle missing content-length
 response

If the content-length header is not available, uhd_images_downloader
will now ask the user if she wants to continue. Previously, the tool
would throw an exception.

0030 utils images downloader Add support for UHD_IMAGES_U.patch | (download)

host/utils/uhd_images_downloader.py.in | 22 3 + 19 - 0 !
1 file changed, 3 insertions(+), 19 deletions(-)

 [patch 30/62] utils: images downloader: add support for
 UHD_IMAGES_URL, clean up

- Remove Python2 compat hacks
- Read the UHD_IMAGES_URL environment variable. If set, it overrides the
  default value for --base-url

0031 device read in preferences file before discovery.patch | (download)

host/lib/device.cpp | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 [patch 31/62] device: read in preferences file before discovery


0032 docs n3xx x3xx Fix links to DPDK page.patch | (download)

host/docs/usrp_n3xx.dox | 2 1 + 1 - 0 !
host/docs/usrp_x3x0.dox | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

 [patch 32/62] docs: n3xx/x3xx: fix links to dpdk page

The n3xx and x3xx device pages both link to the DPDK page. However, the
link was setup as type "subpage" instead of "ref". The result was that
both device pages thought they owned the DPDK page which caused
non-intuitive behavior when clicking through links in the manual

0033 utils populate_images download with python3.patch | (download)

images/populate_images.py | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 33/62] utils: populate_images: download with python3


0034 mpm rpc Use contextmanager for claim timeouts.patch | (download)

mpm/python/usrp_mpm/rpc_server.py | 71 38 + 33 - 0 !
1 file changed, 38 insertions(+), 33 deletions(-)

 [patch 34/62] mpm: rpc: use contextmanager for claim timeouts

Modify the RPC claim timeout mechanism to use a contextmanager
helper function when enabling/disabling timeouts.

0035 mpm Make contextmanagers exception safe.patch | (download)

mpm/python/tests/mpm_utils_tests.py | 55 55 + 0 - 0 !
mpm/python/tests/run_unit_tests.py | 6 5 + 1 - 0 !
mpm/python/usrp_mpm/mpmutils.py | 6 4 + 2 - 0 !
mpm/python/usrp_mpm/sys_utils/uio.py | 6 4 + 2 - 0 !
4 files changed, 68 insertions(+), 5 deletions(-)

 [patch 35/62] mpm: make contextmanagers exception-safe

When making context managers in Python, the yield statement has to be wrapped in a try/finally clause in order to properly clean up after exceptions happen.

0036 Add TwinRX support to phase alignment script.patch | (download)

tools/gr-usrptest/apps/uhd_phase_alignment.py | 76 57 + 19 - 0 !
1 file changed, 57 insertions(+), 19 deletions(-)

 [patch 36/62] add twinrx support to phase alignment script


0037 mpm explicitly set max buffer size for msgpack unpac.patch | (download)

mpm/python/usrp_mpm/rpc_server.py | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 [patch 37/62] mpm: explicitly set max buffer size for msgpack
 unpacker

Msgpack version 0.6 reduced the default max buffer size to 1MB which is
smaller than the bitfiles. This change sets the max buffer size to 50MB
which is larger than the bitfiles.

0038 mpm rpc_server set correct default unpacker params f.patch | (download)

mpm/python/usrp_mpm/rpc_server.py | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 [patch 38/62] mpm: rpc_server: set correct default unpacker params
 for msgpack 0.6.1

msgpack 0.6.1 suggests new default parameters which ensures compatibility
with the upcoming msgpack 1.0 release which will have breaking changes.

The parameter changes are described in
https://github.com/msgpack/msgpack-python/blob/v0.6.1/README.rst

The default parameters for msgpack 1.0 will be:
- packer: use_bin_type=True
- unpacker: raw=False

The packer use_bin_type=True option is already set in the client
(mpm_shell.py) but the unpacker option raw=False needs to be set
in the server (rpc_server.py)

This change allows the usage of a patched version of python3-mprpc
0.1.17 which removes passing the encoding option to the Packer and
Unpacker

Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>

0039 uhd Add quotes around test environment variables.patch | (download)

host/cmake/Modules/UHDUnitTest.cmake | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 39/62] uhd: add quotes around test environment variables

On systems which have spaces in the environment variables, such as
$PATH, attempting to run the generated test scripts will throw an error
about a bad variable name. Adding quotes around the values prevents
this error.

0040 examples Fix replay example for replay_chan 1.patch | (download)

host/examples/replay_samples_from_file.cpp | 9 7 + 2 - 0 !
1 file changed, 7 insertions(+), 2 deletions(-)

 [patch 40/62] examples: fix replay example for replay_chan > 1


0041 Revert utils images downloader Add support for UHD_I.patch | (download)

host/utils/uhd_images_downloader.py.in | 22 19 + 3 - 0 !
1 file changed, 19 insertions(+), 3 deletions(-)

 [patch 41/62] revert "utils: images downloader: add support for
 UHD_IMAGES_URL, clean up"

This reverts commit 43cfd1ffe9a45598777a939bcb3b507b5934f4f3.
Said commit breaks Python2-compatibility, which is still required on
3.15.

Note that this branch (UHD-3.15.LTS) already has a related fix in
a Python2-compatible version (95475ae), so this commit is not needed to
add support for UHD_IMAGES_URL.

0042 rpclib Remove some warnings from object.hpp.patch | (download)

host/lib/deps/rpclib/include/rpc/msgpack/object.hpp | 12 12 + 0 - 0 !
1 file changed, 12 insertions(+)

 [patch 42/62] rpclib: remove some warnings from object.hpp

This removes -Wmaybe-uninitialized and -Wclass-memaccess from this file
when using gcc.

0043 libusb Remove deprecation warnings for libusb_set_de.patch | (download)

host/lib/transport/libusb1_base.cpp | 15 14 + 1 - 0 !
1 file changed, 14 insertions(+), 1 deletion(-)

 [patch 43/62] libusb: remove deprecation warnings for
 libusb_set_debug

Starting with 1.0.22, libusb considers libusb_set_debug() deprecated.
This replaces said call with libusb_set_option(), conditionally on the
libusb version. This has no effect on the execution, but will remove
some compiler versions, and make this code more future-proof.

Note that Ubuntu 18.04 ships libusb 1.0.21, so this conditional code
needs to remain until that version is deprecated and libusb version is
bumped higher.

0044 x300 Fix get_tx_gain.patch | (download)

host/lib/usrp/x300/x300_radio_ctrl_impl.cpp | 16 9 + 7 - 0 !
host/lib/usrp/x300/x300_radio_ctrl_impl.hpp | 1 1 + 0 - 0 !
2 files changed, 10 insertions(+), 7 deletions(-)

 [patch 44/62] x300: fix get_tx_gain()

RX and TX gain were asymmetrically implemented. This makes them
symmetric by making the following changes:
- Don't rely on radio_ctrl_impl for any gain settings
- Use the gain groups for get/set gain
- Remove a branch in set_tx_gain() that would return 0 if called with
  an invalid channel.

0045 ad9361 Remove compiler warning.patch | (download)

host/lib/usrp/common/ad9361_driver/ad9361_device.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 45/62] ad9361: remove compiler warning

Adds UHD_UNUSED() to tag a variable that is only used in
a UHD_LOG_TRACE() macro.

0046 rh Remove compiler warnings.patch | (download)

host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_cpld.cpp | 6 4 + 2 - 0 !
host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.cpp | 6 3 + 3 - 0 !
2 files changed, 7 insertions(+), 5 deletions(-)

 [patch 46/62] rh: remove compiler warnings

- Remove warnings related to functions only used in TRACE log statements
- Fix a catch statement that caught by value

0047 dpdk Remove compiler warning.patch | (download)

host/lib/usrp/mpmd/mpmd_xport_ctrl_dpdk_udp.cpp | 2 1 + 1 - 0 !
host/lib/usrp/x300/x300_eth_mgr.cpp | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

 [patch 47/62] dpdk: remove compiler warning

This changes a const-cast to a regular cast.

0048 nocscript Remove warnings during build of Noc Script.patch | (download)

host/lib/rfnoc/nocscript/gen_basic_funcs.py | 34 19 + 15 - 0 !
1 file changed, 19 insertions(+), 15 deletions(-)

 [patch 48/62] nocscript: remove warnings during build of noc-script
 functions

- Fix PyLint warnings
- Fix compile/build warning regarding empty split regex

0049 device_addr Silence Boost warnings from lexical_cast.patch | (download)

host/include/uhd/types/device_addr.hpp | 10 10 + 0 - 0 !
1 file changed, 10 insertions(+)

 [patch 49/62] device_addr: silence boost warnings from lexical_cast

In some versions of Boost, using lexical_cast with certain types creates
warnings about uninitialized return values. We simply turn off the
warning on gcc.

0050 ad9361 Fix mask for product ID check.patch | (download)

host/lib/usrp/common/ad9361_driver/ad9361_device.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 50/62] ad9361: fix mask for product id check

The product ID check should be masked with 0xF8 and checked to be 0x08.
With a device off and weak pull-ups, the readback would always read
0xFF, passing the ID check when it obviously wasn't there. Extending
the mask to be 0xF8 shows that both 0's and 1's are read back from the
device.

0051 boost Include bind.hpp where used add BOOST_BIND_GLO.patch | (download)

host/cmake/Modules/UHDBoost.cmake | 3 3 + 0 - 0 !
host/examples/network_relay.cpp | 1 1 + 0 - 0 !
host/examples/rfnoc_rx_to_file.cpp | 1 1 + 0 - 0 !
host/examples/test_clock_synch.cpp | 1 1 + 0 - 0 !
host/examples/txrx_loopback_to_file.cpp | 1 1 + 0 - 0 !
host/lib/rfnoc/dma_fifo_block_ctrl_impl.cpp | 1 1 + 0 - 0 !
host/lib/rfnoc/legacy_compat.cpp | 1 1 + 0 - 0 !
host/lib/transport/xport_benchmarker.cpp | 1 1 + 0 - 0 !
host/lib/usrp/b100/b100_impl.cpp | 1 1 + 0 - 0 !
host/lib/usrp/b200/b200_iface.cpp | 1 1 + 0 - 0 !
host/lib/usrp/b200/b200_impl.cpp | 1 1 + 0 - 0 !
host/lib/usrp/cores/rx_dsp_core_3000.cpp | 1 1 + 0 - 0 !
host/lib/usrp/cores/tx_dsp_core_3000.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_cbx.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_dbsrx.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_dbsrx2.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_sbx_common.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_sbx_version3.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_sbx_version4.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_tvrx.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_tvrx2.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_twinrx.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_ubx.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_wbx_common.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_wbx_simple.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_wbx_version2.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_wbx_version3.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_wbx_version4.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/db_xcvr2450.cpp | 1 1 + 0 - 0 !
host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.cpp | 1 1 + 0 - 0 !
host/lib/usrp/multi_usrp.cpp | 1 1 + 0 - 0 !
host/lib/usrp/n230/n230_resource_manager.cpp | 1 1 + 0 - 0 !
host/lib/usrp/n230/n230_uart.cpp | 1 1 + 0 - 0 !
host/lib/usrp/usrp1/soft_time_ctrl.cpp | 1 1 + 0 - 0 !
host/lib/usrp/usrp1/usrp1_impl.cpp | 1 1 + 0 - 0 !
host/lib/usrp/x300/x300_radio_ctrl_impl.cpp | 1 1 + 0 - 0 !
host/lib/usrp_clock/octoclock/octoclock_impl.cpp | 1 1 + 0 - 0 !
host/lib/utils/ihex.cpp | 1 1 + 0 - 0 !
host/lib/utils/tasks.cpp | 1 1 + 0 - 0 !
host/utils/uhd_cal_rx_iq_balance.cpp | 1 1 + 0 - 0 !
host/utils/uhd_cal_tx_dc_offset.cpp | 1 1 + 0 - 0 !
host/utils/uhd_cal_tx_iq_balance.cpp | 1 1 + 0 - 0 !
42 files changed, 44 insertions(+)

 [patch 51/62] boost: include bind.hpp where used, add
 BOOST_BIND_GLOBAL_PLACEHOLDERS

Consists of two changes:
- Grepped for files that use boost::bind, but don't include
  boost/bind.hpp. Changed all of those to include bind.hpp
- Add BOOST_BIND_GLOBAL_PLACEHOLDERS so that Boost doesn't complain
  about using bind placeholders in the global namespace.

Background: boost/bind.hpp is a convenience header that pulls the Boost
bind placeholders into the global namespace, but that's deprecated
behaviour. For UHD 3.15, we'll keep the deprecated behaviour (modern UHD
no longer uses Boost.Bind), so this fixes build failures with modern
Boost, and related warnings.

0052 lib Make sure generated file is closed.patch | (download)

host/lib/ic_reg_maps/common.py | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 [patch 52/62] lib: make sure generated file is closed

Letting garbage collection close the file works when using CPython, but
0053 utils Fix prefix determination in get_lib_path.patch | (download)

host/lib/utils/paths.cpp | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 [patch 53/62] utils: fix prefix determination in get_lib_path()

get_lib_path() uses the libuhd location on disk to dynamically
determine the installation prefix at runtime. This fix normalizes the
libuhd path before any path operations are done to extract the library
directory and then prefix directory.

Previously, using a non-normalized library path, the returned prefix
directory would be incorrect in some cases (e.g. when loaded through
GNU Radio). In these error cases, the libuhd path would be
  $PREFIX/lib/./libuhd.so
(with a no-op /. inserted) which would result in a technically correct
library directory of `$PREFIX/lib/.` but an incorrect prefix directory
of `$PREFIX/lib`.

With the normalization fix, the libuhd path is corrected to
  $PREFIX/lib/libuhd.so
and the subsequent path manipulation to get the library and prefix
directories will work as intended.

0054 utils Make uhd_config_info print help by default.patch | (download)

host/utils/uhd_config_info.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 54/62] utils: make uhd_config_info print help by default


0055 Docs Update Python3 dependencies.patch | (download)

host/docs/build.dox.in | 25 13 + 12 - 0 !
1 file changed, 13 insertions(+), 12 deletions(-)

 [patch 55/62] docs: update python3 dependencies

Signed-off-by: michael-west <michael.west@ettus.com>

0056 debian Update Python3 dependencies.patch | (download)

host/cmake/debian/README.Debian | 2 1 + 1 - 0 !
host/cmake/debian/control | 17 14 + 3 - 0 !
2 files changed, 15 insertions(+), 4 deletions(-)

 [patch 56/62] debian: update python3 dependencies

Signed-off-by: michael-west <michael.west@ettus.com>

0057 docs Fix doxygen warnings.patch | (download)

host/docs/Doxyfile.in | 14 0 + 14 - 0 !
host/docs/build.dox.in | 3 2 + 1 - 0 !
host/docs/rd_testing.dox | 2 1 + 1 - 0 !
3 files changed, 3 insertions(+), 16 deletions(-)

 [patch 57/62] docs: fix doxygen warnings


0058 n310 n300 Allow gain coercion.patch | (download)

host/lib/usrp/dboard/magnesium/magnesium_radio_ctrl_impl.cpp | 18 16 + 2 - 0 !
1 file changed, 16 insertions(+), 2 deletions(-)

 [patch 58/62] n310/n300: allow gain coercion

0059 devtest Fix benchmark_rate_test success criteria.patch | (download)

host/tests/devtest/benchmark_rate_test.py | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 [patch 59/62] devtest: fix benchmark_rate_test success criteria

Allow success if testing either TX or RX.  Previously required both TX
and RX to be tested simultaneously.

Signed-off-by: Michael West <michael.west@ettus.com>

0060 devtest Add method to get number of channels.patch | (download)

host/tests/devtest/usrp_probe.py | 36 36 + 0 - 0 !
1 file changed, 36 insertions(+)

 [patch 60/62] devtest: add method to get number of channels

Adding method to get number of TX and RX channels to usrp_probe.

Signed-off-by: Michael West <michael.west@ettus.com>