RTEMS CPU Kit with SuperCore  4.10.99.0
Defines | Typedefs | Functions | Variables
Priority Handler
SuperCore

This handler encapsulates functionality which is used to manage thread priorities. More...

Collaboration diagram for Priority Handler:

Defines

#define PRIORITY_MINIMUM   0
 This defines the highest (most important) thread priority.
#define PRIORITY_DEFAULT_MAXIMUM   255
 This defines the default lowest (least important) thread priority.
#define PRIORITY_MAXIMUM   rtems_maximum_priority
 This defines the lowest (least important) thread priority.

Typedefs

typedef uint32_t Priority_Control
 The following type defines the control block used to manage thread priorities.

Functions

RTEMS_INLINE_ROUTINE bool _Priority_Is_valid (Priority_Control the_priority)
 This function returns true if the_priority if valid for a user task, and false otherwise.
RTEMS_INLINE_ROUTINE
Priority_bit_map_Control 
_Priority_Major (Priority_Control the_priority)
 This function returns the major portion of the_priority.
RTEMS_INLINE_ROUTINE
Priority_bit_map_Control 
_Priority_Minor (Priority_Control the_priority)
 This function returns the minor portion of the_priority.
RTEMS_INLINE_ROUTINE
Priority_bit_map_Control 
_Priority_Mask (uint32_t bit_number)
 This function returns the mask associated with the major or minor number passed to it.
RTEMS_INLINE_ROUTINE
Priority_bit_map_Control 
_Priority_Mask_invert (uint32_t mask)
 This function returns the mask bit inverted.
RTEMS_INLINE_ROUTINE uint32_t _Priority_Bits_index (uint32_t bit_number)
 This function translates the bit numbers returned by the bit scan of a priority bit field into something suitable for use as a major or minor component of a priority.
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Handler_initialization (void)
 Priority Queue implemented by bit map.
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Add (Priority_bit_map_Information *the_priority_map)
 This routine uses the_priority_map to update the priority bit maps to indicate that a thread has been readied.
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Remove (Priority_bit_map_Information *the_priority_map)
 This routine uses the_priority_map to update the priority bit maps to indicate that a thread has been removed from the ready state.
RTEMS_INLINE_ROUTINE
Priority_Control 
_Priority_bit_map_Get_highest (void)
 This function returns the priority of the highest priority ready thread.
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Initialize_information (Priority_bit_map_Information *the_priority_map, Priority_Control new_priority)
 This routine initializes the_priority_map so that it contains the information necessary to manage a thread at new_priority.

Variables

uint8_t rtems_maximum_priority
 This variable contains the configured number of priorities.

Detailed Description

This handler encapsulates functionality which is used to manage thread priorities.

At the SuperCore level 256 priority levels are supported with lower numbers representing logically more important threads. The priority level 0 is reserved for internal RTEMS use. Typically it is assigned to threads which defer internal RTEMS actions from an interrupt to thread level to improve interrupt response. Priority level 255 is assigned to the IDLE thread and really should not be used by application threads. The default IDLE thread implementation is an infinite "branch to self" loop which never yields to other threads at the same priority.


Define Documentation

#define PRIORITY_DEFAULT_MAXIMUM   255

This defines the default lowest (least important) thread priority.

#define PRIORITY_MAXIMUM   rtems_maximum_priority

This defines the lowest (least important) thread priority.

Referenced by _Priority_Is_valid(), and _Scheduler_priority_Ready_queue_initialize().

#define PRIORITY_MINIMUM   0

This defines the highest (most important) thread priority.


Typedef Documentation

typedef uint32_t Priority_Control

The following type defines the control block used to manage thread priorities.

Note:
Priority 0 is reserved for internal threads only.

Function Documentation

RTEMS_INLINE_ROUTINE void _Priority_bit_map_Handler_initialization ( void  )

Priority Queue implemented by bit map.

This routine performs the initialization necessary for this handler.

References _Priority_Major_bit_map.