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/ratemonreportstatistics.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/ratemonreportstatistics.c')
-rw-r--r-- | cpukit/rtems/src/ratemonreportstatistics.c | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/cpukit/rtems/src/ratemonreportstatistics.c b/cpukit/rtems/src/ratemonreportstatistics.c index e8949f4b5e..02a0237faa 100644 --- a/cpukit/rtems/src/ratemonreportstatistics.c +++ b/cpukit/rtems/src/ratemonreportstatistics.c @@ -24,7 +24,7 @@ #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) - #include <rtems/score/timespec.h> + #include <rtems/score/timestamp.h> /* We print to 1/10's of milliseconds */ #define NANOSECONDS_DIVIDER 1000 @@ -149,23 +149,22 @@ ididididid NNNN ccccc mmmmmm X */ { #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS - struct timespec cpu_average; + Timestamp_Control cpu_average; + Timestamp_Control *min_cpu = &the_stats.min_cpu_time; + Timestamp_Control *max_cpu = &the_stats.max_cpu_time; + Timestamp_Control *total_cpu = &the_stats.total_cpu_time; - _Timespec_Divide_by_integer( - &the_stats.total_cpu_time, - the_stats.count, - &cpu_average - ); + _Timestamp_Divide_by_integer( total_cpu, the_stats.count, &cpu_average ); (*print)( context, "%" PRId32 "." NANOSECONDS_FMT "/" /* min cpu time */ "%" PRId32 "." NANOSECONDS_FMT "/" /* max cpu time */ "%" PRId32 "." NANOSECONDS_FMT " ", /* avg cpu time */ - the_stats.min_cpu_time.tv_sec, - the_stats.min_cpu_time.tv_nsec / NANOSECONDS_DIVIDER, - the_stats.max_cpu_time.tv_sec, - the_stats.max_cpu_time.tv_nsec / NANOSECONDS_DIVIDER, - cpu_average.tv_sec, - cpu_average.tv_nsec / NANOSECONDS_DIVIDER + _Timestamp_Get_seconds( min_cpu ), + _Timestamp_Get_nanoseconds( min_cpu ) / NANOSECONDS_DIVIDER, + _Timestamp_Get_seconds( max_cpu ), + _Timestamp_Get_nanoseconds( max_cpu ) / NANOSECONDS_DIVIDER, + _Timestamp_Get_seconds( &cpu_average ), + _Timestamp_Get_nanoseconds( &cpu_average ) / NANOSECONDS_DIVIDER ); #else uint32_t ival_cpu, fval_cpu; @@ -186,22 +185,22 @@ ididididid NNNN ccccc mmmmmm X */ { #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS - struct timespec wall_average; - _Timespec_Divide_by_integer( - &the_stats.total_wall_time, - the_stats.count, - &wall_average - ); + Timestamp_Control wall_average; + Timestamp_Control *min_wall = &the_stats.min_wall_time; + Timestamp_Control *max_wall = &the_stats.max_wall_time; + Timestamp_Control *total_wall = &the_stats.total_wall_time; + + _Timestamp_Divide_by_integer(total_wall, the_stats.count, &wall_average); (*print)( context, "%" PRId32 "." NANOSECONDS_FMT "/" /* min wall time */ "%" PRId32 "." NANOSECONDS_FMT "/" /* max wall time */ "%" PRId32 "." NANOSECONDS_FMT "\n", /* avg wall time */ - the_stats.min_wall_time.tv_sec, - the_stats.min_wall_time.tv_nsec / NANOSECONDS_DIVIDER, - the_stats.max_wall_time.tv_sec, - the_stats.max_wall_time.tv_nsec / NANOSECONDS_DIVIDER, - wall_average.tv_sec, - wall_average.tv_nsec / NANOSECONDS_DIVIDER + _Timestamp_Get_seconds( min_wall ), + _Timestamp_Get_nanoseconds( min_wall ) / NANOSECONDS_DIVIDER, + _Timestamp_Get_seconds( max_wall ), + _Timestamp_Get_nanoseconds( max_wall ) / NANOSECONDS_DIVIDER, + _Timestamp_Get_seconds( &wall_average ), + _Timestamp_Get_nanoseconds( &wall_average ) / NANOSECONDS_DIVIDER ); #else uint32_t ival_wall, fval_wall; |