summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/rfs
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-12-13 16:23:34 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-02-02 15:01:22 +0100
commit0940648f6fd85df7fe64a61c4eb3a041fe53f5a1 (patch)
tree9c6b9d4a047609a387266061e8b5d5074a29a086 /cpukit/include/rtems/rfs
parentdosfs: Use self-contained recursive mutex (diff)
downloadrtems-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.h25
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;
}