summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/cpuuse
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-12-08 19:41:31 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-12-08 19:41:31 +0000
commitc16bcc009b3bec9f653cefbe5247ef9d74352833 (patch)
treebbe12a1ed854be9a8ab090f774b0fc096bb76cc9 /cpukit/libmisc/cpuuse
parent2008-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-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/libmisc/cpuuse')
-rw-r--r--cpukit/libmisc/cpuuse/cpuusagereport.c24
-rw-r--r--cpukit/libmisc/cpuuse/cpuusagereset.c6
2 files changed, 16 insertions, 14 deletions
diff --git a/cpukit/libmisc/cpuuse/cpuusagereport.c b/cpukit/libmisc/cpuuse/cpuusagereport.c
index 144be50645..b0144948e4 100644
--- a/cpukit/libmisc/cpuuse/cpuusagereport.c
+++ b/cpukit/libmisc/cpuuse/cpuusagereport.c
@@ -28,11 +28,11 @@
#include <rtems/bspIo.h>
#if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS)
- #include <rtems/score/timespec.h>
+ #include <rtems/score/timestamp.h>
#endif
#ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- extern struct timespec CPU_usage_Uptime_at_last_reset;
+ extern Timestamp_Control CPU_usage_Uptime_at_last_reset;
#else
extern uint32_t CPU_usage_Ticks_at_last_reset;
#endif
@@ -54,7 +54,7 @@ void rtems_cpu_usage_report_with_plugin(
char name[13];
uint32_t ival, fval;
#ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- struct timespec uptime, total, ran;
+ Timestamp_Control uptime, total, ran;
#else
uint32_t total_units = 0;
#endif
@@ -69,7 +69,7 @@ void rtems_cpu_usage_report_with_plugin(
*/
#ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
_TOD_Get_uptime( &uptime );
- _Timespec_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total );
+ _Timestamp_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total );
#else
for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
if ( !_Objects_Information_table[ api_index ] )
@@ -123,13 +123,13 @@ void rtems_cpu_usage_report_with_plugin(
*/
ran = the_thread->cpu_time_used;
if ( _Thread_Executing->Object.id == the_thread->Object.id ) {
- struct timespec used;
- _Timespec_Subtract(
+ Timestamp_Control used;
+ _Timestamp_Subtract(
&_Thread_Time_of_last_context_switch, &uptime, &used
);
- _Timespec_Add_to( &ran, &used );
+ _Timestamp_Add_to( &ran, &used );
};
- _Timespec_Divide( &ran, &total, &ival, &fval );
+ _Timestamp_Divide( &ran, &total, &ival, &fval );
/*
* Print the information
@@ -137,7 +137,9 @@ void rtems_cpu_usage_report_with_plugin(
(*print)( context,
"%3" PRId32 ".%06" PRId32 " %3" PRId32 ".%03" PRId32 "\n",
- ran.tv_sec, ran.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND,
+ _Timestamp_Get_seconds( &ran ),
+ _Timestamp_Get_nanoseconds( &ran ) /
+ TOD_NANOSECONDS_PER_MICROSECOND,
ival, fval
);
#else
@@ -159,8 +161,8 @@ void rtems_cpu_usage_report_with_plugin(
#ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
(*print)( context, "Time since last CPU Usage reset %" PRId32
".%06" PRId32 " seconds\n",
- total.tv_sec,
- total.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND
+ _Timestamp_Get_seconds( &total ),
+ _Timestamp_Get_nanoseconds( &total ) / TOD_NANOSECONDS_PER_MICROSECOND
);
#else
(*print)( context,
diff --git a/cpukit/libmisc/cpuuse/cpuusagereset.c b/cpukit/libmisc/cpuuse/cpuusagereset.c
index b6920702e1..233631dda2 100644
--- a/cpukit/libmisc/cpuuse/cpuusagereset.c
+++ b/cpukit/libmisc/cpuuse/cpuusagereset.c
@@ -16,6 +16,7 @@
#endif
#include <rtems.h>
+#include <rtems/score/timestamp.h>
#include <stdlib.h>
#include <ctype.h>
@@ -28,8 +29,7 @@ static void CPU_usage_Per_thread_handler(
)
{
#ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- the_thread->cpu_time_used.tv_sec = 0;
- the_thread->cpu_time_used.tv_nsec = 0;
+ _Timestamp_Set_to_zero( &the_thread->cpu_time_used );
#else
the_thread->cpu_time_used = 0;
#endif
@@ -40,7 +40,7 @@ static void CPU_usage_Per_thread_handler(
* External data that is shared by cpu usage code but not declared in .h files.
*/
#ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- extern struct timespec CPU_usage_Uptime_at_last_reset;
+ extern Timestamp_Control CPU_usage_Uptime_at_last_reset;
#else
extern uint32_t CPU_usage_Ticks_at_last_reset;
#endif