aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc/block_container.cpp
Commit message (Collapse)AuthorAgeFilesLines
* rfnoc_graph: Modify find_blocks() to sort return valueMartin Braun2019-11-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this patch, the elements of of the return value of find_blocks() are sorted lexicographically (specifically, using uhd::rfnoc::block_id_it::operator<()). The underlying block_container class stores the blocks in an unordered set, so the return value for find_blocks() was always sorted randomly. multi_usrp_rfnoc had to sort the return values every time find_blocks() was used to get a useful return value. Because find_blocks() had no contract for the order of returned blocks, this change simply sorts the return value before returning it. multi_usrp_rfnoc is modified to remove all the sorts that are now superfluous. A good way to see the change is to run uhd_usrp_probe, which will now contain content like this: | _____________________________________________________ | / | | RFNoC blocks on this device: | | | | * 0/DDC#0 | | * 0/DDC#1 | | * 0/DUC#0 | | * 0/DUC#1 | | * 0/DmaFIFO#0 | | * 0/Radio#0 | | * 0/Radio#1 Assuming the blocks don't change, the order of this list will always be the same following this patch. Note that the order is unrelated to the order on the control crossbar, which it never was.
* rfnoc: graph: Initialize properties on all nodes during initMartin Braun2019-11-261-0/+7
| | | | | This will call init_props() on every block after the device initialization is complete, but before control returns to the user.
* rfnoc: Add shutdown feature to blocksMartin Braun2019-11-261-0/+9
| | | | | | | | On destruction, the rfnoc_graph will call shutdown() on all blocks. This allows a safe de-initialization of blocks independent of the lifetime of the noc_block_base::sptr. Also adds the shutdown feature to null_block_control.
* rfnoc: Add detail::block_container_t classMartin Braun2019-11-261-0/+74
This is a storage for the noc_block_base derivatives. It supports finding blocks.