From 10b9d2688b5bcb150eec786a9ef7473f1c1c28ac Mon Sep 17 00:00:00 2001 From: Ciro Nishiguchi Date: Sat, 26 Oct 2019 18:40:01 -0500 Subject: rfnoc: Make I/O services relinquish CPU while waiting --- host/lib/include/uhdlib/transport/inline_io_service.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'host/lib/include/uhdlib/transport/inline_io_service.hpp') diff --git a/host/lib/include/uhdlib/transport/inline_io_service.hpp b/host/lib/include/uhdlib/transport/inline_io_service.hpp index fe41b96b6..d4a6dbbae 100644 --- a/host/lib/include/uhdlib/transport/inline_io_service.hpp +++ b/host/lib/include/uhdlib/transport/inline_io_service.hpp @@ -104,6 +104,19 @@ private: frame_buff::uptr recv( inline_recv_cb* recv_io_cb, recv_link_if* recv_link, int32_t timeout_ms); + /* + * Function to perform recv operations on a link, which is potentially + * muxed. This function is only called from send_io::release_send_buff, and + * always expects recv_io_cb to release its incoming buffer. Packets are + * forwarded to the appropriate mux or callback. + * + * \param recv_io_cb the callback+interface initiating the operation + * \param recv_link link to perform receive on + * \param timeout_ms timeout to wait for a buffer on the link + */ + void recv_flow_ctrl( + inline_recv_cb* recv_io_cb, recv_link_if* recv_link, int32_t timeout_ms); + /* Track whether link is muxed and the callback */ std::unordered_map> _recv_tbl; -- cgit v1.2.3