diff options
Diffstat (limited to 'gnuradio-runtime/lib')
-rw-r--r-- | gnuradio-runtime/lib/hier_block2.cc | 18 | ||||
-rw-r--r-- | gnuradio-runtime/lib/hier_block2_detail.cc | 25 | ||||
-rw-r--r-- | gnuradio-runtime/lib/hier_block2_detail.h | 4 |
3 files changed, 47 insertions, 0 deletions
diff --git a/gnuradio-runtime/lib/hier_block2.cc b/gnuradio-runtime/lib/hier_block2.cc index f26da18e54..e0acba30a0 100644 --- a/gnuradio-runtime/lib/hier_block2.cc +++ b/gnuradio-runtime/lib/hier_block2.cc @@ -157,4 +157,22 @@ namespace gr { return new_ffg; } + void + hier_block2::set_processor_affinity(const std::vector<int> &mask) + { + d_detail->set_processor_affinity(mask); + } + + void + hier_block2::unset_processor_affinity() + { + d_detail->unset_processor_affinity(); + } + + std::vector<int> + hier_block2::processor_affinity() + { + return d_detail->processor_affinity(); + } + } /* namespace gr */ diff --git a/gnuradio-runtime/lib/hier_block2_detail.cc b/gnuradio-runtime/lib/hier_block2_detail.cc index 83207d978c..85b848101c 100644 --- a/gnuradio-runtime/lib/hier_block2_detail.cc +++ b/gnuradio-runtime/lib/hier_block2_detail.cc @@ -654,4 +654,29 @@ namespace gr { d_owner->unlock(); } + void + hier_block2_detail::set_processor_affinity(const std::vector<int> &mask) + { + basic_block_vector_t tmp = d_fg->calc_used_blocks(); + for(basic_block_viter_t p = tmp.begin(); p != tmp.end(); p++) { + (*p)->set_processor_affinity(mask); + } + } + + void + hier_block2_detail::unset_processor_affinity() + { + basic_block_vector_t tmp = d_fg->calc_used_blocks(); + for(basic_block_viter_t p = tmp.begin(); p != tmp.end(); p++) { + (*p)->unset_processor_affinity(); + } + } + + std::vector<int> + hier_block2_detail::processor_affinity() + { + basic_block_vector_t tmp = d_fg->calc_used_blocks(); + return tmp[0]->processor_affinity(); + } + } /* namespace gr */ diff --git a/gnuradio-runtime/lib/hier_block2_detail.h b/gnuradio-runtime/lib/hier_block2_detail.h index 99bf6e8ef1..806738360f 100644 --- a/gnuradio-runtime/lib/hier_block2_detail.h +++ b/gnuradio-runtime/lib/hier_block2_detail.h @@ -54,6 +54,10 @@ namespace gr { void unlock(); void flatten_aux(flat_flowgraph_sptr sfg) const; + void set_processor_affinity(const std::vector<int> &mask); + void unset_processor_affinity(); + std::vector<int> processor_affinity(); + private: // Private implementation data hier_block2 *d_owner; |