summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/include
Commit message (Collapse)AuthorAgeFilesLines
* runtime: configurable blkd_input timerJosh Morman2021-12-101-0/+26
| | | | Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* runtime: Use <spdlog/fmt/fmt.h> header handling SPDLOG_FMT_EXTERNALRyan Volz2021-12-101-5/+1
| | | | | | | | | Regardless of how spdlog was built (with/without SPDLOG_FMT_EXTERNAL), this ensures that the proper fmt headers are included. This makes it so that fmt is not a required dependency when spdlog is built with SPDLOG_FMT_EXTERNAL=OFF. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* runtime: add workaround to #define disable logger headerJosh Morman2021-12-061-0/+13
| | | | Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* runtime: Fix alloc-dealloc-mismatch in buffer_single_mappedVasil Velichkov2021-12-021-1/+1
| | | | | | | | | | | | | | | | | ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x631000014800 #0 0x7ffbdc10f9d7 in operator delete(void*, unsigned long) (/lib64/libasan.so.6+0xad9d7) #1 0x7ffbd8a6646f in std::default_delete<char>::operator()(char*) const /usr/include/c++/10/bits/unique_ptr.h:85 #2 0x7ffbd8a6646f in std::unique_ptr<char, std::default_delete<char> >::~unique_ptr() /usr/include/c++/10/bits/unique_ptr.h:361 #3 0x7ffbd8a6646f in gr::buffer_single_mapped::~buffer_single_mapped() /home/user/src/gnuradio/gnuradio-runtime/lib/buffer_single_mapped.cc:46 #4 0x7ffbd8c805c4 in gr::host_buffer::~host_buffer() /home/user/src/gnuradio/gnuradio-runtime/lib/host_buffer.cc:65 0x631000014800 is located 0 bytes inside of 65536-byte region [0x631000014800,0x631000024800) allocated by thread T0 here: #0 0x7ffbdc10ecb7 in operator new[](unsigned long) (/lib64/libasan.so.6+0xaccb7) #1 0x7ffbd8c73a60 in gr::host_buffer::do_allocate_buffer(unsigned long, unsigned long) /home/user/src/gnuradio/gnuradio-runtime/lib/host_buffer.cc:119 #2 0x7ffbd8fdaebf (/home/user/src/gnuradio/build/gnuradio-runtime/lib/libgnuradio-runtime.so.3.10.0git+0x3475ebf) Signed-off-by: Vasil Velichkov <vvvelichkov@gmail.com>
* runtime: Fix alloc-dealloc-mismatch in host_bufferVasil Velichkov2021-12-021-1/+1
| | | | | | | | | | | | | | | | | ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x631000028800 #0 0x7f87c88129d7 in operator delete(void*, unsigned long) (/lib64/libasan.so.6+0xad9d7) #1 0x7f87c5378c57 in std::default_delete<char>::operator()(char*) const /usr/include/c++/10/bits/unique_ptr.h:85 #2 0x7f87c5378c57 in std::unique_ptr<char, std::default_delete<char> >::~unique_ptr() /usr/include/c++/10/bits/unique_ptr.h:361 #3 0x7f87c5378c57 in gr::host_buffer::~host_buffer() /home/user/src/gnuradio/gnuradio-runtime/lib/host_buffer.cc:65 #4 0x7f87c5384654 in gr::host_buffer::~host_buffer() /home/user/src/gnuradio/gnuradio-runtime/lib/host_buffer.cc:65 0x631000028800 is located 0 bytes inside of 65536-byte region [0x631000028800,0x631000038800) allocated by thread T0 here: #0 0x7f87c8811cb7 in operator new[](unsigned long) (/lib64/libasan.so.6+0xaccb7) #1 0x7f87c5377a7a in gr::host_buffer::do_allocate_buffer(unsigned long, unsigned long) /home/user/src/gnuradio/gnuradio-runtime/lib/host_buffer.cc:123 #2 0x7f87c56deebf (/home/user/src/gnuradio/build/gnuradio-runtime/lib/libgnuradio-runtime.so.3.10.0git+0x3475ebf) Signed-off-by: Vasil Velichkov <vvvelichkov@gmail.com>
* runtime: remove unused includes from buffer headersMarcus Müller2021-11-243-9/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: minor API cleanupMarcus Müller2021-11-193-4/+4
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* logging core: replace log4cpp by spdlogMarcus Müller2021-11-192-659/+178
| | | | | | | | also: enable formerly disabled qa_logger tests This replaces log4cpp with spdlog. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: don't include boost/format.hpp in logger.hMarcus Müller2021-11-191-1/+0
| | | | | | this necessitates including it whenever it's used in-tree Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* Revert "Replace boost::any with std::any"Josh Morman2021-11-062-6/+8
| | | | This reverts commit ccd28dfbb1504fdc29db267acd8aa3354fe10cd2.
* runtime: mark buffer methods as overrideJosh Morman2021-11-034-28/+30
| | | | Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* gnuradio-runtime: Remove Doxygen warnings from custom buffers.Ron Economos2021-10-313-0/+5
| | | | Signed-off-by: Ron Economos <w6rz@comcast.net>
* Replace boost::any with std::anyMarcus Müller2021-10-282-8/+6
| | | | | | | | This is a modernization possible through C++17 Fixes #4780 Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: remove unused d_mutex from custom_lock to remove warningsMarcus Müller2021-10-271-2/+1
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: add virtual destructor to custom_lock_if classDavid Sorber2021-10-271-0/+2
| | | | Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* runtime: pybind version in gnuradio-config-infoJosh Morman2021-10-261-0/+6
| | | | Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* runtime: replace the DEFINE_CUSTOM_BUFFER_TYPE() macro function withDavid Sorber2021-10-256-62/+59
| | | | | | | some advanced template magic; also a few minor type corrections for consistency Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* runtime: rename buffer_context to transfer type; also rename theDavid Sorber2021-10-257-21/+26
| | | | | | | | MAKE_CUSTOM_BUFFER_TYPE macro function to DEFINE_CUSTOM_BUFFER_TYPE; mark unused parameters from virtual functions with the [[maybe_unused]] C++ attribute Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* runtime: use std::function for callback logicDavid Sorber2021-10-252-5/+5
| | | | Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* runtime: Custom Buffer/Accelerator Device Support - Milestone 2David Sorber2021-10-2512-155/+477
| | | | | | | | | | | | | | | | | Completion of custom buffer/accelerator device support changes: * Improved custom buffer interface by removing awkward memory allocation functions from the block class * Increased flexibility for creating custom buffers by allowing creation of buffer_single_mapped subclasses * Fully incorporated data movement abstraction into the custom buffer interface and the runtime itself; accelerated blocks are no longer directly responsible for their own data movement * Zero copy back-to-back accelerated blocks are now supported (data no longer needs to be moved back to the host between each block) Signed-off-by: David Sorber <david.sorber@blacklynx.tech> Signed-off-by: Mike Mason <mike.mason@blacklynx.tech>
* runtime: Custom Buffer/Accelerator Device Support - Milestone 1David Sorber2021-10-2512-156/+928
| | | | | | | | | | | | | | | Custom Buffer/Accelerator Device Support - Milestone 1 changes: * Refactored existing single mapped buffer code and created single mapped buffer abstraction; wrapping within single mapped buffers is handled explicitly by input blocked and output blocked callbacks that are called from block_executor * Added simple custom buffer allocation interface (NOTE: this interface will change for milestone 2) * Accelerated blocks are still responsible for data transfer but the custom buffer interface eliminates the double copy problem Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* global: Replace stdio logging with loggerDavid Winter2021-10-212-2/+8
| | | | | | | This commit replaces many uses of std::c{out,err} and printf with the appropriate GR_LOG_* directives. Signed-off-by: David Winter <david.winter@analog.com>
* runtime: unused remove misc.h/ccJosh Morman2021-10-142-27/+0
| | | | | | | | | misc.h in the public header is not implemented misc.h in the lib/ dir is implemented but not used Appears that all the misc can go without affecting API Signed-off-by: Josh Morman <jmorman@peratonlabs.com>
* pdu: add samp_rate keyJacob Gilbert2021-09-221-0/+1
| | | | | | | This was omitted accidentally, but is necessary in general for correct processing of PDU data Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* runtime: remove tag_checkerMarcus Müller2021-07-302-59/+0
| | | | | | | | | | | | | | | | | | | | | | Deprecated on 3.9: `tag_checker` used to be meant for cases where you've gotten an unsorted tag vector (mostly, from `get_tags_in_range`), which you then had to go through in parallel to your samples, to check which tag applies at what sample. For that it sorts the tags; the tags coming from the `get_tags*` functions are sorted already The checking pattern (which `chunks_to_symbols` is the last consumer of) is inefficient: instead of taking the index of the first unprocessed tag and processing all samples up to that index, a check is performed on every sample, which includes calls and multiple indirections. So, since very likely nobody uses this, and because it's a design anti-pattern, deprecating this on 3.9 and removing it with 3.10. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* pdu: adding tags_to_pdu blockJacob Gilbert2021-07-191-1/+5
| | | | Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* pdu: adding pdu_to_stream blockJacob Gilbert2021-07-191-0/+3
| | | | Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* pdu: Adding new blocksJacob Gilbert2021-07-191-0/+4
| | | | | | Added take_skip_to_pdu block and pdu lambda blocks, needs examples still Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* gr: logger: Add logger_get_configured_logger()David Winter2021-07-021-0/+19
| | | | | | | | A helper method is added to gr/lib/logger.cc to facilitate the allocation of loggers which are automatically configured according to the local GNURadio configuration. Signed-off-by: David Winter <david.winter@analog.com>
* runtime: use < instead of compare_offset, remove Python comparison classMarcus Müller2021-06-281-1/+1
| | | | | | | Since the introduction of the comparison operator obsoletes the comparison class, remove it. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: tags can be compared with < instead of offset_compareMarcus Müller2021-06-281-5/+6
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: cleaning up unspecific/mistaken boost dependenciesMarcus Müller2021-06-222-5/+3
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: automatically remove unused boost includesMarcus Müller2021-06-221-1/+0
| | | | | | | | used command: sed -i '/^#include.*boost.*$/d' $(ag -L '(boost::|BOOST)' $(ag --cpp -l '#include <boost')) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: automatic removal of <cstdio> where unusedMarcus Müller2021-06-171-1/+0
| | | | | | | | | | used command: sed -i '/^#include.*cstdio.*$/d' $(ag -L '\b(fscanf|sscanf|printf|sprintf|ftell|fgetpos|fseek|fsetpos|rewind|fopen|freopen|fclose|fflush|setbuf|setvbuf|fread|fwrite|fprintf|feof|ferror|perror|clearerror|rename|tmpfile|tmpnam)\b' $(ag -l 'include.*<cstdio>' gnuradio-runtime)) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* logger: move non-interface includes to buffer.ccMarcus Müller2021-06-171-8/+4
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* logging: remove <iostream> from logger.h, add where consequently missingMarcus Müller2021-06-172-2/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: remove iostream from all files not use cout|cerr|cin|clogMarcus Müller2021-06-175-5/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: remove installed remnant of old unitttest infraMarcus Müller2021-06-082-30/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: ctrlport: cmake: Fix thrift dependency for OOTs.Ryan Volz2021-06-011-8/+8
| | | | | | | | | | | | | | | | | | | First, this moves find_package(THRIFT) up to the gnuradio-runtime CMakeLists.txt so that cache variables no longer have to be used to mark the found components. This fixes an issue where the thrift-specific headers were not installed even when thrift was enabled, because on first run the detection was occurring AFTER the runtime include CMakeLists.txt was evaluated. See further discussion in #2734, which solved one issue related to this setup. Further, even with thrift enabled, the thrift headers are not required for OOTs to build against gnuradio-runtime. OOTs would need to take special action to use those headers, in which case they should detect/enable thrift on their own. Thus, this makes the change to not add thrift as an extra dependency for OOTs and switches linking of Thrift::thrift from PUBLIC to PRIVATE. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* pmt: remove extra, mis-named pmt::pmt_ functionsJeff Long2021-05-191-14/+0
| | | | Signed-off-by: Jeff Long <willcode4@gmail.com>
* runtime: Access d_config_map cleanerThomas Habets2021-05-021-9/+2
| | | | Signed-off-by: Thomas Habets <thomas@habets.se>
* runtime: Use mutex for prefsThomas Habets2021-05-021-1/+1
| | | | Signed-off-by: Thomas Habets <thomas@habets.se>
* runtime: Simplify prefsThomas Habets2021-05-021-21/+24
| | | | Signed-off-by: Thomas Habets <thomas@habets.se>
* runtime: install xoroshiro128p.hJacob Gilbert2021-04-261-0/+1
| | | | | | | As of eb91fb0 this is required for anything linking against gr::random which broke at least one OOT. Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* runtime: fix gr::random API to be fixed-width 64 bit, use XOROSHIRO128+Marcus Müller2021-04-061-8/+47
| | | | | | | | | | | | | | | Seeding being inconsistent between gr::random and things like fastnoise source is an outstanding issue (#1559). Fix that by fixing the API, and pivoting to our built-in XOROSHIRO128+, which is also substantially faster than MT19937. For that purpose, introduce, and python-bind, a wrapper class that can be used with STL distribution shapers. Add a unit test for the (P)RNG. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: remove ready message receiver queue remnant from basic_blockMarcus Müller2021-04-051-2/+0
| | | | | | 5197311dd22744b784ff9ae2cd965a26ef04f4a4 removed the blocking wait, which utilized this. Time for this to go. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime/random: xoroshiro128p.h was _nearly_ C compatibleMarcus Müller2021-03-231-1/+3
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* thrift: application base sptr reset->make_sharedMarcus Müller2021-03-201-2/+2
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* thrift: replace ::bind with lambdaMarcus Müller2021-03-201-2/+2
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: add int_t and short_t PDU typesJacob Gilbert2021-03-181-2/+2
| | | | | | | These are not used yet but are valid PDUs and should be included here so as not to imply PDUs can have only byte/float/complex type uvec's Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>