RTEMS
Public Attributes | List of all members
_Thread_Control Struct Reference

#include <thread.h>

Public Attributes

Objects_Control Object
 
Thread_queue_Control Join_queue
 Thread queue for thread join operations and multi-purpose lock. More...
 
States_Control current_state
 
Priority_Node Real_priority
 The base priority of this thread in its home scheduler instance.
 
Thread_Scheduler_control Scheduler
 Scheduler related control.
 
Thread_Wait_information Wait
 
Thread_Timer_information Timer
 
bool is_idle
 
bool is_preemptible
 
bool is_fp
 
bool was_created_with_inherited_scheduler
 True, if the thread was created with an inherited scheduler (PTHREAD_INHERIT_SCHED), and false otherwise.
 
uint32_t cpu_time_budget
 
Thread_CPU_budget_algorithms budget_algorithm
 
Thread_CPU_budget_algorithm_callout budget_callout
 
Timestamp_Control cpu_time_used
 
Thread_Start_information Start
 
Thread_Action_control Post_switch_actions
 
Context_Control Registers
 
struct _reent * libc_reent
 
void * API_Extensions [THREAD_API_LAST+1]
 
Thread_Keys_information Keys
 The POSIX Keys information.
 
Thread_Life_control Life
 Thread life-cycle control. More...
 
Thread_Capture_control Capture
 
struct rtems_user_env_t * user_environment
 Pointer to an optional thread-specific POSIX user environment.
 
struct _pthread_cleanup_context * last_cleanup_context
 LIFO list of POSIX cleanup contexts.
 
struct User_extensions_Iteratorlast_user_extensions_iterator
 LIFO list of user extensions iterators.
 
void * extensions [RTEMS_ZERO_LENGTH_ARRAY]
 Variable length array of user extension pointers. More...
 

Detailed Description

This structure defines the Thread Control Block (TCB).

Uses a leading underscore in the structure name to allow forward declarations in standard header files provided by Newlib and GCC.

In case the second member changes (currently Join_queue), then the memset() in _Thread_Initialize() must be adjusted.

Definition at line 725 of file thread.h.

Member Data Documentation

◆ API_Extensions

void* _Thread_Control::API_Extensions[THREAD_API_LAST+1]

This array contains the API extension area pointers.

Definition at line 840 of file thread.h.

◆ budget_algorithm

Thread_CPU_budget_algorithms _Thread_Control::budget_algorithm

This field is the algorithm used to manage this thread's time quantum. The algorithm may be specified as none which case, no limit is in place.

Definition at line 814 of file thread.h.

◆ budget_callout

Thread_CPU_budget_algorithm_callout _Thread_Control::budget_callout

This field is the method invoked with the budgeted time is consumed.

Definition at line 816 of file thread.h.

◆ cpu_time_budget

uint32_t _Thread_Control::cpu_time_budget

This field is the length of the time quantum that this thread is allowed to consume. The algorithm used to manage limits on CPU usage is specified by budget_algorithm.

Definition at line 809 of file thread.h.

◆ cpu_time_used

Timestamp_Control _Thread_Control::cpu_time_used

This field is the amount of CPU time consumed by this thread since it was created.

Definition at line 820 of file thread.h.

◆ current_state

States_Control _Thread_Control::current_state

This field is the current execution state of this thread.

Definition at line 749 of file thread.h.

◆ extensions

void* _Thread_Control::extensions[RTEMS_ZERO_LENGTH_ARRAY]

Variable length array of user extension pointers.

The length is defined by the application via <rtems/confdefs.h>.

Definition at line 876 of file thread.h.

◆ is_fp

bool _Thread_Control::is_fp

This field is true if the thread uses the floating point unit.

Definition at line 797 of file thread.h.

◆ is_idle

bool _Thread_Control::is_idle

This field is true if the thread is an idle thread.

Definition at line 789 of file thread.h.

◆ is_preemptible

bool _Thread_Control::is_preemptible

This field is true if the thread is preemptible.

Definition at line 795 of file thread.h.

◆ Join_queue

Thread_queue_Control _Thread_Control::Join_queue

Thread queue for thread join operations and multi-purpose lock.

The lock of this thread queue is used for various purposes. It protects the following fields

See also
_Thread_State_acquire().

Definition at line 746 of file thread.h.

◆ libc_reent

struct _reent* _Thread_Control::libc_reent

This field points to the newlib reentrancy structure for this thread.

Definition at line 838 of file thread.h.

◆ Life

Thread_Life_control _Thread_Control::Life

Thread life-cycle control.

Control state changes triggered by thread restart and delete requests.

Definition at line 852 of file thread.h.

◆ Object

Objects_Control _Thread_Control::Object

This field is the object management structure for each thread.

Definition at line 727 of file thread.h.

◆ Registers

Context_Control _Thread_Control::Registers

This field contains the context of this thread.

Definition at line 830 of file thread.h.

◆ Start

Thread_Start_information _Thread_Control::Start

This field contains information about the starting state of this thread.

Definition at line 825 of file thread.h.

◆ Timer

Thread_Timer_information _Thread_Control::Timer

This field is the Watchdog used to manage thread delays and timeouts.

Definition at line 769 of file thread.h.

◆ Wait

Thread_Wait_information _Thread_Control::Wait

This field is the blocking information for this thread.

Definition at line 767 of file thread.h.


The documentation for this struct was generated from the following file: