always use rt_mutex instead of semaphore for mutual exclusion on kernels >= 2.6.24 (removed --enable-mutex build option)
authorMartin Troxler <ch1010277@ch10pc446>
Thu, 06 Jan 2011 13:11:21 +0100
changeset 2035 72a4e043e67d
parent 2034 ca03a6737cb7
child 2036 7fbc7bb7b95a
always use rt_mutex instead of semaphore for mutual exclusion on kernels >= 2.6.24 (removed --enable-mutex build option)
configure.ac
master/globals.h
--- a/configure.ac	Thu Jan 06 12:47:20 2011 +0100
+++ b/configure.ac	Thu Jan 06 13:11:21 2011 +0100
@@ -536,30 +536,6 @@
     AC_DEFINE([EC_REGALIAS], [1], [Read alias adresses from register])
 fi
 
-#------------------------------------------------------------------------------
-# use mutexes instead of semaphores
-#------------------------------------------------------------------------------
-
-AC_ARG_ENABLE([mutex],
-    AS_HELP_STRING([--enable-mutex],
-                   [Use mutex instead of semaphores for mutual exclusion (default: no)]),
-    [
-        case "${enableval}" in
-            yes) mutex=1
-                ;;
-            no) mutex=0
-                ;;
-            *) AC_MSG_ERROR([Invalid value for --enable-mutex])
-                ;;
-        esac
-    ],
-    [mutex=0]
-)
-
-if test "x${mutex}" = "x1"; then
-    AC_DEFINE([EC_USE_MUTEX], [1], [Use mutex for mutual exclusion])
-fi
-
 
 #------------------------------------------------------------------------------
 # Command-line tool
--- a/master/globals.h	Thu Jan 06 12:47:20 2011 +0100
+++ b/master/globals.h	Thu Jan 06 13:11:21 2011 +0100
@@ -40,9 +40,10 @@
 #include "../include/ecrt.h"
 
 #ifdef __KERNEL__
-#ifdef EC_USE_MUTEX
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
 #include <linux/rtmutex.h>
-#endif  // EC_USE_MUTEX
+#endif  // KERNEL_VERSION(2,6,24)
 #endif // __KERNEL__
 
 /******************************************************************************
@@ -318,7 +319,7 @@
 /** Mutual exclusion helpers.
  *
  */
-#ifdef EC_USE_MUTEX
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
 #define ec_mutex_t rt_mutex
 static inline void ec_mutex_init(struct ec_mutex_t *mutex)
 {
@@ -340,7 +341,7 @@
 {
     rt_mutex_unlock(mutex);
 }
-#else   // EC_USE_MUTEX
+#else   // < KERNEL_VERSION(2,6,24)
 #define ec_mutex_t semaphore
 static inline void ec_mutex_init(struct ec_mutex_t *sem)
 {
@@ -364,7 +365,7 @@
     up(sem);
 }
 
-#endif // EC_USE_MUTEX
+#endif // KERNEL_VERSION(2,6,24)
 #endif // __KERNEL__
 
 #endif