/*
|
/*
|
* CORE Semaphore Handler
|
* CORE Semaphore Handler
|
*
|
*
|
* DESCRIPTION:
|
* DESCRIPTION:
|
*
|
*
|
* This package is the implementation of the CORE Semaphore Handler.
|
* This package is the implementation of the CORE Semaphore Handler.
|
* This core object utilizes standard Dijkstra counting semaphores to provide
|
* This core object utilizes standard Dijkstra counting semaphores to provide
|
* synchronization and mutual exclusion capabilities.
|
* synchronization and mutual exclusion capabilities.
|
*
|
*
|
* COPYRIGHT (c) 1989-1999.
|
* COPYRIGHT (c) 1989-1999.
|
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
*
|
*
|
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
* found in the file LICENSE in this distribution or at
|
* found in the file LICENSE in this distribution or at
|
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
*
|
*
|
* coresemflush.c,v 1.2 1999/11/17 17:50:38 joel Exp
|
* coresemflush.c,v 1.2 1999/11/17 17:50:38 joel Exp
|
*/
|
*/
|
|
|
#include <rtems/system.h>
|
#include <rtems/system.h>
|
#include <rtems/score/isr.h>
|
#include <rtems/score/isr.h>
|
#include <rtems/score/coresem.h>
|
#include <rtems/score/coresem.h>
|
#include <rtems/score/states.h>
|
#include <rtems/score/states.h>
|
#include <rtems/score/thread.h>
|
#include <rtems/score/thread.h>
|
#include <rtems/score/threadq.h>
|
#include <rtems/score/threadq.h>
|
#if defined(RTEMS_MULTIPROCESSING)
|
#if defined(RTEMS_MULTIPROCESSING)
|
#include <rtems/score/mpci.h>
|
#include <rtems/score/mpci.h>
|
#endif
|
#endif
|
|
|
/*PAGE
|
/*PAGE
|
*
|
*
|
* _CORE_semaphore_Flush
|
* _CORE_semaphore_Flush
|
*
|
*
|
* This function a flushes the semaphore's task wait queue.
|
* This function a flushes the semaphore's task wait queue.
|
*
|
*
|
* Input parameters:
|
* Input parameters:
|
* the_semaphore - the semaphore to be flushed
|
* the_semaphore - the semaphore to be flushed
|
* remote_extract_callout - function to invoke remotely
|
* remote_extract_callout - function to invoke remotely
|
* status - status to pass to thread
|
* status - status to pass to thread
|
*
|
*
|
* Output parameters: NONE
|
* Output parameters: NONE
|
*/
|
*/
|
|
|
void _CORE_semaphore_Flush(
|
void _CORE_semaphore_Flush(
|
CORE_semaphore_Control *the_semaphore,
|
CORE_semaphore_Control *the_semaphore,
|
Thread_queue_Flush_callout remote_extract_callout,
|
Thread_queue_Flush_callout remote_extract_callout,
|
unsigned32 status
|
unsigned32 status
|
)
|
)
|
{
|
{
|
|
|
_Thread_queue_Flush(
|
_Thread_queue_Flush(
|
&the_semaphore->Wait_queue,
|
&the_semaphore->Wait_queue,
|
remote_extract_callout,
|
remote_extract_callout,
|
status
|
status
|
);
|
);
|
|
|
}
|
}
|
|
|