summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/block.cc
Commit message (Collapse)AuthorAgeFilesLines
* runtime: configurable blkd_input timerJosh Morman2021-12-101-0/+7
| | | | Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* runtime: minor API cleanupMarcus Müller2021-11-191-1/+1
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* logging core: replace log4cpp by spdlogMarcus Müller2021-11-191-2/+2
| | | | | | | | also: enable formerly disabled qa_logger tests This replaces log4cpp with spdlog. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* runtime: replace the DEFINE_CUSTOM_BUFFER_TYPE() macro function withDavid Sorber2021-10-251-2/+2
| | | | | | | some advanced template magic; also a few minor type corrections for consistency Signed-off-by: David Sorber <david.sorber@blacklynx.tech>
* runtime: Custom Buffer/Accelerator Device Support - Milestone 2David Sorber2021-10-251-25/+38
| | | | | | | | | | | | | | | | | 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-251-0/+141
| | | | | | | | | | | | | | | 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-211-4/+7
| | | | | | | 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: fix latency issue caused by setting block alias on message blockJacob Gilbert2020-09-301-2/+2
| | | | This changes how the blocks are identified when they need to be notified that they have messages waiting. It also clarifies the name the block is registered with explicitly, and adds exceptions for looking up blocks that do not exist.
* msg_handler: Use lambdas to set msg handlersJohannes Demel2020-06-041-2/+1
| | | | | With this commit, all calls to `set_msg_handler` in `gr-blocks` use lambdas. This helps to use `std::function` instead of `boost::function`.
* msg_handler: Switch from boost::function to std::functionJohannes Demel2020-06-041-1/+2
| | | | | | | This commit is a first stab at moving from `boost::function` to `std::function`. For now, it does only update gr-blocks. Also, this requires more testing. If others can confirm that this change works, I'll continue to update all modules.
* runtime: move loggers from gr::block to gr::basic_blockMarcus Müller2020-04-131-2/+0
| | | | | | | No reason to assume only `general_work`-containing blocks would want to log. This enables us especially to log in `basic_block` itself.
* Update license header to SPDX formatdevnulling2020-01-271-13/+1
|
* Remove newlines from exception messagesThomas Habets2020-01-011-1/+1
|
* Use emplace_back(params) instead of push_back(type(params))Marcus Müller2019-08-221-144/+138
| | | | | | | | | | | | | | | | | | | This is C++11: you can convert std::vector<complextype> vec; vec.push_back(complextype(foo, bar, baz)); by std::vector<complextype> vec; vec.emplace_back(foo, bar, baz); which saves one unnecessary copy. This mostly happened in rpc code. The automated clang-tidy check failed miserably, so most of this was done by hand.
* clang-format: Ordering all the includesMarcus Müller2019-08-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang-format: ordering includes in gnuradio-runtime clang-format: ordering includes in gr-filter clang-format: ordering includes in gr-fft clang-format: ordering includes in gr-audio clang-format: ordering includes in gr-analog clang-format: ordering includes in gr-fec clang-format: ordering includes in gr-wavelet clang-format: ordering includes in gr-zeromq clang-format: ordering includes in gr-vocoder clang-format: ordering includes in gr-video-sdl clang-format: ordering includes in gr-trellis clang-format: ordering includes in gr-blocks clang-format: ordering includes in gr-digital clang-format: ordering includes in gr-uhd clang-format: ordering includes in gr-dtv clang-format: ordering includes in gr-channels clang-format: ordering includes in gr-qtgui clang_format.py: re-enable include reordering
* Tree: clang-format without the include sortingMarcus Müller2019-08-091-695/+650
|
* runtime: circumvent long long, uint64_t problems on 32-bit archsAndrej Rode2018-11-131-1/+4
| | | | | | | | C++ bindings for MPIR/GMP don't provide conversion for uint64_t, also known as "long long" on 32-bit architectures. Using the underlying (GMP/MPIR) C library directly allows usage of these types.
* Merge remote-tracking branch 'origin/next' into merge_nextMarcus Müller2018-08-311-2/+20
|\
| * runtime: replace compile-time debugging option by GR_LOG_DEBUG()Andrej Rode2018-08-261-1/+5
| | | | | | | | | | Add identifier() calls to flowgraph components to return a string with a human readable string to reuse in both: the std::ostream overload and the logging system.
| * runtime: add interface to get log_level for blocksNathan West2016-08-041-0/+8
| |
| * runtime: expose set_log_level for blocksNathan West2016-08-041-0/+6
| |
| * runtime: use bool for system port messageBastian Bloessl2016-06-291-2/+2
| |
| * runtime: allow blocks w/ only msg inputs to exitBastian Bloessl2016-06-291-1/+1
| |
| * runtime: remove unnecessary wakeup of neighborsBastian Bloessl2016-06-291-1/+0
| |
* | runtime: Use multiprecision rational arithmetic to propagate tagsAndy Walls2018-08-231-2/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid floating point precision problems in propagation of tags for the following cases: - Common relative rates that are non-terminating in binary (1/3, 1/5, 1/7, ...) - Large tag offsets - Inexact floating point reciprocals when specifying the relative rate This change to the runtime only fixes the tag propagation problems for blocks with a fixed/unchanging relative rate. This change adds a dependency on the MIPR library (a fork of the GMP library) to perform multiple precision interger rational arithmetic. MIPR was chosen as it purports to maintain a properly working Windows build for cross-platform compatability. Optimizations in MIPR are also targeted to ARM in additional to x86-64.
* | runtime: demoted static const pmt_t members of block:: to constMarcus Müller2018-03-301-4/+3
| |
* | runtime: PMT recreation for system bus messages suppressedMarcus Müller2018-02-231-10/+7
|/ | | | | Cache the port name `pmt::mp("system")` as well as the magic "done" value `pmt::mp("done")` to avoid repeated hashing.
* ctrlport: pc_throughput_avg registeredJohannes Demel2015-11-181-0/+7
|
* controlport: cleanup and switching over to new Python common interface.Tom Rondeau2015-04-021-6/+6
|
* runtime: possible bug fix for limited-run flowgraphs with message-only blocks.Tom Rondeau2015-02-041-1/+4
|
* logger: adds a function to the logger facilities that allows us to update ↵Tom Rondeau2014-12-041-1/+1
| | | | the format of the logging output.
* runtime: add throughput counterNathan West2014-10-311-0/+10
| | | | throughput_avg is calculated with a wall clock timer over all items produced.
* logger: adding new configure_default_logger function to make it easier to ↵Tom Rondeau2014-08-131-45/+1
| | | | get log file info on logger setup.
* build: better support for static libs.Tom Rondeau2014-07-181-1/+0
| | | | | | Now builds shared libraries with ControlPort (if ControlPort is enableed). Static libs still without ControlPort. Added proper Option and output message in cmake for Static Libs on/off.
* Merge branch 'maint'Johnathan Corgan2014-07-081-1/+1
|\
| * Windows compatibility fixesNicholas Corgan2014-07-071-1/+1
| | | | | | | | | | * Fixed usage of Windows thread-naming API, changed minimum Windows version * Fixed MSVC usage of isnan, round
* | Merge branch 'maint'Tom Rondeau2014-06-291-6/+6
|\|
| * runtime: fix a memory leak in the logger when restarting a flowgraph due to ↵Tom Rondeau2014-06-291-6/+6
| | | | | | | | | | | | adding new appenders to the logger. Now we clear them and set a This adds a set of "set" functions to set a new appender. We can always add additional loggers using the old "add" functions.
* | Merge branch 'fecapi'Tom Rondeau2014-05-201-1/+1
|\ \ | |/ |/| | | | | | | Conflicts: cmake/Modules/FindICE-3.5.cmake gnuradio-runtime/include/gnuradio/rpcregisterhelpers.h
| * grc: adding advanced tab feature to set a block's alias.Tom Rondeau2014-05-171-1/+1
| | | | | | | | | | | | | | | | Does not allow for setting individual block aliases underneath a hier_block. runtime: updates block registery to support updating block's alias that's then accessible through alias(). Adds an update_symbolic_name to the block_registry to delete the old key and add the new one. The block_registry only keeps the symbol_name (which never changes during the lifetime of the block) and the latest alias name that was set.
| * controlport: allows reset_perf_counters to be called over controlport; ↵Tom Rondeau2014-05-171-0/+5
| | | | | | | | | | | | gr-perf-monitorx has button to call this. Also changes the icon of the ControlPort tools to the new one.
| * cmake and build: fixes for cross-compiling to enable ControlPort with ICE.Tom Rondeau2014-05-171-0/+1
| |
* | runtime: fix propagation of DONE state to message blocksTim O'Shea2014-04-231-0/+57
| |
* | Merge branch 'ctrlport_trigger'Tom Rondeau2014-04-211-0/+5
|\ \
| * | controlport: allows reset_perf_counters to be called over controlport; ↵Tom Rondeau2014-04-151-0/+5
| |/ | | | | | | | | | | gr-perf-monitorx has button to call this. Also changes the icon of the ControlPort tools to the new one.
* / cmake and build: fixes for cross-compiling to enable ControlPort with ICE.Tom Rondeau2014-04-201-0/+1
|/
* build: moving the location of the config.h file in the build tree so we can ↵Tom Rondeau2014-02-261-2/+3
| | | | | | access it in sources as gnuradio/config.h. Also uses the config.h to pull out if we've defined GR_PERFORMANCE_COUNTERS to handle the setup_pc_rpc function if perf counters are/are not compiled in.
* tags: adds get_tags_in_window helper function for handling tags. Also ↵Tom Rondeau2014-02-231-14/+37
| | | | updates some docs.
* runtime: changed name from set_group_delay to declare_sample_delay.Tom Rondeau2013-11-011-9/+9
|
* runtime: add concept up an automatic update_rate to gr::block.Tom Rondeau2013-10-291-1/+15
| | | | | | When enabled, uses nitems_written/nitems_read to update the relative_rate of a block. Useful for blocks that change their relative rate based on activity in the work function. Disabled by default. digital: PFB clock sync blocks set update_rate to True.