diff options
Diffstat (limited to 'cpukit/rtems/src')
-rw-r--r-- | cpukit/rtems/src/barrierdelete.c | 10 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierrelease.c | 11 | ||||
-rw-r--r-- | cpukit/rtems/src/barrierwait.c | 11 | ||||
-rw-r--r-- | cpukit/rtems/src/msgmp.c | 12 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqbroadcast.c | 11 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqdelete.c | 13 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqflush.c | 6 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqgetnumberpending.c | 8 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqreceive.c | 8 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqsend.c | 13 | ||||
-rw-r--r-- | cpukit/rtems/src/msgqurgent.c | 13 | ||||
-rw-r--r-- | cpukit/rtems/src/semdelete.c | 30 | ||||
-rw-r--r-- | cpukit/rtems/src/semflush.c | 24 | ||||
-rw-r--r-- | cpukit/rtems/src/semobtain.c | 18 | ||||
-rw-r--r-- | cpukit/rtems/src/semrelease.c | 16 | ||||
-rw-r--r-- | cpukit/rtems/src/semsetpriority.c | 28 |
16 files changed, 119 insertions, 113 deletions
diff --git a/cpukit/rtems/src/barrierdelete.c b/cpukit/rtems/src/barrierdelete.c index 05d6a3f7d0..3d57908326 100644 --- a/cpukit/rtems/src/barrierdelete.c +++ b/cpukit/rtems/src/barrierdelete.c @@ -24,20 +24,20 @@ rtems_status_code rtems_barrier_delete( rtems_id id ) { - Barrier_Control *the_barrier; - ISR_lock_Context lock_context; + Barrier_Control *the_barrier; + Thread_queue_Context queue_context; _Objects_Allocator_lock(); - the_barrier = _Barrier_Get( id, &lock_context ); + the_barrier = _Barrier_Get( id, &queue_context ); if ( the_barrier == NULL ) { _Objects_Allocator_unlock(); return RTEMS_INVALID_ID; } - _CORE_barrier_Acquire_critical( &the_barrier->Barrier, &lock_context ); + _CORE_barrier_Acquire_critical( &the_barrier->Barrier, &queue_context ); _Objects_Close( &_Barrier_Information, &the_barrier->Object ); - _CORE_barrier_Flush( &the_barrier->Barrier, NULL, &lock_context ); + _CORE_barrier_Flush( &the_barrier->Barrier, &queue_context ); _Barrier_Free( the_barrier ); _Objects_Allocator_unlock(); return RTEMS_SUCCESSFUL; diff --git a/cpukit/rtems/src/barrierrelease.c b/cpukit/rtems/src/barrierrelease.c index 2c7d222c0d..2c7f72d303 100644 --- a/cpukit/rtems/src/barrierrelease.c +++ b/cpukit/rtems/src/barrierrelease.c @@ -25,24 +25,23 @@ rtems_status_code rtems_barrier_release( uint32_t *released ) { - Barrier_Control *the_barrier; - ISR_lock_Context lock_context; + Barrier_Control *the_barrier; + Thread_queue_Context queue_context; if ( released == NULL ) { return RTEMS_INVALID_ADDRESS; } - the_barrier = _Barrier_Get( id, &lock_context ); + the_barrier = _Barrier_Get( id, &queue_context ); if ( the_barrier == NULL ) { return RTEMS_INVALID_ID; } - _CORE_barrier_Acquire_critical( &the_barrier->Barrier, &lock_context ); + _CORE_barrier_Acquire_critical( &the_barrier->Barrier, &queue_context ); *released = _CORE_barrier_Surrender( &the_barrier->Barrier, - NULL, - &lock_context + &queue_context ); return RTEMS_SUCCESSFUL; } diff --git a/cpukit/rtems/src/barrierwait.c b/cpukit/rtems/src/barrierwait.c index 7f463aa217..6e133751aa 100644 --- a/cpukit/rtems/src/barrierwait.c +++ b/cpukit/rtems/src/barrierwait.c @@ -27,11 +27,11 @@ rtems_status_code rtems_barrier_wait( rtems_interval timeout ) { - Barrier_Control *the_barrier; - ISR_lock_Context lock_context; - Thread_Control *executing; + Barrier_Control *the_barrier; + Thread_queue_Context queue_context; + Thread_Control *executing; - the_barrier = _Barrier_Get( id, &lock_context ); + the_barrier = _Barrier_Get( id, &queue_context ); if ( the_barrier == NULL ) { return RTEMS_INVALID_ID; @@ -43,8 +43,7 @@ rtems_status_code rtems_barrier_wait( executing, true, timeout, - NULL, - &lock_context + &queue_context ); return _Barrier_Translate_core_barrier_return_code( executing->Wait.return_code diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c index c336ba48c1..d8077a71ec 100644 --- a/cpukit/rtems/src/msgmp.c +++ b/cpukit/rtems/src/msgmp.c @@ -576,17 +576,7 @@ void _Message_queue_MP_Send_extract_proxy ( ); } -/* - * _Message_queue_Core_message_queue_mp_support - * - * Input parameters: - * the_thread - the remote thread the message was submitted to - * id - id of the message queue - * - * Output parameters: NONE - */ - -void _Message_queue_Core_message_queue_mp_support ( +void _Message_queue_Core_message_queue_mp_support( Thread_Control *the_thread, Objects_Id id ) diff --git a/cpukit/rtems/src/msgqbroadcast.c b/cpukit/rtems/src/msgqbroadcast.c index 45d9097326..75f9d60e1b 100644 --- a/cpukit/rtems/src/msgqbroadcast.c +++ b/cpukit/rtems/src/msgqbroadcast.c @@ -28,7 +28,7 @@ rtems_status_code rtems_message_queue_broadcast( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; CORE_message_queue_Status status; if ( buffer == NULL ) { @@ -39,7 +39,11 @@ rtems_status_code rtems_message_queue_broadcast( return RTEMS_INVALID_ADDRESS; } - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( + id, + &queue_context, + _Message_queue_Core_message_queue_mp_support + ); if ( the_message_queue == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -53,9 +57,8 @@ rtems_status_code rtems_message_queue_broadcast( &the_message_queue->message_queue, buffer, size, - _Message_queue_Core_message_queue_mp_support, count, - &lock_context + &queue_context ); return _Message_queue_Translate_core_message_queue_return_code( status ); } diff --git a/cpukit/rtems/src/msgqdelete.c b/cpukit/rtems/src/msgqdelete.c index c39cfea5a7..94175e6993 100644 --- a/cpukit/rtems/src/msgqdelete.c +++ b/cpukit/rtems/src/msgqdelete.c @@ -26,10 +26,14 @@ rtems_status_code rtems_message_queue_delete( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; _Objects_Allocator_lock(); - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( + id, + &queue_context, + _Message_queue_MP_Send_object_was_deleted + ); if ( the_message_queue == NULL ) { _Objects_Allocator_unlock(); @@ -45,15 +49,14 @@ rtems_status_code rtems_message_queue_delete( _CORE_message_queue_Acquire_critical( &the_message_queue->message_queue, - &lock_context + &queue_context ); _Objects_Close( &_Message_queue_Information, &the_message_queue->Object ); _CORE_message_queue_Close( &the_message_queue->message_queue, - _Message_queue_MP_Send_object_was_deleted, - &lock_context + &queue_context ); #if defined(RTEMS_MULTIPROCESSING) diff --git a/cpukit/rtems/src/msgqflush.c b/cpukit/rtems/src/msgqflush.c index baca1767f6..b4419d173d 100644 --- a/cpukit/rtems/src/msgqflush.c +++ b/cpukit/rtems/src/msgqflush.c @@ -26,13 +26,13 @@ rtems_status_code rtems_message_queue_flush( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; if ( count == NULL ) { return RTEMS_INVALID_ADDRESS; } - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( id, &queue_context, NULL ); if ( the_message_queue == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -44,7 +44,7 @@ rtems_status_code rtems_message_queue_flush( *count = _CORE_message_queue_Flush( &the_message_queue->message_queue, - &lock_context + &queue_context ); return RTEMS_SUCCESSFUL; } diff --git a/cpukit/rtems/src/msgqgetnumberpending.c b/cpukit/rtems/src/msgqgetnumberpending.c index f655c0bba4..d2f7820553 100644 --- a/cpukit/rtems/src/msgqgetnumberpending.c +++ b/cpukit/rtems/src/msgqgetnumberpending.c @@ -26,13 +26,13 @@ rtems_status_code rtems_message_queue_get_number_pending( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; if ( count == NULL ) { return RTEMS_INVALID_ADDRESS; } - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( id, &queue_context, NULL ); if ( the_message_queue == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -44,12 +44,12 @@ rtems_status_code rtems_message_queue_get_number_pending( _CORE_message_queue_Acquire_critical( &the_message_queue->message_queue, - &lock_context + &queue_context ); *count = the_message_queue->message_queue.number_of_pending_messages; _CORE_message_queue_Release( &the_message_queue->message_queue, - &lock_context + &queue_context ); return RTEMS_SUCCESSFUL; } diff --git a/cpukit/rtems/src/msgqreceive.c b/cpukit/rtems/src/msgqreceive.c index dada8dff81..6ed3d25674 100644 --- a/cpukit/rtems/src/msgqreceive.c +++ b/cpukit/rtems/src/msgqreceive.c @@ -32,7 +32,7 @@ rtems_status_code rtems_message_queue_receive( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; Thread_Control *executing; if ( buffer == NULL ) { @@ -43,7 +43,7 @@ rtems_status_code rtems_message_queue_receive( return RTEMS_INVALID_ADDRESS; } - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( id, &queue_context, NULL ); if ( the_message_queue == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -55,7 +55,7 @@ rtems_status_code rtems_message_queue_receive( _CORE_message_queue_Acquire_critical( &the_message_queue->message_queue, - &lock_context + &queue_context ); executing = _Thread_Executing; @@ -66,7 +66,7 @@ rtems_status_code rtems_message_queue_receive( size, !_Options_Is_no_wait( option_set ), timeout, - &lock_context + &queue_context ); return _Message_queue_Translate_core_message_queue_return_code( executing->Wait.return_code diff --git a/cpukit/rtems/src/msgqsend.c b/cpukit/rtems/src/msgqsend.c index c306deb18b..c5bde9d348 100644 --- a/cpukit/rtems/src/msgqsend.c +++ b/cpukit/rtems/src/msgqsend.c @@ -27,14 +27,18 @@ rtems_status_code rtems_message_queue_send( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; CORE_message_queue_Status status; if ( buffer == NULL ) { return RTEMS_INVALID_ADDRESS; } - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( + id, + &queue_context, + _Message_queue_Core_message_queue_mp_support + ); if ( the_message_queue == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -46,16 +50,15 @@ rtems_status_code rtems_message_queue_send( _CORE_message_queue_Acquire_critical( &the_message_queue->message_queue, - &lock_context + &queue_context ); status = _CORE_message_queue_Send( &the_message_queue->message_queue, buffer, size, - _Message_queue_Core_message_queue_mp_support, false, /* sender does not block */ 0, /* no timeout */ - &lock_context + &queue_context ); /* diff --git a/cpukit/rtems/src/msgqurgent.c b/cpukit/rtems/src/msgqurgent.c index 56522a1c10..add5f09bb2 100644 --- a/cpukit/rtems/src/msgqurgent.c +++ b/cpukit/rtems/src/msgqurgent.c @@ -27,14 +27,18 @@ rtems_status_code rtems_message_queue_urgent( ) { Message_queue_Control *the_message_queue; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; CORE_message_queue_Status status; if ( buffer == NULL ) { return RTEMS_INVALID_ADDRESS; } - the_message_queue = _Message_queue_Get( id, &lock_context ); + the_message_queue = _Message_queue_Get( + id, + &queue_context, + _Message_queue_Core_message_queue_mp_support + ); if ( the_message_queue == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -46,16 +50,15 @@ rtems_status_code rtems_message_queue_urgent( _CORE_message_queue_Acquire_critical( &the_message_queue->message_queue, - &lock_context + &queue_context ); status = _CORE_message_queue_Urgent( &the_message_queue->message_queue, buffer, size, - _Message_queue_Core_message_queue_mp_support, false, /* sender does not block */ 0, /* no timeout */ - &lock_context + &queue_context ); /* diff --git a/cpukit/rtems/src/semdelete.c b/cpukit/rtems/src/semdelete.c index cf2283830c..023a57cf23 100644 --- a/cpukit/rtems/src/semdelete.c +++ b/cpukit/rtems/src/semdelete.c @@ -25,12 +25,16 @@ rtems_status_code rtems_semaphore_delete( rtems_id id ) { - Semaphore_Control *the_semaphore; - ISR_lock_Context lock_context; - rtems_attribute attribute_set; + Semaphore_Control *the_semaphore; + Thread_queue_Context queue_context; + rtems_attribute attribute_set; _Objects_Allocator_lock(); - the_semaphore = _Semaphore_Get( id, &lock_context ); + the_semaphore = _Semaphore_Get( + id, + &queue_context, + _Semaphore_MP_Send_object_was_deleted + ); if ( the_semaphore == NULL ) { _Objects_Allocator_unlock(); @@ -52,13 +56,13 @@ rtems_status_code rtems_semaphore_delete( _MRSP_Acquire_critical( &the_semaphore->Core_control.mrsp, - &lock_context + &queue_context ); mrsp_status = _MRSP_Can_destroy( &the_semaphore->Core_control.mrsp ); if ( mrsp_status != MRSP_SUCCESSFUL ) { _MRSP_Release( &the_semaphore->Core_control.mrsp, - &lock_context + &queue_context ); _Objects_Allocator_unlock(); return _Semaphore_Translate_MRSP_status_code( mrsp_status ); @@ -68,7 +72,7 @@ rtems_status_code rtems_semaphore_delete( if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) { _CORE_mutex_Acquire_critical( &the_semaphore->Core_control.mutex, - &lock_context + &queue_context ); if ( @@ -77,7 +81,7 @@ rtems_status_code rtems_semaphore_delete( ) { _CORE_mutex_Release( &the_semaphore->Core_control.mutex, - &lock_context + &queue_context ); _Objects_Allocator_unlock(); return RTEMS_RESOURCE_IN_USE; @@ -85,7 +89,7 @@ rtems_status_code rtems_semaphore_delete( } else { _CORE_semaphore_Acquire_critical( &the_semaphore->Core_control.semaphore, - &lock_context + &queue_context ); } @@ -93,22 +97,20 @@ rtems_status_code rtems_semaphore_delete( #if defined(RTEMS_SMP) if ( _Attributes_Is_multiprocessor_resource_sharing( attribute_set ) ) { - _MRSP_Destroy( &the_semaphore->Core_control.mrsp, &lock_context ); + _MRSP_Destroy( &the_semaphore->Core_control.mrsp, &queue_context ); } else #endif if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) { _CORE_mutex_Flush( &the_semaphore->Core_control.mutex, _CORE_mutex_Was_deleted, - _Semaphore_MP_Send_object_was_deleted, - &lock_context + &queue_context ); _CORE_mutex_Destroy( &the_semaphore->Core_control.mutex ); } else { _CORE_semaphore_Destroy( &the_semaphore->Core_control.semaphore, - _Semaphore_MP_Send_object_was_deleted, - &lock_context + &queue_context ); } diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c index 73e9ad06cb..b18de6d4a7 100644 --- a/cpukit/rtems/src/semflush.c +++ b/cpukit/rtems/src/semflush.c @@ -23,11 +23,15 @@ rtems_status_code rtems_semaphore_flush( rtems_id id ) { - Semaphore_Control *the_semaphore; - ISR_lock_Context lock_context; - rtems_attribute attribute_set; + Semaphore_Control *the_semaphore; + Thread_queue_Context queue_context; + rtems_attribute attribute_set; - the_semaphore = _Semaphore_Get( id, &lock_context ); + the_semaphore = _Semaphore_Get( + id, + &queue_context, + _Semaphore_MP_Send_object_was_deleted + ); if ( the_semaphore == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -43,30 +47,28 @@ rtems_status_code rtems_semaphore_flush( rtems_id id ) #if defined(RTEMS_SMP) if ( _Attributes_Is_multiprocessor_resource_sharing( attribute_set ) ) { - _ISR_lock_ISR_enable( &lock_context ); + _ISR_lock_ISR_enable( &queue_context.Lock_context ); return RTEMS_NOT_DEFINED; } else #endif if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) { _CORE_mutex_Acquire_critical( &the_semaphore->Core_control.mutex, - &lock_context + &queue_context ); _CORE_mutex_Flush( &the_semaphore->Core_control.mutex, _CORE_mutex_Unsatisfied_nowait, - _Semaphore_MP_Send_object_was_deleted, - &lock_context + &queue_context ); } else { _CORE_semaphore_Acquire_critical( &the_semaphore->Core_control.semaphore, - &lock_context + &queue_context ); _CORE_semaphore_Flush( &the_semaphore->Core_control.semaphore, - _Semaphore_MP_Send_object_was_deleted, - &lock_context + &queue_context ); } return RTEMS_SUCCESSFUL; diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c index 3cf780aa28..6d994f4707 100644 --- a/cpukit/rtems/src/semobtain.c +++ b/cpukit/rtems/src/semobtain.c @@ -38,13 +38,13 @@ rtems_status_code rtems_semaphore_obtain( rtems_interval timeout ) { - Semaphore_Control *the_semaphore; - ISR_lock_Context lock_context; - Thread_Control *executing; - rtems_attribute attribute_set; - bool wait; + Semaphore_Control *the_semaphore; + Thread_queue_Context queue_context; + Thread_Control *executing; + rtems_attribute attribute_set; + bool wait; - the_semaphore = _Semaphore_Get( id, &lock_context ); + the_semaphore = _Semaphore_Get( id, &queue_context, NULL ); if ( the_semaphore == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -66,7 +66,7 @@ rtems_status_code rtems_semaphore_obtain( executing, wait, timeout, - &lock_context + &queue_context ); return _Semaphore_Translate_MRSP_status_code( mrsp_status ); } else @@ -77,7 +77,7 @@ rtems_status_code rtems_semaphore_obtain( executing, wait, timeout, - &lock_context + &queue_context ); return _Semaphore_Translate_core_mutex_return_code( executing->Wait.return_code @@ -90,7 +90,7 @@ rtems_status_code rtems_semaphore_obtain( executing, wait, timeout, - &lock_context + &queue_context ); return _Semaphore_Translate_core_semaphore_return_code( executing->Wait.return_code diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c index c39455c167..197e4d81b0 100644 --- a/cpukit/rtems/src/semrelease.c +++ b/cpukit/rtems/src/semrelease.c @@ -30,9 +30,13 @@ rtems_status_code rtems_semaphore_release( rtems_id id ) CORE_mutex_Status mutex_status; CORE_semaphore_Status semaphore_status; rtems_attribute attribute_set; - ISR_lock_Context lock_context; + Thread_queue_Context queue_context; - the_semaphore = _Semaphore_Get( id, &lock_context ); + the_semaphore = _Semaphore_Get( + id, + &queue_context, + _Semaphore_Core_mutex_mp_support + ); if ( the_semaphore == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -50,7 +54,7 @@ rtems_status_code rtems_semaphore_release( rtems_id id ) mrsp_status = _MRSP_Surrender( &the_semaphore->Core_control.mrsp, _Thread_Executing, - &lock_context + &queue_context ); return _Semaphore_Translate_MRSP_status_code( mrsp_status ); } else @@ -58,15 +62,13 @@ rtems_status_code rtems_semaphore_release( rtems_id id ) if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) { mutex_status = _CORE_mutex_Surrender( &the_semaphore->Core_control.mutex, - _Semaphore_Core_mutex_mp_support, - &lock_context + &queue_context ); return _Semaphore_Translate_core_mutex_return_code( mutex_status ); } else { semaphore_status = _CORE_semaphore_Surrender( &the_semaphore->Core_control.semaphore, - _Semaphore_Core_mutex_mp_support, - &lock_context + &queue_context ); return _Semaphore_Translate_core_semaphore_return_code( semaphore_status ); } diff --git a/cpukit/rtems/src/semsetpriority.c b/cpukit/rtems/src/semsetpriority.c index 18fb66ab7f..4deee3d189 100644 --- a/cpukit/rtems/src/semsetpriority.c +++ b/cpukit/rtems/src/semsetpriority.c @@ -22,11 +22,11 @@ #include <rtems/score/schedulerimpl.h> static rtems_status_code _Semaphore_Set_priority( - Semaphore_Control *the_semaphore, - rtems_id scheduler_id, - rtems_task_priority new_priority, - rtems_task_priority *old_priority_p, - ISR_lock_Context *lock_context + Semaphore_Control *the_semaphore, + rtems_id scheduler_id, + rtems_task_priority new_priority, + rtems_task_priority *old_priority_p, + Thread_queue_Context *queue_context ) { rtems_status_code sc; @@ -40,7 +40,7 @@ static rtems_status_code _Semaphore_Set_priority( MRSP_Control *mrsp = &the_semaphore->Core_control.mrsp; uint32_t scheduler_index = _Scheduler_Get_index_by_id( scheduler_id ); - _MRSP_Acquire_critical( mrsp, lock_context ); + _MRSP_Acquire_critical( mrsp, queue_context ); old_priority = _MRSP_Get_ceiling_priority( mrsp, scheduler_index ); @@ -48,7 +48,7 @@ static rtems_status_code _Semaphore_Set_priority( _MRSP_Set_ceiling_priority( mrsp, scheduler_index, new_priority ); } - _MRSP_Release( mrsp, lock_context ); + _MRSP_Release( mrsp, queue_context ); sc = RTEMS_SUCCESSFUL; } else @@ -56,7 +56,7 @@ static rtems_status_code _Semaphore_Set_priority( if ( _Attributes_Is_priority_ceiling( attribute_set ) ) { CORE_mutex_Control *mutex = &the_semaphore->Core_control.mutex; - _CORE_mutex_Acquire_critical( mutex, lock_context ); + _CORE_mutex_Acquire_critical( mutex, queue_context ); old_priority = mutex->Attributes.priority_ceiling; @@ -64,11 +64,11 @@ static rtems_status_code _Semaphore_Set_priority( mutex->Attributes.priority_ceiling = new_priority; } - _CORE_mutex_Release( mutex, lock_context ); + _CORE_mutex_Release( mutex, queue_context ); sc = RTEMS_SUCCESSFUL; } else { - _ISR_lock_ISR_enable( lock_context ); + _ISR_lock_ISR_enable( &queue_context->Lock_context ); old_priority = 0; @@ -87,8 +87,8 @@ rtems_status_code rtems_semaphore_set_priority( rtems_task_priority *old_priority ) { - Semaphore_Control *the_semaphore; - ISR_lock_Context lock_context; + Semaphore_Control *the_semaphore; + Thread_queue_Context queue_context; if ( new_priority != RTEMS_CURRENT_PRIORITY && !_RTEMS_tasks_Priority_is_valid( new_priority ) ) { @@ -103,7 +103,7 @@ rtems_status_code rtems_semaphore_set_priority( return RTEMS_INVALID_ID; } - the_semaphore = _Semaphore_Get( semaphore_id, &lock_context ); + the_semaphore = _Semaphore_Get( semaphore_id, &queue_context, NULL ); if ( the_semaphore == NULL ) { #if defined(RTEMS_MULTIPROCESSING) @@ -120,6 +120,6 @@ rtems_status_code rtems_semaphore_set_priority( scheduler_id, new_priority, old_priority, - &lock_context + &queue_context ); } |