summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/src/coremsginsert.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/score/src/coremsginsert.c')
-rw-r--r--c/src/exec/score/src/coremsginsert.c102
1 files changed, 0 insertions, 102 deletions
diff --git a/c/src/exec/score/src/coremsginsert.c b/c/src/exec/score/src/coremsginsert.c
deleted file mode 100644
index f468334c97..0000000000
--- a/c/src/exec/score/src/coremsginsert.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * CORE Message Queue Handler
- *
- * DESCRIPTION:
- *
- * This package is the implementation of the CORE Message Queue Handler.
- * This core object provides task synchronization and communication functions
- * via messages passed to queue objects.
- *
- * COPYRIGHT (c) 1989-1999.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/score/chain.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/coremsg.h>
-#include <rtems/score/states.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/wkspace.h>
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/score/mpci.h>
-#endif
-
-/*PAGE
- *
- * _CORE_message_queue_Insert_message
- *
- * This kernel routine inserts the specified message into the
- * message queue. It is assumed that the message has been filled
- * in before this routine is called.
- *
- * Input parameters:
- * the_message_queue - pointer to message queue
- * the_message - message to insert
- * priority - insert indication
- *
- * Output parameters: NONE
- *
- * INTERRUPT LATENCY:
- * insert
- */
-
-void _CORE_message_queue_Insert_message(
- CORE_message_queue_Control *the_message_queue,
- CORE_message_queue_Buffer_control *the_message,
- CORE_message_queue_Submit_types submit_type
-)
-{
- the_message_queue->number_of_pending_messages += 1;
-
- the_message->priority = submit_type;
-
- switch ( submit_type ) {
- case CORE_MESSAGE_QUEUE_SEND_REQUEST:
- _CORE_message_queue_Append( the_message_queue, the_message );
- break;
- case CORE_MESSAGE_QUEUE_URGENT_REQUEST:
- _CORE_message_queue_Prepend( the_message_queue, the_message );
- break;
- default:
- /* XXX interrupt critical section needs to be addressed */
- {
- CORE_message_queue_Buffer_control *this_message;
- Chain_Node *the_node;
- Chain_Control *the_header;
-
- the_header = &the_message_queue->Pending_messages;
- the_node = the_header->first;
- while ( !_Chain_Is_tail( the_header, the_node ) ) {
-
- this_message = (CORE_message_queue_Buffer_control *) the_node;
-
- if ( this_message->priority <= the_message->priority ) {
- the_node = the_node->next;
- continue;
- }
-
- break;
- }
- _Chain_Insert( the_node->previous, &the_message->Node );
- }
- break;
- }
-
- /*
- * According to POSIX, does this happen before or after the message
- * is actually enqueued. It is logical to think afterwards, because
- * the message is actually in the queue at this point.
- */
-
- if ( the_message_queue->number_of_pending_messages == 1 &&
- the_message_queue->notify_handler )
- (*the_message_queue->notify_handler)( the_message_queue->notify_argument );
-}