summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/states.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/include/rtems/score/states.h')
-rw-r--r--cpukit/score/include/rtems/score/states.h33
1 files changed, 29 insertions, 4 deletions
diff --git a/cpukit/score/include/rtems/score/states.h b/cpukit/score/include/rtems/score/states.h
index 2b3cac9eb8..8e0b07f138 100644
--- a/cpukit/score/include/rtems/score/states.h
+++ b/cpukit/score/include/rtems/score/states.h
@@ -5,7 +5,7 @@
*/
/*
- * COPYRIGHT (c) 1989-2004.
+ * COPYRIGHT (c) 1989-2006.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -21,7 +21,8 @@
/**
* @defgroup ScoreStates Thread States Handler
*
- * This group contains functionality which XXX
+ * This handler encapsulates functionality which relates to the management of
+ * the state bitmap associated with each thread.
*/
/**@{*/
@@ -29,11 +30,10 @@
extern "C" {
#endif
-/*
+/**
* The following type defines the control block used to manage a
* thread's state.
*/
-
typedef uint32_t States_Control;
/*
@@ -41,26 +41,48 @@ typedef uint32_t States_Control;
* be used to compose and manipulate a thread's state.
*/
+/** This macro corresponds to all states being set. */
#define STATES_ALL_SET 0xfffff /* all states */
+/** This macro corresponds to a task being ready. */
#define STATES_READY 0x00000 /* ready to run */
+/** This macro corresponds to a task being created but not yet started. */
#define STATES_DORMANT 0x00001 /* created not started */
+/** This macro corresponds to a task being suspended. */
#define STATES_SUSPENDED 0x00002 /* waiting for resume */
+/** This macro corresponds to a task being in an internal state transition. */
#define STATES_TRANSIENT 0x00004 /* in transition */
+/** This macro corresponds to a task which is waiting for a timeout. */
#define STATES_DELAYING 0x00008 /* wait for timeout */
+/** This macro corresponds to a task waiting until a specific TOD. */
#define STATES_WAITING_FOR_TIME 0x00010 /* wait for TOD */
+/** This macro corresponds to a task waiting for a variable length buffer. */
#define STATES_WAITING_FOR_BUFFER 0x00020
+/** This macro corresponds to a task waiting for a fixed size segment. */
#define STATES_WAITING_FOR_SEGMENT 0x00040
+/** This macro corresponds to a task waiting for a message. */
#define STATES_WAITING_FOR_MESSAGE 0x00080
+/** This macro corresponds to a task waiting for an event. */
#define STATES_WAITING_FOR_EVENT 0x00100
+/** This macro corresponds to a task waiting for a semaphore. */
#define STATES_WAITING_FOR_SEMAPHORE 0x00200
+/** This macro corresponds to a task waiting for a mutex. */
#define STATES_WAITING_FOR_MUTEX 0x00400
+/** This macro corresponds to a task waiting for a condition variable. */
#define STATES_WAITING_FOR_CONDITION_VARIABLE 0x00800
+/** This macro corresponds to a task waiting for a join while exiting. */
#define STATES_WAITING_FOR_JOIN_AT_EXIT 0x01000
+/** This macro corresponds to a task waiting for a reply to an MPCI request. */
#define STATES_WAITING_FOR_RPC_REPLY 0x02000
+/** This macro corresponds to a task waiting for a period. */
#define STATES_WAITING_FOR_PERIOD 0x04000
+/** This macro corresponds to a task waiting for a signal. */
#define STATES_WAITING_FOR_SIGNAL 0x08000
+/** This macro corresponds to a task which is in an interruptible
+ * blocking state.
+ */
#define STATES_INTERRUPTIBLE_BY_SIGNAL 0x10000
+/** This macro corresponds to a task waiting for a local object operation. */
#define STATES_LOCALLY_BLOCKED ( STATES_WAITING_FOR_BUFFER | \
STATES_WAITING_FOR_SEGMENT | \
STATES_WAITING_FOR_MESSAGE | \
@@ -70,10 +92,13 @@ typedef uint32_t States_Control;
STATES_WAITING_FOR_JOIN_AT_EXIT | \
STATES_WAITING_FOR_SIGNAL )
+/** This macro corresponds to a task waiting which is blocked on
+ * a thread queue. */
#define STATES_WAITING_ON_THREAD_QUEUE \
( STATES_LOCALLY_BLOCKED | \
STATES_WAITING_FOR_RPC_REPLY )
+/** This macro corresponds to a task waiting which is blocked. */
#define STATES_BLOCKED ( STATES_DELAYING | \
STATES_WAITING_FOR_TIME | \
STATES_WAITING_FOR_PERIOD | \