diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-12-08 17:33:37 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-12-08 17:33:37 +0000 |
commit | bdd1f5d1af8a7278316cc2598015f555daeb86a5 (patch) | |
tree | 5bb33e60d80292f298fc9c4f1fcb96bcb63b339d /testsuites/psxtests | |
parent | 2008-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-bdd1f5d1af8a7278316cc2598015f555daeb86a5.tar.bz2 |
2008-12-08 Joel Sherrill <joel.sherrill@oarcorp.com>
* psxtimer01/psxtimer.c, psxtimer02/psxtimer.c: Obtain TOD with
clock_gettime() NOT by reaching into the SuperCore.
Diffstat (limited to 'testsuites/psxtests')
-rw-r--r-- | testsuites/psxtests/ChangeLog | 5 | ||||
-rw-r--r-- | testsuites/psxtests/psxtimer01/psxtimer.c | 9 | ||||
-rw-r--r-- | testsuites/psxtests/psxtimer02/psxtimer.c | 7 |
3 files changed, 18 insertions, 3 deletions
diff --git a/testsuites/psxtests/ChangeLog b/testsuites/psxtests/ChangeLog index 36f97f21fd..5935f2f3e1 100644 --- a/testsuites/psxtests/ChangeLog +++ b/testsuites/psxtests/ChangeLog @@ -1,3 +1,8 @@ +2008-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> + + * psxtimer01/psxtimer.c, psxtimer02/psxtimer.c: Obtain TOD with + clock_gettime() NOT by reaching into the SuperCore. + 2008-10-01 Joel Sherrill <joel.sherrill@oarcorp.com> * psx01/psx01.scn: Bump version to 4.9.99.0 diff --git a/testsuites/psxtests/psxtimer01/psxtimer.c b/testsuites/psxtests/psxtimer01/psxtimer.c index 0a36b24aa8..0ac1fbe8cc 100644 --- a/testsuites/psxtests/psxtimer01/psxtimer.c +++ b/testsuites/psxtests/psxtimer01/psxtimer.c @@ -12,6 +12,9 @@ * * Other POSIX facilities such as timers, condition, .. is also used * + * COPYRIGHT (c) 1989-2008. + * On-Line Applications Research Corporation (OAR). + * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. @@ -135,6 +138,7 @@ void * task_a (void *arg) void * task_b (void *arg) { struct timespec my_period; + struct timespec now; int my_sig, received_sig; struct itimerspec timerdata; timer_t timer_id; @@ -162,9 +166,10 @@ void * task_b (void *arg) pthread_sigmask(SIG_BLOCK,&set,NULL); /* set the timer in periodic mode */ + clock_gettime( CLOCK_REALTIME, &now ); timerdata.it_interval = my_period; - timerdata.it_value = _TOD_Now; - _Timespec_Add_to( &timerdata.it_value, &my_period); + timerdata.it_value = now; + _Timespec_Add_to( &timerdata.it_value, &my_period ); if (timer_settime(timer_id,TIMER_ABSTIME,&timerdata,NULL) == -1) { perror ("Error in timer setting\n"); pthread_exit ((void *) -1); diff --git a/testsuites/psxtests/psxtimer02/psxtimer.c b/testsuites/psxtests/psxtimer02/psxtimer.c index 9a97e5ccdf..22355387c7 100644 --- a/testsuites/psxtests/psxtimer02/psxtimer.c +++ b/testsuites/psxtests/psxtimer02/psxtimer.c @@ -12,6 +12,9 @@ * * Other POSIX facilities such as timers, condition, .. is also used * + * COPYRIGHT (c) 1989-2008. + * On-Line Applications Research Corporation (OAR). + * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. @@ -32,6 +35,7 @@ void *POSIX_Init ( ) { + struct timespec now; struct sigevent event; int status; timer_t timer; @@ -92,7 +96,8 @@ void *POSIX_Init ( status = timer_settime( timer, TIMER_ABSTIME, &itimer, NULL ); fatal_posix_service_status_errno( status, EINVAL, "bad itimer value #2" ); - itimer.it_value = _TOD_Now; + clock_gettime( CLOCK_REALTIME, &now ); + itimer.it_value = now; itimer.it_value.tv_sec = itimer.it_value.tv_sec - 1; puts( "timer_settime - bad itimer value - previous time - EINVAL" ); status = timer_settime( timer, TIMER_ABSTIME, &itimer, NULL ); |