score: Replace STATES_DELAYING

Replace STATES_DELAYING with STATES_WAITING_FOR_TIME.

There is no need for separate timeout thread states.  The
Thread_Control::Timer::header and Watchdog_Control::cpu members can be
used to figure out the kind of timeout.
This commit is contained in:
Sebastian Huber
2017-01-11 08:42:04 +01:00
parent 48a7fa31f9
commit d063e7b3d8
5 changed files with 8 additions and 41 deletions

View File

@@ -514,7 +514,6 @@ rtems_debugger_thread_state_str(rtems_debugger_thread* thread,
DB_UINT mask; DB_UINT mask;
}; };
const struct mapper map[] = { const struct mapper map[] = {
{ "DELAY", STATES_DELAYING },
{ "DORM", STATES_DORMANT }, { "DORM", STATES_DORMANT },
{ "LIFE", STATES_LIFE_IS_CHANGING }, { "LIFE", STATES_LIFE_IS_CHANGING },
{ "SUSP", STATES_SUSPENDED }, { "SUSP", STATES_SUSPENDED },

View File

@@ -115,7 +115,6 @@ rtems_monitor_dump_priority(rtems_task_priority priority)
#define WITH_ID(state) (STATES_THREAD_QUEUE_WITH_IDENTIFIER | state) #define WITH_ID(state) (STATES_THREAD_QUEUE_WITH_IDENTIFIER | state)
static const rtems_assoc_t rtems_monitor_state_assoc[] = { static const rtems_assoc_t rtems_monitor_state_assoc[] = {
{ "DELAY", STATES_DELAYING, 0 },
{ "DORM", STATES_DORMANT, 0 }, { "DORM", STATES_DORMANT, 0 },
{ "LIFE", STATES_LIFE_IS_CHANGING, 0 }, { "LIFE", STATES_LIFE_IS_CHANGING, 0 },
{ "SUSP", STATES_SUSPENDED, 0 }, { "SUSP", STATES_SUSPENDED, 0 },

View File

@@ -49,7 +49,7 @@ static inline int nanosleep_helper(
_Thread_queue_Context_initialize( &queue_context ); _Thread_queue_Context_initialize( &queue_context );
_Thread_queue_Context_set_thread_state( _Thread_queue_Context_set_thread_state(
&queue_context, &queue_context,
STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL STATES_WAITING_FOR_TIME | STATES_INTERRUPTIBLE_BY_SIGNAL
); );
_Thread_queue_Context_set_enqueue_callout( _Thread_queue_Context_set_enqueue_callout(
&queue_context, &queue_context,

View File

@@ -39,7 +39,7 @@ rtems_status_code rtems_task_wake_after(
if ( ticks == 0 ) { if ( ticks == 0 ) {
_Thread_Yield( executing ); _Thread_Yield( executing );
} else { } else {
_Thread_Set_state( executing, STATES_DELAYING ); _Thread_Set_state( executing, STATES_WAITING_FOR_TIME );
_Thread_Wait_flags_set( executing, THREAD_WAIT_STATE_BLOCKED ); _Thread_Wait_flags_set( executing, THREAD_WAIT_STATE_BLOCKED );
_Thread_Timer_insert_relative( _Thread_Timer_insert_relative(
executing, executing,

View File

@@ -74,8 +74,11 @@ extern "C" {
/** This macro corresponds to a task waiting for BSD wakeup. */ /** This macro corresponds to a task waiting for BSD wakeup. */
#define STATES_WAITING_FOR_BSD_WAKEUP 0x00000100 #define STATES_WAITING_FOR_BSD_WAKEUP 0x00000100
/** This macro corresponds to a task which is waiting for a timeout. */ /**
#define STATES_DELAYING 0x00000200 * @brief This macro corresponds to a task which is waiting for a relative or
* absolute timeout.
*/
#define STATES_WAITING_FOR_TIME 0x00000200
/** This macro corresponds to a task waiting for a period. */ /** This macro corresponds to a task waiting for a period. */
#define STATES_WAITING_FOR_PERIOD 0x00000400 #define STATES_WAITING_FOR_PERIOD 0x00000400
@@ -104,9 +107,6 @@ extern "C" {
/** This macro corresponds to a task those life is changing. */ /** This macro corresponds to a task those life is changing. */
#define STATES_LIFE_IS_CHANGING 0x00040000 #define STATES_LIFE_IS_CHANGING 0x00040000
/** This macro corresponds to a task waiting until a specific TOD. */
#define STATES_WAITING_FOR_TIME 0x00080000
/** This macro corresponds to a task being held by the debugger. */ /** This macro corresponds to a task being held by the debugger. */
#define STATES_DEBUGGER 0x08000000 #define STATES_DEBUGGER 0x08000000
@@ -139,8 +139,7 @@ extern "C" {
STATES_WAITING_FOR_RWLOCK ) STATES_WAITING_FOR_RWLOCK )
/** This macro corresponds to a task waiting which is blocked. */ /** This macro corresponds to a task waiting which is blocked. */
#define STATES_BLOCKED ( STATES_DELAYING | \ #define STATES_BLOCKED ( STATES_LOCALLY_BLOCKED | \
STATES_LOCALLY_BLOCKED | \
STATES_WAITING_FOR_TIME | \ STATES_WAITING_FOR_TIME | \
STATES_WAITING_FOR_PERIOD | \ STATES_WAITING_FOR_PERIOD | \
STATES_WAITING_FOR_EVENT | \ STATES_WAITING_FOR_EVENT | \
@@ -245,21 +244,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_suspended (
return (the_states & STATES_SUSPENDED); return (the_states & STATES_SUSPENDED);
} }
/**
* This function returns true if the DELAYING state is set in
* the_states, and false otherwise.
*
* @param[in] the_states is the task state set to test
*
* @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_delaying (
States_Control the_states
)
{
return (the_states & STATES_DELAYING);
}
/** /**
* This function returns true if the WAITING_FOR_SEGMENT state is set in * This function returns true if the WAITING_FOR_SEGMENT state is set in
* the_states, and false otherwise. * the_states, and false otherwise.
@@ -350,21 +334,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_semaphore (
return (the_states & STATES_WAITING_FOR_SEMAPHORE); return (the_states & STATES_WAITING_FOR_SEMAPHORE);
} }
/**
* This function returns true if the WAITING_FOR_TIME state is set in
* the_states, and false otherwise.
*
* @param[in] the_states is the task state set to test
*
* @return This method returns true if the desired state condition is set.
*/
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_time (
States_Control the_states
)
{
return (the_states & STATES_WAITING_FOR_TIME);
}
/** /**
* This function returns true if the WAITING_FOR_TIME state is set in * This function returns true if the WAITING_FOR_TIME state is set in
* the_states, and false otherwise. * the_states, and false otherwise.