aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-02-23 16:27:49 -0800
committerJosh Blum <josh@joshknows.com>2010-02-23 16:27:49 -0800
commit8050fda48d69f46788672a9ceaccd8d82500ac05 (patch)
tree98ba17ea9bd041040da1ec9f0cf85dae014cb1c0 /host/include
parent6b7c53985c09a8d74e9bfd9c6b37948d458b2c44 (diff)
downloaduhd-8050fda48d69f46788672a9ceaccd8d82500ac05.tar.gz
uhd-8050fda48d69f46788672a9ceaccd8d82500ac05.tar.bz2
uhd-8050fda48d69f46788672a9ceaccd8d82500ac05.zip
Added IF data io handing within the usrp2 impl.
It packs and unpacks vrt headers/metadata. NOT YET TESTED IN ANY WAY...
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/CMakeLists.txt1
-rw-r--r--host/include/uhd/device.hpp4
-rw-r--r--host/include/uhd/metadata.hpp4
-rw-r--r--host/include/uhd/shared_iovec.hpp54
-rw-r--r--host/include/uhd/transport/udp.hpp15
5 files changed, 13 insertions, 65 deletions
diff --git a/host/include/uhd/CMakeLists.txt b/host/include/uhd/CMakeLists.txt
index e87f74291..f4fb96786 100644
--- a/host/include/uhd/CMakeLists.txt
+++ b/host/include/uhd/CMakeLists.txt
@@ -26,7 +26,6 @@ INSTALL(FILES
gain_handler.hpp
metadata.hpp
props.hpp
- shared_iovec.hpp
time_spec.hpp
utils.hpp
wax.hpp
diff --git a/host/include/uhd/device.hpp b/host/include/uhd/device.hpp
index da58d4f85..596a98bc4 100644
--- a/host/include/uhd/device.hpp
+++ b/host/include/uhd/device.hpp
@@ -77,7 +77,7 @@ public:
* \param buff a buffer pointing to some read-only memory
* \param metadata data describing the buffer's contents
* \param the type of data loaded in the buffer (32fc, 16sc)
- * \return the number of bytes sent
+ * \return the number of samples sent
*/
virtual size_t send(
const boost::asio::const_buffer &buff,
@@ -91,7 +91,7 @@ public:
* \param buff the buffer to fill with IF data
* \param metadata data to fill describing the buffer
* \param the type of data to fill into the buffer (32fc, 16sc)
- * \return the number of bytes received
+ * \return the number of samples received
*/
virtual size_t recv(
const boost::asio::mutable_buffer &buff,
diff --git a/host/include/uhd/metadata.hpp b/host/include/uhd/metadata.hpp
index 43b91d1b0..70842e7bc 100644
--- a/host/include/uhd/metadata.hpp
+++ b/host/include/uhd/metadata.hpp
@@ -30,13 +30,17 @@ namespace uhd{
*/
struct metadata_t{
uint32_t stream_id;
+ bool has_stream_id;
time_spec_t time_spec;
+ bool has_time_spec;
bool start_of_burst;
bool end_of_burst;
metadata_t(void){
stream_id = 0;
+ has_stream_id = false;
time_spec = time_spec_t();
+ has_time_spec = false;
start_of_burst = false;
end_of_burst = false;
}
diff --git a/host/include/uhd/shared_iovec.hpp b/host/include/uhd/shared_iovec.hpp
deleted file mode 100644
index a120e55d5..000000000
--- a/host/include/uhd/shared_iovec.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-
-#ifndef INCLUDED_UHD_SHARED_IOVEC_HPP
-#define INCLUDED_UHD_SHARED_IOVEC_HPP
-
-#include <boost/shared_array.hpp>
-#include <stdint.h>
-
-namespace uhd{
-
-/*!
- * A shared iovec contains a shared array and its length.
- * Creating a new shared iovec allocates new memory.
- * This memory is freed when all copies are destroyed.
- */
-class shared_iovec{
-public:
- /*!
- * Create a shared iovec and allocate memory.
- * \param len the length in bytes
- */
- shared_iovec(size_t len=0);
-
- /*!
- * Destroy a shared iovec.
- * Will not free the memory unless this is the last copy.
- */
- ~shared_iovec(void);
-
- void *base;
- size_t len;
-
-private:
- boost::shared_array<uint8_t> _shared_array;
-};
-
-} //namespace uhd
-
-#endif /* INCLUDED_UHD_SHARED_IOVEC_HPP */
diff --git a/host/include/uhd/transport/udp.hpp b/host/include/uhd/transport/udp.hpp
index 07d84e62a..8c6fb096f 100644
--- a/host/include/uhd/transport/udp.hpp
+++ b/host/include/uhd/transport/udp.hpp
@@ -18,7 +18,6 @@
#include <boost/asio.hpp>
#include <boost/utility.hpp>
#include <boost/shared_ptr.hpp>
-#include <uhd/shared_iovec.hpp>
#ifndef INCLUDED_UHD_TRANSPORT_UDP_HPP
#define INCLUDED_UHD_TRANSPORT_UDP_HPP
@@ -58,18 +57,18 @@ public:
/*!
* Receive a buffer. Write into the memory provided.
* Returns empty when data is not available.
- * \param buff a mutable buffer to receive into
+ * \param buffs a vector of asio buffers
* \return the number of bytes received.
*/
- virtual size_t recv(const boost::asio::mutable_buffer &buff) = 0;
+ virtual size_t recv(const std::vector<boost::asio::mutable_buffer> &buffs) = 0;
/*!
- * Receive a buffer. The memory is managed internally.
- * Returns zero when data is not available.
- * Calling recv will invalidate the buffer of the previous recv.
- * \return a shared iovec with allocated memory
+ * Receive a buffer. Write into the memory provided.
+ * Returns empty when data is not available.
+ * \param buff a mutable buffer to receive into
+ * \return the number of bytes received.
*/
- virtual uhd::shared_iovec recv(void) = 0;
+ virtual size_t recv(const boost::asio::mutable_buffer &buff) = 0;
};
}} //namespace