diff options
Diffstat (limited to '')
-rw-r--r-- | cpukit/posix/include/rtems/posix/barrierimpl.h | 7 | ||||
-rw-r--r-- | cpukit/posix/include/rtems/posix/condimpl.h | 15 | ||||
-rw-r--r-- | cpukit/posix/include/rtems/posix/mqueueimpl.h | 14 | ||||
-rw-r--r-- | cpukit/posix/include/rtems/posix/muteximpl.h | 4 | ||||
-rw-r--r-- | cpukit/posix/include/rtems/posix/posixapi.h | 8 | ||||
-rw-r--r-- | cpukit/posix/include/rtems/posix/rwlockimpl.h | 4 | ||||
-rw-r--r-- | cpukit/posix/include/rtems/posix/semaphoreimpl.h | 9 |
7 files changed, 36 insertions, 25 deletions
diff --git a/cpukit/posix/include/rtems/posix/barrierimpl.h b/cpukit/posix/include/rtems/posix/barrierimpl.h index 5173531f37..e04f1354ae 100644 --- a/cpukit/posix/include/rtems/posix/barrierimpl.h +++ b/cpukit/posix/include/rtems/posix/barrierimpl.h @@ -77,14 +77,15 @@ RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free ( _Objects_Free( &_POSIX_Barrier_Information, &the_barrier->Object ); } -RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get ( +RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get( const pthread_barrier_t *barrier, - ISR_lock_Context *lock_context + Thread_queue_Context *queue_context ) { + _Thread_queue_Context_initialize( queue_context, NULL ); return (POSIX_Barrier_Control *) _Objects_Get( (Objects_Id) *barrier, - lock_context, + &queue_context->Lock_context, &_POSIX_Barrier_Information ); } diff --git a/cpukit/posix/include/rtems/posix/condimpl.h b/cpukit/posix/include/rtems/posix/condimpl.h index b17886948e..736f06be7b 100644 --- a/cpukit/posix/include/rtems/posix/condimpl.h +++ b/cpukit/posix/include/rtems/posix/condimpl.h @@ -63,18 +63,21 @@ RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Destroy( RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Acquire_critical( POSIX_Condition_variables_Control *the_cond, - ISR_lock_Context *lock_context + Thread_queue_Context *queue_context ) { - _Thread_queue_Acquire_critical( &the_cond->Wait_queue, lock_context ); + _Thread_queue_Acquire_critical( + &the_cond->Wait_queue, + &queue_context->Lock_context + ); } RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Release( POSIX_Condition_variables_Control *the_cond, - ISR_lock_Context *lock_context + Thread_queue_Context *queue_context ) { - _Thread_queue_Release( &the_cond->Wait_queue, lock_context ); + _Thread_queue_Release( &the_cond->Wait_queue, &queue_context->Lock_context ); } /** @@ -107,8 +110,8 @@ RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free ( } POSIX_Condition_variables_Control *_POSIX_Condition_variables_Get( - pthread_cond_t *cond, - ISR_lock_Context *lock_context + pthread_cond_t *cond, + Thread_queue_Context *queue_context ); /** diff --git a/cpukit/posix/include/rtems/posix/mqueueimpl.h b/cpukit/posix/include/rtems/posix/mqueueimpl.h index 3185970035..2317358f64 100644 --- a/cpukit/posix/include/rtems/posix/mqueueimpl.h +++ b/cpukit/posix/include/rtems/posix/mqueueimpl.h @@ -43,7 +43,7 @@ extern Objects_Information _POSIX_Message_queue_Information; */ void _POSIX_Message_queue_Delete( POSIX_Message_queue_Control *the_mq, - ISR_lock_Context *lock_context + Thread_queue_Context *queue_context ); /*@ @@ -107,12 +107,16 @@ RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free( RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control *_POSIX_Message_queue_Get( - Objects_Id id, - ISR_lock_Context *lock_context + Objects_Id id, + Thread_queue_Context *queue_context ) { - return (POSIX_Message_queue_Control *) - _Objects_Get( id, lock_context, &_POSIX_Message_queue_Information ); + _Thread_queue_Context_initialize( queue_context, NULL ); + return (POSIX_Message_queue_Control *) _Objects_Get( + id, + &queue_context->Lock_context, + &_POSIX_Message_queue_Information + ); } /* diff --git a/cpukit/posix/include/rtems/posix/muteximpl.h b/cpukit/posix/include/rtems/posix/muteximpl.h index 7627d3d1f7..4c7852b2c5 100644 --- a/cpukit/posix/include/rtems/posix/muteximpl.h +++ b/cpukit/posix/include/rtems/posix/muteximpl.h @@ -127,8 +127,8 @@ RTEMS_INLINE_ROUTINE int _POSIX_Mutex_Translate_core_mutex_return_code( * @note: This version of the method uses an interrupt critical section. */ POSIX_Mutex_Control *_POSIX_Mutex_Get( - pthread_mutex_t *mutex, - ISR_lock_Context *lock_context + pthread_mutex_t *mutex, + Thread_queue_Context *queue_context ); RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Get_no_protection( diff --git a/cpukit/posix/include/rtems/posix/posixapi.h b/cpukit/posix/include/rtems/posix/posixapi.h index a16b6ad54b..a5afe92872 100644 --- a/cpukit/posix/include/rtems/posix/posixapi.h +++ b/cpukit/posix/include/rtems/posix/posixapi.h @@ -71,7 +71,7 @@ RTEMS_INLINE_ROUTINE int _POSIX_Get_by_name_error( #define _POSIX_Get_object_body( \ type, \ id, \ - lock_context, \ + queue_context, \ info, \ initializer, \ init \ @@ -80,14 +80,16 @@ RTEMS_INLINE_ROUTINE int _POSIX_Get_by_name_error( if ( id == NULL ) { \ return NULL; \ } \ - the_object = _Objects_Get( (Objects_Id) *id, lock_context, info ); \ + the_object = \ + _Objects_Get( (Objects_Id) *id, &queue_context->Lock_context, info ); \ if ( the_object == NULL ) { \ _Once_Lock(); \ if ( *id == initializer ) { \ init( id, NULL ); \ } \ _Once_Unlock(); \ - the_object = _Objects_Get( (Objects_Id) *id, lock_context, info ); \ + the_object = \ + _Objects_Get( (Objects_Id) *id, &queue_context->Lock_context, info ); \ } \ return (type *) the_object diff --git a/cpukit/posix/include/rtems/posix/rwlockimpl.h b/cpukit/posix/include/rtems/posix/rwlockimpl.h index 6f3088ebd4..4ab9395489 100644 --- a/cpukit/posix/include/rtems/posix/rwlockimpl.h +++ b/cpukit/posix/include/rtems/posix/rwlockimpl.h @@ -87,8 +87,8 @@ RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free ( } POSIX_RWLock_Control *_POSIX_RWLock_Get( - pthread_rwlock_t *rwlock, - ISR_lock_Context *lock_context + pthread_rwlock_t *rwlock, + Thread_queue_Context *queue_context ); #ifdef __cplusplus diff --git a/cpukit/posix/include/rtems/posix/semaphoreimpl.h b/cpukit/posix/include/rtems/posix/semaphoreimpl.h index 402329a882..10d7cee28b 100644 --- a/cpukit/posix/include/rtems/posix/semaphoreimpl.h +++ b/cpukit/posix/include/rtems/posix/semaphoreimpl.h @@ -61,13 +61,14 @@ RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free ( } RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get( - const sem_t *id, - ISR_lock_Context *lock_context + const sem_t *id, + Thread_queue_Context *queue_context ) { + _Thread_queue_Context_initialize( queue_context, NULL ); return (POSIX_Semaphore_Control *) _Objects_Get( (Objects_Id) *id, - lock_context, + &queue_context->Lock_context, &_POSIX_Semaphore_Information ); } @@ -93,7 +94,7 @@ int _POSIX_Semaphore_Create_support( */ void _POSIX_Semaphore_Delete( POSIX_Semaphore_Control *the_semaphore, - ISR_lock_Context *lock_context + Thread_queue_Context *queue_context ); /** |