summaryrefslogtreecommitdiffstats
path: root/usrp_uhd/include
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-01-12 14:43:43 -0800
committerJosh Blum <josh@joshknows.com>2010-01-12 14:43:43 -0800
commitcbb8e474bb5592753a340ba31d3afbab7226f7c6 (patch)
tree6dd14d37d8d46f3a506a309f57d82ed1ed05f781 /usrp_uhd/include
parent4e94574aeaa46c671bba0a6fc83cb967d228c880 (diff)
downloaduhd-cbb8e474bb5592753a340ba31d3afbab7226f7c6.tar.gz
uhd-cbb8e474bb5592753a340ba31d3afbab7226f7c6.tar.bz2
uhd-cbb8e474bb5592753a340ba31d3afbab7226f7c6.zip
Reorganized structure into include, lib, test, firmware, fpga.
The fpga and firmware are empty placeholders for now.
Diffstat (limited to 'usrp_uhd/include')
-rw-r--r--usrp_uhd/include/.gitignore2
-rw-r--r--usrp_uhd/include/Makefile.am16
-rw-r--r--usrp_uhd/include/usrp_uhd.hpp43
-rw-r--r--usrp_uhd/include/usrp_uhd/usrp_addr.hpp90
-rw-r--r--usrp_uhd/include/usrp_uhd/wax.hpp129
5 files changed, 0 insertions, 280 deletions
diff --git a/usrp_uhd/include/.gitignore b/usrp_uhd/include/.gitignore
deleted file mode 100644
index b336cc7ce..000000000
--- a/usrp_uhd/include/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Makefile
-/Makefile.in
diff --git a/usrp_uhd/include/Makefile.am b/usrp_uhd/include/Makefile.am
deleted file mode 100644
index 1ec431648..000000000
--- a/usrp_uhd/include/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright 2010 Ettus Research LLC
-#
-
-include $(top_srcdir)/Makefile.common
-
-SUBDIRS =
-
-this_includedir = $(includedir)
-this_include_HEADERS = \
- usrp_uhd.hpp
-
-usrp_uhd_includedir = $(includedir)/usrp_uhd
-usrp_uhd_include_HEADERS = \
- usrp_uhd/usrp_addr.hpp \
- usrp_uhd/wax.hpp
diff --git a/usrp_uhd/include/usrp_uhd.hpp b/usrp_uhd/include/usrp_uhd.hpp
deleted file mode 100644
index 6bf97a5a4..000000000
--- a/usrp_uhd/include/usrp_uhd.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-
-#ifndef INCLUDED_USRP_UHD_HPP
-#define INCLUDED_USRP_UHD_HPP
-
-#include <usrp_uhd/usrp_addr.hpp>
-#include <usrp_uhd/wax.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/function.hpp>
-#include <vector>
-#include <sys/uio.h>
-
-namespace usrp{
-
- class uhd{
-
- public:
- typedef boost::shared_ptr<uhd> sptr;
- typedef boost::function<bool(void *data, size_t len)> recv_hdlr_t;
- uhd(usrp_addr_t usrp_addr);
- ~uhd(void);
-
- //the io interface
- void send(const std::vector<iovec> &iovs);
- void send(void* data, size_t len); //wrapper
- void recv(const recv_hdlr_t &recv_hdlr);
- void recv(void* &data, size_t &len); //wrapper
-
- //connect dsps and subdevs
- void connect(const wax::type &src, const wax::type &sink);
-
- //the properties interface
- wax::proxy props(void);
-
- private:
- wax::type d_mboard;
- };
-
-} //namespace usrp
-
-#endif /* INCLUDED_USRP_UHD_HPP */
diff --git a/usrp_uhd/include/usrp_uhd/usrp_addr.hpp b/usrp_uhd/include/usrp_uhd/usrp_addr.hpp
deleted file mode 100644
index e8c282288..000000000
--- a/usrp_uhd/include/usrp_uhd/usrp_addr.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-
-#ifndef INCLUDED_USRP_ADDR_HPP
-#define INCLUDED_USRP_ADDR_HPP
-
-#include <string>
-#include <iostream>
-#include <netinet/ether.h>
-#include <arpa/inet.h>
-
-namespace usrp{
-
- /*!
- * Wrapper for an ethernet mac address.
- * Provides conversion between string and binary formats.
- */
- struct mac_addr_t{
- struct ether_addr d_mac_addr;
- mac_addr_t(const std::string &str = "00:00:00:00:00:00");
- std::string to_string(void) const;
- };
-
- /*!
- * Wrapper for an ipv4 address.
- * Provides conversion between string and binary formats.
- */
- struct ip_addr_t{
- struct in_addr d_ip_addr;
- ip_addr_t(const std::string &str = "0.0.0.0");
- std::string to_string(void) const;
- };
-
- /*!
- * Possible usrp mboard interface types.
- */
- enum usrp_addr_type_t{
- USRP_ADDR_TYPE_AUTO,
- USRP_ADDR_TYPE_VIRTUAL,
- USRP_ADDR_TYPE_USB,
- USRP_ADDR_TYPE_ETH,
- USRP_ADDR_TYPE_UDP,
- USRP_ADDR_TYPE_GPMC
- };
-
- /*!
- * Structure to hold properties that identify a usrp mboard.
- */
- struct usrp_addr_t{
- usrp_addr_type_t type;
- struct{
- size_t num_rx_dsps;
- size_t num_tx_dsps;
- size_t num_dboards;
- } virtual_args;
- struct{
- uint16_t vendor_id;
- uint16_t product_id;
- } usb_args;
- struct{
- std::string ifc;
- mac_addr_t mac_addr;
- } eth_args;
- struct{
- ip_addr_t ip_addr;
- } udp_args;
- struct{
- //TODO unknown for now
- } gpmc_args;
-
- /*!
- * \brief Convert a usrp usrp_addr_t into a string representation
- */
- std::string to_string(void) const;
-
- /*!
- * \brief Default constructor to initialize the usrp_addr_t struct
- */
- usrp_addr_t(usrp_addr_type_t usrp_addr_type = USRP_ADDR_TYPE_AUTO);
- };
-
-} //namespace usrp
-
-//ability to use types with stream operators
-std::ostream& operator<<(std::ostream &os, const usrp::usrp_addr_t &x);
-std::ostream& operator<<(std::ostream &os, const usrp::mac_addr_t &x);
-std::ostream& operator<<(std::ostream &os, const usrp::ip_addr_t &x);
-
-#endif /* INCLUDED_USRP_ADDR_HPP */
diff --git a/usrp_uhd/include/usrp_uhd/wax.hpp b/usrp_uhd/include/usrp_uhd/wax.hpp
deleted file mode 100644
index 9d32314f7..000000000
--- a/usrp_uhd/include/usrp_uhd/wax.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-
-#ifndef INCLUDED_WAX_HPP
-#define INCLUDED_WAX_HPP
-
-#include <boost/any.hpp>
-#include <boost/function.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
-#include <boost/pointer_cast.hpp>
-#include <iostream>
-
-/*!
- * WAX - it's a metaphor!
- *
- * The WAX framework allows object to have generic/anytype properties.
- * These properties can be addressed through generic/anytype identifiers.
- * A property of a WAX object may even be another WAX object.
- *
- * When a property is a WAX object, the returned value must be an obj pointer.
- * A WAX object provides two types of pointers: obj::ptr and obj::sptr.
- * The choice of pointer vs smart pointer depends on the owner of the memory.
- *
- * Proprties may be referenced though the [] overloaded operator.
- * The [] operator returns a special proxy that allows for assigment.
- * Also, the [] operators may be chained as in the folowing examples:
- * my_obj[prop1][prop2][prop3] = value
- * value = my_obj[prop1][prop2][prop3]
- *
- * Any value returned from an access operation is of wax::type.
- * To use this value, it must be cast with wax::cast<new_type>(value).
- */
-
-namespace wax{
-
- //general typedefs
- typedef boost::any type;
- typedef boost::bad_any_cast bad_cast;
-
- //dummy class declarations
- class obj; class proxy;
-
- /*!
- * WAX object base class:
- * A wax object subclass should override the set and get methods.
- * The magic of operator chaining is handled by the [] operator.
- */
- class obj{
- public:
- //obj pointer typedefs
- typedef boost::shared_ptr<obj> sptr;
- typedef obj* ptr;
-
- //cast derived pointer to obj base class pointer
- template <class T> static sptr cast(boost::shared_ptr<T> r){
- return boost::static_pointer_cast<obj>(r);
- }
- template <class T> static ptr cast(T *r){
- return dynamic_cast<ptr>(r);
- }
-
- //structors
- obj(void);
- virtual ~obj(void);
-
- //public interface
- proxy operator[](const type &key);
-
- private:
- //private interface
- virtual void get(const type &key, type &val) = 0;
- virtual void set(const type &key, const type &val) = 0;
- };
-
- /*!
- * WAX proxy class:
- * Allows the obj [] operator to return a proxy result.
- * This result can be assigned to via the = operator.
- * Or this result can be called again with the [] operator.
- */
- class proxy{
- public:
- //destructors
- ~proxy(void);
-
- //overloaded
- type operator()(void);
- proxy operator[](const type &key);
- proxy operator=(const type &key);
-
- private:
- //typedefs for callables from the object that built this proxy
- typedef boost::function<void(const type &)> setter_t;
- typedef boost::function<void(type &)> getter_t;
-
- //private contructor
- proxy(getter_t, setter_t);
- //access to private contructor
- friend proxy obj::operator[](const type &key);
-
- getter_t d_getter;
- setter_t d_setter;
- };
-
- /*!
- * Cast a wax::type into the desired type
- * Usage wax::cast<new_type>(my_value).
- *
- * \param val the any type to cast
- * \return data of the desired type
- * \throw wax::bad_cast when the cast fails
- */
- template<typename T> T cast(const type & val){
- //special case to handle the proxy
- if (val.type() == typeid(proxy)){
- return cast<T>(boost::any_cast<proxy>(val)());
- }
- //do the type cast
- return boost::any_cast<T>(val);
- }
-
-} //namespace wax
-
-//ability to use types with stream operators
-std::ostream& operator<<(std::ostream &os, const wax::type &x);
-
-#endif /* INCLUDED_WAX_HPP */