37#ifndef _RTEMS_RTEMS_MODESIMPL_H
38#define _RTEMS_RTEMS_MODESIMPL_H
45#include <rtems/config.h>
67static inline bool _Modes_Is_asr_disabled (
80static inline bool _Modes_Is_preempt (
93static inline bool _Modes_Is_timeslice (
105static inline ISR_Level _Modes_Get_interrupt_level (
112#if defined(RTEMS_SMP) || CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE
122static inline bool _Modes_Is_interrupt_level_supported(
126 return _Modes_Get_interrupt_level( mode_set ) == 0
127#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == FALSE
128 || !_SMP_Need_inter_processor_interrupts()
134#if defined(RTEMS_SMP)
145static inline bool _Modes_Is_preempt_mode_supported(
147 const Thread_Control *the_thread
150 return _Modes_Is_preempt( mode_set ) ||
151 _Scheduler_Is_non_preempt_mode_supported(
152 _Thread_Scheduler_get_home( the_thread )
165static inline void _Modes_Apply_timeslice_to_thread(
167 Thread_Control *the_thread
170 if ( _Modes_Is_timeslice( mode_set ) ) {
#define RTEMS_TIMESLICE
This task mode constant indicates that timeslicing is enabled.
Definition modes.h:246
#define RTEMS_ASR_MASK
This mode constant corresponds to the signal enable/disable bit.
Definition modes.h:101
uint32_t rtems_mode
This type represents a Classic API task mode set.
Definition modes.h:174
#define RTEMS_NO_ASR
This task mode constant indicates that signal processing is disabled.
Definition modes.h:200
#define RTEMS_PREEMPT_MASK
This task mode constant corresponds to the preemption enable/disable bit.
Definition modes.h:237
#define RTEMS_TIMESLICE_MASK
This task mode constant corresponds to the timeslice enable/disable bit.
Definition modes.h:256
#define RTEMS_INTERRUPT_MASK
This task mode constant corresponds to the interrupt enable/disable bits.
Definition modes.h:130
#define RTEMS_PREEMPT
This task mode constant indicates that preemption is enabled.
Definition modes.h:227
#define rtems_configuration_get_ticks_per_timeslice()
Gets the clock ticks per timeslice configured for this application.
Definition config.h:741
uint32_t ISR_Level
Definition isrlevel.h:60
const Thread_CPU_budget_operations _Thread_CPU_budget_reset_timeslice
These CPU budget operations allocate timeslices to the thread.
Definition threadresettimeslice.c:87
This header file provides the task modes API of the Task Manager.
This header file provides interfaces of the Scheduler Handler which are only used by the implementati...
This header file provides interfaces of the SMP Support which are only used by the implementation.
uint32_t available
This member contains the count of the time quantum that this thread is allowed to consume until an ac...
Definition thread.h:224
const Thread_CPU_budget_operations * operations
If this member is not NULL, then it references the CPU budget operations used to manage the CPU budge...
Definition thread.h:217
Thread_CPU_budget_control CPU_budget
This member contains the CPU budget control used to manage the CPU budget of the thread.
Definition thread.h:938
This header file provides interfaces used to implement the CPU budget management of threads.
This header file provides interfaces of the Thread Handler which are only used by the implementation.