summaryrefslogtreecommitdiffstats
path: root/c/src/exec/rtems/inline/rtems/rtems/message.inl
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/rtems/inline/rtems/rtems/message.inl')
-rw-r--r--c/src/exec/rtems/inline/rtems/rtems/message.inl160
1 files changed, 160 insertions, 0 deletions
diff --git a/c/src/exec/rtems/inline/rtems/rtems/message.inl b/c/src/exec/rtems/inline/rtems/rtems/message.inl
new file mode 100644
index 0000000000..ee8d5f6cb1
--- /dev/null
+++ b/c/src/exec/rtems/inline/rtems/rtems/message.inl
@@ -0,0 +1,160 @@
+/* message.inl
+ *
+ * This include file contains the static inline implementation of all
+ * inlined routines in the Message Manager.
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#ifndef __MESSAGE_QUEUE_inl
+#define __MESSAGE_QUEUE_inl
+
+/*PAGE
+ *
+ * _Message_queue_Copy_buffer
+ *
+ */
+
+STATIC INLINE void _Message_queue_Copy_buffer (
+ Message_queue_Buffer *source,
+ Message_queue_Buffer *destination
+)
+{
+ *destination = *source;
+}
+
+/*PAGE
+ *
+ * _Message_queue_Allocate_message_buffer
+ *
+ */
+
+STATIC INLINE Message_queue_Buffer_control *
+ _Message_queue_Allocate_message_buffer ( void )
+{
+ return (Message_queue_Buffer_control *)
+ _Chain_Get( &_Message_queue_Inactive_messages );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Free_message_buffer
+ *
+ */
+
+STATIC INLINE void _Message_queue_Free_message_buffer (
+ Message_queue_Buffer_control *the_message
+)
+{
+ _Chain_Append( &_Message_queue_Inactive_messages, &the_message->Node );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Get_pending_message
+ *
+ */
+
+STATIC INLINE
+ Message_queue_Buffer_control *_Message_queue_Get_pending_message (
+ Message_queue_Control *the_message_queue
+)
+{
+ return (Message_queue_Buffer_control *)
+ _Chain_Get_unprotected( &the_message_queue->Pending_messages );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Append
+ *
+ */
+
+STATIC INLINE void _Message_queue_Append (
+ Message_queue_Control *the_message_queue,
+ Message_queue_Buffer_control *the_message
+)
+{
+ _Chain_Append( &the_message_queue->Pending_messages, &the_message->Node );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Prepend
+ *
+ */
+
+STATIC INLINE void _Message_queue_Prepend (
+ Message_queue_Control *the_message_queue,
+ Message_queue_Buffer_control *the_message
+)
+{
+ _Chain_Prepend(
+ &the_message_queue->Pending_messages,
+ &the_message->Node
+ );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Is_null
+ *
+ */
+
+STATIC INLINE boolean _Message_queue_Is_null (
+ Message_queue_Control *the_message_queue
+)
+{
+ return ( the_message_queue == NULL );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Allocate
+ *
+ */
+
+STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void )
+{
+ return (Message_queue_Control *)
+ _Objects_Allocate( &_Message_queue_Information );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Free
+ *
+ */
+
+STATIC INLINE void _Message_queue_Free (
+ Message_queue_Control *the_message_queue
+)
+{
+ _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
+}
+
+/*PAGE
+ *
+ * _Message_queue_Get
+ *
+ */
+
+STATIC INLINE Message_queue_Control *_Message_queue_Get (
+ Objects_Id id,
+ Objects_Locations *location
+)
+{
+ return (Message_queue_Control *)
+ _Objects_Get( &_Message_queue_Information, id, location );
+}
+
+#endif
+/* end of include file */