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/posix/src | |
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/posix/src')
-rw-r--r-- | cpukit/posix/src/clockgettime.c | 24 | ||||
-rw-r--r-- | cpukit/posix/src/pthread.c | 1 | ||||
-rw-r--r-- | cpukit/posix/src/timersettime.c | 6 |
3 files changed, 21 insertions, 10 deletions
diff --git a/cpukit/posix/src/clockgettime.c b/cpukit/posix/src/clockgettime.c index d94bd16f98..8182f8e70f 100644 --- a/cpukit/posix/src/clockgettime.c +++ b/cpukit/posix/src/clockgettime.c @@ -36,22 +36,30 @@ int clock_gettime( if ( !tp ) rtems_set_errno_and_return_minus_one( EINVAL ); - if ( clock_id == CLOCK_REALTIME ) + if ( clock_id == CLOCK_REALTIME ) { _TOD_Get(tp); + return 0; + } #ifdef CLOCK_MONOTONIC - else if ( clock_id == CLOCK_MONOTONIC ) - _TOD_Get_uptime(tp); + if ( clock_id == CLOCK_MONOTONIC ) { + _TOD_Get_uptime_as_timespec( tp ); + return 0; + } #endif + #ifdef _POSIX_CPUTIME - else if ( clock_id == CLOCK_PROCESS_CPUTIME ) - _TOD_Get_uptime(tp); + if ( clock_id == CLOCK_PROCESS_CPUTIME ) { + _TOD_Get_uptime_as_timespec( tp ); + return 0; + } #endif + #ifdef _POSIX_THREAD_CPUTIME - else if ( clock_id == CLOCK_THREAD_CPUTIME ) + if ( clock_id == CLOCK_THREAD_CPUTIME ) rtems_set_errno_and_return_minus_one( ENOSYS ); #endif - else - rtems_set_errno_and_return_minus_one( EINVAL ); + + rtems_set_errno_and_return_minus_one( EINVAL ); return 0; } diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c index 4a53d939be..d8aab727f2 100644 --- a/cpukit/posix/src/pthread.c +++ b/cpukit/posix/src/pthread.c @@ -31,6 +31,7 @@ #include <rtems/posix/config.h> #include <rtems/posix/key.h> #include <rtems/posix/time.h> +#include <rtems/score/timespec.h> /*PAGE * diff --git a/cpukit/posix/src/timersettime.c b/cpukit/posix/src/timersettime.c index 6099ae0400..eb7738a5b9 100644 --- a/cpukit/posix/src/timersettime.c +++ b/cpukit/posix/src/timersettime.c @@ -59,10 +59,12 @@ int timer_settime( /* Convert absolute to relative time */ if (flags == TIMER_ABSTIME) { + struct timespec now; + _TOD_Get( &now ); /* Check for seconds in the past */ - if ( _Timespec_Greater_than( &_TOD_Now, &normalize.it_value ) ) + if ( _Timespec_Greater_than( &now, &normalize.it_value ) ) rtems_set_errno_and_return_minus_one( EINVAL ); - _Timespec_Subtract( &_TOD_Now, &normalize.it_value, &normalize.it_value ); + _Timespec_Subtract( &now, &normalize.it_value, &normalize.it_value ); } /* If the function reaches this point, then it will be necessary to do |