diff options
author | Josh Blum | 2012-09-12 21:37:49 -0700 |
---|---|---|
committer | Josh Blum | 2012-09-12 21:37:49 -0700 |
commit | c7720bd1b740094636b0b66e6286f4c14961d31f (patch) | |
tree | 64887e53b7987af2ba4813d99b13487fffbb9679 /include | |
parent | 081b95b570e06c3130aaf979b0feaae159901c9b (diff) | |
download | sandhi-c7720bd1b740094636b0b66e6286f4c14961d31f.tar.gz sandhi-c7720bd1b740094636b0b66e6286f4c14961d31f.tar.bz2 sandhi-c7720bd1b740094636b0b66e6286f4c14961d31f.zip |
added hooks for input buffer inlining
Diffstat (limited to 'include')
-rw-r--r-- | include/gnuradio/block.hpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/gnuradio/block.hpp b/include/gnuradio/block.hpp index ff4ede7..2adc08c 100644 --- a/include/gnuradio/block.hpp +++ b/include/gnuradio/block.hpp @@ -89,6 +89,27 @@ struct GRAS_API Block : Element void produce(const size_t which_output, const size_t how_many_items); /*! + * Set buffer inlining for this input. + * Inlining means that the input buffer can be used as an output buffer. + * The goal is to make better use of cache and memory bandwidth. + * + * By default, input port 0 is automatically inline enabled. + * Automatically inlining other points cannot be assumed safe. + * The user should override these assumptions for your work(). + * + * The scheduler will inline a buffer when + * * inlining is enabled on the particular input port + * * block holds the only buffer reference aka unique + * * buffer size is less than or equal to output buffer + * * the input buffer has the same affinity as the block + * * the input port has a buffer history of 0 items + */ + void set_input_inline(const size_t which_input, const bool enb); + + //! Get the buffer inlining state + bool input_inline(const size_t which_input) const; + + /*! * Enable fixed rate logic. * When enabled, relative rate is assumed to be set, * and forecast is automatically called. |