aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael West <michael.west@ettus.com>2013-11-20 12:14:24 -0800
committerMichael West <michael.west@ettus.com>2013-11-20 12:14:24 -0800
commit6ff935e6955be81f30606d0444a265ea03dc6f5d (patch)
tree27745786f543858b99d22de1d87f87da9f905f15
parent1fe3db82d6d292a186fe26e728dfdf68db4db056 (diff)
parent265e94473130ffefc95d4eb67e8d46ce50982be4 (diff)
downloaduhd-6ff935e6955be81f30606d0444a265ea03dc6f5d.tar.gz
uhd-6ff935e6955be81f30606d0444a265ea03dc6f5d.tar.bz2
uhd-6ff935e6955be81f30606d0444a265ea03dc6f5d.zip
Merge remote branch
-rw-r--r--host/examples/network_relay.cpp15
-rw-r--r--host/examples/test_dboard_coercion.cpp4
-rw-r--r--host/examples/test_messages.cpp5
-rw-r--r--host/include/uhd/config.hpp3
-rw-r--r--host/include/uhd/utils/atomic.hpp6
-rw-r--r--host/lib/usrp/b200/b200_iface.cpp13
-rw-r--r--host/lib/usrp/common/fx2_ctrl.cpp4
-rw-r--r--host/lib/usrp/cores/tx_dsp_core_3000.cpp2
-rw-r--r--host/lib/usrp/usrp1/usrp1_iface.cpp6
-rw-r--r--host/lib/usrp/usrp2/usrp2_clk_regs.hpp11
10 files changed, 41 insertions, 28 deletions
diff --git a/host/examples/network_relay.cpp b/host/examples/network_relay.cpp
index a12c38ff8..fc1ebd91d 100644
--- a/host/examples/network_relay.cpp
+++ b/host/examples/network_relay.cpp
@@ -33,9 +33,6 @@ typedef boost::shared_ptr<asio::ip::udp::socket> socket_type;
static const size_t insane_mtu = 9000;
-boost::mutex spawn_mutex;
-boost::condition_variable thread_spawned;
-
#if defined(UHD_PLATFORM_MACOS)
//limit buffer resize on macos or it will error
const size_t rx_dsp_buff_size = size_t(1e6);
@@ -101,11 +98,11 @@ public:
}
std::cout << "spawning relay threads... " << _port << std::endl;
- boost::unique_lock<boost::mutex> lock(spawn_mutex);
+ boost::unique_lock<boost::mutex> lock(spawn_mutex); // lock in preparation to wait for threads to spawn
_thread_group.create_thread(boost::bind(&udp_relay_type::server_thread, this));
- thread_spawned.wait(lock);
+ wait_for_thread.wait(lock); // wait for thread to spin up
_thread_group.create_thread(boost::bind(&udp_relay_type::client_thread, this));
- thread_spawned.wait(lock);
+ wait_for_thread.wait(lock); // wait for thread to spin up
std::cout << " done!" << std::endl << std::endl;
}
@@ -126,7 +123,7 @@ private:
void server_thread(void){
uhd::set_thread_priority_safe();
std::cout << " entering server_thread..." << std::endl;
- thread_spawned.notify_one();
+ wait_for_thread.notify_one(); // notify constructor that this thread has started
std::vector<char> buff(insane_mtu);
while (not boost::this_thread::interruption_requested()){
if (wait_for_recv_ready(_server_socket->native())){
@@ -152,7 +149,7 @@ private:
void client_thread(void){
uhd::set_thread_priority_safe();
std::cout << " entering client_thread..." << std::endl;
- thread_spawned.notify_one();
+ wait_for_thread.notify_one(); // notify constructor that this thread has started
std::vector<char> buff(insane_mtu);
while (not boost::this_thread::interruption_requested()){
if (wait_for_recv_ready(_client_socket->native())){
@@ -170,6 +167,8 @@ private:
asio::ip::udp::endpoint _endpoint;
boost::mutex _endpoint_mutex;
socket_type _server_socket, _client_socket;
+ boost::mutex spawn_mutex;
+ boost::condition_variable wait_for_thread;
};
diff --git a/host/examples/test_dboard_coercion.cpp b/host/examples/test_dboard_coercion.cpp
index bbe6f70dd..86c59d9d7 100644
--- a/host/examples/test_dboard_coercion.cpp
+++ b/host/examples/test_dboard_coercion.cpp
@@ -121,7 +121,7 @@ std::string tx_test(uhd::usrp::multi_usrp::sptr usrp, bool test_gain, bool verbo
gains.push_back(current_gain);
current_gain++;
}
- if(gain_end != gains.back()) gains.push_back(gain_end);
+ gains.push_back(gain_end);
}
@@ -313,7 +313,7 @@ std::string rx_test(uhd::usrp::multi_usrp::sptr usrp, bool test_gain, bool verbo
gains.push_back(current_gain);
current_gain++;
}
- if(gain_end != gains.back()) gains.push_back(gain_end);
+ gains.push_back(gain_end);
}
diff --git a/host/examples/test_messages.cpp b/host/examples/test_messages.cpp
index 0815d0b1c..4240e830b 100644
--- a/host/examples/test_messages.cpp
+++ b/host/examples/test_messages.cpp
@@ -1,5 +1,5 @@
//
-// Copyright 2010-2011 Ettus Research LLC
+// Copyright 2010-2013 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
@@ -15,6 +15,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
+#include <uhd/config.hpp>
#include <uhd/utils/thread_priority.hpp>
#include <uhd/utils/safe_main.hpp>
#include <uhd/utils/static.hpp>
@@ -84,7 +85,7 @@ bool test_late_command_message(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streame
* Issue a stream command with num samps and more.
* We expect to get an inline broken chain message.
*/
-bool test_broken_chain_message(uhd::usrp::multi_usrp::sptr usrp __attribute__ ((unused)), uhd::rx_streamer::sptr rx_stream, uhd::tx_streamer::sptr){
+bool test_broken_chain_message(UHD_UNUSED(uhd::usrp::multi_usrp::sptr usrp), uhd::rx_streamer::sptr rx_stream, uhd::tx_streamer::sptr){
std::cout << "Test broken chain message... " << std::flush;
uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_MORE);
diff --git a/host/include/uhd/config.hpp b/host/include/uhd/config.hpp
index 6fd2932cf..619bd0787 100644
--- a/host/include/uhd/config.hpp
+++ b/host/include/uhd/config.hpp
@@ -55,18 +55,21 @@ typedef ptrdiff_t ssize_t;
#define UHD_INLINE __forceinline
#define UHD_DEPRECATED __declspec(deprecated)
#define UHD_ALIGNED(x) __declspec(align(x))
+ #define UHD_UNUSED(x) x
#elif defined(__GNUG__) && __GNUG__ >= 4
#define UHD_EXPORT __attribute__((visibility("default")))
#define UHD_IMPORT __attribute__((visibility("default")))
#define UHD_INLINE inline __attribute__((always_inline))
#define UHD_DEPRECATED __attribute__((deprecated))
#define UHD_ALIGNED(x) __attribute__((aligned(x)))
+ #define UHD_UNUSED(x) x __attribute__((unused))
#else
#define UHD_EXPORT
#define UHD_IMPORT
#define UHD_INLINE inline
#define UHD_DEPRECATED
#define UHD_ALIGNED(x)
+ #define UHD_UNUSED(x) x
#endif
// Define API declaration macro
diff --git a/host/include/uhd/utils/atomic.hpp b/host/include/uhd/utils/atomic.hpp
index 5f0a056d2..55769d2fd 100644
--- a/host/include/uhd/utils/atomic.hpp
+++ b/host/include/uhd/utils/atomic.hpp
@@ -78,11 +78,9 @@ namespace uhd{
class UHD_API reusable_barrier{
public:
- reusable_barrier():_size (1) {}
+ reusable_barrier():_size (0) {}
- reusable_barrier(const size_t size) {
- _size = size;
- }
+ reusable_barrier(const size_t size):_size(size) {}
//! Resize the barrier for N threads
void resize(const size_t size){
diff --git a/host/lib/usrp/b200/b200_iface.cpp b/host/lib/usrp/b200/b200_iface.cpp
index e0809998e..a2e23cf1b 100644
--- a/host/lib/usrp/b200/b200_iface.cpp
+++ b/host/lib/usrp/b200/b200_iface.cpp
@@ -17,6 +17,7 @@
#include "b200_iface.hpp"
+#include <uhd/config.hpp>
#include <uhd/utils/msg.hpp>
#include <uhd/exception.hpp>
#include <boost/functional/hash.hpp>
@@ -163,7 +164,7 @@ bool parse_record(std::string *record, boost::uint16_t &len, \
std::istringstream(record->substr(3, 4)) >> std::hex >> addr;
std::istringstream(record->substr(7, 2)) >> std::hex >> type;
- if (len >2 * (record->length() - 9)) // sanity check to prevent buffer overrun
+ if (len > (2 * (record->length() - 9))) // sanity check to prevent buffer overrun
return false;
for (i = 0; i < len; i++) {
@@ -222,13 +223,13 @@ public:
}
- void write_i2c(boost::uint16_t addr __attribute__ ((unused)), const byte_vector_t &bytes __attribute__ ((unused)))
+ void write_i2c(UHD_UNUSED(boost::uint16_t addr), UHD_UNUSED(const byte_vector_t &bytes))
{
throw uhd::not_implemented_error("b200 write i2c");
}
- byte_vector_t read_i2c(boost::uint16_t addr __attribute__ ((unused)), size_t num_bytes __attribute__ ((unused)))
+ byte_vector_t read_i2c(UHD_UNUSED(boost::uint16_t addr), UHD_UNUSED(size_t num_bytes))
{
throw uhd::not_implemented_error("b200 read i2c");
}
@@ -303,7 +304,7 @@ public:
}
- void load_firmware(const std::string filestring, bool force __attribute__ ((unused)) = false)
+ void load_firmware(const std::string filestring, UHD_UNUSED(bool force) = false)
{
const char *filename = filestring.c_str();
@@ -333,7 +334,7 @@ public:
std::string record;
file >> record;
- if (!record.length() > 0)
+ if (!(record.length() > 0))
continue;
/* Check for valid Intel HEX record. */
@@ -433,7 +434,7 @@ public:
UHD_THROW_INVALID_CODE_PATH();
// Below is dead code as long as UHD_THROW_INVALID_CODE_PATH(); is declared above.
- // It is preservered here in a comment in case it is needed later:
+ // It is preserved here in a comment in case it is needed later:
// fx3_control_write(B200_VREQ_FPGA_RESET, 0x00, 0x00, data, 4);
}
diff --git a/host/lib/usrp/common/fx2_ctrl.cpp b/host/lib/usrp/common/fx2_ctrl.cpp
index 1cacc45cf..d68bf6058 100644
--- a/host/lib/usrp/common/fx2_ctrl.cpp
+++ b/host/lib/usrp/common/fx2_ctrl.cpp
@@ -119,7 +119,7 @@ bool parse_record(std::string *record, unsigned int &len,
std::istringstream(record->substr(3, 4)) >> std::hex >> addr;
std::istringstream(record->substr(7, 2)) >> std::hex >> type;
- if (len >2 * (record->length() - 9)) // sanity check to prevent buffer overrun
+ if (len > (2 * (record->length() - 9))) // sanity check to prevent buffer overrun
return false;
for (i = 0; i < len; i++) {
@@ -184,7 +184,7 @@ public:
std::string record;
file >> record;
- if (!record.length() > 0)
+ if (!(record.length() > 0))
continue;
//check for valid record
diff --git a/host/lib/usrp/cores/tx_dsp_core_3000.cpp b/host/lib/usrp/cores/tx_dsp_core_3000.cpp
index 6fde70c5f..93c8702bc 100644
--- a/host/lib/usrp/cores/tx_dsp_core_3000.cpp
+++ b/host/lib/usrp/cores/tx_dsp_core_3000.cpp
@@ -51,7 +51,7 @@ public:
//init to something so update method has reasonable defaults
_scaling_adjustment = 1.0;
_dsp_extra_scaling = 1.0;
- _tick_rate = 1.0;
+ this->set_tick_rate(1.0);
}
void set_tick_rate(const double rate){
diff --git a/host/lib/usrp/usrp1/usrp1_iface.cpp b/host/lib/usrp/usrp1/usrp1_iface.cpp
index 7c64714b7..6eff9d3ad 100644
--- a/host/lib/usrp/usrp1/usrp1_iface.cpp
+++ b/host/lib/usrp/usrp1/usrp1_iface.cpp
@@ -141,8 +141,10 @@ public:
if (readback) {
unsigned char buff[4] = {
- (unsigned char)((bits >> 0) & 0xff), (unsigned char)((bits >> 8) & 0xff),
- (unsigned char)((bits >> 16) & 0xff), (unsigned char)((bits >> 24) & 0xff)
+ (unsigned char)(bits & 0xff),
+ (unsigned char)((bits >> 8) & 0xff),
+ (unsigned char)((bits >> 16) & 0xff),
+ (unsigned char)((bits >> 24) & 0xff)
};
//conditions where there are two header bytes
if (num_bytes >= 3 and buff[num_bytes-1] != 0 and buff[num_bytes-2] != 0 and buff[num_bytes-3] == 0){
diff --git a/host/lib/usrp/usrp2/usrp2_clk_regs.hpp b/host/lib/usrp/usrp2/usrp2_clk_regs.hpp
index 45c0859d8..d5e506d8d 100644
--- a/host/lib/usrp/usrp2/usrp2_clk_regs.hpp
+++ b/host/lib/usrp/usrp2/usrp2_clk_regs.hpp
@@ -22,7 +22,16 @@
class usrp2_clk_regs_t {
public:
- usrp2_clk_regs_t(void):test(0),fpga(0),adc(0),dac(0),serdes(0),exp(0),tx_db(0),rx_db(0) { ; }
+ usrp2_clk_regs_t(void):
+ test(0),
+ fpga(0),
+ adc(0),
+ dac(0),
+ serdes(0),
+ exp(0),
+ tx_db(0),
+ rx_db(0) {}
+
usrp2_clk_regs_t(usrp2_iface::rev_type rev) {
fpga = adc = serdes = exp = tx_db = 0;
test = 0;