summaryrefslogtreecommitdiffstats
path: root/usrp_uhd
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
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')
-rw-r--r--usrp_uhd/.gitignore3
-rw-r--r--usrp_uhd/Makefile.am13
-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
-rw-r--r--usrp_uhd/lib/.gitignore2
-rw-r--r--usrp_uhd/lib/Makefile.am26
-rw-r--r--usrp_uhd/lib/usrp_addr.cpp116
-rw-r--r--usrp_uhd/lib/usrp_uhd.cpp10
-rw-r--r--usrp_uhd/lib/wax.cpp71
-rw-r--r--usrp_uhd/usrp_uhd.pc.in11
13 files changed, 0 insertions, 532 deletions
diff --git a/usrp_uhd/.gitignore b/usrp_uhd/.gitignore
deleted file mode 100644
index 2cc79dbab..000000000
--- a/usrp_uhd/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/Makefile
-/Makefile.in
-/usrp_uhd.pc
diff --git a/usrp_uhd/Makefile.am b/usrp_uhd/Makefile.am
deleted file mode 100644
index c218af41a..000000000
--- a/usrp_uhd/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Copyright 2010 Ettus Research LLC
-#
-
-include $(top_srcdir)/Makefile.common
-
-SUBDIRS = include lib
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = usrp_uhd.pc
-
-EXTRA_DIST = \
- usrp_uhd.pc.in
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 */
diff --git a/usrp_uhd/lib/.gitignore b/usrp_uhd/lib/.gitignore
deleted file mode 100644
index b336cc7ce..000000000
--- a/usrp_uhd/lib/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Makefile
-/Makefile.in
diff --git a/usrp_uhd/lib/Makefile.am b/usrp_uhd/lib/Makefile.am
deleted file mode 100644
index 2b744b4fc..000000000
--- a/usrp_uhd/lib/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright 2010 Ettus Research LLC
-#
-
-include $(top_srcdir)/Makefile.common
-
-SUBDIRS =
-
-AM_CPPFLAGS = \
- $(USRP_UHD_INCLUDES) \
- $(BOOST_CPPFLAGS)
-
-lib_LTLIBRARIES = \
- libusrp_uhd.la
-
-libusrp_uhd_la_SOURCES = \
- usrp_addr.cpp \
- usrp_uhd.cpp \
- wax.cpp
-
-libusrp_uhd_la_LIBADD = \
- $(BOOST_LDFLAGS) \
- $(BOOST_THREAD_LIB) \
- $(USRP_DBOARD_LA)
-
-noinst_HEADERS =
diff --git a/usrp_uhd/lib/usrp_addr.cpp b/usrp_uhd/lib/usrp_addr.cpp
deleted file mode 100644
index ddae7cd80..000000000
--- a/usrp_uhd/lib/usrp_addr.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-
-#include <usrp_uhd/usrp_addr.hpp>
-#include <sstream>
-#include <cstring>
-#include <cstdio>
-#include <stdexcept>
-
-//----------------------- u2 mac addr wrapper ------------------------//
-usrp::mac_addr_t::mac_addr_t(const std::string &str){
- //ether_aton_r(str.c_str(), &d_mac_addr);
- bool good = false;
- char p[6] = {0x00, 0x50, 0xC2, 0x85, 0x30, 0x00}; // Matt's IAB
-
- switch (str.size()){
- case 5:
- good = sscanf(str.c_str(), "%hhx:%hhx", &p[4], &p[5]) == 2;
- break;
- case 17:
- good = sscanf(str.c_str(), "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx",
- &p[0], &p[1], &p[2], &p[3], &p[4], &p[5]) == 6;
- break;
- }
-
- if (not good) throw std::runtime_error("Invalid mac address: " + str);
- memcpy(&d_mac_addr, p, sizeof(d_mac_addr));
-}
-
-std::string usrp::mac_addr_t::to_string(void) const{
- char addr_buf[128];
- //ether_ntoa_r(&d_mac_addr, addr_buf);
- const uint8_t *p = reinterpret_cast<const uint8_t *>(&d_mac_addr);
- sprintf(addr_buf, "%02x:%02x:%02x:%02x:%02x:%02x",
- p[0], p[1], p[2], p[3], p[4], p[5]);
- return std::string(addr_buf);
-}
-
-std::ostream& operator<<(std::ostream &os, const usrp::mac_addr_t &x){
- os << x.to_string();
- return os;
-}
-
-//----------------------- u2 ipv4 wrapper ----------------------------//
-usrp::ip_addr_t::ip_addr_t(const std::string &str){
- int ret = inet_pton(AF_INET, str.c_str(), &d_ip_addr);
- if (ret == 0) throw std::runtime_error("Invalid ip address: " + str);
-}
-
-std::string usrp::ip_addr_t::to_string(void) const{
- char addr_buf[128];
- inet_ntop(AF_INET, &d_ip_addr, addr_buf, INET_ADDRSTRLEN);
- return std::string(addr_buf);
-}
-
-std::ostream& operator<<(std::ostream &os, const usrp::ip_addr_t &x){
- os << x.to_string();
- return os;
-}
-
-//----------------------- usrp usrp_addr_t wrapper -------------------------//
-usrp::usrp_addr_t::usrp_addr_t(usrp_addr_type_t usrp_addr_type){
- type = usrp_addr_type;
- virtual_args.num_rx_dsps = 0;
- virtual_args.num_tx_dsps = 0;
- virtual_args.num_dboards = 0;
- usb_args.vendor_id = 0xffff;
- usb_args.product_id = 0xffff;
- eth_args.ifc = "eth0";
- eth_args.mac_addr = mac_addr_t("ff:ff:ff:ff:ff:ff");
- udp_args.ip_addr = ip_addr_t("255.255.255.255");
-}
-
-std::string usrp::usrp_addr_t::to_string(void) const{
- std::stringstream out;
- out << "USRP Type: ";
- switch(type){
- case USRP_ADDR_TYPE_AUTO:
- out << "Automatic" << std::endl;
- break;
- case USRP_ADDR_TYPE_VIRTUAL:
- out << "Virtual" << std::endl;
- out << "Num RX DSPs: " << virtual_args.num_rx_dsps << std::endl;
- out << "Num TX DSPs: " << virtual_args.num_rx_dsps << std::endl;
- out << "Num dboards: " << virtual_args.num_dboards << std::endl;
- break;
- case USRP_ADDR_TYPE_USB:
- out << "USB Port" << std::endl;
- out << "Vendor ID: 0x" << std::hex << usb_args.vendor_id << std::endl;
- out << "Product ID: 0x" << std::hex << usb_args.product_id << std::endl;
- break;
- case USRP_ADDR_TYPE_ETH:
- out << "Raw Ethernet" << std::endl;
- out << "Interface: " << eth_args.ifc << std::endl;
- out << "MAC Addr: " << eth_args.mac_addr << std::endl;
- break;
- case USRP_ADDR_TYPE_UDP:
- out << "UDP Socket" << std::endl;
- out << "IP Addr: " << udp_args.ip_addr << std::endl;
- break;
- case USRP_ADDR_TYPE_GPMC:
- out << "GPMC" << std::endl;
- break;
- default:
- out << "Unknown" << std::endl;
- }
- out << std::endl;
- return out.str();
-}
-
-std::ostream& operator<<(std::ostream &os, const usrp::usrp_addr_t &x)
-{
- os << x.to_string();
- return os;
-}
diff --git a/usrp_uhd/lib/usrp_uhd.cpp b/usrp_uhd/lib/usrp_uhd.cpp
deleted file mode 100644
index 6dd9bee7b..000000000
--- a/usrp_uhd/lib/usrp_uhd.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-
-#include <usrp_uhd.hpp>
-
-using namespace usrp;
-
-uhd::uhd(usrp_addr_t usrp_addr){}
-uhd::~uhd(void){}
diff --git a/usrp_uhd/lib/wax.cpp b/usrp_uhd/lib/wax.cpp
deleted file mode 100644
index 888e581f3..000000000
--- a/usrp_uhd/lib/wax.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// Copyright 2010 Ettus Research LLC
-//
-
-#include <usrp_uhd/wax.hpp>
-#include <stdexcept>
-#include <boost/bind.hpp>
-#include <boost/format.hpp>
-
-/***********************************************************************
- * WAX Object
- **********************************************************************/
-wax::obj::obj(void){
- /* NOP */
-}
-
-wax::obj::~obj(void){
- /* NOP */
-}
-
-wax::proxy wax::obj::operator[](const type &key){
- return proxy(
- boost::bind(&obj::get, this, key, _1),
- boost::bind(&obj::set, this, key, _1)
- );
-}
-
-/***********************************************************************
- * WAX Proxy
- **********************************************************************/
-wax::proxy::proxy(wax::proxy::getter_t getter, wax::proxy::setter_t setter)
-: d_getter(getter), d_setter(setter){
- /* NOP */
-}
-
-wax::proxy::~proxy(void){
- /* NOP */
-}
-
-wax::proxy wax::proxy::operator[](const type &key){
- type val((*this)());
- //check if its a regular pointer and call
- if (val.type() == typeid(obj::ptr)){
- return (*cast<obj::ptr>(val))[key];
- }
- //check if its a smart pointer and call
- if (val.type() == typeid(obj::sptr)){
- return (*cast<obj::sptr>(val))[key];
- }
- //unknown type
- throw std::runtime_error("cannot use [] on non wax::obj pointer");
-}
-
-wax::proxy wax::proxy::operator=(const type &val){
- d_setter(val);
- return *this;
-}
-
-wax::type wax::proxy::operator()(void){
- type val;
- d_getter(val);
- return val;
-}
-
-/***********************************************************************
- * WAX Type
- **********************************************************************/
-std::ostream& operator<<(std::ostream &os, const wax::type &x){
- os << boost::format("WAX type (%s)") % x.type().name();
- return os;
-}
diff --git a/usrp_uhd/usrp_uhd.pc.in b/usrp_uhd/usrp_uhd.pc.in
deleted file mode 100644
index 18194a741..000000000
--- a/usrp_uhd/usrp_uhd.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: usrp_uhd
-Description: Universal Software Radio Peripheral - Unified Hardware Driver
-Requires:
-Version: @VERSION@
-Libs: -L${libdir} -lusrp_uhd
-Cflags: -I${includedir}