File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change 3434#include < sched.h>
3535#include < sys/capability.h>
3636#include < sys/mman.h>
37+ #include < sys/utsname.h>
3738
3839#include < unistd.h>
3940#endif
4041
4142#include < cstring>
4243#include < fstream>
44+ #include < iostream>
4345
4446namespace realtime_tools
4547{
4648bool has_realtime_kernel ()
4749{
50+ #ifdef _WIN32
51+ std::cerr << " Realtime kernel detection is not supported on Windows." << std::endl;
52+ return false ;
53+ #else
4854 std::ifstream realtime_file (" /sys/kernel/realtime" , std::ios::in);
4955 bool has_realtime = false ;
5056 if (realtime_file.is_open ()) {
5157 realtime_file >> has_realtime;
5258 }
59+ if (!has_realtime) {
60+ struct utsname kernel_info;
61+ if (uname (&kernel_info) == -1 ) {
62+ std::cerr << " Error: Could not get kernel information : " << std::strerror (errno)
63+ << std::endl;
64+ return false ;
65+ }
66+ const std::string kernel_version (kernel_info.version );
67+ return kernel_version.find (" PREEMPT_RT" ) != std::string::npos;
68+ }
5369 return has_realtime;
70+ #endif
5471}
5572
5673bool configure_sched_fifo (int priority)
You can’t perform that action at this time.
0 commit comments