aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2015-03-05 10:44:18 -0800
committerMartin Braun <martin.braun@ettus.com>2015-03-05 10:44:18 -0800
commitce9d4346603597f2dbd508879495f0aceddcda92 (patch)
tree0c88f3b12e4dc4494c7abdf314ceb8f939741ffd /host/lib
parente994fad15798e7f2f7a7c34f20bbdee0e6d5ed1a (diff)
parente067c45bdeb5ce7fcef8b96d23244f1c6f51c763 (diff)
downloaduhd-ce9d4346603597f2dbd508879495f0aceddcda92.tar.gz
uhd-ce9d4346603597f2dbd508879495f0aceddcda92.tar.bz2
uhd-ce9d4346603597f2dbd508879495f0aceddcda92.zip
Merge branch 'maint'
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/device.cpp23
-rw-r--r--host/lib/usrp/usrp2/io_impl.cpp3
-rw-r--r--host/lib/usrp/usrp2/usrp2_impl.cpp5
-rw-r--r--host/lib/usrp/usrp2/usrp2_impl.hpp1
4 files changed, 20 insertions, 12 deletions
diff --git a/host/lib/device.cpp b/host/lib/device.cpp
index 006ea6ec8..3e84d5bea 100644
--- a/host/lib/device.cpp
+++ b/host/lib/device.cpp
@@ -1,5 +1,5 @@
//
-// Copyright 2010-2011,2014 Ettus Research LLC
+// Copyright 2010-2011,2014-2015 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
@@ -90,9 +90,9 @@ device_addrs_t device::find(const device_addr_t &hint, device_filter_t filter){
device_addrs_t device_addrs;
- BOOST_FOREACH(const dev_fcn_reg_t &fcn, get_dev_fcn_regs()){
- try{
- if(filter == ANY or fcn.get<2>() == filter){
+ BOOST_FOREACH(const dev_fcn_reg_t &fcn, get_dev_fcn_regs()) {
+ try {
+ if (filter == ANY or fcn.get<2>() == filter) {
device_addrs_t discovered_addrs = fcn.get<0>()(hint);
device_addrs.insert(
device_addrs.begin(),
@@ -101,7 +101,7 @@ device_addrs_t device::find(const device_addr_t &hint, device_filter_t filter){
);
}
}
- catch(const std::exception &e){
+ catch (const std::exception &e) {
UHD_MSG(error) << "Device discovery error: " << e.what() << std::endl;
}
}
@@ -119,12 +119,17 @@ device::sptr device::make(const device_addr_t &hint, device_filter_t filter, siz
std::vector<dev_addr_make_t> dev_addr_makers;
BOOST_FOREACH(const dev_fcn_reg_t &fcn, get_dev_fcn_regs()){
- if(filter == ANY or fcn.get<2>() == filter){
- BOOST_FOREACH(device_addr_t dev_addr, fcn.get<0>()(hint)){
- //append the discovered address and its factory function
- dev_addr_makers.push_back(dev_addr_make_t(dev_addr, fcn.get<1>()));
+ try{
+ if(filter == ANY or fcn.get<2>() == filter){
+ BOOST_FOREACH(device_addr_t dev_addr, fcn.get<0>()(hint)){
+ //append the discovered address and its factory function
+ dev_addr_makers.push_back(dev_addr_make_t(dev_addr, fcn.get<1>()));
+ }
}
}
+ catch(const std::exception &e){
+ UHD_MSG(error) << "Device discovery error: " << e.what() << std::endl;
+ }
}
//check that we found any devices
diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp
index 9ee6abed0..81be97fa5 100644
--- a/host/lib/usrp/usrp2/io_impl.cpp
+++ b/host/lib/usrp/usrp2/io_impl.cpp
@@ -239,7 +239,8 @@ void usrp2_impl::io_init(void){
//init the tx xport and flow control monitor
_io_impl->tx_xports.push_back(_mbc[mb].tx_dsp_xport);
_io_impl->fc_mons.push_back(flow_control_monitor::sptr(new flow_control_monitor(
- USRP2_SRAM_BYTES/_mbc[mb].tx_dsp_xport->get_send_frame_size()
+ device_addr.cast("send_buff_size", USRP2_SRAM_BYTES) /
+ _mbc[mb].tx_dsp_xport->get_send_frame_size()
)));
}
diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp
index 16e8a1f22..50b8431a1 100644
--- a/host/lib/usrp/usrp2/usrp2_impl.cpp
+++ b/host/lib/usrp/usrp2/usrp2_impl.cpp
@@ -316,9 +316,10 @@ static zero_copy_if::sptr make_xport(
/***********************************************************************
* Structors
**********************************************************************/
-usrp2_impl::usrp2_impl(const device_addr_t &_device_addr){
+usrp2_impl::usrp2_impl(const device_addr_t &_device_addr) :
+ device_addr(_device_addr)
+{
UHD_MSG(status) << "Opening a USRP2/N-Series device..." << std::endl;
- device_addr_t device_addr = _device_addr;
//setup the dsp transport hints (default to a large recv buff)
if (not device_addr.has_key("recv_buff_size")){
diff --git a/host/lib/usrp/usrp2/usrp2_impl.hpp b/host/lib/usrp/usrp2/usrp2_impl.hpp
index edbb7888b..fac4b3907 100644
--- a/host/lib/usrp/usrp2/usrp2_impl.hpp
+++ b/host/lib/usrp/usrp2/usrp2_impl.hpp
@@ -116,6 +116,7 @@ private:
bool _ignore_cal_file;
//io impl methods and members
+ uhd::device_addr_t device_addr;
UHD_PIMPL_DECL(io_impl) _io_impl;
void io_init(void);
void update_tick_rate(const double rate);