RTEMS  5.1
Files | Macros | Typedefs | Functions
Thread States

SuperCore Thread States. More...

Files

file  states.h
 Thread Execution State Information.
 
file  statesimpl.h
 Inlined Routines Associated with Thread State Information.
 

Macros

#define STATES_READY   0x00000000
 
#define STATES_WAITING_FOR_MUTEX   0x00000001
 
#define STATES_WAITING_FOR_SEMAPHORE   0x00000002
 
#define STATES_WAITING_FOR_EVENT   0x00000004
 
#define STATES_WAITING_FOR_SYSTEM_EVENT   0x00000008
 
#define STATES_WAITING_FOR_MESSAGE   0x00000010
 
#define STATES_WAITING_FOR_CONDITION_VARIABLE   0x00000020
 
#define STATES_WAITING_FOR_FUTEX   0x00000040
 
#define STATES_WAITING_FOR_BSD_WAKEUP   0x00000080
 
#define STATES_WAITING_FOR_TIME   0x00000100
 This macro corresponds to a task which is waiting for a relative or absolute timeout.
 
#define STATES_WAITING_FOR_PERIOD   0x00000200
 
#define STATES_WAITING_FOR_SIGNAL   0x00000400
 
#define STATES_WAITING_FOR_BARRIER   0x00000800
 
#define STATES_WAITING_FOR_RWLOCK   0x00001000
 
#define STATES_WAITING_FOR_JOIN_AT_EXIT   0x00002000
 
#define STATES_WAITING_FOR_JOIN   0x00004000
 
#define STATES_SUSPENDED   0x00008000
 
#define STATES_WAITING_FOR_SEGMENT   0x00010000
 
#define STATES_LIFE_IS_CHANGING   0x00020000
 
#define STATES_DEBUGGER   0x08000000
 
#define STATES_INTERRUPTIBLE_BY_SIGNAL   0x10000000
 
#define STATES_WAITING_FOR_RPC_REPLY   0x20000000
 
#define STATES_ZOMBIE   0x40000000
 
#define STATES_DORMANT   0x80000000
 
#define STATES_LOCALLY_BLOCKED
 
#define STATES_BLOCKED
 
#define STATES_ALL_SET   0xffffffff
 

Typedefs

typedef uint32_t States_Control
 

Functions

RTEMS_INLINE_ROUTINE States_Control _States_Set (States_Control states_to_set, States_Control current_state)
 Returns the result of setting the states to set to the given state. More...
 
RTEMS_INLINE_ROUTINE States_Control _States_Clear (States_Control states_to_clear, States_Control current_state)
 Clears the states into the passed current state and returns the result. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_ready (States_Control the_states)
 Checks if the state is ready. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_dormant (States_Control the_states)
 Checks if DORMANT state is set. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_suspended (States_Control the_states)
 Checks if SUSPENDED state is set. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_rpc_reply (States_Control the_states)
 Checks if WAITING_FOR_TIME state is set. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_join_at_exit (States_Control the_states)
 Checks if WAITING_FOR_JOIN_AT_EXIT state is set. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_interruptible_by_signal (States_Control the_states)
 Checks if the state is set to be interruptible. More...
 
RTEMS_INLINE_ROUTINE bool _States_Is_locally_blocked (States_Control the_states)
 Checks if the state is blocked waiting on a local resource. More...
 

Detailed Description

SuperCore Thread States.

This handler encapsulates functionality which relates to the management of the state bitmap associated with each thread.

Macro Definition Documentation

◆ STATES_ALL_SET

#define STATES_ALL_SET   0xffffffff

All state bits set to one (provided for _Thread_Start())

◆ STATES_BLOCKED

#define STATES_BLOCKED
Value:
STATES_WAITING_FOR_TIME | \
STATES_WAITING_FOR_PERIOD | \
STATES_WAITING_FOR_EVENT | \
STATES_WAITING_FOR_RPC_REPLY | \
STATES_WAITING_FOR_SYSTEM_EVENT | \
STATES_INTERRUPTIBLE_BY_SIGNAL )
#define STATES_LOCALLY_BLOCKED
Definition: statesimpl.h:122

This macro corresponds to a task waiting which is blocked.

◆ STATES_DEBUGGER

#define STATES_DEBUGGER   0x08000000

This macro corresponds to a task being held by the debugger.

