summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-13 11:29:53 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-14 14:20:30 +0200
commit3246b0f8fcbf6e3ae3d7c2a87117f67b79cb1665 (patch)
tree1bab5f10ebe6413148ecaccd8ee7195450984d94
parentsapi: Add nanoseconds_per_tick to configuration (diff)
downloadrtems-3246b0f8fcbf6e3ae3d7c2a87117f67b79cb1665.tar.bz2
score: New structure TOD_Control
Group the global TOD variables (_TOD_Now, _TOD_Uptime, and _TOD_Is_set) in a structure to reduce address loads in _TOD_Tickle_ticks().
-rw-r--r--cpukit/rtems/src/clockgetsecondssinceepoch.c2
-rw-r--r--cpukit/rtems/src/clockgettod.c2
-rw-r--r--cpukit/rtems/src/clockgettodtimeval.c2
-rw-r--r--cpukit/rtems/src/taskwakewhen.c2
-rw-r--r--cpukit/rtems/src/timerfirewhen.c2
-rw-r--r--cpukit/rtems/src/timerserverfirewhen.c2
-rw-r--r--cpukit/score/include/rtems/score/tod.h45
-rw-r--r--cpukit/score/src/coretod.c6
-rw-r--r--cpukit/score/src/coretodget.c4
-rw-r--r--cpukit/score/src/coretodgetuptime.c4
-rw-r--r--cpukit/score/src/coretodset.c4
-rw-r--r--cpukit/score/src/coretodtickle.c4
-rw-r--r--testsuites/sptests/spsize/size.c4
13 files changed, 43 insertions, 40 deletions
diff --git a/cpukit/rtems/src/clockgetsecondssinceepoch.c b/cpukit/rtems/src/clockgetsecondssinceepoch.c
index 040a4070e0..91ca553421 100644
--- a/cpukit/rtems/src/clockgetsecondssinceepoch.c
+++ b/cpukit/rtems/src/clockgetsecondssinceepoch.c
@@ -28,7 +28,7 @@ rtems_status_code rtems_clock_get_seconds_since_epoch(
if ( !the_interval )
return RTEMS_INVALID_ADDRESS;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
*the_interval = _TOD_Seconds_since_epoch();
diff --git a/cpukit/rtems/src/clockgettod.c b/cpukit/rtems/src/clockgettod.c
index b94d0dc118..dd68ec578d 100644
--- a/cpukit/rtems/src/clockgettod.c
+++ b/cpukit/rtems/src/clockgettod.c
@@ -33,7 +33,7 @@ rtems_status_code rtems_clock_get_tod(
if ( !time_buffer )
return RTEMS_INVALID_ADDRESS;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
/* Obtain the current time */
diff --git a/cpukit/rtems/src/clockgettodtimeval.c b/cpukit/rtems/src/clockgettodtimeval.c
index 66eab0b9f4..a3fb49d92e 100644
--- a/cpukit/rtems/src/clockgettodtimeval.c
+++ b/cpukit/rtems/src/clockgettodtimeval.c
@@ -28,7 +28,7 @@ rtems_status_code rtems_clock_get_tod_timeval(
if ( !time )
return RTEMS_INVALID_ADDRESS;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
_TOD_Get_timeval( time );
diff --git a/cpukit/rtems/src/taskwakewhen.c b/cpukit/rtems/src/taskwakewhen.c
index 8043db548d..d181848c91 100644
--- a/cpukit/rtems/src/taskwakewhen.c
+++ b/cpukit/rtems/src/taskwakewhen.c
@@ -51,7 +51,7 @@ rtems_status_code rtems_task_wake_when(
{
Watchdog_Interval seconds;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
if ( !time_buffer )
diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c
index b3e1231ef0..df24e2aad3 100644
--- a/cpukit/rtems/src/timerfirewhen.c
+++ b/cpukit/rtems/src/timerfirewhen.c
@@ -50,7 +50,7 @@ rtems_status_code rtems_timer_fire_when(
Objects_Locations location;
rtems_interval seconds;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
if ( !_TOD_Validate( wall_time ) )
diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c
index 2a1172d420..5f029a0d35 100644
--- a/cpukit/rtems/src/timerserverfirewhen.c
+++ b/cpukit/rtems/src/timerserverfirewhen.c
@@ -55,7 +55,7 @@ rtems_status_code rtems_timer_server_fire_when(
if ( !timer_server )
return RTEMS_INCORRECT_STATE;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
if ( !routine )
diff --git a/cpukit/score/include/rtems/score/tod.h b/cpukit/score/include/rtems/score/tod.h
index e9a2e84381..06cc9003dd 100644
--- a/cpukit/score/include/rtems/score/tod.h
+++ b/cpukit/score/include/rtems/score/tod.h
@@ -123,26 +123,29 @@ extern "C" {
/**@{*/
/**
- * @brief Is the Time Of Day Set
- *
- * This is true if the application has set the current
- * time of day, and false otherwise.
- */
-SCORE_EXTERN bool _TOD_Is_set;
-
-/**
- * @brief Current Time of Day (Timespec)
- *
- * The following contains the current time of day.
- */
-SCORE_EXTERN Timestamp_Control _TOD_Now;
-
-/**
- * @brief Current Time of Day (Timespec)
- *
- * The following contains the running uptime.
- */
-SCORE_EXTERN Timestamp_Control _TOD_Uptime;
+ * @brief TOD control.
+ */
+typedef struct {
+ /**
+ * @brief Current time of day value.
+ */
+ Timestamp_Control now;
+
+ /**
+ * @brief System uptime.
+ */
+ Timestamp_Control uptime;
+
+ /**
+ * @brief Indicates if the time of day is set.
+ *
+ * This is true if the application has set the current
+ * time of day, and false otherwise.
+ */
+ bool is_set;
+} TOD_Control;
+
+SCORE_EXTERN TOD_Control _TOD;
/**
* @brief Seconds Since RTEMS Epoch
@@ -151,7 +154,7 @@ SCORE_EXTERN Timestamp_Control _TOD_Uptime;
* January 1, TOD_BASE_YEAR until the current time of day.
*/
#define _TOD_Seconds_since_epoch() \
- _Timestamp_Get_seconds(&_TOD_Now)
+ _Timestamp_Get_seconds(&_TOD.now)
/**
* @brief _TOD_Handler_initialization
diff --git a/cpukit/score/src/coretod.c b/cpukit/score/src/coretod.c
index 30efa76d79..1784a897a4 100644
--- a/cpukit/score/src/coretod.c
+++ b/cpukit/score/src/coretod.c
@@ -33,12 +33,12 @@
void _TOD_Handler_initialization(void)
{
/* POSIX format TOD (timespec) */
- _Timestamp_Set( &_TOD_Now, TOD_SECONDS_1970_THROUGH_1988, 0 );
+ _Timestamp_Set( &_TOD.now, TOD_SECONDS_1970_THROUGH_1988, 0 );
/* Uptime (timespec) */
- _Timestamp_Set_to_zero( &_TOD_Uptime );
+ _Timestamp_Set_to_zero( &_TOD.uptime );
/* TOD has not been set */
- _TOD_Is_set = false;
+ _TOD.is_set = false;
_TOD_Activate();
}
diff --git a/cpukit/score/src/coretodget.c b/cpukit/score/src/coretodget.c
index 3e73a8daab..94517e5926 100644
--- a/cpukit/score/src/coretodget.c
+++ b/cpukit/score/src/coretodget.c
@@ -31,9 +31,9 @@ void _TOD_Get_as_timestamp(
/* assume time checked for NULL by caller */
- /* _TOD_Now is the native current time */
+ /* _TOD.now is the native current time */
_ISR_Disable( level );
- now = _TOD_Now;
+ now = _TOD.now;
nanoseconds = (*_Watchdog_Nanoseconds_since_tick_handler)();
_ISR_Enable( level );
diff --git a/cpukit/score/src/coretodgetuptime.c b/cpukit/score/src/coretodgetuptime.c
index 454252921e..c3c05aed3c 100644
--- a/cpukit/score/src/coretodgetuptime.c
+++ b/cpukit/score/src/coretodgetuptime.c
@@ -42,9 +42,9 @@ void _TOD_Get_uptime(
/* assume time checked for NULL by caller */
- /* _TOD_Uptime is in native timestamp format */
+ /* _TOD.uptime is in native timestamp format */
_ISR_Disable( level );
- up = _TOD_Uptime;
+ up = _TOD.uptime;
nanoseconds = (*_Watchdog_Nanoseconds_since_tick_handler)();
_ISR_Enable( level );
diff --git a/cpukit/score/src/coretodset.c b/cpukit/score/src/coretodset.c
index e1b86a3976..9708ef9477 100644
--- a/cpukit/score/src/coretodset.c
+++ b/cpukit/score/src/coretodset.c
@@ -38,8 +38,8 @@ void _TOD_Set_with_timestamp(
else
_Watchdog_Adjust_seconds( WATCHDOG_FORWARD, seconds_next - seconds_now );
- _TOD_Now = *tod;
- _TOD_Is_set = true;
+ _TOD.now = *tod;
+ _TOD.is_set = true;
_TOD_Activate();
_Thread_Enable_dispatch();
diff --git a/cpukit/score/src/coretodtickle.c b/cpukit/score/src/coretodtickle.c
index 25ab6f3408..fbf67fda79 100644
--- a/cpukit/score/src/coretodtickle.c
+++ b/cpukit/score/src/coretodtickle.c
@@ -44,11 +44,11 @@ void _TOD_Tickle_ticks( void )
_Watchdog_Ticks_since_boot += 1;
/* Update the timespec format uptime */
- _Timestamp_Add_to( &_TOD_Uptime, &tick );
+ _Timestamp_Add_to( &_TOD.uptime, &tick );
/* we do not care how much the uptime changed */
/* Update the timespec format TOD */
- seconds = _Timestamp_Add_to_at_tick( &_TOD_Now, &tick );
+ seconds = _Timestamp_Add_to_at_tick( &_TOD.now, &tick );
while ( seconds ) {
_Watchdog_Tickle_seconds();
seconds--;
diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c
index cc37288765..529cdd3049 100644
--- a/testsuites/sptests/spsize/size.c
+++ b/testsuites/sptests/spsize/size.c
@@ -406,8 +406,8 @@ uninitialized =
/*timer.h*/ (sizeof _Timer_Information) +
-/*tod.h*/ (sizeof _TOD_Now) +
- (sizeof _TOD_Uptime) +
+/*tod.h*/ (sizeof _TOD.now) +
+ (sizeof _TOD.uptime) +
/*tqdata.h*/ 0 +