From e90b1dfdda68f467c66445502afc092ec687b520 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 23 Jul 2013 13:51:08 +0200 Subject: rtems: Create timer implementation header Move implementation specific parts of timer.h and timer.inl into new header file timerimpl.h. The timer.h contains now only the application visible API. --- cpukit/libcsupport/src/resource_snapshot.c | 1 + cpukit/rtems/Makefile.am | 2 +- cpukit/rtems/include/rtems/rtems/timer.h | 118 +------------ cpukit/rtems/include/rtems/rtems/timerimpl.h | 239 +++++++++++++++++++++++++++ cpukit/rtems/inline/rtems/rtems/timer.inl | 130 --------------- cpukit/rtems/preinstall.am | 8 +- cpukit/rtems/src/rtemstimer.c | 2 +- cpukit/rtems/src/rtemstimerdata.c | 3 +- cpukit/rtems/src/timercancel.c | 2 +- cpukit/rtems/src/timercreate.c | 2 +- cpukit/rtems/src/timerdelete.c | 2 +- cpukit/rtems/src/timerfireafter.c | 2 +- cpukit/rtems/src/timerfirewhen.c | 3 +- cpukit/rtems/src/timergetinfo.c | 2 +- cpukit/rtems/src/timerident.c | 2 +- cpukit/rtems/src/timerreset.c | 2 +- cpukit/rtems/src/timerserver.c | 2 +- cpukit/rtems/src/timerserverfireafter.c | 2 +- cpukit/rtems/src/timerserverfirewhen.c | 3 +- cpukit/sapi/src/rtemsapi.c | 2 +- testsuites/sptests/sp31/task1.c | 2 + testsuites/sptests/sp68/init.c | 2 + testsuites/sptests/spintrcritical17/init.c | 2 + testsuites/sptests/spsize/size.c | 4 +- 24 files changed, 272 insertions(+), 267 deletions(-) create mode 100644 cpukit/rtems/include/rtems/rtems/timerimpl.h delete mode 100644 cpukit/rtems/inline/rtems/rtems/timer.inl diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c index fba0b3dd4f..c04dcf6cb4 100644 --- a/cpukit/libcsupport/src/resource_snapshot.c +++ b/cpukit/libcsupport/src/resource_snapshot.c @@ -32,6 +32,7 @@ #include #include #include +#include #ifdef RTEMS_POSIX_API #include diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 1a95dc5d2e..5b6d526d2d 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -49,6 +49,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/statusimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/support.h include_rtems_rtems_HEADERS += include/rtems/rtems/tasks.h include_rtems_rtems_HEADERS += include/rtems/rtems/timer.h +include_rtems_rtems_HEADERS += include/rtems/rtems/timerimpl.h include_rtems_rtems_HEADERS += include/rtems/rtems/types.h if ATOMIC include_rtems_rtems_HEADERS += include/rtems/rtems/atomic.h @@ -70,7 +71,6 @@ endif include_rtems_rtems_HEADERS += inline/rtems/rtems/part.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/region.inl include_rtems_rtems_HEADERS += inline/rtems/rtems/tasks.inl -include_rtems_rtems_HEADERS += inline/rtems/rtems/timer.inl ## src librtems_a_SOURCES = src/rtemsbuildid.c diff --git a/cpukit/rtems/include/rtems/rtems/timer.h b/cpukit/rtems/include/rtems/rtems/timer.h index f27f958d9a..a8ebb7f2a4 100644 --- a/cpukit/rtems/include/rtems/rtems/timer.h +++ b/cpukit/rtems/include/rtems/rtems/timer.h @@ -41,29 +41,13 @@ #ifndef _RTEMS_RTEMS_TIMER_H #define _RTEMS_RTEMS_TIMER_H -/** - * @brief Instantiate RTEMS Timer Data - * - * This constant is defined to extern most of the time when using - * this header file. However by defining it to nothing, the data - * declared in this header file can be instantiated. This is done - * in a single per manager file. - */ -#ifndef RTEMS_TIMER_EXTERN -#define RTEMS_TIMER_EXTERN extern -#endif +#include +#include #ifdef __cplusplus extern "C" { #endif -#include -#include -#include -#include -#include -#include - /** * @defgroup ClassicTimer Timers * @@ -141,98 +125,6 @@ typedef struct { Timer_Classes the_class; } Timer_Control; -typedef struct Timer_server_Control Timer_server_Control; - -/** - * @brief Method used to schedule the insertion of task based timers. - */ -typedef void (*Timer_server_Schedule_operation)( - Timer_server_Control *timer_server, - Timer_Control *timer -); - -typedef struct { - /** - * @brief This watchdog that will be registered in the system tick mechanic - * for timer server wake-up. - */ - Watchdog_Control System_watchdog; - - /** - * @brief Chain for watchdogs which will be triggered by the timer server. - */ - Chain_Control Chain; - - /** - * @brief Last known time snapshot of the timer server. - * - * The units may be ticks or seconds. - */ - Watchdog_Interval volatile last_snapshot; -} Timer_server_Watchdogs; - -struct Timer_server_Control { - /** - * @brief Timer server thread. - */ - Thread_Control *thread; - - /** - * @brief The schedule operation method of the timer server. - */ - Timer_server_Schedule_operation schedule_operation; - - /** - * @brief Interval watchdogs triggered by the timer server. - */ - Timer_server_Watchdogs Interval_watchdogs; - - /** - * @brief TOD watchdogs triggered by the timer server. - */ - Timer_server_Watchdogs TOD_watchdogs; - - /** - * @brief Chain of timers scheduled for insert. - * - * This pointer is not @c NULL whenever the interval and TOD chains are - * processed. After the processing this list will be checked and if - * necessary the processing will be restarted. Processing of these chains - * can be only interrupted through interrupts. - */ - Chain_Control *volatile insert_chain; - - /** - * @brief Indicates that the timer server is active or not. - * - * The server is active after the delay on a system watchdog. The activity - * period of the server ends when no more watchdogs managed by the server - * fire. The system watchdogs must not be manipulated when the server is - * active. - */ - bool volatile active; -}; - -/** - * @brief Pointer to default timer server control block. - * - * This value is @c NULL when the default timer server is not initialized. - */ -RTEMS_TIMER_EXTERN Timer_server_Control *volatile _Timer_server; - -/** - * The following defines the information control block used to manage - * this class of objects. - */ -RTEMS_TIMER_EXTERN Objects_Information _Timer_Information; - -/** - * @brief Timer Manager Initialization - * - * This routine performs the initialization necessary for this manager. - */ -void _Timer_Manager_initialization(void); - /** * @brief RTEMS Create Timer * @@ -454,15 +346,11 @@ rtems_status_code rtems_timer_get_information( rtems_timer_information *the_info ); -#ifndef __RTEMS_APPLICATION__ -#include -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/timerimpl.h b/cpukit/rtems/include/rtems/rtems/timerimpl.h new file mode 100644 index 0000000000..c22658d99b --- /dev/null +++ b/cpukit/rtems/include/rtems/rtems/timerimpl.h @@ -0,0 +1,239 @@ +/** + * @file + * + * @ingroup ClassicTimerImpl + * + * @brief Classic Timer Implementation + */ + +/* + * COPYRIGHT (c) 1989-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_RTEMS_TIMER_INL +#define _RTEMS_RTEMS_TIMER_INL + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup ClassicTimerImpl Classic Timer Implementation + * + * @ingroup ClassicTimer + * + * @{ + */ + +/** + * @brief Instantiate RTEMS Timer Data + * + * This constant is defined to extern most of the time when using + * this header file. However by defining it to nothing, the data + * declared in this header file can be instantiated. This is done + * in a single per manager file. + */ +#ifndef RTEMS_TIMER_EXTERN +#define RTEMS_TIMER_EXTERN extern +#endif + +typedef struct Timer_server_Control Timer_server_Control; + +/** + * @brief Method used to schedule the insertion of task based timers. + */ +typedef void (*Timer_server_Schedule_operation)( + Timer_server_Control *timer_server, + Timer_Control *timer +); + +typedef struct { + /** + * @brief This watchdog that will be registered in the system tick mechanic + * for timer server wake-up. + */ + Watchdog_Control System_watchdog; + + /** + * @brief Chain for watchdogs which will be triggered by the timer server. + */ + Chain_Control Chain; + + /** + * @brief Last known time snapshot of the timer server. + * + * The units may be ticks or seconds. + */ + Watchdog_Interval volatile last_snapshot; +} Timer_server_Watchdogs; + +struct Timer_server_Control { + /** + * @brief Timer server thread. + */ + Thread_Control *thread; + + /** + * @brief The schedule operation method of the timer server. + */ + Timer_server_Schedule_operation schedule_operation; + + /** + * @brief Interval watchdogs triggered by the timer server. + */ + Timer_server_Watchdogs Interval_watchdogs; + + /** + * @brief TOD watchdogs triggered by the timer server. + */ + Timer_server_Watchdogs TOD_watchdogs; + + /** + * @brief Chain of timers scheduled for insert. + * + * This pointer is not @c NULL whenever the interval and TOD chains are + * processed. After the processing this list will be checked and if + * necessary the processing will be restarted. Processing of these chains + * can be only interrupted through interrupts. + */ + Chain_Control *volatile insert_chain; + + /** + * @brief Indicates that the timer server is active or not. + * + * The server is active after the delay on a system watchdog. The activity + * period of the server ends when no more watchdogs managed by the server + * fire. The system watchdogs must not be manipulated when the server is + * active. + */ + bool volatile active; +}; + +/** + * @brief Pointer to default timer server control block. + * + * This value is @c NULL when the default timer server is not initialized. + */ +RTEMS_TIMER_EXTERN Timer_server_Control *volatile _Timer_server; + +/** + * The following defines the information control block used to manage + * this class of objects. + */ +RTEMS_TIMER_EXTERN Objects_Information _Timer_Information; + +/** + * @brief Timer Manager Initialization + * + * This routine performs the initialization necessary for this manager. + */ +void _Timer_Manager_initialization(void); + +/** + * @brief Timer_Allocate + * + * This function allocates a timer control block from + * the inactive chain of free timer control blocks. + */ +RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Allocate( void ) +{ + return (Timer_Control *) _Objects_Allocate( &_Timer_Information ); +} + +/** + * @brief Timer_Free + * + * This routine frees a timer control block to the + * inactive chain of free timer control blocks. + */ +RTEMS_INLINE_ROUTINE void _Timer_Free ( + Timer_Control *the_timer +) +{ + _Objects_Free( &_Timer_Information, &the_timer->Object ); +} + +/** + * @brief Timer_Get + * + * This function maps timer IDs to timer control blocks. + * If ID corresponds to a local timer, then it returns + * the timer control pointer which maps to ID and location + * is set to OBJECTS_LOCAL. Otherwise, location is set + * to OBJECTS_ERROR and the returned value is undefined. + */ +RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( + Objects_Id id, + Objects_Locations *location +) +{ + return (Timer_Control *) + _Objects_Get( &_Timer_Information, id, location ); +} + +/** + * @brief Timer_Is_interval_class + * + * This function returns TRUE if the class is that of an INTERVAL + * timer, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Timer_Is_interval_class ( + Timer_Classes the_class +) +{ + return (the_class == TIMER_INTERVAL) || (the_class == TIMER_INTERVAL_ON_TASK); +} + +/** + * @brief Timer_Is_time_of_day_class + * + * This function returns TRUE if the class is that of an INTERVAL + * timer, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Timer_Is_timer_of_day_class ( + Timer_Classes the_class +) +{ + return ( the_class == TIMER_TIME_OF_DAY ); +} + +/** + * @brief Timer_Is_dormant_class + * + * This function returns TRUE if the class is that of a DORMANT + * timer, and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Timer_Is_dormant_class ( + Timer_Classes the_class +) +{ + return ( the_class == TIMER_DORMANT ); +} + +/** + * @brief Timer_Is_null + * + * This function returns TRUE if the_timer is NULL and FALSE otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Timer_Is_null ( + Timer_Control *the_timer +) +{ + return ( the_timer == NULL ); +} + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/cpukit/rtems/inline/rtems/rtems/timer.inl b/cpukit/rtems/inline/rtems/rtems/timer.inl deleted file mode 100644 index f4067ae09a..0000000000 --- a/cpukit/rtems/inline/rtems/rtems/timer.inl +++ /dev/null @@ -1,130 +0,0 @@ -/** - * @file rtems/rtems/timer.inl - * - * @defgroup ClassicTimer Timers - * - * @ingroup ClassicRTEMS - * @brief Inline Implementation from Timer Manager - * - * This file contains the static inline implementation of the inlined routines - * from the Timer Manager. - */ - -/* - * COPYRIGHT (c) 1989-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_RTEMS_TIMER_H -# error "Never use directly; include instead." -#endif - -#ifndef _RTEMS_RTEMS_TIMER_INL -#define _RTEMS_RTEMS_TIMER_INL - -/** - * @addtogroup ClassicTimer - * @{ - */ - -/** - * @brief Timer_Allocate - * - * This function allocates a timer control block from - * the inactive chain of free timer control blocks. - */ -RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Allocate( void ) -{ - return (Timer_Control *) _Objects_Allocate( &_Timer_Information ); -} - -/** - * @brief Timer_Free - * - * This routine frees a timer control block to the - * inactive chain of free timer control blocks. - */ -RTEMS_INLINE_ROUTINE void _Timer_Free ( - Timer_Control *the_timer -) -{ - _Objects_Free( &_Timer_Information, &the_timer->Object ); -} - -/** - * @brief Timer_Get - * - * This function maps timer IDs to timer control blocks. - * If ID corresponds to a local timer, then it returns - * the timer control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ -RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Timer_Control *) - _Objects_Get( &_Timer_Information, id, location ); -} - -/** - * @brief Timer_Is_interval_class - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Timer_Is_interval_class ( - Timer_Classes the_class -) -{ - return (the_class == TIMER_INTERVAL) || (the_class == TIMER_INTERVAL_ON_TASK); -} - -/** - * @brief Timer_Is_time_of_day_class - * - * This function returns TRUE if the class is that of an INTERVAL - * timer, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Timer_Is_timer_of_day_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_TIME_OF_DAY ); -} - -/** - * @brief Timer_Is_dormant_class - * - * This function returns TRUE if the class is that of a DORMANT - * timer, and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Timer_Is_dormant_class ( - Timer_Classes the_class -) -{ - return ( the_class == TIMER_DORMANT ); -} - -/** - * @brief Timer_Is_null - * - * This function returns TRUE if the_timer is NULL and FALSE otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Timer_Is_null ( - Timer_Control *the_timer -) -{ - return ( the_timer == NULL ); -} - -/**@}*/ - -#endif -/* end of include file */ diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am index 3b2817220b..05dd0d2b66 100644 --- a/cpukit/rtems/preinstall.am +++ b/cpukit/rtems/preinstall.am @@ -167,6 +167,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/timer.h: include/rtems/rtems/timer.h $(PROJECT_IN $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timer.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timer.h +$(PROJECT_INCLUDE)/rtems/rtems/timerimpl.h: include/rtems/rtems/timerimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timerimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timerimpl.h + $(PROJECT_INCLUDE)/rtems/rtems/types.h: include/rtems/rtems/types.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/types.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/types.h @@ -225,7 +229,3 @@ $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl: inline/rtems/rtems/tasks.inl $(PROJECT $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl -$(PROJECT_INCLUDE)/rtems/rtems/timer.inl: inline/rtems/rtems/timer.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timer.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timer.inl - diff --git a/cpukit/rtems/src/rtemstimer.c b/cpukit/rtems/src/rtemstimer.c index 6bf33c1fb3..f3ca9e0e85 100644 --- a/cpukit/rtems/src/rtemstimer.c +++ b/cpukit/rtems/src/rtemstimer.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/rtemstimerdata.c b/cpukit/rtems/src/rtemstimerdata.c index b3ed7e97bb..2830ea2782 100644 --- a/cpukit/rtems/src/rtemstimerdata.c +++ b/cpukit/rtems/src/rtemstimerdata.c @@ -20,5 +20,4 @@ #define RTEMS_TIMER_EXTERN -#include -#include +#include diff --git a/cpukit/rtems/src/timercancel.c b/cpukit/rtems/src/timercancel.c index 84eaee040d..1bec3559b5 100644 --- a/cpukit/rtems/src/timercancel.c +++ b/cpukit/rtems/src/timercancel.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timercreate.c b/cpukit/rtems/src/timercreate.c index 5968fb0316..21fa8cc0d8 100644 --- a/cpukit/rtems/src/timercreate.c +++ b/cpukit/rtems/src/timercreate.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerdelete.c b/cpukit/rtems/src/timerdelete.c index 7d3a722ad7..27bb26087a 100644 --- a/cpukit/rtems/src/timerdelete.c +++ b/cpukit/rtems/src/timerdelete.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerfireafter.c b/cpukit/rtems/src/timerfireafter.c index 62cc2172e2..aaa478e337 100644 --- a/cpukit/rtems/src/timerfireafter.c +++ b/cpukit/rtems/src/timerfireafter.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c index 2cdfc9842a..7dffbbe319 100644 --- a/cpukit/rtems/src/timerfirewhen.c +++ b/cpukit/rtems/src/timerfirewhen.c @@ -23,7 +23,8 @@ #include #include #include -#include +#include +#include #include #include diff --git a/cpukit/rtems/src/timergetinfo.c b/cpukit/rtems/src/timergetinfo.c index c3b6ec6847..2e13e577eb 100644 --- a/cpukit/rtems/src/timergetinfo.c +++ b/cpukit/rtems/src/timergetinfo.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerident.c b/cpukit/rtems/src/timerident.c index ea7911daef..f160b170b2 100644 --- a/cpukit/rtems/src/timerident.c +++ b/cpukit/rtems/src/timerident.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerreset.c b/cpukit/rtems/src/timerreset.c index 4afcbb2762..68feac6051 100644 --- a/cpukit/rtems/src/timerreset.c +++ b/cpukit/rtems/src/timerreset.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerserver.c b/cpukit/rtems/src/timerserver.c index 0dc69c522c..3c57def624 100644 --- a/cpukit/rtems/src/timerserver.c +++ b/cpukit/rtems/src/timerserver.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerserverfireafter.c b/cpukit/rtems/src/timerserverfireafter.c index c34a7e3bc0..f97eb3f5b2 100644 --- a/cpukit/rtems/src/timerserverfireafter.c +++ b/cpukit/rtems/src/timerserverfireafter.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c index 228c75dd76..090738cf98 100644 --- a/cpukit/rtems/src/timerserverfirewhen.c +++ b/cpukit/rtems/src/timerserverfirewhen.c @@ -23,7 +23,8 @@ #include #include #include -#include +#include +#include #include #include diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index 2077829c76..a83a19cfef 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -40,7 +40,7 @@ #include #include #include -#include +#include Objects_Information *_RTEMS_Objects[ OBJECTS_RTEMS_CLASSES_LAST + 1 ]; diff --git a/testsuites/sptests/sp31/task1.c b/testsuites/sptests/sp31/task1.c index 92b7498888..901c91385a 100644 --- a/testsuites/sptests/sp31/task1.c +++ b/testsuites/sptests/sp31/task1.c @@ -15,6 +15,8 @@ #include "system.h" +#include + rtems_timer_service_routine Should_not_fire_TSR( rtems_id ignored_id, void *ignored_address diff --git a/testsuites/sptests/sp68/init.c b/testsuites/sptests/sp68/init.c index 03401293db..44714b635b 100644 --- a/testsuites/sptests/sp68/init.c +++ b/testsuites/sptests/sp68/init.c @@ -25,6 +25,8 @@ #include +#include + /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); diff --git a/testsuites/sptests/spintrcritical17/init.c b/testsuites/sptests/spintrcritical17/init.c index 91d7b8de2e..aabd60ace8 100644 --- a/testsuites/sptests/spintrcritical17/init.c +++ b/testsuites/sptests/spintrcritical17/init.c @@ -18,6 +18,8 @@ #include #include +#include + /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c index a9ce736e1d..3e5ae9eb31 100644 --- a/testsuites/sptests/spsize/size.c +++ b/testsuites/sptests/spsize/size.c @@ -42,7 +42,7 @@ #include #include #include -#include +#include #include #include #include @@ -399,7 +399,7 @@ uninitialized = /*threadq.h*/ -/*timer.h*/ (sizeof _Timer_Information) + +/*timerimpl.h*/ (sizeof _Timer_Information) + /*tod.h*/ (sizeof _TOD.now) + (sizeof _TOD.uptime) + -- cgit v1.2.3