diff options
Diffstat (limited to 'host/lib/include/uhdlib/rfnoc')
-rw-r--r-- | host/lib/include/uhdlib/rfnoc/graph_stream_manager.hpp | 11 | ||||
-rw-r--r-- | host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp | 5 |
2 files changed, 12 insertions, 4 deletions
diff --git a/host/lib/include/uhdlib/rfnoc/graph_stream_manager.hpp b/host/lib/include/uhdlib/rfnoc/graph_stream_manager.hpp index 28fa8ec7c..2227a7ad3 100644 --- a/host/lib/include/uhdlib/rfnoc/graph_stream_manager.hpp +++ b/host/lib/include/uhdlib/rfnoc/graph_stream_manager.hpp @@ -111,6 +111,7 @@ public: * \param dst_addr The address of the destination stream endpoint * \param pyld_buff_fmt Datatype of SW buffer that holds the data payload * \param mdata_buff_fmt Datatype of SW buffer that holds the data metadata + * \param via_device The preference for the device to take to get to the destination * \param xport_args The transport arguments * \return An transport instance */ @@ -118,6 +119,7 @@ public: sep_addr_t dst_addr, const sw_buff_t pyld_buff_fmt, const sw_buff_t mdata_buff_fmt, + const device_id_t via_device, const device_addr_t& xport_args) = 0; /*! \brief Create a data stream going from the host to the device @@ -125,6 +127,7 @@ public: * \param dst_addr The address of the destination stream endpoint * \param pyld_buff_fmt Datatype of SW buffer that holds the data payload * \param mdata_buff_fmt Datatype of SW buffer that holds the data metadata + * \param via_device The preference for the device to take to get to the destination * \param xport_args The transport arguments * \return An transport instance */ @@ -132,8 +135,16 @@ public: sep_addr_t dst_addr, const sw_buff_t pyld_buff_fmt, const sw_buff_t mdata_buff_fmt, + const device_id_t via_device, const device_addr_t& xport_args) = 0; + /*! \brief Get all the via_devices that can reach the specified endpoint + * + * \param addr The address of the stream endpoint + * \return A vector of all the via_devices + */ + virtual std::vector<device_id_t> get_via_devices(sep_addr_t addr) const = 0; + /*! * \brief Create a graph_stream_manager and return a unique_ptr to it * diff --git a/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp b/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp index bc56fd311..4785949e7 100644 --- a/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp +++ b/host/lib/include/uhdlib/rfnoc/rfnoc_common.hpp @@ -7,6 +7,7 @@ #ifndef INCLUDED_RFNOC_RFNOC_COMMON_HPP #define INCLUDED_RFNOC_RFNOC_COMMON_HPP +#include <uhd/rfnoc/defaults.hpp> #include <uhdlib/transport/link_if.hpp> #include <memory> @@ -35,8 +36,6 @@ constexpr size_t chdr_w_to_bits(chdr_w_t chdr_w) } } -//! Device ID Type -using device_id_t = uint16_t; //! Stream Endpoint Instance Number Type using sep_inst_t = uint16_t; //! Stream Endpoint Physical Address Type @@ -50,8 +49,6 @@ using sep_id_pair_t = std::pair<sep_id_t, sep_id_t>; //! Stream Endpoint Virtual Channel Type using sep_vc_t = uint8_t; -//! NULL/unassigned device ID -static constexpr device_id_t NULL_DEVICE_ID = 0; //! NULL/unassigned device address static constexpr sep_addr_t NULL_DEVICE_ADDR{NULL_DEVICE_ID, 0}; //! NULL/unassigned stream endpoint ID |