diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-21 06:32:16 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-22 09:25:09 +0200 |
commit | 84a539885335c629100a6a12b57ead54bbbc0165 (patch) | |
tree | ff8d0acd9624e3888dc7fc6df9003a98a19b9b3d /cpukit/score/include/rtems/score/corerwlockimpl.h | |
parent | score: Avoid Giant lock for barriers (diff) | |
download | rtems-84a539885335c629100a6a12b57ead54bbbc0165.tar.bz2 |
score: Avoid Giant lock for CORE rwlock
Update #2555.
Diffstat (limited to 'cpukit/score/include/rtems/score/corerwlockimpl.h')
-rw-r--r-- | cpukit/score/include/rtems/score/corerwlockimpl.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/cpukit/score/include/rtems/score/corerwlockimpl.h b/cpukit/score/include/rtems/score/corerwlockimpl.h index e727ad62c2..ed59d696b6 100644 --- a/cpukit/score/include/rtems/score/corerwlockimpl.h +++ b/cpukit/score/include/rtems/score/corerwlockimpl.h @@ -86,6 +86,22 @@ RTEMS_INLINE_ROUTINE void _CORE_RWLock_Destroy( _Thread_queue_Destroy( &the_rwlock->Wait_queue ); } +RTEMS_INLINE_ROUTINE void _CORE_RWLock_Acquire_critical( + CORE_RWLock_Control *the_rwlock, + ISR_lock_Context *lock_context +) +{ + _Thread_queue_Acquire_critical( &the_rwlock->Wait_queue, lock_context ); +} + +RTEMS_INLINE_ROUTINE void _CORE_RWLock_Release( + CORE_RWLock_Control *the_rwlock, + ISR_lock_Context *lock_context +) +{ + _Thread_queue_Release( &the_rwlock->Wait_queue, lock_context ); +} + /** * @brief Obtain RWLock for reading. * @@ -103,7 +119,8 @@ void _CORE_RWLock_Seize_for_reading( CORE_RWLock_Control *the_rwlock, Thread_Control *executing, bool wait, - Watchdog_Interval timeout + Watchdog_Interval timeout, + ISR_lock_Context *lock_context ); /** @@ -122,7 +139,8 @@ void _CORE_RWLock_Seize_for_writing( CORE_RWLock_Control *the_rwlock, Thread_Control *executing, bool wait, - Watchdog_Interval timeout + Watchdog_Interval timeout, + ISR_lock_Context *lock_context ); /** @@ -137,7 +155,7 @@ void _CORE_RWLock_Seize_for_writing( */ CORE_RWLock_Status _CORE_RWLock_Surrender( CORE_RWLock_Control *the_rwlock, - Thread_Control *executing + ISR_lock_Context *lock_context ); /** @} */ |