summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/GrMiscUtils.cmake28
-rw-r--r--gnuradio-runtime/CMakeLists.txt1
-rw-r--r--gnuradio-runtime/lib/CMakeLists.txt1
-rw-r--r--gnuradio-runtime/lib/gr_realtime.cc3
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();
}