diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-08-13 16:32:09 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-08-14 11:10:44 +0200 |
commit | 4180a9bb043ee67669ea17c05e662ab9c92df7e3 (patch) | |
tree | c13a6e4a8edc353785e97f5ff3992ce3ba331311 /cpukit/libcsupport | |
parent | bsp: Fix CLOCK_DRIVER_USE_FAST_IDLE and CLOCK_DRIVER_ISRS_PER_TICK. (diff) | |
download | rtems-4180a9bb043ee67669ea17c05e662ab9c92df7e3.tar.bz2 |
filesystem: Add SMP support
Diffstat (limited to 'cpukit/libcsupport')
-rw-r--r-- | cpukit/libcsupport/include/rtems/libio_.h | 8 | ||||
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_location.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h index 1f7f654da4..55156c0fa8 100644 --- a/cpukit/libcsupport/include/rtems/libio_.h +++ b/cpukit/libcsupport/include/rtems/libio_.h @@ -249,12 +249,16 @@ static inline void rtems_filesystem_mt_unlock( void ) rtems_libio_unlock(); } +extern rtems_interrupt_lock rtems_filesystem_mt_entry_lock_control; + #define rtems_filesystem_mt_entry_declare_lock_context( ctx ) \ rtems_interrupt_level ctx -#define rtems_filesystem_mt_entry_lock( ctx ) rtems_interrupt_disable( ctx ) +#define rtems_filesystem_mt_entry_lock( ctx ) \ + rtems_interrupt_lock_acquire( &rtems_filesystem_mt_entry_lock_control, ctx ) -#define rtems_filesystem_mt_entry_unlock( ctx ) rtems_interrupt_enable( ctx ) +#define rtems_filesystem_mt_entry_unlock( ctx ) \ + rtems_interrupt_lock_release( &rtems_filesystem_mt_entry_lock_control, ctx ) static inline void rtems_filesystem_instance_lock( const rtems_filesystem_location_info_t *loc diff --git a/cpukit/libcsupport/src/sup_fs_location.c b/cpukit/libcsupport/src/sup_fs_location.c index dc4b665b0d..040f8c274e 100644 --- a/cpukit/libcsupport/src/sup_fs_location.c +++ b/cpukit/libcsupport/src/sup_fs_location.c @@ -28,6 +28,9 @@ #include <rtems/libio_.h> #include <rtems/score/threaddispatch.h> +rtems_interrupt_lock rtems_filesystem_mt_entry_lock_control = + RTEMS_INTERRUPT_LOCK_INITIALIZER; + static rtems_filesystem_global_location_t *deferred_released_global_locations; rtems_filesystem_location_info_t *rtems_filesystem_location_copy( |