From bf1d22ffe871c9b4293d87ff0f5abe7511dab00b Mon Sep 17 00:00:00 2001 From: michael-west Date: Thu, 5 Apr 2018 09:43:18 -0700 Subject: fixup! legacy: fix legacy compat to work with 2TX radio block --- host/lib/rfnoc/legacy_compat.cpp | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/host/lib/rfnoc/legacy_compat.cpp b/host/lib/rfnoc/legacy_compat.cpp index f6e3d5eb5..0ccc5d19d 100644 --- a/host/lib/rfnoc/legacy_compat.cpp +++ b/host/lib/rfnoc/legacy_compat.cpp @@ -565,35 +565,21 @@ private: // methods } //! Given mboard_index(m), radio_index(r), and port_index(p), - // this function return the index of a block on the input blocklist that match m,r,p - size_t find_block(const std::vector &source_port_list, const size_t &m, const size_t &r, const size_t &p) + // this function returns the index of a block on the input block list that match m,r,p + template + size_t find_block(const std::vector &port_list, const size_t &m, const size_t &r, const size_t &p) { size_t index = 0; - for (auto port : source_port_list) + for (auto port : port_list) { - auto source_block_id = (port.first)->get_block_id(); - if (p == port.second && r == source_block_id.get_block_count() && m == source_block_id.get_device_no()) - { - return index; - } - index++; - } - } - - //! Given mboard_index(m), radio_index(r), and port_index(p), - // this function return the index of a block on the input blocklist that match m,r,p - size_t find_block(const std::vector &sink_port_list, const size_t &m, const size_t &r, const size_t &p) - { - size_t index = 0; - for (auto port : sink_port_list) - { - auto sink_block_id = (port.first)->get_block_id(); - if (p == port.second && r == sink_block_id.get_block_count() && m == sink_block_id.get_device_no()) + auto block_id = (port.first)->get_block_id(); + if (p == port.second && r == block_id.get_block_count() && m == block_id.get_device_no()) { return index; } index++; } + throw uhd::runtime_error((boost::format("Could not find block in list for device %d, radio %d, and port %d") % m % r % p).str()); } template @@ -605,8 +591,8 @@ private: // methods block_name_to_block_map_t legacy_block_map = get_legacy_blocks(_device); auto radio_src_flat = _flatten_blocks_by_n_ports(legacy_block_map[RADIO_BLOCK_NAME].first); auto radio_snk_flat = _flatten_blocks_by_n_ports(legacy_block_map[RADIO_BLOCK_NAME].second); - size_t index_src = find_block(radio_src_flat, mboard_idx, radio_index, port_index); - size_t index_snk = find_block(radio_snk_flat, mboard_idx, radio_index, port_index); + size_t index_src = find_block(radio_src_flat, mboard_idx, radio_index, port_index); + size_t index_snk = find_block(radio_snk_flat, mboard_idx, radio_index, port_index); if (dir == uhd::TX_DIRECTION){ if (_has_sramfifo){ auto sfifo_snk_flat = _flatten_blocks_by_n_ports(legacy_block_map[SFIFO_BLOCK_NAME].second); -- cgit v1.2.3