From 5a598ac99b0de720a04afc5e2ac6764117589b90 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 27 May 2016 08:02:03 +0200 Subject: score: Add CORE mutex variants Add CORE_recursive_mutex_Control and CORE_ceiling_mutex_Control to avoid the run-time evaluation of attributes to figure out how a particular mutex methods should behave. Start with the no protocol variants. This eliminates the CORE_MUTEX_DISCIPLINES_FIFO and CORE_MUTEX_DISCIPLINES_PRIORITY disciplines. --- cpukit/rtems/src/semrelease.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'cpukit/rtems/src/semrelease.c') diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c index 3e13334e87..7cd92cfe0d 100644 --- a/cpukit/rtems/src/semrelease.c +++ b/cpukit/rtems/src/semrelease.c @@ -57,10 +57,18 @@ rtems_status_code rtems_semaphore_release( rtems_id id ) #endif case SEMAPHORE_VARIANT_MUTEX: status = _CORE_mutex_Surrender( - &the_semaphore->Core_control.mutex, + &the_semaphore->Core_control.Mutex.Recursive.Mutex, &queue_context ); break; + case SEMAPHORE_VARIANT_MUTEX_NO_PROTOCOL: + _CORE_recursive_mutex_Surrender_no_protocol_classic( + &the_semaphore->Core_control.Mutex.Recursive, + _Semaphore_Get_operations( the_semaphore ), + &queue_context + ); + status = STATUS_SUCCESSFUL; + break; case SEMAPHORE_VARIANT_SIMPLE_BINARY: status = _CORE_semaphore_Surrender( &the_semaphore->Core_control.semaphore, -- cgit v1.2.3