diff options
Diffstat (limited to 'cpukit/rtems/include/rtems/rtems/messageimpl.h')
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/messageimpl.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/cpukit/rtems/include/rtems/rtems/messageimpl.h b/cpukit/rtems/include/rtems/rtems/messageimpl.h index 199af1cacb..d6217f171e 100644 --- a/cpukit/rtems/include/rtems/rtems/messageimpl.h +++ b/cpukit/rtems/include/rtems/rtems/messageimpl.h @@ -101,18 +101,31 @@ RTEMS_INLINE_ROUTINE void _Message_queue_Free ( _Objects_Free( &_Message_queue_Information, &the_message_queue->Object ); } -RTEMS_INLINE_ROUTINE Message_queue_Control * _Message_queue_Get( - Objects_Id id, - ISR_lock_Context *lock_context +RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Do_get( + Objects_Id id, + Thread_queue_Context *queue_context +#if defined(RTEMS_MULTIPROCESSING) + , + Thread_queue_MP_callout mp_callout +#endif ) { + _Thread_queue_Context_initialize( queue_context, mp_callout ); return (Message_queue_Control *) _Objects_Get( id, - lock_context, + &queue_context->Lock_context, &_Message_queue_Information ); } +#if defined(RTEMS_MULTIPROCESSING) + #define _Message_queue_Get( id, queue_context, mp_callout ) \ + _Message_queue_Do_get( id, queue_context, mp_callout ) +#else + #define _Message_queue_Get( id, queue_context, mp_callout ) \ + _Message_queue_Do_get( id, queue_context ) +#endif + RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Allocate( void ) { return (Message_queue_Control *) |