From bd5606abcb2cf1e4c778a5063f158990be9bee62 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 24 Jul 2013 11:37:28 +0200 Subject: score: Create schedulersimple impl header Move implementation specific parts of schedulersimple.h and schedulersimple.inl into new header file schedulersimpleimpl.h. The schedulersimple.h contains now only the application visible API. --- cpukit/score/Makefile.am | 2 +- cpukit/score/include/rtems/score/schedulersimple.h | 20 ++-- .../include/rtems/score/schedulersimpleimpl.h | 104 +++++++++++++++++++++ .../score/inline/rtems/score/schedulersimple.inl | 100 -------------------- cpukit/score/preinstall.am | 8 +- .../score/src/schedulersimplereadyqueueenqueue.c | 6 +- .../src/schedulersimplereadyqueueenqueuefirst.c | 5 +- cpukit/score/src/schedulersimplesmp.c | 1 + cpukit/score/src/schedulersimpleyield.c | 5 +- 9 files changed, 121 insertions(+), 130 deletions(-) create mode 100644 cpukit/score/include/rtems/score/schedulersimpleimpl.h delete mode 100644 cpukit/score/inline/rtems/score/schedulersimple.inl (limited to 'cpukit') diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index 06b6f11c23..f04a904f94 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -48,6 +48,7 @@ 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 include_rtems_score_HEADERS += include/rtems/score/schedulersimple.h +include_rtems_score_HEADERS += include/rtems/score/schedulersimpleimpl.h include_rtems_score_HEADERS += include/rtems/score/smp.h include_rtems_score_HEADERS += include/rtems/score/smplock.h include_rtems_score_HEADERS += include/rtems/score/stack.h @@ -99,7 +100,6 @@ 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/schedulerpriority.inl -include_rtems_score_HEADERS += inline/rtems/score/schedulersimple.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/schedulersimple.h b/cpukit/score/include/rtems/score/schedulersimple.h index 17514cc4c2..ba67c14729 100644 --- a/cpukit/score/include/rtems/score/schedulersimple.h +++ b/cpukit/score/include/rtems/score/schedulersimple.h @@ -18,6 +18,13 @@ #ifndef _RTEMS_SCORE_SCHEDULERSIMPLE_H #define _RTEMS_SCORE_SCHEDULERSIMPLE_H +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup ScoreSchedulerSimple Simple Priority Scheduler * @@ -25,13 +32,6 @@ */ /**@{*/ -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - /** * Entry points for Scheduler Simple */ @@ -215,15 +215,11 @@ void _Scheduler_simple_Ready_queue_enqueue_first( Thread_Control *the_thread ); -#ifndef __RTEMS_APPLICATION__ -#include -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/score/include/rtems/score/schedulersimpleimpl.h b/cpukit/score/include/rtems/score/schedulersimpleimpl.h new file mode 100644 index 0000000000..e8c4cc6cad --- /dev/null +++ b/cpukit/score/include/rtems/score/schedulersimpleimpl.h @@ -0,0 +1,104 @@ +/** + * @file + * + * @brief Inlined Routines Associated with the Manipulation of the + * Priority-Based Scheduling Structures + * + * This inline file contains all of the inlined routines associated with + * the manipulation of the priority-based scheduling structures. + */ + +/* + * Copyright (C) 2011 On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifndef _RTEMS_SCORE_SCHEDULERSIMPLEIMPL_H +#define _RTEMS_SCORE_SCHEDULERSIMPLEIMPL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup ScoreScheduler + */ +/**@{**/ + +/** + * This routine puts @a the_thread on to the ready queue. + * + * @param[in] the_ready_queue is a pointer to the ready queue head + * @param[in] the_thread is the thread to be blocked + */ +RTEMS_INLINE_ROUTINE void _Scheduler_simple_Ready_queue_requeue( + Scheduler_Control *the_ready_queue, + Thread_Control *the_thread +) +{ + /* extract */ + _Chain_Extract_unprotected( &the_thread->Object.Node ); + + /* enqueue */ + _Scheduler_simple_Ready_queue_enqueue( the_thread ); +} + +RTEMS_INLINE_ROUTINE bool _Scheduler_simple_Insert_priority_lifo_order( + const Chain_Node *to_insert, + const Chain_Node *next +) +{ + const Thread_Control *thread_to_insert = (const Thread_Control *) to_insert; + const Thread_Control *thread_next = (const Thread_Control *) next; + + return thread_to_insert->current_priority <= thread_next->current_priority; +} + +RTEMS_INLINE_ROUTINE bool _Scheduler_simple_Insert_priority_fifo_order( + const Chain_Node *to_insert, + const Chain_Node *next +) +{ + const Thread_Control *thread_to_insert = (const Thread_Control *) to_insert; + const Thread_Control *thread_next = (const Thread_Control *) next; + + return thread_to_insert->current_priority < thread_next->current_priority; +} + +RTEMS_INLINE_ROUTINE void _Scheduler_simple_Insert_priority_lifo( + Chain_Control *chain, + Thread_Control *to_insert +) +{ + _Chain_Insert_ordered_unprotected( + chain, + &to_insert->Object.Node, + _Scheduler_simple_Insert_priority_lifo_order + ); +} + +RTEMS_INLINE_ROUTINE void _Scheduler_simple_Insert_priority_fifo( + Chain_Control *chain, + Thread_Control *to_insert +) +{ + _Chain_Insert_ordered_unprotected( + chain, + &to_insert->Object.Node, + _Scheduler_simple_Insert_priority_fifo_order + ); +} + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/schedulersimple.inl b/cpukit/score/inline/rtems/score/schedulersimple.inl deleted file mode 100644 index 8b2480ea0a..0000000000 --- a/cpukit/score/inline/rtems/score/schedulersimple.inl +++ /dev/null @@ -1,100 +0,0 @@ -/** - * @file - * - * @brief Inlined Routines Associated with the Manipulation of the - * Priority-Based Scheduling Structures - * - * This inline file contains all of the inlined routines associated with - * the manipulation of the priority-based scheduling structures. - */ - -/* - * Copyright (C) 2011 On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.com/license/LICENSE. - */ - -#ifndef _RTEMS_SCORE_SCHEDULERSIMPLE_H -# error "Never use directly; include instead." -#endif - -#ifndef _RTEMS_SCORE_SCHEDULERSIMPLE_INL -#define _RTEMS_SCORE_SCHEDULERSIMPLE_INL - -#include - -/** - * @addtogroup ScoreScheduler - */ -/**@{**/ - -/** - * This routine puts @a the_thread on to the ready queue. - * - * @param[in] the_ready_queue is a pointer to the ready queue head - * @param[in] the_thread is the thread to be blocked - */ -RTEMS_INLINE_ROUTINE void _Scheduler_simple_Ready_queue_requeue( - Scheduler_Control *the_ready_queue, - Thread_Control *the_thread -) -{ - /* extract */ - _Chain_Extract_unprotected( &the_thread->Object.Node ); - - /* enqueue */ - _Scheduler_simple_Ready_queue_enqueue( the_thread ); -} - -RTEMS_INLINE_ROUTINE bool _Scheduler_simple_Insert_priority_lifo_order( - const Chain_Node *to_insert, - const Chain_Node *next -) -{ - const Thread_Control *thread_to_insert = (const Thread_Control *) to_insert; - const Thread_Control *thread_next = (const Thread_Control *) next; - - return thread_to_insert->current_priority <= thread_next->current_priority; -} - -RTEMS_INLINE_ROUTINE bool _Scheduler_simple_Insert_priority_fifo_order( - const Chain_Node *to_insert, - const Chain_Node *next -) -{ - const Thread_Control *thread_to_insert = (const Thread_Control *) to_insert; - const Thread_Control *thread_next = (const Thread_Control *) next; - - return thread_to_insert->current_priority < thread_next->current_priority; -} - -RTEMS_INLINE_ROUTINE void _Scheduler_simple_Insert_priority_lifo( - Chain_Control *chain, - Thread_Control *to_insert -) -{ - _Chain_Insert_ordered_unprotected( - chain, - &to_insert->Object.Node, - _Scheduler_simple_Insert_priority_lifo_order - ); -} - -RTEMS_INLINE_ROUTINE void _Scheduler_simple_Insert_priority_fifo( - Chain_Control *chain, - Thread_Control *to_insert -) -{ - _Chain_Insert_ordered_unprotected( - chain, - &to_insert->Object.Node, - _Scheduler_simple_Insert_priority_fifo_order - ); -} - -/** @} */ - -#endif -/* end of include file */ diff --git a/cpukit/score/preinstall.am b/cpukit/score/preinstall.am index 3bfc582830..35b57d055a 100644 --- a/cpukit/score/preinstall.am +++ b/cpukit/score/preinstall.am @@ -175,6 +175,10 @@ $(PROJECT_INCLUDE)/rtems/score/schedulersimple.h: include/rtems/score/schedulers $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulersimple.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulersimple.h +$(PROJECT_INCLUDE)/rtems/score/schedulersimpleimpl.h: include/rtems/score/schedulersimpleimpl.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulersimpleimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulersimpleimpl.h + $(PROJECT_INCLUDE)/rtems/score/smp.h: include/rtems/score/smp.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/smp.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/smp.h @@ -327,10 +331,6 @@ $(PROJECT_INCLUDE)/rtems/score/schedulerpriority.inl: inline/rtems/score/schedul $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulerpriority.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulerpriority.inl -$(PROJECT_INCLUDE)/rtems/score/schedulersimple.inl: inline/rtems/score/schedulersimple.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulersimple.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulersimple.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/schedulersimplereadyqueueenqueue.c b/cpukit/score/src/schedulersimplereadyqueueenqueue.c index b33512f902..990f47dbff 100644 --- a/cpukit/score/src/schedulersimplereadyqueueenqueue.c +++ b/cpukit/score/src/schedulersimplereadyqueueenqueue.c @@ -18,11 +18,7 @@ #include "config.h" #endif -#include -#include -#include -#include -#include +#include void _Scheduler_simple_Ready_queue_enqueue( Thread_Control *the_thread diff --git a/cpukit/score/src/schedulersimplereadyqueueenqueuefirst.c b/cpukit/score/src/schedulersimplereadyqueueenqueuefirst.c index c5ee8ebe12..8db729ccf1 100644 --- a/cpukit/score/src/schedulersimplereadyqueueenqueuefirst.c +++ b/cpukit/score/src/schedulersimplereadyqueueenqueuefirst.c @@ -18,10 +18,7 @@ #include "config.h" #endif -#include -#include -#include -#include +#include void _Scheduler_simple_Ready_queue_enqueue_first( Thread_Control *the_thread diff --git a/cpukit/score/src/schedulersimplesmp.c b/cpukit/score/src/schedulersimplesmp.c index ec1b0e27f4..b197af5cd8 100644 --- a/cpukit/score/src/schedulersimplesmp.c +++ b/cpukit/score/src/schedulersimplesmp.c @@ -19,6 +19,7 @@ #endif #include +#include static Scheduler_simple_smp_Control *_Scheduler_simple_smp_Instance( void ) { diff --git a/cpukit/score/src/schedulersimpleyield.c b/cpukit/score/src/schedulersimpleyield.c index cfbe7a4cba..05f803e791 100644 --- a/cpukit/score/src/schedulersimpleyield.c +++ b/cpukit/score/src/schedulersimpleyield.c @@ -18,11 +18,8 @@ #include "config.h" #endif -#include +#include #include -#include -#include -#include void _Scheduler_simple_Yield( Thread_Control *thread ) { -- cgit v1.2.3