From b79953cfe90214e5f937b551922edb79ec53cfe8 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 23 Jul 2013 11:25:28 +0200 Subject: rtems: Create modes implementation header Move implementation specific parts of modes.h and modes.inl into new header file modesimpl.h. The modes.h contains now only the application visible API. --- cpukit/rtems/Makefile.am | 2 +- cpukit/rtems/include/rtems/rtems/modes.h | 18 ++-- cpukit/rtems/include/rtems/rtems/modesimpl.h | 146 +++++++++++++++++++++++++++ cpukit/rtems/inline/rtems/rtems/modes.inl | 135 ------------------------- cpukit/rtems/preinstall.am | 8 +- cpukit/rtems/src/taskcreate.c | 2 +- cpukit/rtems/src/taskmode.c | 2 +- 7 files changed, 160 insertions(+), 153 deletions(-) create mode 100644 cpukit/rtems/include/rtems/rtems/modesimpl.h delete mode 100644 cpukit/rtems/inline/rtems/rtems/modes.inl diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 78af7e9943..817e4ccaff 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -29,6 +29,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/intr.h include_rtems_rtems_HEADERS += include/rtems/rtems/message.h include_rtems_rtems_HEADERS += include/rtems/rtems/messageimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/modes.h +include_rtems_rtems_HEADERS += include/rtems/rtems/modesimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/object.h include_rtems_rtems_HEADERS += include/rtems/rtems/options.h include_rtems_rtems_HEADERS += include/rtems/rtems/optionsimpl.h @@ -67,7 +68,6 @@ include_rtems_rtems_HEADERS += inline/rtems/rtems/asr.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/dpmem.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/event.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/eventset.inl -include_rtems_rtems_HEADERS += inline/rtems/rtems/modes.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/part.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/ratemon.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/region.inl diff --git a/cpukit/rtems/include/rtems/rtems/modes.h b/cpukit/rtems/include/rtems/rtems/modes.h index 9a4bf73f91..7b07c8892f 100644 --- a/cpukit/rtems/include/rtems/rtems/modes.h +++ b/cpukit/rtems/include/rtems/rtems/modes.h @@ -21,6 +21,12 @@ #ifndef _RTEMS_RTEMS_MODES_H #define _RTEMS_RTEMS_MODES_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup ClassicModes Modes * @@ -30,12 +36,6 @@ */ /**@{*/ -#ifdef __cplusplus -extern "C" { -#endif - -#include - /** * The following type defines the control block used to manage * each a mode set. @@ -121,15 +121,11 @@ Modes_Control rtems_interrupt_level_body( uint32_t level ); -#ifndef __RTEMS_APPLICATION__ -#include -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/modesimpl.h b/cpukit/rtems/include/rtems/rtems/modesimpl.h new file mode 100644 index 0000000000..7aa6bcb3f0 --- /dev/null +++ b/cpukit/rtems/include/rtems/rtems/modesimpl.h @@ -0,0 +1,146 @@ +/** + * @file + * + * @ingroup ClassicModesImpl + * + * @brief Classic Modes Implementation + */ + +/* COPYRIGHT (c) 1989-2008. + * 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_RTEMS_MODESIMPL_H +#define _RTEMS_RTEMS_MODESIMPL_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup ClassicModesImpl Classic Modes Implementation + * + * @ingroup ClassicModes + * + * @{ + */ + +/** + * @brief Checks if any of the mode flags in mask are set in mode_set. + * + * This function returns TRUE if any of the mode flags in mask + * are set in mode_set, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Modes_Mask_changed ( + Modes_Control mode_set, + Modes_Control masks +) +{ + return ( mode_set & masks ) ? true : false; +} + +/** + * @brief Checks if mode_set says that Asynchronous Signal Processing is disabled. + * + * This function returns TRUE if mode_set indicates that Asynchronous + * Signal Processing is disabled, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Modes_Is_asr_disabled ( + Modes_Control mode_set +) +{ + return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR; +} + +/** + * @brief Checks if mode_set indicates that preemption is enabled. + * + * This function returns TRUE if mode_set indicates that preemption + * is enabled, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Modes_Is_preempt ( + Modes_Control mode_set +) +{ + return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT; +} + +/** + * @brief Checks if mode_set indicates that timeslicing is enabled. + * + * This function returns TRUE if mode_set indicates that timeslicing + * is enabled, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Modes_Is_timeslice ( + Modes_Control mode_set +) +{ + return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE; +} + +/** + * @brief Gets the interrupt level portion of the mode_set. + * + * This function returns the interrupt level portion of the mode_set. + */ +RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level ( + Modes_Control mode_set +) +{ + return ( mode_set & RTEMS_INTERRUPT_MASK ); +} + +/** + * @brief Sets the current interrupt level to that specified in the mode_set. + * + * This routine sets the current interrupt level to that specified + * in the mode_set. + */ +RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level ( + Modes_Control mode_set +) +{ + _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); +} + +/** + * @brief Changes the modes in old_mode_set indicated by + * mask to the requested values in new_mode_set. + * + * This routine changes the modes in old_mode_set indicated by + * mask to the requested values in new_mode_set. The resulting + * mode set is returned in out_mode_set and the modes that changed + * is returned in changed. + */ +RTEMS_INLINE_ROUTINE void _Modes_Change ( + Modes_Control old_mode_set, + Modes_Control new_mode_set, + Modes_Control mask, + Modes_Control *out_mode_set, + Modes_Control *changed +) +{ + Modes_Control _out_mode; + + _out_mode = old_mode_set; + _out_mode &= ~mask; + _out_mode |= new_mode_set & mask; + *changed = _out_mode ^ old_mode_set; + *out_mode_set = _out_mode; +} + +#ifdef __cplusplus +} +#endif + +/**@}*/ + +#endif +/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/modes.inl b/cpukit/rtems/inline/rtems/rtems/modes.inl deleted file mode 100644 index 034032154e..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/modes.inl +++ /dev/null @@ -1,135 +0,0 @@ -/** - * @file rtems/rtems/modes.inl - * - * This include file contains the static inline implementation of the - * inlined routines in the Mode Handler - */ - -/* COPYRIGHT (c) 1989-2008. - * 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_RTEMS_MODES_H -# error "Never use directly; include instead." -#endif - -#ifndef _RTEMS_RTEMS_MODES_INL -#define _RTEMS_RTEMS_MODES_INL - -/** - * @addtogroup ClassicModes - * @{ - */ - -/** - * @brief Checks if any of the mode flags in mask are set in mode_set. - * - * This function returns TRUE if any of the mode flags in mask - * are set in mode_set, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Modes_Mask_changed ( - Modes_Control mode_set, - Modes_Control masks -) -{ - return ( mode_set & masks ) ? true : false; -} - -/** - * @brief Checks if mode_set says that Asynchronous Signal Processing is disabled. - * - * This function returns TRUE if mode_set indicates that Asynchronous - * Signal Processing is disabled, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Modes_Is_asr_disabled ( - Modes_Control mode_set -) -{ - return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR; -} - -/** - * @brief Checks if mode_set indicates that preemption is enabled. - * - * This function returns TRUE if mode_set indicates that preemption - * is enabled, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Modes_Is_preempt ( - Modes_Control mode_set -) -{ - return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT; -} - -/** - * @brief Checks if mode_set indicates that timeslicing is enabled. - * - * This function returns TRUE if mode_set indicates that timeslicing - * is enabled, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Modes_Is_timeslice ( - Modes_Control mode_set -) -{ - return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE; -} - -/** - * @brief Gets the interrupt level portion of the mode_set. - * - * This function returns the interrupt level portion of the mode_set. - */ -RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level ( - Modes_Control mode_set -) -{ - return ( mode_set & RTEMS_INTERRUPT_MASK ); -} - -/** - * @brief Sets the current interrupt level to that specified in the mode_set. - * - * This routine sets the current interrupt level to that specified - * in the mode_set. - */ -RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level ( - Modes_Control mode_set -) -{ - _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); -} - -/** - * @brief Changes the modes in old_mode_set indicated by - * mask to the requested values in new_mode_set. - * - * This routine changes the modes in old_mode_set indicated by - * mask to the requested values in new_mode_set. The resulting - * mode set is returned in out_mode_set and the modes that changed - * is returned in changed. - */ -RTEMS_INLINE_ROUTINE void _Modes_Change ( - Modes_Control old_mode_set, - Modes_Control new_mode_set, - Modes_Control mask, - Modes_Control *out_mode_set, - Modes_Control *changed -) -{ - Modes_Control _out_mode; - - _out_mode = old_mode_set; - _out_mode &= ~mask; - _out_mode |= new_mode_set & mask; - *changed = _out_mode ^ old_mode_set; - *out_mode_set = _out_mode; -} - -/**@}*/ - -#endif -/* end of include file */ diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am index bd59ac9861..72b00a7849 100644 --- a/cpukit/rtems/preinstall.am +++ b/cpukit/rtems/preinstall.am @@ -87,6 +87,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/modes.h: include/rtems/rtems/modes.h $(PROJECT_IN $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modes.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modes.h +$(PROJECT_INCLUDE)/rtems/rtems/modesimpl.h: include/rtems/rtems/modesimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modesimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modesimpl.h + $(PROJECT_INCLUDE)/rtems/rtems/object.h: include/rtems/rtems/object.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/object.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/object.h @@ -213,10 +217,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl: inline/rtems/rtems/eventset.inl $(P $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/eventset.inl -$(PROJECT_INCLUDE)/rtems/rtems/modes.inl: inline/rtems/rtems/modes.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modes.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modes.inl - $(PROJECT_INCLUDE)/rtems/rtems/part.inl: inline/rtems/rtems/part.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/part.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/part.inl diff --git a/cpukit/rtems/src/taskcreate.c b/cpukit/rtems/src/taskcreate.c index 1b8d2cad09..d925d84983 100644 --- a/cpukit/rtems/src/taskcreate.c +++ b/cpukit/rtems/src/taskcreate.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/cpukit/rtems/src/taskmode.c b/cpukit/rtems/src/taskmode.c index eb3636d172..3439f89549 100644 --- a/cpukit/rtems/src/taskmode.c +++ b/cpukit/rtems/src/taskmode.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include -- cgit v1.2.3