aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
Commit message (Collapse)AuthorAgeFilesLines
* rfnoc: Added impl for reg_iface and ctrl_endpointAshish Chaudhari2019-11-262-0/+223
| | | | | | | | - Added new register_iface class that translates high-level peek/poke calls into CHDR control payloads - Added new chdr_ctrl_endpoint class that emulates a control stream endpoint in SW. It can create and handle multiple register interfaces
* rfnoc: node: Add default command time APIMartin Braun2019-11-261-0/+42
|
* rfnoc: Add action APIMartin Braun2019-11-264-17/+187
| | | | | | | | - Added action_info class - Allow to send actions from node to node - Allow to post actions into nodes - Allow to set default forwarding policies - Added unit tests
* rfnoc: Refactored CHDR packet interfacesAshish Chaudhari2019-11-264-592/+0
| | | | | | | - Moved packet interface code from public to private include - Split packet interface into two files: payload paring and packet iface - Added support for all CHDR packet types - Added more test cases to unit test
* rfnoc: Add property propagation, Boost.Graph storageMartin Braun2019-11-262-26/+247
| | | | | | | | | | | | - Adds a detail::graph_t class, which handles the propagation - Adds methods to node_t to aid with propagation - Adds unit tests - Adds dynamic property forwarding: Nodes are now able to forward properties they don't know about by providing a forwarding policy. A good example is the FIFO block which simply forwards most properties verbatim. - node: Temporarily disabling consistency check at init
* rfnoc: Add noc_block_base classMartin Braun2019-11-261-0/+92
| | | | This is a parent class for all block controllers.
* rfnoc: add chdr packet interfaceTrung Tran2019-11-262-15/+196
| | | | This is a generic CHDR interface that abstracts out the bus width.
* rfnoc: Add properties, nodes, and accessorsMartin Braun2019-11-267-0/+712
| | | | | | | | | | | | | | Adds the following classes: - uhd::rfnoc::node_t, the base class for RFNoC nodes - uhd::rfnoc::node_accessor_t, a class to access private properties - uhd::rfnoc::res_source_info, a struct that identifies where properties come from - uhd::rfnoc::property_t, and property_base_t (its parent) - uhd::rfnoc::prop_accessor_t, a class to access properties Add always dirty property (dirtifier). Also adds unit tests for properties.
* rfnoc: add new data_chdr packetization.Trung Tran2019-11-264-1/+411
|
* niusrprio: Add get_resource() API callMartin Braun2019-11-261-0/+5
|
* niusrpio: Apply formattingMartin Braun2019-11-261-40/+35
|
* types: time_spec: Add ASAP valueMartin Braun2019-11-261-0/+3
|
* gain groups: FormattingBrent Stapleton2019-11-261-1/+1
| | | | Applying formatting in anticipation of upcoming changes.
* gain_groups: Add zero-value gain groupsBrent Stapleton2019-11-261-0/+7
| | | | | | | | | | | | | | | Add convenience factory for making a gain group that has a single zero-valued element. This factory requires a name, which should probably be ALL_GAINS, or something similar (these constants are device-specific). Using this new make_zero factory in the X300 radio control when we don't find any gain elements so that our gain groups aren't empty. This simplifies our later setters/getters because we know that we'll always have _something_ cached. Note that we only register this zero value gain group for TX, as our ADC is registered as a gain element, so our RX gain groups are never empty.
* uhd: Add thread affinity utility functionsAaron Rossetto2019-11-261-0/+6
|
* utils: cast: Add from_str() typecastMartin Braun2019-11-261-1/+20
| | | | | This is the inverse to std::to_string(), and we can overload it with UHD-internal types.
* soft_register: Replace boost::unordered_map with std versionMartin Braun2019-11-261-2/+2
| | | | This is the only occurrence of boost::unordered_map in UHD.
* utils: soft_register: Remove 16-bit modeMartin Braun2019-11-261-14/+3
| | | | | This mode is never used, and makes it more cumbersome to maintain this code.
* utils: dirty_tracked: Remove custom copy constructorMartin Braun2019-11-261-7/+1
| | | | | | | The custom copy ctor for dirty_tracked was using the = operator, which wouldn't necessarily copy the dirty flag. By removing it (and thus using the default copy ctor), the copied dirty_tracked object now has the same value *and* dirty flag as the original.
* utils: Added set_thread_name for std::threadAshish Chaudhari2019-11-261-0/+8
|
* nirio_fifo: Replace boost::atomic with std::atomicMartin Braun2019-11-261-2/+3
| | | | This is the only occurrence of boost::atomic in UHD.
* uhd: types: Extend stream_cmd_t::num_samps to 64 bitsMartin Braun2019-11-261-1/+1
| | | | Newer devices may be able to provide more then 32 bits worth of samples.
* uhd: Add new exceptions for RFNoC-specific errorsMartin Braun2019-11-261-0/+82
| | | | | | | | | | | | | | | | | | | Add the following exception types: - rfnoc_error - op_failed - op_seqerr - op_timeout - op_timeerr - access_error - It is meant to be used when access violations have taken place, i.e., when a resource is being accessed without appropriate permissions. - resolve_error - This is a derivative of rfnoc_error, and will be used when a property resolution fails unexpectedly. - routing_error - For use when the framework has path setup issues or general routing-related errors
* uhd: Remove deprecated objects and methodsMartin Braun2019-11-267-142/+0
| | | | | | | | | This removes the following symbols: - otw_type_t - clock_config_t - Any functions that use those symbols - Non-standard args from examples (e.g., --total-time is deprecated in favour of --duration)
* uhd: Remove support for N230Martin Braun2019-11-261-1/+1
| | | | Note: N230 is still supported on the 3.15 LTS branch
* cmake: Bump dependency versions for UHD 4.0.0.0Martin Braun2019-11-261-94/+0
| | | | | | | | | | | | - Boost >= 1.58 - CMake >= 3.5.1 - gcc >= 5.4.0 - Clang >= 3.8, AppleClang >= 600 - Python >= 3.5 (Py2k no longer supported) - Numpy >= 1.11 - C++14 for lib, include may now use C++11 constructs. - Because there is no more code requiring C++03 syntax, we remove the include-specific clang-format file
* uhd: dict: Add typecast operator to std::map<>Martin Braun2019-11-042-0/+15
| | | | | | | This will now allow calls like this: uhd::dict<k, v> d = /* ... */; auto m = static_cast<std::map<k, v>>(d);
* cmake: Add UHD_COMPONENT variablemichael-west2019-10-151-0/+3
| | | | | | | | Added cmake variable to set the component (currently UHD or MPM). so the banner printed by the log_resource would reference the correct component. Added accessor function and appropriate calls in log.cpp. Signed-off-by: michael-west <michael.west@ettus.com>
* Revert "uhd: Check property type at access; error if mismatch"Martin Braun2019-09-302-12/+3
| | | | | | | This reverts commit 94592641f0647563bc4d2163805d5284a6796273. The commit itself was OK, but it changed the requirements such that UHD could only be compiled with C++11.
* uhd: include: Add <string> to headers where it was missingMartin Braun2019-09-092-1/+3
|
* rfnoc: Read cmd FIFO size from blocks & configure ctrl_ifaceMartin Braun2019-09-041-2/+2
| | | | | | | | | | This requires noc_shell compat number 6.0. It will allow sending as many command packets, but no more, than there is space. Updated FPGA images for devices: - X310/X300 - N300/N310/N320 - E310/E320
* uhd: Check property type at access; error if mismatchAaron Rossetto2019-09-042-3/+12
|
* docs: Improve language on threading for recv() and send()Martin Braun2019-08-221-1/+11
|
* boost: Replaced units::demangle with core::demangle where appropriateMartin Braun2019-08-221-3/+3
| | | | Boost moved this around in version 1.58.
* uhd: Add UHD_FALLTHROUGH attributeMartin Braun2019-08-161-0/+13
| | | | | | | | | | | | | | | | | This provides a platform-independent attribute to allow fallthroughs in switch statements. Example: switch (foo) { case BAR: do_something(); UHD_FALLTHROUGH case BAZ: do_another_thing(); } The usage of UHD_FALLTHROUGH will avoid a compiler warning if indeed the fallthrough was intentional. The associated warning (-Wimplicit-fallthrough) is only available on gcc and Clang.
* uhd: rfnoc: docs: Fix Doxygen warning due to undoc'd parameterMartin Braun2019-08-131-1/+2
|
* 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 {}