aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/rfnoc/rfnoc_graph.cpp6
-rw-r--r--host/lib/usrp/mpmd/mpmd_mb_iface.cpp23
-rw-r--r--host/lib/usrp/x300/x300_mb_iface.cpp26
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;