diff options
author | Ciro Nishiguchi <ciro.nishiguchi@ni.com> | 2019-10-26 18:40:01 -0500 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 12:21:33 -0800 |
commit | 10b9d2688b5bcb150eec786a9ef7473f1c1c28ac (patch) | |
tree | 17f45cc4c8d56bba84a6a54a0f6568703fe03e1e /host/lib/include/uhdlib/transport/inline_io_service.hpp | |
parent | 98a510d68e12751917dba29522c69de9964decf6 (diff) | |
download | uhd-10b9d2688b5bcb150eec786a9ef7473f1c1c28ac.tar.gz uhd-10b9d2688b5bcb150eec786a9ef7473f1c1c28ac.tar.bz2 uhd-10b9d2688b5bcb150eec786a9ef7473f1c1c28ac.zip |
rfnoc: Make I/O services relinquish CPU while waiting
Diffstat (limited to 'host/lib/include/uhdlib/transport/inline_io_service.hpp')
-rw-r--r-- | host/lib/include/uhdlib/transport/inline_io_service.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
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_link_if*, std::tuple<inline_recv_mux*, inline_recv_cb*>> _recv_tbl; |