diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-12-08 19:41:31 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-12-08 19:41:31 +0000 |
commit | c16bcc009b3bec9f653cefbe5247ef9d74352833 (patch) | |
tree | bbe12a1ed854be9a8ab090f774b0fc096bb76cc9 /cpukit/rtems/src/ratemonperiod.c | |
parent | 2008-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-c16bcc009b3bec9f653cefbe5247ef9d74352833.tar.bz2 |
2008-12-08 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/src/__times.c, libmisc/cpuuse/cpuusagereport.c,
libmisc/cpuuse/cpuusagereset.c, posix/src/clockgettime.c,
posix/src/pthread.c, posix/src/timersettime.c,
rtems/include/rtems/rtems/ratemon.h,
rtems/src/clockgetsecondssinceepoch.c, rtems/src/clockgetuptime.c,
rtems/src/ratemongetstatus.c, rtems/src/ratemonperiod.c,
rtems/src/ratemonreportstatistics.c, rtems/src/taskwakewhen.c,
rtems/src/timerfirewhen.c, rtems/src/timerserver.c,
rtems/src/timerserverfirewhen.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/score/thread.h,
score/include/rtems/score/tod.h, score/src/coretod.c,
score/src/coretodget.c, score/src/coretodgetuptime.c,
score/src/coretodset.c, score/src/coretodtickle.c,
score/src/threaddispatch.c, score/src/threadinitialize.c: Add
SuperCore handler Timestamp to provide an opaque class for the
representation and manipulation of uptime, time of day, and the
difference between two timestamps. By using SuperCore Timestamp, it
is clear which methods and APIs really have to be struct timespec and
which can be in an optimized native format.
* score/include/rtems/score/timestamp.h,
score/src/coretodgetuptimetimespec.c: New files.
Diffstat (limited to 'cpukit/rtems/src/ratemonperiod.c')
-rw-r--r-- | cpukit/rtems/src/ratemonperiod.c | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 26db51f43b..db3b179e98 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -22,11 +22,6 @@ #include <rtems/score/object.h> #include <rtems/rtems/ratemon.h> #include <rtems/score/thread.h> -#if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ - defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) - #include <rtems/score/timespec.h> - extern struct timespec _Thread_Time_of_last_context_switch; -#endif void _Rate_monotonic_Update_statistics( Rate_monotonic_Control *the_period @@ -40,7 +35,7 @@ void _Rate_monotonic_Update_statistics( #endif #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) - struct timespec uptime; + Timestamp_Control uptime; /* * Obtain the current time since boot @@ -60,7 +55,7 @@ void _Rate_monotonic_Update_statistics( #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS period_start = the_period->time_at_period; - _Timespec_Subtract( &period_start, &uptime, &since_last_period ); + _Timestamp_Subtract( &period_start, &uptime, &since_last_period ); the_period->time_at_period = uptime; #else since_last_period = _Watchdog_Ticks_since_boot - the_period->time_at_period; @@ -75,17 +70,17 @@ void _Rate_monotonic_Update_statistics( used = _Thread_Executing->cpu_time_used; /* partial period, cpu usage info reset while executing. Throw away */ - if (_Timespec_Less_than( &used, &the_period->owner_executed_at_period)) + if (_Timestamp_Less_than( &used, &the_period->owner_executed_at_period)) return; /* How much time time since last context switch */ - _Timespec_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); + _Timestamp_Subtract(&_Thread_Time_of_last_context_switch, &uptime, &ran); /* executed += ran */ - _Timespec_Add_to( &used, &ran ); + _Timestamp_Add_to( &used, &ran ); /* executed = current cpu usage - value at start of period */ - _Timespec_Subtract( + _Timestamp_Subtract( &the_period->owner_executed_at_period, &used, &executed @@ -112,12 +107,12 @@ void _Rate_monotonic_Update_statistics( */ #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS - _Timespec_Add_to( &stats->total_cpu_time, &executed ); + _Timestamp_Add_to( &stats->total_cpu_time, &executed ); - if ( _Timespec_Less_than( &executed, &stats->min_cpu_time ) ) + if ( _Timestamp_Less_than( &executed, &stats->min_cpu_time ) ) stats->min_cpu_time = executed; - if ( _Timespec_Greater_than( &executed, &stats->max_cpu_time ) ) + if ( _Timestamp_Greater_than( &executed, &stats->max_cpu_time ) ) stats->max_cpu_time = executed; #else stats->total_cpu_time += executed; @@ -142,12 +137,12 @@ void _Rate_monotonic_Update_statistics( if ( since_last_period > stats->max_wall_time ) stats->max_wall_time = since_last_period; #else - _Timespec_Add_to( &stats->total_wall_time, &since_last_period ); + _Timestamp_Add_to( &stats->total_wall_time, &since_last_period ); - if ( _Timespec_Less_than( &since_last_period, &stats->min_wall_time ) ) + if ( _Timestamp_Less_than( &since_last_period, &stats->min_wall_time ) ) stats->min_wall_time = since_last_period; - if ( _Timespec_Greater_than( &since_last_period, &stats->max_wall_time ) ) + if ( _Timestamp_Greater_than( &since_last_period, &stats->max_wall_time ) ) stats->max_wall_time = since_last_period; #endif } @@ -211,7 +206,7 @@ rtems_status_code rtems_rate_monotonic_period( case RATE_MONOTONIC_INACTIVE: { #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) - struct timespec uptime; + Timestamp_Control uptime; #endif /* @@ -244,7 +239,7 @@ rtems_status_code rtems_rate_monotonic_period( _Thread_Executing->cpu_time_used; /* How much time time since last context switch */ - _Timespec_Subtract( + _Timestamp_Subtract( &_Thread_Time_of_last_context_switch, &uptime, &ran @@ -254,7 +249,7 @@ rtems_status_code rtems_rate_monotonic_period( * * the_period->owner_executed_at_period += ran */ - _Timespec_Add_to( &the_period->owner_executed_at_period, &ran ); + _Timestamp_Add_to( &the_period->owner_executed_at_period, &ran ); } #else the_period->owner_executed_at_period = |