rtems_task Init( rtems_task_argument argument ) { clock_t start; clock_t end; clock_t now; clock_t sc; clock_t difference; struct tms start_tm; struct tms end_tm; int interval = 5; puts( "\n\n*** TEST TIMES 01 ***" ); puts( "times( NULL ) -- EFAULT" ); sc = times( NULL ); rtems_test_assert( sc == -1 ); rtems_test_assert( errno == EFAULT ); puts( "_times_r( NULL, NULL ) -- EFAULT" ); start = _times_r( NULL, NULL ); rtems_test_assert( sc == -1 ); rtems_test_assert( errno == EFAULT ); while ( rtems_clock_get_ticks_since_boot() == 0 ) ; puts( "_times( &start_tm ) -- OK" ); now = _times( &start_tm ); rtems_test_assert( start != 0 ); rtems_test_assert( now != 0 ); rtems_test_spin_for_ticks( interval ); puts( "_times( &end_tm ) -- OK" ); end = _times( &end_tm ); rtems_test_assert( end != 0 ); puts( "Check various values" ); difference = end - start; rtems_test_assert( difference >= interval ); rtems_test_assert( end_tm.tms_utime - start_tm.tms_utime >= interval ); rtems_test_assert( end_tm.tms_stime - start_tm.tms_stime >= interval ); rtems_test_assert( end_tm.tms_cutime == 0 ); rtems_test_assert( end_tm.tms_cstime == 0 ); puts( "*** END OF TEST TIMES 01 ***" ); rtems_test_exit(0); }
int clock() { struct tbuf t; _times(&t); return( (int)(t.utime + t.stime) & #if EM_WSIZE <= 2 077777 #else 0x7fffffffL #endif ); }
/** * times() system call wrapper for _times() above. */ clock_t times( struct tms *ptms ) { return _times( ptms ); }