aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/utils
Commit message (Collapse)AuthorAgeFilesLines
* log: Fix ANSI colour codesMartin Braun2019-05-211-7/+9
| | | | | | The colour codes used for console logging were incorrectly defined. Some colours would simply not rendered this way (e.g., red), others had the boldness flag wrong.
* log: fix deadlock issue on Windows machinesAbdo-Gaber2019-05-211-3/+32
| | | | | | | In log.cpp, a deadlock can occur while popping elements from the log queue. If the queue is empty, the call does not timeout, and waits infinitely. Replacing pop_with_wait() with pop_with_timed_wait() solves this issue.
* mpmd,transport,prefs: Add xport_mgr for dpdk_zero_copyAlex Williams2019-01-251-11/+34
| | | | | | | | | | | | | | | | | | | | | | | Add configuration sections to the UHD config file for NIC entries. Keys are based on MAC addresses, and the entries beneath the section describe which CPU and I/O thread to use for the NIC and its IPv4 address. Make ring sizes configurable for uhd-dpdk. Ring size is now an argument for packet buffers. Note that the maximum number of available buffers is still determined at init! Add ability to receive broadcasts to uhd-dpdk. This is controllable by a boolean in the sockarg during socket creation. dpdk_zero_copy will filter broadcast packets out. Add dpdk_simple transport (to mirror udp_simple). This transport allows receiving from broadcast addresses, but it only permits one outstanding buffer at a time. Fix IP checksum handling in UHD-DPDK. TX checksums were not being calculated in the NIC, and in RX, the check for IP checksums allowed values of zero (reported as none). Now packets with bad IP checksums will be dropped.
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-141-77/+77
| | | | | | | | | | | | | | | | | Also updates our coding style file. Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code (with GNU compliant sed): cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done > convert.sed \ && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \ '*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed (Make sure the backslashes don't get mangled!)
* uhd: Remove usage of time_t (except when required)Martin Braun2018-08-201-1/+1
| | | | | | | | | | The C/C++ standards don't define what time_t is, only that it is arithmetic (and real for C11, and integral for C++). It should not be used in portable software and is only used as the return value for some libc calls. A common definition for time_t is int64_t, so we'll switch to that permanently in our own APIs. System APIs will of course stick with time_t.
* python: Separating exposed Python data structuresPaul David2018-06-201-0/+31
| | | | | | | | | - Separating exposed Python data structures into logical sections - Exposes all of the multi_usrp API - Adds a layer of Python for documentation and adding helper methods - Adds improvements and fixes to the MultiUSRP object - Includes additional exposed data structures (like time_spec_t, etc.) - Add code to release the Python GIL during long C++ calls
* Log: Handle Exceptions in DestructorVidush2018-06-061-1/+4
|
* log: Allow disabling of fastpath msgs at runtimeMartin Braun2018-04-261-13/+54
| | | | | | - Fixes an issue with compile time disabling as well - An UHD_LOG_FASTPATH_DISABLE=1 env var will make it that O/U/S/D won't be printed
* log: Add method for local generation of messages in log.cppMartin Braun2018-04-261-10/+18
|
* logging: Remove dead code from log.cppVidush2018-04-261-1/+0
|
* lib: update get_range of gain_groupTrung N Tran2018-04-181-2/+5
| | | | Need to skip zero gain step
* logging: Fix UHD_LOG_FILE cmake varMartin Braun2018-04-101-41/+54
| | | | | | | | | - Fixes: cmake -DUHD_LOG_FILE wasn't respected - Fixes: UHD_LOG_FILE and UHD_FILE_LOG_LEVEL had to both be set for either to take effect - Fixes: Use of unnecessary boost::make_shared<> - Also factored out setting up console- and file logger into their own locations in an attempt to improve readability
* lib: move atomic.hpp and system_time.hpp to uhdlibMartin Braun2018-04-061-1/+1
|
* lib: Fixing config file path for some Windows buildsAndrew Lynch2018-03-282-6/+1
|
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-146-284/+2
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* uhd: Moved get_system_time outside of public APIMartin Braun2018-03-052-0/+117
| | | | | | | uhd::get_system_time() is an abstracted way of reading back a time, and is not UHD-specific. As such, there's no reason to keep it in the public part of the API where we're contractually obligated not to touch it. Instead, moving it to the internal API space.
* lib: Add 'prefs' APIMartin Braun2018-02-202-0/+108
| | | | | | | | | | | | | This defines and reads configuration files that can be used to customize UHD's behaviour. On Unix systems, they default to: /etc/uhd/uhd.conf $APPDATA/.uhd/uhd.conf On Windows systems, it will look in: %ProgramData%/uhd/uhd.conf %AppData%/.uhd/uhd.conf
* lib: Add path_expandvars() internal API callMartin Braun2018-02-203-0/+48
|
* uhd: Update license headersMartin Braun2018-02-1919-18/+31
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* rfnoc: Factored out FPGA compat checkMartin Braun2018-02-192-0/+115
| | | | | - Applied changes to DUC and DDC blocks - Fixed minor formatting
* lib: Add config_parser classMartin Braun2018-02-012-0/+60
| | | | | | | This class is not publicly exported. It is meant to read config files in the INI format. Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* logging: Minor refactoring, skip empty log messagesMartin Braun2018-01-231-75/+102
| | | | | | | Empty log messages are now skipped for faster processing. The 'terminating' log message is now also empty (and thus skipped). Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* logging: Fix version print at top of every UHD sessionMartin Braun2018-01-181-17/+21
|
* Move all headers to SPDX format, harmonize license headersMartin Braun2017-12-221-13/+2
|
* rpc: Add feature to retrieve an error stringMartin Braun2017-12-221-6/+58
| | | | | | It can be helpful to go back to the RPC server for clarification on what just happened. This adds an optional argument to the RPC client for how to retrieve that info.
* rpc: Add set timeout API callMartin Braun2017-12-221-0/+5
|
* rpc: Changed API to request/notify for better distinction between the twoMartin Braun2017-12-221-11/+35
|
* rpc: Explicit code for non-returning RPC callsMartin Braun2017-12-221-0/+19
|
* rpc: Improved error handlingMartin Braun2017-12-221-2/+17
|
* mpmd/rpc: Added a convenience wrapper for calling with a tokenMartin Braun2017-12-221-1/+25
|
* mpmd: Added preliminary support for passing RPC client to blocksMartin Braun2017-12-221-0/+4
|
* eiscat: Fixed missing antenna selection reg write for direct rxMartin Braun2017-12-221-2/+17
|
* usrp: add netd find and impl, add uhd rpc client wrapperAndrej Rode2017-12-221-0/+44
|
* Move all license headers to SPDX format.Martin Braun2017-12-2214-168/+14
|
* uhd: Changed mboard_eeprom_t interface, refactored MB EEPROM codeMartin Braun2017-09-293-0/+45
| | | | | | | | | | | | - uhd::usrp::mboard_eeprom_t is now simply a map. Its commit() method has no utility being a public API call, because the user never gets access to the appropriate I2C object (Minor API breakage) - The central mboard_eeprom.cpp file was broken up and put into many smaller compilation units in every device's implementation folder. - Renamed some of the constants (e.g. B000_* -> USRP1_*, N100_* -> N200_*) - Removed the N000_* EEPROM code, because, well, you know, there's no such device
* C API: Added logging macrosMartin Braun2017-07-212-0/+72
|
* utils: add set_thread_name API call, move thread_priority to threadAndrej Rode2017-06-294-9/+56
|
* uhd: tasks now use std::threads under the hood, and can't be interruptedMartin Braun2017-06-281-22/+16
| | | | | USRP1 and USRP2 used tasks that relied on Boost thread interruption mechanisms. These were replaced with explicit atomics.
* log: Removed timeout from logger, replaced with wait.Martin Braun2017-05-231-2/+20
| | | | | This works because there's also another trace message on termination of the logger.
* log: Moved print_system_info to log.cpp.trungnob2017-05-201-0/+18
| | | | | We want to display syteminfo when the log system get initialized. Also removes a static block.
* log: Split add_logger() out of the main logging headerMartin Braun2017-05-121-0/+1
| | | | | This way, C++11 features are not required to build with UHD headers included.
* Merge branch 'maint'Martin Braun2017-05-031-2/+2
|\
| * uhd: cast thread_group.create_thread() return value to void to avoid memory leakAndrej Rode2017-04-251-2/+2
| |
* | log: Fixed compiler warningMartin Braun2017-05-031-1/+1
| |
* | log: Allow logging to blockMartin Braun2017-04-241-1/+2
| | | | | | | | | | | | | | | | This means it's very unlikely that logging messages get dropped, but the downside is that LOG macros can block for up to 250 ms. This is very unlikely though. Note that fastpath logging does not have this feature. It's always fast, and might drop messages.
* | log: Moved fastpath logging to its own threadMartin Braun2017-04-241-0/+49
| |
* | log: Fixed various issuesMartin Braun2017-04-221-33/+62
| | | | | | | | | | | | - Made the task a regular thread - Moved verbosity operator into lib - Minor comments and indents and so on
* | log: Added more comments and manual pageMartin Braun2017-04-201-5/+17
| |
* | log: Fix missing add_logger, fix clearing of queueMartin Braun2017-04-201-2/+25
| |
* | utils: implement Ettus Logging APIAndrej Rode2017-04-201-143/+182
| | | | | | | | | | | | | | | | - allows adding new loggers by using add_logger API call - existing loggers (console, file) can be disabled easily - number of logging sinks is not limited Signed-off-by: Martin Braun <martin.braun@ettus.com>