aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/usrp_e/usrp_e_iface.cpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-05-08 01:58:10 +0000
committerJosh Blum <josh@joshknows.com>2010-05-08 01:58:10 +0000
commit29809e9697b052fa1d0cd2109c8bd5f9af178cfa (patch)
treef4d722dbf7d0278d715e713d30e271ab9343a1b9 /host/lib/usrp/usrp_e/usrp_e_iface.cpp
parent6ef09d18def4afdd6413188ab63ee38dbae4e9d8 (diff)
downloaduhd-29809e9697b052fa1d0cd2109c8bd5f9af178cfa.tar.gz
uhd-29809e9697b052fa1d0cd2109c8bd5f9af178cfa.tar.bz2
uhd-29809e9697b052fa1d0cd2109c8bd5f9af178cfa.zip
moved open/close into iface, work on codec tx
Diffstat (limited to 'host/lib/usrp/usrp_e/usrp_e_iface.cpp')
-rw-r--r--host/lib/usrp/usrp_e/usrp_e_iface.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/host/lib/usrp/usrp_e/usrp_e_iface.cpp b/host/lib/usrp/usrp_e/usrp_e_iface.cpp
index 1dbe383fa..98d8ef478 100644
--- a/host/lib/usrp/usrp_e/usrp_e_iface.cpp
+++ b/host/lib/usrp/usrp_e/usrp_e_iface.cpp
@@ -18,6 +18,7 @@
#include "usrp_e_iface.hpp"
#include <uhd/utils/assert.hpp>
#include <sys/ioctl.h> //ioctl
+#include <fcntl.h> //open, close
#include <linux/usrp_e.h> //ioctl structures and constants
#include <boost/format.hpp>
#include <boost/thread.hpp> //mutex
@@ -31,12 +32,18 @@ public:
/*******************************************************************
* Structors
******************************************************************/
- usrp_e_iface_impl(int node_fd){
- _node_fd = node_fd;
+ usrp_e_iface_impl(const std::string &node){
+ //open the device node and check file descriptor
+ if ((_node_fd = ::open(node.c_str(), O_RDWR)) < 0){
+ throw std::runtime_error(str(
+ boost::format("Failed to open %s") % node
+ ));
+ }
}
~usrp_e_iface_impl(void){
- /* NOP */
+ //close the device node file descriptor
+ ::close(_node_fd);
}
/*******************************************************************
@@ -178,6 +185,6 @@ private:
/***********************************************************************
* Public Make Function
**********************************************************************/
-usrp_e_iface::sptr usrp_e_iface::make(int node_fd){
- return sptr(new usrp_e_iface_impl(node_fd));
+usrp_e_iface::sptr usrp_e_iface::make(const std::string &node){
+ return sptr(new usrp_e_iface_impl(node));
}