aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
Commit message (Collapse)AuthorAgeFilesLines
* rfnoc: Add update_graph() API callMartin Braun2019-07-151-0/+28
| | | | | | Blocks that change scaling, tick rate, or sampling rate can now notify the graph to update streamers. Before, this was handled only by mult_usrp, and only for DDC and DUC blocks.
* utils: log: Fix includes for UHD_HEX()Martin Braun2019-06-121-0/+1
| | | | Using UHD_HEX() requires <iomanip>, which is now part of log.hpp.
* rfnoc: Consolidate double-documented param in block_ctrl_baseAlex Williams2019-06-071-3/+3
|
* types: Add explicit copy-constructor for sid_tAlex Williams2019-06-071-0/+5
| | | | Removes warnings due to -Wdeprecated-copy
* utils: add support for directly updating components from image_loaderAndrew Lynch2019-05-021-1/+5
|
* prop_tree: add pop() functionBrent Stapleton2019-05-022-0/+13
| | | | | Adding pop function to property tree, which will remove and return a property from the property tree. This also includes unit tests.
* prop_tree: formatting property tree filesBrent Stapleton2019-05-022-57/+101
| | | | | | | | | | | | - Ran clang-format - Fixed typos - Updated copyright headers clang-format -i --style=file \ host/include/uhd/property_tree.hpp \ host/include/uhd/property_tree.ipp clang-format -i --style=file \ host/lib/property_tree.cpp host/tests/property_test.cpp
* C: Add uhd_get_abi_string, uhd_get_version_stringNicholas Corgan2019-05-023-0/+38
| | | | | | | | Clients that include the UHD C headers have access to the version and ABI #defines, but this is not available to clients that dynamically load the library. This commit adds publicly exported functions to provide this information.
* device3: Constraint send/recv_frame_size based on down/upstream MTUSugandha Gupta2019-05-012-0/+24
| | | | | | We need to properly contraint the send/recv_frame_size based on the minimum MTU of all the down/upstream blocks. This fixes the issue with E310 tx/rx streaming as it has smaller MTU sizes than the other usrps.
* e310/e320: Move E310 to MPM architecture and refactorSugandha Gupta2019-05-012-3/+3
| | | | | | | | | | | | - Turns the E310 into an MPM device (like N3xx, E320) - Factor out common code between E320 and E310, maximize sharing between the two devices - Remove all pre-MPM E310 code that is no longer needed - Modify MPM to remove all existing overlays before applying new ones (this is necessary to enable idle image mode for E310) Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* include: Remove BOOST_VERSION hacks for 1.58Martin Braun2019-04-242-27/+7
| | | | | This removes all version hacks that were required for Boost versions 1.53 through 1.58 (since we now require 1.58).
* utils: Add scope_exit objectMartin Braun2019-04-012-0/+56
| | | | | | | This is a utility for RAII-style operations. An object that will run code when a scope is left. Also includes unit tests.
* utils: Change UHD_INLINE to inline in dirty_tracked.hppMartin Braun2019-03-251-7/+7
| | | | | This avoids having to include config.hpp. Also, the UHD_INLINE should be avoided in favour of either inline, or UHD_FORCE_INLINE.
* clang-format: Break after templatesMartin Braun2019-03-211-1/+1
| | | | | | | | | | | Before, code would get formatted thus: template <typename T> class X {} Now, it gets formatted as such: template <typename T> class X {}
* uhd: Remove cal containersMartin Braun2019-03-204-176/+0
| | | | | They are currently unused, and may need reimplementation. For the time being, they can go out of the codebase.
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-0810-10/+10
| | | | Updating all SPDX license identifiers to include "-or-later"
* Revert "RFNoC: Fix flush in source_block_ctrl_base"Michael West2019-03-051-3/+3
| | | | | | This reverts commit 655b9b0f8e8f8556d434404da51aaccd124bbc3a. Signed-off-by: Michael West <michael.west@ettus.com>
* types: sid: Remove duplicate operator=()Martin Braun2019-02-281-6/+0
| | | | | This fixes a warning about multiple operators. Doesn't change any functionality.
* nirio: Demote rpc client start/stop log messages to DEBUGMartin Braun2019-02-181-2/+2
|
* node_ctrl_base: add check valid num_input_portsTrung Tran2019-02-181-2/+3
| | | | | | | | | | | | A node is not a block, it doesn't use any block definition to populate the number of input and output ports. This is equivalent to it have undefined number of input and output ports. The _find_child_node function relies on node input and output port size. When port size is not defined we should not follow the active channel; instead, we need to greedily to find all child node. Without this change graph_search_test will fail. Signed-off-by: Trung Tran<trung.tran@ettus.com>
* RFNoC: Fix flush in source_block_ctrl_baseMichael West2019-02-181-3/+3
| | | | | | | | | | The configure_flow_control_out function was set to dump any packets onto the crossbar, which could cause issues on the crossbar and in downstream blocks. Replacing wil a call to the _flush() function in the block_ctrl_base parent class, which drops the packets so they do not get put onto the crossbar. Signed-off-by: Michael West <michael.west@ettus.com>
* RFNoC: Disable FC ACK packets for lossless linksMichael West2019-02-182-7/+9
| | | | | | | FC ACK packets are unnecessary on lossless links and degrade overall performance. This change disables those packets on all lossless links. Signed-off-by: Michael West <michael.west@ettus.com>
* uhd: Replace all usage of boost::noncopyable with uhd::noncopyableMartin Braun2019-02-1528-52/+60
| | | | | | This fixes the build errors that occur due to switching locations of noncopyable.hpp within Boost, and also allows us to remove boost::noncopyable in one fell swoop.
* uhd: utils: Add noncopyable classMartin Braun2019-02-152-0/+56
| | | | | | | | | | | This is a replacement for boost::noncopyable. It has two implementations with identical APIs, selectable by a macro. One "implementation" is a renaming of the Boost version. The other is simply implemented using C++11 features. The motivation is that the location for boost::noncopyable has changed over the range of Boost versions, thus, using boost::noncopyable is difficult to maintain for a broad range of Boost versions.
* E3xx: Increase spp limit for E3xx radiomichael-west2019-01-311-2/+1
| | | | | | | Increase frame size from 364 to 508 samples. Reduces overhead. For some reason yet to be understood, sizes over 508 do not work. Signed-off-by: michael-west <michael.west@ettus.com>
* fixup! RFNoC: More graph traversal fixesmichael-west2019-01-312-30/+10
|
* RFNoC: More graph traversal fixesmichael-west2019-01-312-3/+31
| | | | | | | | | | - Store number of input and ouptput ports from block definition. - Use number of input and ouptut ports for graph traversal rather than number of connected blocks. - Fixes DAC synchronization failure errors when using only one TX channel on X300. Signed-off-by: michael-west <michael.west@ettus.com>
* RFNoC: Update FIFO XML definitionmichael-west2019-01-291-0/+2
| | | | | | Added explicit use of default block controller to remove warnings. Signed-off-by: michael-west <michael.west@ettus.com>
* transport: muxed_zero_copy_if fixesmichael-west2019-01-211-0/+4
| | | | | | | | | | Changed muxed_zero_copy_if to make each stream buffer the same number of frames as the underlying transport and changed the size of the underlying control transport for X300 and MPMD devices to match the size of the command FIFO in order to prevent starvation of any single control transport. Added some constants to remove hard coded values. Signed-off-by: michael-west <michael.west@ettus.com>
* endianness: Replace Boost macros with custom onesMartin Braun2019-01-213-6/+37
| | | | | | | | Boost changed the macros for endianness identification in 1.69, and the deprecation warning is a pretty noisy one during compilation. This abstracts away the Boost macro, so we have two UHD macros, UHD_BIG_ENDIAN and UHD_LITTLE_ENDIAN. They indicate big and little endian byte order.
* lib: transport: convert: apply clang-formatBrent Stapleton2019-01-211-74/+96
| | | | | | | | | | | | | This is a continuation of 967be2a4. Applying clang-format to files needed for endianness changes. $ clang-format -i --style=file \ host/include/uhd/types/endianness.hpp \ host/include/uhd/utils/byteswap.hpp \ host/include/uhd/utils/byteswap.ipp $ clang-format -i --style=file \ host/lib/convert/convert_with_tables.cpp \ host/lib/transport/chdr.cpp
* multi_usrp: fix get_{tx/rx}_dc_offset_range default argumentChristian Hahn2019-01-181-2/+2
| | | | | | | The use of the wildcard channel index, ALL_CHANS, as the default value for the argument chan in the methods get_{tx/rx}_dc_offset_range seems inappropriate. A default value of 0 is consistent with other getters.
* math: Replace boost::*::{lcm,gcd}() with portable versionsMartin Braun2019-01-181-0/+23
| | | | | | Boost changed the lcm() and gcd() functions in Boost 1.67. This creates portable UHD versions to be used instead. They use various Boost versions under the hood conditionally.
* math: Remove uhd::math::log2, replace with std::log2Martin Braun2019-01-181-9/+0
| | | | | Now that we're C++11, we can assume the existence of said symbol and need no more portability hacks.
* rfnoc: Fix detection of outstanding acks by ctrl_ifaceMartin Braun2019-01-171-1/+1
| | | | | | | There was a bug where the number of outstanding ACKS in RFNoC's ctrl_iface was derived from the number of recv frames, which was wrong. A number that was too low would effectively break timed commands on tune, which would, e.g., affect phase alignment.
* formatting: Add modified clang-format for headersMartin Braun2019-01-171-0/+94
| | | | | | | Because our headers do not require C++11, they need a different syntax (e.g., vector<vector<int> >, note the space between the >). Since some editors automatically pick up a .clang-format from a parent dir, this helps when editing headers.
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-16115-5118/+5170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applying formatting changes to all .cpp and .hpp files in the following directories: ``` find host/examples/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/tests/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/utils/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find mpm/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Also formatted host/include/, except Cpp03 was used as a the language standard instead of Cpp11. ``` sed -i 's/ Cpp11/ Cpp03/g' .clang-format find host/include/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Formatting style was designated by the .clang-format file.
* formatting: remove vim hints in headersBrent Stapleton2019-01-1620-20/+0
| | | | | Remove trailing vim hints in header files. This functionality will be replaced by clang-format.
* includes: Make sure BOOST_VERSION is always availableMartin Braun2019-01-151-0/+1
| | | | | Boost changed the includes, and boost/version.hpp was being implicitly imported. This makes the include explicit.
* log: Fix MSVC warnings by changing a size_t to unsigned intMartin Braun2019-01-031-1/+1
| | | | This fixes a warning C4267 which pops up a lot in this file.
* RFNoC: Fix for late packet errorsmichael-west2018-12-211-1/+3
| | | | - Fix variable name in recent graph traversal changes
* RFNoC: Fix graph traversalmichael-west2018-12-191-10/+40
| | | | | | - Allows different TX sample rates on separate channels - Prevents stream commands from being issued on wrong ports - Prevents some receive timeout errors
* uhd/mpm: eiscat: Various changesRyan Marlow2018-12-192-10/+66
| | | | | | | | | | | | | | - correct lmk initialization parameters - adding missing parameters and consts wrt clock synchronization. - fixed default master clock rate - eiscat, ddc: update xml. - remove references to CORDIC_FREQ in ddc_eiscat - update readback reg addr in radio_eiscat - set default spp from 3992 to 3968. - updated jesd mode sequence initialization - updating eiscat_radio_ctrl_impl - add rx_codecs to property tree to display correct ADC chip. - updated issue_stream_cmd
* Device3: Fix block control flushingBrent Stapleton2018-12-171-0/+3
| | | | | | | | | | | | | | | | | | | - Factor out the _start_drain helper function, which starts flushing data out of the block. We should always be disabling flow control after we write to the flushing registers. - Always attempt to flush when calling the _flush function. Previously, we would check if data appeared to be moving when _flush was called, and only write to the flush registers if data was moving. However, if data is stuck for some reason (for example, the block ran out of flow control credits), this check will give us a false positive, and we won't flush. Instead, we need to always begin the flushing process, then check those counters, and return once the counters stop changing. Note: we need to start flushing before disabling flow control so that the flushed data isn't flooded onto the crossbar. Co-authored-by: michael-west <michael.west@ettus.com> Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* C API: Add support for Tx LO controlMartin Braun2018-12-141-0/+74
| | | | | The Rx LO control was always there, but the Tx LO control was not exposed into the C API.
* time_spec: include <stdint.h> for int64_tMichael Dickens2018-12-131-0/+1
| | | | | + needed on some older OS / compilers; + won't hurt newer ones that already include this header.
* various: use "std::abs" instead of "std::fabs"Michael Dickens2018-12-122-9/+9
| | | | | | + better compiler compatibility + let the compiler figure out the actual function IO signature that makes sense, instead of forcing float.
* rh: add highband spur reduction optionMark Meserve2018-12-121-0/+5
| | | | | | | | | - When highband_spur_reduction is enabled, the lowband LO will be disabled during highband operation. This improves spur performance, but also renders timed tune commands unusable due to the MPM call. - A warning is logged if the user uses a timed tune command that would change the state of the lowband LO, as the MPM call will occur immediately instead of at the given command time.
* filter: Fix return value in get_rolloffDerek Kozel2018-11-281-1/+1
|
* rfnoc: Add halt to replay APIWade Fife2018-11-271-0/+3
| | | | | The HALT feature allows a command that takes a long time to run to be stopped while it is in progress.