diff options
-rw-r--r-- | cmake/Modules/GrMiscUtils.cmake | 28 | ||||
-rw-r--r-- | gnuradio-runtime/CMakeLists.txt | 1 | ||||
-rw-r--r-- | gnuradio-runtime/lib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | gnuradio-runtime/lib/gr_realtime.cc | 3 |
4 files changed, 32 insertions, 1 deletions
diff --git a/cmake/Modules/GrMiscUtils.cmake b/cmake/Modules/GrMiscUtils.cmake index 69ff1f5ddc..3803fba0b1 100644 --- a/cmake/Modules/GrMiscUtils.cmake +++ b/cmake/Modules/GrMiscUtils.cmake @@ -317,3 +317,31 @@ function(GRCC) set(PYFILES ${pyfiles} PARENT_SCOPE) endfunction(GRCC) + +######################################################################## +# Check if HAVE_PTHREAD_SETSCHEDPARAM and HAVE_SCHED_SETSCHEDULER +# should be defined +######################################################################## +macro(GR_CHECK_LINUX_SCHED_AVAIL) +set(CMAKE_REQUIRED_LIBRARIES -lpthread) + CHECK_CXX_SOURCE_COMPILES(" + #include <pthread.h> + int main(){ + pthread_t pthread; + pthread_setschedparam(pthread, 0, 0); + return 0; + } " HAVE_PTHREAD_SETSCHEDPARAM + ) + GR_ADD_COND_DEF(HAVE_PTHREAD_SETSCHEDPARAM) + + CHECK_CXX_SOURCE_COMPILES(" + #include <sched.h> + int main(){ + pid_t pid; + sched_setscheduler(pid, 0, 0); + return 0; + } " HAVE_SCHED_SETSCHEDULER + ) + GR_ADD_COND_DEF(HAVE_SCHED_SETSCHEDULER) +endmacro(GR_CHECK_LINUX_SCHED_AVAIL) + diff --git a/gnuradio-runtime/CMakeLists.txt b/gnuradio-runtime/CMakeLists.txt index abdc969690..4940f7e58c 100644 --- a/gnuradio-runtime/CMakeLists.txt +++ b/gnuradio-runtime/CMakeLists.txt @@ -27,6 +27,7 @@ include(GrPython) # Setup compatibility checks and defines ######################################################################## include(${CMAKE_CURRENT_SOURCE_DIR}/ConfigChecks.cmake) +GR_CHECK_LINUX_SCHED_AVAIL() ######################################################################## # Register component diff --git a/gnuradio-runtime/lib/CMakeLists.txt b/gnuradio-runtime/lib/CMakeLists.txt index 98db673f5d..1cde8ce323 100644 --- a/gnuradio-runtime/lib/CMakeLists.txt +++ b/gnuradio-runtime/lib/CMakeLists.txt @@ -123,6 +123,7 @@ list(APPEND gnuradio_runtime_sources gr_vmcircbuf_mmap_tmpfile.cc gr_vmcircbuf_sysv_shm.cc malloc16.c + realtime.cc runtime_block_gateway.cc ) diff --git a/gnuradio-runtime/lib/gr_realtime.cc b/gnuradio-runtime/lib/gr_realtime.cc index d7a7eab5ba..9977718a5d 100644 --- a/gnuradio-runtime/lib/gr_realtime.cc +++ b/gnuradio-runtime/lib/gr_realtime.cc @@ -25,9 +25,10 @@ #endif #include <gr_realtime.h> +#include <realtime.h> gr_rt_status_t gr_enable_realtime_scheduling() { - return gr_enable_realtime_scheduling(); + return gr::enable_realtime_scheduling(); } |