From b4ef7ca804be35830a2c8ac5a143afafd33362f6 Mon Sep 17 00:00:00 2001 From: Ciro Nishiguchi Date: Wed, 23 Oct 2019 21:58:49 -0500 Subject: rfnoc: Restrict to inline I/O service based on link restrictions For links that do not support releasing buffers out of order, restrict the I/O service manager to always select the inline I/O service. --- host/lib/include/uhdlib/transport/link_if.hpp | 18 ++++++++++++++++++ host/lib/include/uhdlib/transport/nirio_link.hpp | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) (limited to 'host/lib/include/uhdlib') diff --git a/host/lib/include/uhdlib/transport/link_if.hpp b/host/lib/include/uhdlib/transport/link_if.hpp index 6f533603e..55755948c 100644 --- a/host/lib/include/uhdlib/transport/link_if.hpp +++ b/host/lib/include/uhdlib/transport/link_if.hpp @@ -57,6 +57,15 @@ public: */ virtual adapter_id_t get_send_adapter_id() const = 0; + /*! + * Returns whether this link type supports releasing the frame buffers + * in an order different from that in which they were acquired. + */ + virtual bool supports_send_buff_out_of_order() const + { + return true; + } + send_link_if() = default; send_link_if(const send_link_if&) = delete; send_link_if& operator=(const send_link_if&) = delete; @@ -102,6 +111,15 @@ public: */ virtual adapter_id_t get_recv_adapter_id() const = 0; + /*! + * Returns whether this link type supports releasing the frame buffers + * in an order different from that in which they were acquired. + */ + virtual bool supports_recv_buff_out_of_order() const + { + return true; + } + recv_link_if() = default; recv_link_if(const recv_link_if&) = delete; recv_link_if& operator=(const recv_link_if&) = delete; diff --git a/host/lib/include/uhdlib/transport/nirio_link.hpp b/host/lib/include/uhdlib/transport/nirio_link.hpp index 055874146..2335e311c 100644 --- a/host/lib/include/uhdlib/transport/nirio_link.hpp +++ b/host/lib/include/uhdlib/transport/nirio_link.hpp @@ -104,6 +104,24 @@ public: return _adapter_id; } + /*! + * Returns whether this link type supports releasing the frame buffers + * in an order different from that in which they were acquired. + */ + bool supports_send_buff_out_of_order() const + { + return false; + } + + /*! + * Returns whether this link type supports releasing the frame buffers + * in an order different from that in which they were acquired. + */ + bool supports_recv_buff_out_of_order() const + { + return false; + } + private: using recv_link_base_t = recv_link_base; using send_link_base_t = send_link_base; -- cgit v1.2.3