◆ STATES_DORMANT

#define STATES_DORMANT   0x80000000

This macro corresponds to a task being created but not yet started.

◆ STATES_INTERRUPTIBLE_BY_SIGNAL

#define STATES_INTERRUPTIBLE_BY_SIGNAL   0x10000000

This macro corresponds to a task which is in an interruptible blocking state.

◆ STATES_LIFE_IS_CHANGING

#define STATES_LIFE_IS_CHANGING   0x00020000

This macro corresponds to a task those life is changing.

◆ STATES_LOCALLY_BLOCKED

#define STATES_LOCALLY_BLOCKED
Value:
STATES_WAITING_FOR_MESSAGE | \
STATES_WAITING_FOR_SEMAPHORE | \
STATES_WAITING_FOR_MUTEX | \
STATES_WAITING_FOR_CONDITION_VARIABLE | \
STATES_WAITING_FOR_JOIN | \
STATES_WAITING_FOR_SIGNAL | \
STATES_WAITING_FOR_BARRIER | \
STATES_WAITING_FOR_BSD_WAKEUP | \
STATES_WAITING_FOR_FUTEX | \
STATES_WAITING_FOR_RWLOCK )
#define STATES_WAITING_FOR_SEGMENT
Definition: statesimpl.h:99

This macro corresponds to a task waiting for a local object operation.

◆ STATES_READY

#define STATES_READY   0x00000000

This macro corresponds to a task being ready.

◆ STATES_SUSPENDED

#define STATES_SUSPENDED   0x00008000

This macro corresponds to a task being suspended.

◆ STATES_WAITING_FOR_BARRIER

#define STATES_WAITING_FOR_BARRIER   0x00000800

This macro corresponds to a task waiting for a barrier.

◆ STATES_WAITING_FOR_BSD_WAKEUP

#define STATES_WAITING_FOR_BSD_WAKEUP   0x00000080

This macro corresponds to a task waiting for BSD wakeup.

◆ STATES_WAITING_FOR_CONDITION_VARIABLE

#define STATES_WAITING_FOR_CONDITION_VARIABLE   0x00000020

This macro corresponds to a task waiting for a condition variable.

◆ STATES_WAITING_FOR_EVENT

#define STATES_WAITING_FOR_EVENT   0x00000004

This macro corresponds to a task waiting for an event.

◆ STATES_WAITING_FOR_FUTEX

#define STATES_WAITING_FOR_FUTEX   0x00000040

This macro corresponds to a task waiting for a futex.

◆ STATES_WAITING_FOR_JOIN

#define STATES_WAITING_FOR_JOIN   0x00004000

This macro corresponds to a task waiting for a join.

◆ STATES_WAITING_FOR_JOIN_AT_EXIT

#define STATES_WAITING_FOR_JOIN_AT_EXIT   0x00002000

This macro corresponds to a task waiting for a join while exiting.

◆ STATES_WAITING_FOR_MESSAGE

#define STATES_WAITING_FOR_MESSAGE   0x00000010

This macro corresponds to a task waiting for a message.

◆ STATES_WAITING_FOR_MUTEX

#define STATES_WAITING_FOR_MUTEX   0x00000001

This macro corresponds to a task waiting for a mutex.

◆ STATES_WAITING_FOR_PERIOD

#define STATES_WAITING_FOR_PERIOD   0x00000200

This macro corresponds to a task waiting for a period.

◆ STATES_WAITING_FOR_RPC_REPLY

#define STATES_WAITING_FOR_RPC_REPLY   0x20000000

This macro corresponds to a task waiting for a reply to an MPCI request.

◆ STATES_WAITING_FOR_RWLOCK

#define STATES_WAITING_FOR_RWLOCK   0x00001000

This macro corresponds to a task waiting for a RWLock.

◆ STATES_WAITING_FOR_SEGMENT

#define STATES_WAITING_FOR_SEGMENT   0x00010000

This macro corresponds to a task waiting for a fixed size segment.

◆ STATES_WAITING_FOR_SEMAPHORE

#define STATES_WAITING_FOR_SEMAPHORE   0x00000002

This macro corresponds to a task waiting for a semaphore.

◆ STATES_WAITING_FOR_SIGNAL

#define STATES_WAITING_FOR_SIGNAL   0x00000400

