diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-12-13 16:23:34 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-02-02 15:01:22 +0100 |
commit | 0940648f6fd85df7fe64a61c4eb3a041fe53f5a1 (patch) | |
tree | 9c6b9d4a047609a387266061e8b5d5074a29a086 /cpukit/include/rtems/rfs | |
parent | dosfs: Use self-contained recursive mutex (diff) | |
download | rtems-0940648f6fd85df7fe64a61c4eb3a041fe53f5a1.tar.bz2 |
RFS: Use self-contained recursive mutex
Update #2843.
Diffstat (limited to 'cpukit/include/rtems/rfs')
-rw-r--r-- | cpukit/include/rtems/rfs/rtems-rfs-mutex.h | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/cpukit/include/rtems/rfs/rtems-rfs-mutex.h b/cpukit/include/rtems/rfs/rtems-rfs-mutex.h index 606fd53233..57b58e507e 100644 --- a/cpukit/include/rtems/rfs/rtems-rfs-mutex.h +++ b/cpukit/include/rtems/rfs/rtems-rfs-mutex.h @@ -29,13 +29,14 @@ #if __rtems__ #include <rtems.h> #include <rtems/error.h> +#include <rtems/thread.h> #endif /** * RFS Mutex type. */ #if __rtems__ -typedef rtems_id rtems_rfs_mutex; +typedef rtems_recursive_mutex rtems_rfs_mutex; #else typedef uint32_t rtems_rfs_mutex; /* place holder */ #endif @@ -73,16 +74,7 @@ static inline int rtems_rfs_mutex_lock (rtems_rfs_mutex* mutex) { #if __rtems__ - rtems_status_code sc = rtems_semaphore_obtain (*mutex, RTEMS_WAIT, 0); - if (sc != RTEMS_SUCCESSFUL) - { -#if RTEMS_RFS_TRACE - if (rtems_rfs_trace (RTEMS_RFS_TRACE_MUTEX)) - printf ("rtems-rfs: mutex: obtain failed: %s\n", - rtems_status_text (sc)); -#endif - return EIO; - } + rtems_recursive_mutex_lock(mutex); #endif return 0; } @@ -99,16 +91,7 @@ static inline int rtems_rfs_mutex_unlock (rtems_rfs_mutex* mutex) { #if __rtems__ - rtems_status_code sc = rtems_semaphore_release (*mutex); - if (sc != RTEMS_SUCCESSFUL) - { -#if RTEMS_RFS_TRACE - if (rtems_rfs_trace (RTEMS_RFS_TRACE_MUTEX)) - printf ("rtems-rfs: mutex: release failed: %s\n", - rtems_status_text (sc)); -#endif - return EIO; - } + rtems_recursive_mutex_unlock(mutex); #endif return 0; } |