diff options
Diffstat (limited to 'testsuites/psxtests/psx11/task.c')
-rw-r--r-- | testsuites/psxtests/psx11/task.c | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/testsuites/psxtests/psx11/task.c b/testsuites/psxtests/psx11/task.c deleted file mode 100644 index dbc90cbc58..0000000000 --- a/testsuites/psxtests/psx11/task.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Task_1 - * - * This routine serves as a test task. It verifies the basic task - * switching capabilities of the executive. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" -#include <time.h> -#include <sched.h> - -void diff_timespec( - struct timespec *start, - struct timespec *stop, - struct timespec *result -) -{ - int nsecs_per_sec = 1000000000; - - result->tv_sec = stop->tv_sec - start->tv_sec; - if ( stop->tv_nsec < start->tv_nsec ) { - result->tv_nsec = nsecs_per_sec - start->tv_nsec + stop->tv_nsec; - result->tv_sec--; - } else - result->tv_nsec = stop->tv_nsec - start->tv_nsec; - -} - -void *Task_1( - void *argument -) -{ - int status; - struct timespec start; - struct timespec current; - struct timespec difference; - struct timespec delay; - - status = clock_gettime( CLOCK_REALTIME, &start ); - assert( !status ); - - status = sched_rr_get_interval( getpid(), &delay ); - assert( !status ); - - /* double the rr interval for confidence */ - - delay.tv_sec *= 2; - delay.tv_nsec *= 2; - if ( delay.tv_nsec >= 1000000000 ) { /* handle overflow/carry */ - delay.tv_nsec -= 1000000000; - delay.tv_sec++; - } - - - puts( "Task_1: killing time" ); - for ( ; ; ) { - - status = clock_gettime( CLOCK_REALTIME, ¤t ); - assert( !status ); - - diff_timespec( &start, ¤t, &difference ); - - if ( difference.tv_sec < delay.tv_sec ) - continue; - - if ( difference.tv_sec > delay.tv_sec ) - break; - - if ( difference.tv_nsec > delay.tv_nsec ) - break; - - } - - puts( "Task_1: exitting" ); - pthread_exit( NULL ); - - return NULL; /* just so the compiler thinks we returned something */ -} |