diff options
Diffstat (limited to 'cpukit/score/include/rtems/score/states.h')
-rw-r--r-- | cpukit/score/include/rtems/score/states.h | 33 |
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 | \ |