|
enum | Priority_Action_type { PRIORITY_ACTION_ADD,
PRIORITY_ACTION_CHANGE,
PRIORITY_ACTION_REMOVE,
PRIORITY_ACTION_INVALID
} |
| The priority action type.
|
|
This handler encapsulates functionality which is used to manage thread priorities. The actual priority of a thread is an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes.
◆ PRIORITY_DEFAULT_MAXIMUM
#define PRIORITY_DEFAULT_MAXIMUM 255 |
The default lowest (least important) thread priority value.
This value is CPU port dependent.
◆ PRIORITY_PSEUDO_ISR
The priority value of pseudo-ISR threads.
Examples are the MPCI and timer server threads.
◆ Priority_Control
The thread priority control.
Lower values represent higher priorities. So, a priority value of zero represents the highest priority thread. This value is reserved for internal threads and the priority ceiling protocol.
The format of the thread priority control depends on the context. A thread priority control may contain a user visible priority for API import/export. It may also contain a scheduler internal priority value. Values are translated via the scheduler map/unmap priority operations. The format of scheduler interal values depend on the particular scheduler implementation. It may for example encode a deadline in case of the EDF scheduler.
The thread priority control value contained in the scheduler node (Scheduler_Node::Priority::value) uses the least-significant bit to indicate if the thread should be appended or prepended to its priority group, see SCHEDULER_PRIORITY_APPEND().
◆ _Bitfield_Find_first_bit()
Returns the bit number of the first bit set in the specified value.
The correspondence between the bit number and actual bit position is CPU architecture dependent. The search for the first bit set may run from most to least significant bit or vice-versa.
- Parameters
-
value | The value to bit scan. |
- Returns
- The bit number of the first bit set.
- See also
- _Priority_Bits_index() and _Priority_Mask().
◆ _Priority_bit_map_Add()
Priority Queue implemented by bit map
◆ _Priority_Bits_index()
Returns the bit index position for the specified major or minor bit number.
- Parameters
-
bit_number | The bit number for which we need an index. |
- Returns
- The corresponding array index into the priority bit map.
◆ _Priority_Major()
This function returns the major portion of the_priority.
◆ _Priority_Mask()
Returns the priority bit mask for the specified major or minor bit number.
- Parameters
-
bit_number | The bit number for which we need a mask. |
- Returns
- The priority bit mask.
◆ _Priority_Minor()
This function returns the minor portion of the_priority.
◆ _Bitfield_Leading_zeros
const unsigned char _Bitfield_Leading_zeros[256] |
This table is used by the generic bitfield routines to perform a highly optimized bit scan without the use of special CPU instructions.