summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/include/rtems/rtems/messageimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/include/rtems/rtems/messageimpl.h')
-rw-r--r--cpukit/rtems/include/rtems/rtems/messageimpl.h21
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 *)