diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-24 13:12:38 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-26 11:55:44 +0200 |
commit | c6e21ee18f71aa78ca6420bc835ab6b7e2dbcc65 (patch) | |
tree | dd620b9620437fdcbfd61d1097ecfafdd511ccb0 /cpukit/score | |
parent | score: Create schedulerpriority impl header (diff) | |
download | rtems-c6e21ee18f71aa78ca6420bc835ab6b7e2dbcc65.tar.bz2 |
score: Create scheduler implementation header
Move implementation specific parts of scheduler.h and scheduler.inl into
new header file schedulerimpl.h. The scheduler.h contains now only the
application visible API.
Diffstat (limited to '')
20 files changed, 64 insertions, 127 deletions
diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index 8c422a5634..09a11eb02b 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -44,6 +44,7 @@ include_rtems_score_HEADERS += include/rtems/score/prioritybitmap.h include_rtems_score_HEADERS += include/rtems/score/rbtree.h include_rtems_score_HEADERS += include/rtems/score/rbtreeimpl.h include_rtems_score_HEADERS += include/rtems/score/scheduler.h +include_rtems_score_HEADERS += include/rtems/score/schedulerimpl.h include_rtems_score_HEADERS += include/rtems/score/schedulercbs.h include_rtems_score_HEADERS += include/rtems/score/scheduleredf.h include_rtems_score_HEADERS += include/rtems/score/schedulerpriority.h @@ -99,7 +100,6 @@ endif ## inline include_rtems_score_HEADERS += inline/rtems/score/object.inl include_rtems_score_HEADERS += inline/rtems/score/prioritybitmap.inl -include_rtems_score_HEADERS += inline/rtems/score/scheduler.inl include_rtems_score_HEADERS += inline/rtems/score/states.inl include_rtems_score_HEADERS += inline/rtems/score/thread.inl include_rtems_score_HEADERS += inline/rtems/score/threadq.inl diff --git a/cpukit/score/include/rtems/score/scheduler.h b/cpukit/score/include/rtems/score/scheduler.h index 70b9e33fd4..2e5d779076 100644 --- a/cpukit/score/include/rtems/score/scheduler.h +++ b/cpukit/score/include/rtems/score/scheduler.h @@ -22,7 +22,6 @@ #include <rtems/score/percpu.h> #include <rtems/score/chain.h> #include <rtems/score/priority.h> -#include <rtems/score/prioritybitmap.h> #ifdef __cplusplus extern "C" { @@ -127,29 +126,6 @@ typedef struct { extern Scheduler_Control _Scheduler; /** - * Macro testing whether @a p1 has lower priority than @a p2 - * in the intuitive sense of priority. - */ -#define _Scheduler_Is_priority_lower_than( _p1, _p2 ) \ - (_Scheduler_Priority_compare(_p1,_p2) < 0) - -/** - * Macro testing whether @a p1 has higher priority than @a p2 - * in the intuitive sense of priority. - */ -#define _Scheduler_Is_priority_higher_than( _p1, _p2 ) \ - (_Scheduler_Priority_compare(_p1,_p2) > 0) - -/** - * @brief Initializes the scheduler to the policy chosen by the user. - * - * This routine initializes the scheduler to the policy chosen by the user - * through confdefs, or to the priority scheduler with ready chains by - * default. - */ -void _Scheduler_Handler_initialization( void ); - -/** * @brief Performs tick operations depending on the CPU budget algorithm for * each executing thread. * @@ -168,10 +144,6 @@ void _Scheduler_default_Start_idle( Per_CPU_Control *processor ); -#ifndef __RTEMS_APPLICATION__ -#include <rtems/score/scheduler.inl> -#endif - /**@}*/ #ifdef __cplusplus diff --git a/cpukit/score/inline/rtems/score/scheduler.inl b/cpukit/score/include/rtems/score/schedulerimpl.h index 67d8327e36..5ea4bb8b74 100644 --- a/cpukit/score/inline/rtems/score/scheduler.inl +++ b/cpukit/score/include/rtems/score/schedulerimpl.h @@ -16,12 +16,14 @@ * http://www.rtems.com/license/LICENSE. */ -#ifndef _RTEMS_SCORE_SCHEDULER_H -# error "Never use <rtems/score/scheduler.inl> directly; include <rtems/score/scheduler.h> instead." -#endif +#ifndef _RTEMS_SCORE_SCHEDULERIMPL_H +#define _RTEMS_SCORE_SCHEDULERIMPL_H + +#include <rtems/score/scheduler.h> -#ifndef _RTEMS_SCORE_SCHEDULER_INL -#define _RTEMS_SCORE_SCHEDULER_INL +#ifdef __cplusplus +extern "C" { +#endif /** * @addtogroup ScoreScheduler @@ -29,6 +31,15 @@ /**@{**/ /** + * @brief Initializes the scheduler to the policy chosen by the user. + * + * This routine initializes the scheduler to the policy chosen by the user + * through confdefs, or to the priority scheduler with ready chains by + * default. + */ +void _Scheduler_Handler_initialization( void ); + +/** * The preferred method to add a new scheduler is to define the jump table * entries and add a case to the _Scheduler_Initialize routine. * @@ -226,7 +237,25 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Start_idle( ( *_Scheduler.Operations.start_idle )( thread, processor ); } +/** + * Macro testing whether @a p1 has lower priority than @a p2 + * in the intuitive sense of priority. + */ +#define _Scheduler_Is_priority_lower_than( _p1, _p2 ) \ + (_Scheduler_Priority_compare(_p1,_p2) < 0) + +/** + * Macro testing whether @a p1 has higher priority than @a p2 + * in the intuitive sense of priority. + */ +#define _Scheduler_Is_priority_higher_than( _p1, _p2 ) \ + (_Scheduler_Priority_compare(_p1,_p2) > 0) + /** @} */ +#ifdef __cplusplus +} +#endif + #endif /* end of include file */ diff --git a/cpukit/score/preinstall.am b/cpukit/score/preinstall.am index d650a4664c..9c28a2d7c4 100644 --- a/cpukit/score/preinstall.am +++ b/cpukit/score/preinstall.am @@ -159,6 +159,10 @@ $(PROJECT_INCLUDE)/rtems/score/scheduler.h: include/rtems/score/scheduler.h $(PR $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/scheduler.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/scheduler.h +$(PROJECT_INCLUDE)/rtems/score/schedulerimpl.h: include/rtems/score/schedulerimpl.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulerimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulerimpl.h + $(PROJECT_INCLUDE)/rtems/score/schedulercbs.h: include/rtems/score/schedulercbs.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulercbs.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulercbs.h @@ -327,10 +331,6 @@ $(PROJECT_INCLUDE)/rtems/score/prioritybitmap.inl: inline/rtems/score/prioritybi $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/prioritybitmap.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/prioritybitmap.inl -$(PROJECT_INCLUDE)/rtems/score/scheduler.inl: inline/rtems/score/scheduler.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/scheduler.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/scheduler.inl - $(PROJECT_INCLUDE)/rtems/score/states.inl: inline/rtems/score/states.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/states.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/states.inl diff --git a/cpukit/score/src/coremutexseize.c b/cpukit/score/src/coremutexseize.c index 3da513a77b..dee9f7d5f7 100644 --- a/cpukit/score/src/coremutexseize.c +++ b/cpukit/score/src/coremutexseize.c @@ -21,6 +21,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> #include <rtems/score/coremuteximpl.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/states.h> #include <rtems/score/thread.h> #include <rtems/score/threadq.h> diff --git a/cpukit/score/src/scheduler.c b/cpukit/score/src/scheduler.c index 2ee37e7634..a6331fe029 100644 --- a/cpukit/score/src/scheduler.c +++ b/cpukit/score/src/scheduler.c @@ -18,9 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/config.h> -#include <rtems/score/scheduler.h> +#include <rtems/score/schedulerimpl.h> void _Scheduler_Handler_initialization(void) { diff --git a/cpukit/score/src/schedulercbsunblock.c b/cpukit/score/src/schedulercbsunblock.c index 5d7b2d0afe..04e8a5c9a3 100644 --- a/cpukit/score/src/schedulercbsunblock.c +++ b/cpukit/score/src/schedulercbsunblock.c @@ -19,9 +19,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/scheduler.h> #include <rtems/score/schedulercbs.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/watchdogimpl.h> void _Scheduler_CBS_Unblock( diff --git a/cpukit/score/src/schedulerdefaultstartidle.c b/cpukit/score/src/schedulerdefaultstartidle.c index 043fe68b52..9d772a6e2d 100644 --- a/cpukit/score/src/schedulerdefaultstartidle.c +++ b/cpukit/score/src/schedulerdefaultstartidle.c @@ -10,7 +10,7 @@ #include "config.h" #endif -#include <rtems/score/scheduler.h> +#include <rtems/score/schedulerimpl.h> void _Scheduler_default_Start_idle( Thread_Control *thread, diff --git a/cpukit/score/src/schedulerdefaulttick.c b/cpukit/score/src/schedulerdefaulttick.c index a9bc58a8c2..47844ed4be 100644 --- a/cpukit/score/src/schedulerdefaulttick.c +++ b/cpukit/score/src/schedulerdefaulttick.c @@ -19,8 +19,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/scheduler.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/thread.h> #include <rtems/score/smp.h> diff --git a/cpukit/score/src/scheduleredf.c b/cpukit/score/src/scheduleredf.c index 6b1db632b2..0cb440a7d1 100644 --- a/cpukit/score/src/scheduleredf.c +++ b/cpukit/score/src/scheduleredf.c @@ -18,10 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/config.h> -#include <rtems/score/scheduler.h> #include <rtems/score/scheduleredf.h> +#include <rtems/score/schedulerimpl.h> +#include <rtems/score/thread.h> static int _Scheduler_EDF_RBTree_compare_function ( diff --git a/cpukit/score/src/scheduleredfunblock.c b/cpukit/score/src/scheduleredfunblock.c index 0aeb7dec65..a9fc08ce21 100644 --- a/cpukit/score/src/scheduleredfunblock.c +++ b/cpukit/score/src/scheduleredfunblock.c @@ -19,6 +19,7 @@ #endif #include <rtems/score/scheduleredf.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/thread.h> void _Scheduler_EDF_Unblock( diff --git a/cpukit/score/src/threadchangepriority.c b/cpukit/score/src/threadchangepriority.c index 82b8efb721..3d770d285d 100644 --- a/cpukit/score/src/threadchangepriority.c +++ b/cpukit/score/src/threadchangepriority.c @@ -19,11 +19,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/isr.h> -#include <rtems/score/scheduler.h> -#include <rtems/score/schedulerpriority.h> #include <rtems/score/thread.h> +#include <rtems/score/isr.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/threadq.h> void _Thread_Change_priority( diff --git a/cpukit/score/src/threadclearstate.c b/cpukit/score/src/threadclearstate.c index 6e8cb48304..0a02bdd48e 100644 --- a/cpukit/score/src/threadclearstate.c +++ b/cpukit/score/src/threadclearstate.c @@ -18,18 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/score/priority.h> -#include <rtems/score/scheduler.h> -#include <rtems/score/states.h> #include <rtems/score/thread.h> -#include <rtems/score/threadq.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/schedulerimpl.h> +#include <rtems/score/states.h> void _Thread_Clear_state( Thread_Control *the_thread, diff --git a/cpukit/score/src/threadclose.c b/cpukit/score/src/threadclose.c index 912e5d4271..da5f556084 100644 --- a/cpukit/score/src/threadclose.c +++ b/cpukit/score/src/threadclose.c @@ -18,16 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/score/priority.h> -#include <rtems/score/scheduler.h> -#include <rtems/score/states.h> #include <rtems/score/thread.h> +#include <rtems/score/object.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/threaddispatch.h> #include <rtems/score/threadq.h> #include <rtems/score/userextimpl.h> diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c index 5c778a8b25..2075293fd2 100644 --- a/cpukit/score/src/threadinitialize.c +++ b/cpukit/score/src/threadinitialize.c @@ -17,18 +17,12 @@ #include "config.h" #endif -#include <rtems/system.h> +#include <rtems/score/thread.h> #include <rtems/config.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/score/priority.h> -#include <rtems/score/scheduler.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/stackimpl.h> -#include <rtems/score/states.h> -#include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/userextimpl.h> #include <rtems/score/watchdogimpl.h> diff --git a/cpukit/score/src/threadready.c b/cpukit/score/src/threadready.c index 0b5149c669..d926a19fff 100644 --- a/cpukit/score/src/threadready.c +++ b/cpukit/score/src/threadready.c @@ -18,18 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/score/priority.h> -#include <rtems/score/scheduler.h> -#include <rtems/score/states.h> #include <rtems/score/thread.h> -#include <rtems/score/threadq.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/isr.h> +#include <rtems/score/schedulerimpl.h> void _Thread_Ready( Thread_Control *the_thread diff --git a/cpukit/score/src/threadsetpriority.c b/cpukit/score/src/threadsetpriority.c index 1ae4a27197..f776014779 100644 --- a/cpukit/score/src/threadsetpriority.c +++ b/cpukit/score/src/threadsetpriority.c @@ -18,9 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/scheduler.h> #include <rtems/score/thread.h> +#include <rtems/score/schedulerimpl.h> void _Thread_Set_priority( Thread_Control *the_thread, diff --git a/cpukit/score/src/threadsetstate.c b/cpukit/score/src/threadsetstate.c index abe5eebcf6..0b25442a38 100644 --- a/cpukit/score/src/threadsetstate.c +++ b/cpukit/score/src/threadsetstate.c @@ -21,18 +21,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/score/priority.h> -#include <rtems/score/scheduler.h> -#include <rtems/score/states.h> #include <rtems/score/thread.h> -#include <rtems/score/threadq.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/isr.h> +#include <rtems/score/schedulerimpl.h> void _Thread_Set_state( Thread_Control *the_thread, diff --git a/cpukit/score/src/threadsettransient.c b/cpukit/score/src/threadsettransient.c index 5d22a52a1b..ecdbd71576 100644 --- a/cpukit/score/src/threadsettransient.c +++ b/cpukit/score/src/threadsettransient.c @@ -19,19 +19,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/score/priority.h> -#include <rtems/score/scheduler.h> -#include <rtems/score/schedulerpriority.h> -#include <rtems/score/states.h> #include <rtems/score/thread.h> -#include <rtems/score/threadq.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/isr.h> +#include <rtems/score/schedulerimpl.h> void _Thread_Set_transient( Thread_Control *the_thread diff --git a/cpukit/score/src/threadstart.c b/cpukit/score/src/threadstart.c index dddf744206..82f8a2a235 100644 --- a/cpukit/score/src/threadstart.c +++ b/cpukit/score/src/threadstart.c @@ -19,18 +19,10 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/apiext.h> -#include <rtems/score/context.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/score/priority.h> -#include <rtems/score/states.h> #include <rtems/score/thread.h> -#include <rtems/score/threadq.h> +#include <rtems/score/isr.h> +#include <rtems/score/schedulerimpl.h> #include <rtems/score/userextimpl.h> -#include <rtems/score/wkspace.h> bool _Thread_Start( Thread_Control *the_thread, |