This macro corresponds to a task waiting for a signal.

◆ STATES_WAITING_FOR_SYSTEM_EVENT

#define STATES_WAITING_FOR_SYSTEM_EVENT   0x00000008

This macro corresponds to a task waiting for a system event.

◆ STATES_ZOMBIE

#define STATES_ZOMBIE   0x40000000

This macro corresponds to a task being a zombie.

Typedef Documentation

◆ States_Control

typedef uint32_t States_Control

The following type defines the control block used to manage a thread's state.

Function Documentation

◆ _States_Clear()

RTEMS_INLINE_ROUTINE States_Control _States_Clear ( States_Control  states_to_clear,
States_Control  current_state 
)

Clears the states into the passed current state and returns the result.

This function clears the given states_to_clear into the current_state passed in. The result is returned to the user in current_state.

Parameters
states_to_clearThe state bits to clear.
current_stateThe state set to remove them from.
Returns
This method returns the updated states value.

◆ _States_Is_dormant()

RTEMS_INLINE_ROUTINE bool _States_Is_dormant ( States_Control  the_states)

Checks if DORMANT state is set.

This function returns true if the DORMANT state is set in the_states, and false otherwise.

Parameters
the_statesThe task state set to test.
Return values
trueDORMANT state is set in the_states.
falseDORMANT state is not set in the_states.

◆ _States_Is_interruptible_by_signal()

RTEMS_INLINE_ROUTINE bool _States_Is_interruptible_by_signal ( States_Control  the_states)

Checks if the state is set to be interruptible.

This function returns true if the task's state is set in way that allows it to be interrupted by a signal.

Parameters
the_statesThe task state set to test.
Return values
truethe_states is interruptible.
falsethe_states is not interruptible.

◆ _States_Is_locally_blocked()

RTEMS_INLINE_ROUTINE bool _States_Is_locally_blocked ( States_Control  the_states)

Checks if the state is blocked waiting on a local resource.

This function returns true if one of the states which indicates that a task is blocked waiting for a local resource is set in the_states, and false otherwise.

Parameters
the_statesThe task state set to test.
Return values
trueThe state indicates that the task is blocked waiting on a local resource.
falseThe state indicates that the task is not blocked waiting on a local resource.

◆ _States_Is_ready()

RTEMS_INLINE_ROUTINE bool _States_Is_ready ( States_Control  the_states)

Checks if the state is ready.

This function returns true if the_states indicates that the state is READY, and false otherwise.

Parameters
the_statesThe task state set to test.
Return values
trueThe state is ready.
falseThe state is not ready.

◆ _States_Is_suspended()

RTEMS_INLINE_ROUTINE bool _States_Is_suspended ( States_Control  the_states)

Checks if SUSPENDED state is set.

This function returns true if the SUSPENDED state is set in the_states, and false otherwise.

Parameters
the_statesThe task state set to test.
Return values
trueSUSPENDED state is set in the_states.
falseSUSPENDED state is not set in the_states.

◆ _States_Is_waiting_for_join_at_exit()

RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_join_at_exit ( States_Control  the_states)

Checks if WAITING_FOR_JOIN_AT_EXIT state is set.

This function returns true if the WAITING_FOR_JOIN_AT_EXIT state is set in the_states, and false otherwise.

Parameters
the_statesThe task state set to test.
Return values
trueWAITING_FOR_JOIN_AT_EXIT state is set in the_states.
falseWAITING_FOR_JOIN_AT_EXIT state is not set in the_states.

◆ _States_Is_waiting_for_rpc_reply()

RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_rpc_reply ( States_Control  the_states)

Checks if WAITING_FOR_TIME state is set.

This function returns true if the WAITING_FOR_TIME state is set in the_states, and false otherwise.

Parameters
the_statesThe task state set to test.
Return values
trueWAITING_FOR_TIME state is set in the_states.
falseWAITING_FOR_TIME state is not set in the_states.

◆ _States_Set()

RTEMS_INLINE_ROUTINE States_Control _States_Set ( States_Control  states_to_set,
States_Control  current_state 
)

Returns the result of setting the states to set to the given state.

This function sets the given states_to_set into the current_state passed in. The result is returned to the user in current_state.

Parameters
states_to_setThe state bits to set.
current_stateThe state set to add them to.
Returns
This method returns the updated states value.