RTEMS CPU Kit with SuperCore  4.11.3
Data Fields
Thread_Proxy_control Struct Reference

The following defines the control block used to manage each thread proxy. More...

#include <thread.h>

Collaboration diagram for Thread_Proxy_control:
Collaboration graph
[legend]

Data Fields

Objects_Control Object
 This field is the object management structure for each proxy. More...
 
States_Control current_state
 This field is the current execution state of this proxy. More...
 
Priority_Control current_priority
 This field is the current priority state of this thread. More...
 
Priority_Control real_priority
 This field is the base priority of this thread. More...
 
uint32_t priority_generation
 Generation of the current priority value. More...
 
bool priority_restore_hint
 Hints if a priority restore is necessary once the resource count changes from one to zero. More...
 
uint32_t resource_count
 This field is the number of mutexes currently held by this proxy. More...
 
Thread_Wait_information Wait
 This field is the blocking information for this proxy. More...
 
Watchdog_Control Timer
 This field is the Watchdog used to manage proxy delays and timeouts. More...
 
Chain_Node Active
 This field is used to manage the set of proxies in the system. More...
 

Detailed Description

The following defines the control block used to manage each thread proxy.

Note
It is critical that proxies and threads have identical memory images for the shared part.

Field Documentation

◆ Active

Chain_Node Thread_Proxy_control::Active

This field is used to manage the set of proxies in the system.

Referenced by _Thread_MP_Free_proxy().

◆ current_priority

Priority_Control Thread_Proxy_control::current_priority

This field is the current priority state of this thread.

Writes to this field are only allowed in _Thread_Initialize() or via _Thread_Change_priority().

◆ current_state

States_Control Thread_Proxy_control::current_state

This field is the current execution state of this proxy.

◆ Object

Objects_Control Thread_Proxy_control::Object

This field is the object management structure for each proxy.

◆ priority_generation

uint32_t Thread_Proxy_control::priority_generation

Generation of the current priority value.

It is used in _Thread_Change_priority() to serialize the update of priority related data structures.

◆ priority_restore_hint

bool Thread_Proxy_control::priority_restore_hint

Hints if a priority restore is necessary once the resource count changes from one to zero.

This is an optimization to speed up the mutex surrender sequence in case no attempt to change the priority was made during the mutex ownership. On SMP configurations atomic fences must synchronize writes to Thread_Control::priority_restore_hint and Thread_Control::resource_count.

◆ real_priority

Priority_Control Thread_Proxy_control::real_priority

This field is the base priority of this thread.

Writes to this field are only allowed in _Thread_Initialize() or via _Thread_Change_priority().

◆ resource_count

uint32_t Thread_Proxy_control::resource_count

This field is the number of mutexes currently held by this proxy.

◆ Timer

Watchdog_Control Thread_Proxy_control::Timer

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

◆ Wait

Thread_Wait_information Thread_Proxy_control::Wait

This field is the blocking information for this proxy.


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