RTEMS CPU Kit with SuperCore
4.11.3
|
This handler encapsulates functionality which relates to the management of the state bitmap associated with each thread. More...
![]() |
Macros | |
#define | STATES_READY 0x00000 |
This macro corresponds to a task being ready. More... | |
#define | STATES_DORMANT 0x00001 |
This macro corresponds to a task being created but not yet started. More... | |
#define | STATES_SUSPENDED 0x00002 |
This macro corresponds to a task being suspended. More... | |
#define | STATES_DELAYING 0x00008 |
This macro corresponds to a task which is waiting for a timeout. More... | |
#define | STATES_WAITING_FOR_TIME 0x00010 |
This macro corresponds to a task waiting until a specific TOD. More... | |
#define | STATES_WAITING_FOR_BUFFER 0x00020 |
This macro corresponds to a task waiting for a variable length buffer. More... | |
#define | STATES_WAITING_FOR_SEGMENT 0x00040 |
This macro corresponds to a task waiting for a fixed size segment. More... | |
#define | STATES_WAITING_FOR_MESSAGE 0x00080 |
This macro corresponds to a task waiting for a message. More... | |
#define | STATES_WAITING_FOR_EVENT 0x00100 |
This macro corresponds to a task waiting for an event. More... | |
#define | STATES_WAITING_FOR_SEMAPHORE 0x00200 |
This macro corresponds to a task waiting for a semaphore. More... | |
#define | STATES_WAITING_FOR_MUTEX 0x00400 |
This macro corresponds to a task waiting for a mutex. More... | |
#define | STATES_WAITING_FOR_CONDITION_VARIABLE 0x00800 |
This macro corresponds to a task waiting for a condition variable. More... | |
#define | STATES_WAITING_FOR_JOIN_AT_EXIT 0x01000 |
This macro corresponds to a task waiting for a join while exiting. More... | |
#define | STATES_WAITING_FOR_RPC_REPLY 0x02000 |
This macro corresponds to a task waiting for a reply to an MPCI request. More... | |
#define | STATES_WAITING_FOR_PERIOD 0x04000 |
This macro corresponds to a task waiting for a period. More... | |
#define | STATES_WAITING_FOR_SIGNAL 0x08000 |
This macro corresponds to a task waiting for a signal. More... | |
#define | STATES_WAITING_FOR_BARRIER 0x10000 |
This macro corresponds to a task waiting for a barrier. More... | |
#define | STATES_WAITING_FOR_RWLOCK 0x20000 |
This macro corresponds to a task waiting for a RWLock. More... | |
#define | STATES_WAITING_FOR_SYSTEM_EVENT 0x40000 |
This macro corresponds to a task waiting for a system event. More... | |
#define | STATES_WAITING_FOR_BSD_WAKEUP 0x80000 |
This macro corresponds to a task waiting for BSD wakeup. More... | |
#define | STATES_WAITING_FOR_TERMINATION 0x100000 |
This macro corresponds to a task waiting for a task termination. More... | |
#define | STATES_ZOMBIE 0x200000 |
This macro corresponds to a task being a zombie. More... | |
#define | STATES_MIGRATING 0x400000 |
This macro corresponds to a task migrating to another scheduler. More... | |
#define | STATES_RESTARTING 0x800000 |
This macro corresponds to a task restarting. More... | |
#define | STATES_WAITING_FOR_JOIN 0x1000000 |
This macro corresponds to a task waiting for a join. More... | |
#define | STATES_INTERRUPTIBLE_BY_SIGNAL 0x10000000 |
This macro corresponds to a task which is in an interruptible blocking state. | |
#define | STATES_LOCALLY_BLOCKED |
This macro corresponds to a task waiting for a local object operation. More... | |
#define | STATES_BLOCKED |
This macro corresponds to a task waiting which is blocked. More... | |
#define | STATES_ALL_SET 0xffffffff |
All state bits set to one (provided for _Thread_Ready()) | |
Typedefs | |
typedef uint32_t | States_Control |
The following type defines the control block used to manage a thread's state. | |
Functions | |
RTEMS_INLINE_ROUTINE States_Control | _States_Set (States_Control states_to_set, States_Control current_state) |
This function sets the given states_to_set into the current_state passed in. More... | |
RTEMS_INLINE_ROUTINE States_Control | _States_Clear (States_Control states_to_clear, States_Control current_state) |
This function clears the given states_to_clear into the current_state passed in. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_ready (States_Control the_states) |
This function returns true if the_states indicates that the state is READY, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_only_dormant (States_Control the_states) |
This function returns true if the DORMANT state is the ONLY state set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_dormant (States_Control the_states) |
This function returns true if the DORMANT state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_suspended (States_Control the_states) |
This function returns true if the SUSPENDED state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_delaying (States_Control the_states) |
This function returns true if the DELAYING state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_buffer (States_Control the_states) |
This function returns true if the WAITING_FOR_BUFFER state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_segment (States_Control the_states) |
This function returns true if the WAITING_FOR_SEGMENT state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_message (States_Control the_states) |
This function returns true if the WAITING_FOR_MESSAGE state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_event (States_Control the_states) |
This function returns true if the WAITING_FOR_EVENT state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_system_event (States_Control the_states) |
This function returns true if the WAITING_FOR_SYSTEM_EVENT state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_mutex (States_Control the_states) |
This function returns true if the WAITING_FOR_MUTEX state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_semaphore (States_Control the_states) |
This function returns true if the WAITING_FOR_SEMAPHORE state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_time (States_Control the_states) |
This function returns true if the WAITING_FOR_TIME state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_rpc_reply (States_Control the_states) |
This function returns true if the WAITING_FOR_TIME state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_waiting_for_period (States_Control the_states) |
This function returns true if the WAITING_FOR_PERIOD state is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_interruptible_by_signal (States_Control the_states) |
This function returns true if the task's state is set in way that allows it to be interrupted by a signal. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_locally_blocked (States_Control the_states) |
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. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Is_blocked (States_Control the_states) |
This function returns true if one of the states which indicates that a task is blocked is set in the_states, and false otherwise. More... | |
RTEMS_INLINE_ROUTINE bool | _States_Are_set (States_Control the_states, States_Control mask) |
This function returns true if any of the states in the mask are set in the_states, and false otherwise. More... | |
This handler encapsulates functionality which relates to the management of the state bitmap associated with each thread.
#define STATES_BLOCKED |
This macro corresponds to a task waiting which is blocked.
Referenced by _States_Is_blocked(), and _Thread_Unblock().
#define STATES_DELAYING 0x00008 |
This macro corresponds to a task which is waiting for a timeout.
Referenced by _States_Is_delaying().
#define STATES_DORMANT 0x00001 |
This macro corresponds to a task being created but not yet started.
Referenced by _States_Is_dormant(), and _States_Is_only_dormant().
#define STATES_LOCALLY_BLOCKED |
This macro corresponds to a task waiting for a local object operation.
Referenced by _States_Is_locally_blocked().
#define STATES_MIGRATING 0x400000 |
This macro corresponds to a task migrating to another scheduler.
#define STATES_READY 0x00000 |
This macro corresponds to a task being ready.
Referenced by _States_Is_ready().
#define STATES_RESTARTING 0x800000 |
This macro corresponds to a task restarting.
#define STATES_SUSPENDED 0x00002 |
This macro corresponds to a task being suspended.
Referenced by _States_Is_suspended().
#define STATES_WAITING_FOR_BARRIER 0x10000 |
This macro corresponds to a task waiting for a barrier.
#define STATES_WAITING_FOR_BSD_WAKEUP 0x80000 |
This macro corresponds to a task waiting for BSD wakeup.
#define STATES_WAITING_FOR_BUFFER 0x00020 |
This macro corresponds to a task waiting for a variable length buffer.
Referenced by _States_Is_waiting_for_buffer().
#define STATES_WAITING_FOR_CONDITION_VARIABLE 0x00800 |
This macro corresponds to a task waiting for a condition variable.
#define STATES_WAITING_FOR_EVENT 0x00100 |
This macro corresponds to a task waiting for an event.
Referenced by _States_Is_waiting_for_event().
#define STATES_WAITING_FOR_JOIN 0x1000000 |
This macro corresponds to a task waiting for a join.
#define STATES_WAITING_FOR_JOIN_AT_EXIT 0x01000 |
This macro corresponds to a task waiting for a join while exiting.
#define STATES_WAITING_FOR_MESSAGE 0x00080 |
This macro corresponds to a task waiting for a message.
Referenced by _States_Is_waiting_for_message().
#define STATES_WAITING_FOR_MUTEX 0x00400 |
This macro corresponds to a task waiting for a mutex.
Referenced by _States_Is_waiting_for_mutex().
#define STATES_WAITING_FOR_PERIOD 0x04000 |
This macro corresponds to a task waiting for a period.
Referenced by _States_Is_waiting_for_period().
#define STATES_WAITING_FOR_RPC_REPLY 0x02000 |
This macro corresponds to a task waiting for a reply to an MPCI request.
Referenced by _States_Is_waiting_for_rpc_reply().
#define STATES_WAITING_FOR_RWLOCK 0x20000 |
This macro corresponds to a task waiting for a RWLock.
#define STATES_WAITING_FOR_SEGMENT 0x00040 |
This macro corresponds to a task waiting for a fixed size segment.
Referenced by _States_Is_waiting_for_segment().
#define STATES_WAITING_FOR_SEMAPHORE 0x00200 |
This macro corresponds to a task waiting for a semaphore.
Referenced by _States_Is_waiting_for_semaphore().
#define STATES_WAITING_FOR_SIGNAL 0x08000 |
This macro corresponds to a task waiting for a signal.
#define STATES_WAITING_FOR_SYSTEM_EVENT 0x40000 |
This macro corresponds to a task waiting for a system event.
Referenced by _States_Is_waiting_for_system_event().
#define STATES_WAITING_FOR_TERMINATION 0x100000 |
This macro corresponds to a task waiting for a task termination.
#define STATES_WAITING_FOR_TIME 0x00010 |
This macro corresponds to a task waiting until a specific TOD.
Referenced by _States_Is_waiting_for_time().
#define STATES_ZOMBIE 0x200000 |
This macro corresponds to a task being a zombie.
RTEMS_INLINE_ROUTINE bool _States_Are_set | ( | States_Control | the_states, |
States_Control | mask | ||
) |
This function returns true if any of the states in the mask are set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
[in] | mask | is the state bits to test for |
RTEMS_INLINE_ROUTINE States_Control _States_Clear | ( | States_Control | states_to_clear, |
States_Control | current_state | ||
) |
This function clears the given states_to_clear into the current_state passed in.
The result is returned to the user in current_state.
[in] | states_to_clear | is the state bits to clean |
[in] | current_state | is the state set to remove them from |
RTEMS_INLINE_ROUTINE bool _States_Is_blocked | ( | States_Control | the_states | ) |
This function returns true if one of the states which indicates that a task is blocked is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_BLOCKED.
RTEMS_INLINE_ROUTINE bool _States_Is_delaying | ( | States_Control | the_states | ) |
This function returns true if the DELAYING state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_DELAYING.
RTEMS_INLINE_ROUTINE bool _States_Is_dormant | ( | States_Control | the_states | ) |
This function returns true if the DORMANT state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_DORMANT.
Referenced by _Thread_Start().
RTEMS_INLINE_ROUTINE bool _States_Is_interruptible_by_signal | ( | States_Control | the_states | ) |
This function returns true if the task's state is set in way that allows it to be interrupted by a signal.
[in] | the_states | is the task state set to test |
References STATES_INTERRUPTIBLE_BY_SIGNAL.
RTEMS_INLINE_ROUTINE bool _States_Is_locally_blocked | ( | States_Control | the_states | ) |
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.
[in] | the_states | is the task state set to test |
References STATES_LOCALLY_BLOCKED.
RTEMS_INLINE_ROUTINE bool _States_Is_only_dormant | ( | States_Control | the_states | ) |
This function returns true if the DORMANT state is the ONLY state set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_DORMANT.
RTEMS_INLINE_ROUTINE bool _States_Is_ready | ( | States_Control | the_states | ) |
This function returns true if the_states indicates that the state is READY, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_READY.
Referenced by _Scheduler_default_Tick().
RTEMS_INLINE_ROUTINE bool _States_Is_suspended | ( | States_Control | the_states | ) |
This function returns true if the SUSPENDED state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_SUSPENDED.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_buffer | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_BUFFER state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_BUFFER.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_EVENT state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_EVENT.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_message | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_MESSAGE state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_MESSAGE.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_mutex | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_MUTEX state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_MUTEX.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_period | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_PERIOD state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_PERIOD.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_rpc_reply | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_TIME state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_RPC_REPLY.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_segment | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_SEGMENT state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_SEGMENT.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_semaphore | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_SEMAPHORE state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_SEMAPHORE.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_system_event | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_SYSTEM_EVENT state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_SYSTEM_EVENT.
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_time | ( | States_Control | the_states | ) |
This function returns true if the WAITING_FOR_TIME state is set in the_states, and false otherwise.
[in] | the_states | is the task state set to test |
References STATES_WAITING_FOR_TIME.
RTEMS_INLINE_ROUTINE States_Control _States_Set | ( | States_Control | states_to_set, |
States_Control | current_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.
[in] | states_to_set | is the state bits to set |
[in] | current_state | is the state set to add them to |