diff options
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/rfnoc/rfnoc_graph.cpp | 6 | ||||
-rw-r--r-- | host/lib/usrp/mpmd/mpmd_mb_iface.cpp | 23 | ||||
-rw-r--r-- | host/lib/usrp/x300/x300_mb_iface.cpp | 26 |
3 files changed, 32 insertions, 23 deletions
diff --git a/host/lib/rfnoc/rfnoc_graph.cpp b/host/lib/rfnoc/rfnoc_graph.cpp index 027d27f81..2e90fb48f 100644 --- a/host/lib/rfnoc/rfnoc_graph.cpp +++ b/host/lib/rfnoc/rfnoc_graph.cpp @@ -442,15 +442,17 @@ public: uhd::rx_streamer::sptr create_rx_streamer( const size_t num_ports, const uhd::stream_args_t& args) { + auto this_graph = shared_from_this(); return std::make_shared<rfnoc_rx_streamer>( - num_ports, args, [this](const std::string& id) { this->disconnect(id); }); + num_ports, args, [this_graph](const std::string& id) { this_graph->disconnect(id); }); } uhd::tx_streamer::sptr create_tx_streamer( const size_t num_ports, const uhd::stream_args_t& args) { + auto this_graph = shared_from_this(); return std::make_shared<rfnoc_tx_streamer>( - num_ports, args, [this](const std::string& id) { this->disconnect(id); }); + num_ports, args, [this_graph](const std::string& id) { this_graph->disconnect(id); }); } size_t get_num_mboards() const diff --git a/host/lib/usrp/mpmd/mpmd_mb_iface.cpp b/host/lib/usrp/mpmd/mpmd_mb_iface.cpp index 534d71a4d..a24be5c57 100644 --- a/host/lib/usrp/mpmd/mpmd_mb_iface.cpp +++ b/host/lib/usrp/mpmd/mpmd_mb_iface.cpp @@ -176,6 +176,7 @@ uhd::rfnoc::chdr_ctrl_xport::sptr mpmd_mboard_impl::mpmd_mb_iface::make_ctrl_tra recv_link, send_link, transport::link_type_t::CTRL); auto pkt_factory = _link_if_mgr->get_packet_factory(link_idx); + auto io_srv_mgr = this->get_io_srv_mgr(); auto xport = uhd::rfnoc::chdr_ctrl_xport::make(io_srv, send_link, recv_link, @@ -183,8 +184,8 @@ uhd::rfnoc::chdr_ctrl_xport::sptr mpmd_mboard_impl::mpmd_mb_iface::make_ctrl_tra local_epid, send_link->get_num_send_frames(), recv_link->get_num_recv_frames(), - [this, send_link, recv_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, send_link, recv_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); return xport; } @@ -242,6 +243,7 @@ mpmd_mboard_impl::mpmd_mb_iface::make_rx_data_transport( // Create the data transport auto pkt_factory = _link_if_mgr->get_packet_factory(link_idx); + auto io_srv_mgr = this->get_io_srv_mgr(); auto fc_params = chdr_rx_data_xport::configure_sep(cfg_io_srv, recv_link, send_link, @@ -254,8 +256,8 @@ mpmd_mboard_impl::mpmd_mb_iface::make_rx_data_transport( fc_freq, fc_headroom, lossy_xport, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); cfg_io_srv.reset(); @@ -275,8 +277,8 @@ mpmd_mboard_impl::mpmd_mb_iface::make_rx_data_transport( epids, recv_link->get_num_recv_frames(), fc_params, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); return rx_xport; @@ -319,6 +321,7 @@ mpmd_mboard_impl::mpmd_mb_iface::make_tx_data_transport( recv_link, send_link, transport::link_type_t::CTRL); auto pkt_factory = _link_if_mgr->get_packet_factory(link_idx); + auto io_srv_mgr = this->get_io_srv_mgr(); const auto buff_capacity = chdr_tx_data_xport::configure_sep(cfg_io_srv, recv_link, send_link, @@ -329,8 +332,8 @@ mpmd_mboard_impl::mpmd_mb_iface::make_tx_data_transport( mdata_buff_fmt, fc_freq_ratio, fc_headroom_ratio, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); cfg_io_srv.reset(); @@ -351,8 +354,8 @@ mpmd_mboard_impl::mpmd_mb_iface::make_tx_data_transport( epids, send_link->get_num_send_frames(), buff_capacity, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); return tx_xport; diff --git a/host/lib/usrp/x300/x300_mb_iface.cpp b/host/lib/usrp/x300/x300_mb_iface.cpp index a6d5e794b..c89374f82 100644 --- a/host/lib/usrp/x300/x300_mb_iface.cpp +++ b/host/lib/usrp/x300/x300_mb_iface.cpp @@ -110,7 +110,7 @@ uhd::rfnoc::chdr_ctrl_xport::sptr x300_impl::x300_mb_iface::make_ctrl_transport( auto io_srv = get_io_srv_mgr()->connect_links(recv_link, send_link, link_type_t::CTRL); - + auto io_srv_mgr = this->get_io_srv_mgr(); auto xport = chdr_ctrl_xport::make(io_srv, send_link, recv_link, @@ -118,8 +118,8 @@ uhd::rfnoc::chdr_ctrl_xport::sptr x300_impl::x300_mb_iface::make_ctrl_transport( local_epid, send_link->get_num_send_frames(), recv_link->get_num_recv_frames(), - [this, send_link, recv_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, send_link, recv_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); return xport; } @@ -174,6 +174,8 @@ uhd::rfnoc::chdr_rx_data_xport::uptr x300_impl::x300_mb_iface::make_rx_data_tran auto cfg_io_srv = get_io_srv_mgr()->connect_links(recv_link, send_link, link_type_t::CTRL); + auto io_srv_mgr = this->get_io_srv_mgr(); + auto fc_params = uhd::rfnoc::chdr_rx_data_xport::configure_sep(cfg_io_srv, recv_link, send_link, @@ -186,8 +188,8 @@ uhd::rfnoc::chdr_rx_data_xport::uptr x300_impl::x300_mb_iface::make_rx_data_tran fc_freq, fc_headroom, lossy_xport, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); cfg_io_srv.reset(); @@ -208,8 +210,8 @@ uhd::rfnoc::chdr_rx_data_xport::uptr x300_impl::x300_mb_iface::make_rx_data_tran epids, recv_link->get_num_recv_frames(), fc_params, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); return rx_xport; @@ -250,6 +252,8 @@ uhd::rfnoc::chdr_tx_data_xport::uptr x300_impl::x300_mb_iface::make_tx_data_tran auto cfg_io_srv = get_io_srv_mgr()->connect_links(recv_link, send_link, link_type_t::CTRL); + auto io_srv_mgr = this->get_io_srv_mgr(); + const auto buff_capacity = chdr_tx_data_xport::configure_sep(cfg_io_srv, recv_link, send_link, @@ -260,8 +264,8 @@ uhd::rfnoc::chdr_tx_data_xport::uptr x300_impl::x300_mb_iface::make_tx_data_tran mdata_buff_fmt, fc_freq_ratio, fc_headroom_ratio, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); cfg_io_srv.reset(); @@ -282,8 +286,8 @@ uhd::rfnoc::chdr_tx_data_xport::uptr x300_impl::x300_mb_iface::make_tx_data_tran epids, send_link->get_num_send_frames(), buff_capacity, - [this, recv_link, send_link]() { - this->get_io_srv_mgr()->disconnect_links(recv_link, send_link); + [io_srv_mgr, recv_link, send_link]() { + io_srv_mgr->disconnect_links(recv_link, send_link); }); return tx_xport; |