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(
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(
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
#define NULL
Requests a GPIO pin group configuration.
Definition: xil_types.h:54
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:201
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:194
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:903
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.