summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/threadq.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/score/include/rtems/score/threadq.h135
1 files changed, 33 insertions, 102 deletions
diff --git a/cpukit/score/include/rtems/score/threadq.h b/cpukit/score/include/rtems/score/threadq.h
index cbbb85e345..83b2563b96 100644
--- a/cpukit/score/include/rtems/score/threadq.h
+++ b/cpukit/score/include/rtems/score/threadq.h
@@ -1,9 +1,12 @@
-/* threadq.h
+/**
+ * @file threadq.h
*
* This include file contains all the constants and structures associated
* with the manipulation of objects.
- *
- * COPYRIGHT (c) 1989-1999.
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2004.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -16,6 +19,13 @@
#ifndef __THREAD_QUEUE_h
#define __THREAD_QUEUE_h
+/**
+ * @defgroup ScoreThreadQ Thread Queue Handler
+ *
+ * This group contains functionality which XXX
+ */
+/**@{*/
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -26,132 +36,87 @@ extern "C" {
#include <rtems/score/thread.h>
#include <rtems/score/watchdog.h>
-/*
+/**
* Constant for indefinite wait.
*/
-
#define THREAD_QUEUE_WAIT_FOREVER WATCHDOG_NO_TIMEOUT
-/*
+/**
* The following type defines the callout used when a remote task
* is extracted from a local thread queue.
*/
-
typedef void ( *Thread_queue_Flush_callout )(
Thread_Control *
);
-/*
- * The following type defines the callout used when a local task
- * is extracted from a remote thread queue (i.e. it's proxy must
- * extracted from the remote queue).
- */
-
-#if 0
-typedef void ( *Thread_queue_Extract_callout )(
- Thread_Control *
- );
-
-SCORE_EXTERN Thread_queue_Extract_callout
- _Thread_queue_Extract_table[ OBJECTS_CLASSES_LAST + 1 ];
-#endif
-
-/*
- * _Thread_queue_Dequeue
- *
- * DESCRIPTION:
+/** @brief Thread queue Dequeue
*
* This function returns a pointer to a thread waiting on
* the_thread_queue. The selection of this thread is based on
* the discipline of the_thread_queue. If no threads are waiting
* on the_thread_queue, then NULL is returned.
*/
-
Thread_Control *_Thread_queue_Dequeue(
Thread_queue_Control *the_thread_queue
);
-/*
- * _Thread_queue_Enqueue
- *
- * DESCRIPTION:
+/** @brief Thread queue Enqueue
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout.
*/
-
void _Thread_queue_Enqueue(
Thread_queue_Control *the_thread_queue,
Watchdog_Interval timeout
);
-/*
- * _Thread_queue_Extract
- *
- * DESCRIPTION:
+/** @brief Thread queue Extract
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
*/
-
void _Thread_queue_Extract(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread
);
-/*
- * _Thread_queue_Extract_with_proxy
- *
- * DESCRIPTION:
+/** @brief Thread queue Extract with proxy
*
* This routine extracts the_thread from the_thread_queue
* and ensures that if there is a proxy for this task on
* another node, it is also dealt with.
*/
-
boolean _Thread_queue_Extract_with_proxy(
Thread_Control *the_thread
);
-/*
- * _Thread_queue_First
- *
- * DESCRIPTION:
+/** @brief Thread queue First
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The "first" thread is selected
* based on the discipline of the_thread_queue.
*/
-
Thread_Control *_Thread_queue_First(
Thread_queue_Control *the_thread_queue
);
-/*
- * _Thread_queue_Flush
- *
- * DESCRIPTION:
+/** @brief Thread queue Flush
*
* This routine unblocks all threads blocked on the_thread_queue
* and cancels any associated timeouts.
*/
-
void _Thread_queue_Flush(
Thread_queue_Control *the_thread_queue,
Thread_queue_Flush_callout remote_extract_callout,
uint32_t status
);
-/*
- * _Thread_queue_Initialize
- *
- * DESCRIPTION:
+/** @brief Thread queue Initialize
*
* This routine initializes the_thread_queue based on the
* discipline indicated in attribute_set. The state set on
* threads which block on the_thread_queue is state.
*/
-
void _Thread_queue_Initialize(
Thread_queue_Control *the_thread_queue,
Thread_queue_Disciplines the_discipline,
@@ -159,126 +124,91 @@ void _Thread_queue_Initialize(
uint32_t timeout_status
);
-/*
- * _Thread_queue_Dequeue_priority
- *
- * DESCRIPTION:
+/** @brief Thread queue Dequeue priority
*
* This function returns a pointer to the highest priority
* thread waiting on the_thread_queue. If no threads are waiting
* on the_thread_queue, then NULL is returned.
*/
-
Thread_Control *_Thread_queue_Dequeue_priority(
Thread_queue_Control *the_thread_queue
);
-/*
- * _Thread_queue_Enqueue_priority
- *
- * DESCRIPTION:
+/** @brief Thread queue Enqueue priority
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout using the
* priority discipline.
*/
-
void _Thread_queue_Enqueue_priority(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread,
Watchdog_Interval timeout
);
-/*
- * _Thread_queue_Extract_priority
- *
- * DESCRIPTION:
+/** @brief Thread queue Extract priority
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
*/
-
void _Thread_queue_Extract_priority(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread
);
-/*
- * _Thread_queue_First_priority
- *
- * DESCRIPTION:
+/** @brief Thread queue First priority
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The "first" thread is the highest
* priority thread waiting on the_thread_queue.
*/
-
Thread_Control *_Thread_queue_First_priority(
Thread_queue_Control *the_thread_queue
);
-/*
- * _Thread_queue_Dequeue_FIFO
- *
- * DESCRIPTION:
+/** @brief Thread queue Dequeue FIFO
*
* This function returns a pointer to the thread which has
* been waiting the longest on the_thread_queue. If no
* threads are waiting on the_thread_queue, then NULL is returned.
*/
-
Thread_Control *_Thread_queue_Dequeue_fifo(
Thread_queue_Control *the_thread_queue
);
-/*
- * _Thread_queue_Enqueue_FIFO
- *
- * DESCRIPTION:
+/** @brief Thread queue Enqueue FIFO
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout using the
* FIFO discipline.
*/
-
void _Thread_queue_Enqueue_fifo(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread,
Watchdog_Interval timeout
);
-/*
- * _Thread_queue_Extract_FIFO
- *
- * DESCRIPTION:
+/** @brief Thread queue Extract FIFO
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
*/
-
void _Thread_queue_Extract_fifo(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread
);
-/*
- * _Thread_queue_First_FIFO
- *
- * DESCRIPTION:
+/** @brief Thread queue First FIFO
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The first thread is the thread
* which has been waiting longest on the_thread_queue.
*/
-
Thread_Control *_Thread_queue_First_fifo(
Thread_queue_Control *the_thread_queue
);
-/*
- * _Thread_queue_timeout
- *
- * DESCRIPTION:
+/** @brief Thread queue timeout
*
* This routine is invoked when a task's request has not
* been satisfied after the timeout interval specified to
@@ -286,7 +216,6 @@ Thread_Control *_Thread_queue_First_fifo(
* its status code will be set in it's control block to indicate
* that a timeout has occurred.
*/
-
void _Thread_queue_Timeout (
Objects_Id id,
void *ignored
@@ -296,5 +225,7 @@ void _Thread_queue_Timeout (
}
#endif
+/**@}*/
+
#endif
/* end of include file */