aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport/liberio_zero_copy.hpp
diff options
context:
space:
mode:
authorMoritz Fischer <moritz.fischer@ettus.com>2017-06-06 15:43:56 -0700
committerMoritz Fischer <moritz.fischer@ettus.com>2017-08-07 16:09:43 -0700
commited1c64c8196520c40dbfe406d7c54f2907f3b0fb (patch)
treed32222af9bae166a782066893563e6bd7a3740b6 /host/lib/transport/liberio_zero_copy.hpp
parent61b52e5113dbe25ba0d83a135c34532de543542e (diff)
downloaduhd-ed1c64c8196520c40dbfe406d7c54f2907f3b0fb.tar.gz
uhd-ed1c64c8196520c40dbfe406d7c54f2907f3b0fb.tar.bz2
uhd-ed1c64c8196520c40dbfe406d7c54f2907f3b0fb.zip
transport: Added liberio_zero_copy transport implementation
This adds a zero copy transport using the liberio library. Currently supported API version for liberio is 0.3, this might still very much break, since the library is still in development. So far nobody uses it UHD so we might as well merge it. Signed-off-by: Alex Williams <alex.williams@ni.com> Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
Diffstat (limited to 'host/lib/transport/liberio_zero_copy.hpp')
-rw-r--r--host/lib/transport/liberio_zero_copy.hpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/host/lib/transport/liberio_zero_copy.hpp b/host/lib/transport/liberio_zero_copy.hpp
new file mode 100644
index 000000000..bf23b1321
--- /dev/null
+++ b/host/lib/transport/liberio_zero_copy.hpp
@@ -0,0 +1,36 @@
+//
+// Copyright 2017 Ettus Research
+//
+// SPDX-License-Identifier: GPL-3.0+
+//
+
+#ifndef LIBERIO_HPP
+#define LIBERIO_HPP
+
+#include <string>
+#include <vector>
+
+#include <uhd/config.hpp>
+#include <uhd/transport/zero_copy.hpp>
+#include <uhd/types/device_addr.hpp>
+#include <boost/shared_ptr.hpp>
+
+namespace uhd { namespace transport {
+
+/*!
+ * A zero copy transport interface to the liberio DMA library.
+ */
+class liberio_zero_copy : public virtual zero_copy_if {
+public:
+ typedef boost::shared_ptr<liberio_zero_copy> sptr;
+
+ static sptr make(
+ const std::string &tx_path,
+ const std::string &rx_path,
+ const zero_copy_xport_params &default_buff_args
+ );
+};
+
+}}
+
+#endif /* LIBERIO_HPP */