diff options
Diffstat (limited to 'c/src/lib/libc/__times.c')
-rw-r--r-- | c/src/lib/libc/__times.c | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/c/src/lib/libc/__times.c b/c/src/lib/libc/__times.c index 635bf8e062..5f7525ec5f 100644 --- a/c/src/lib/libc/__times.c +++ b/c/src/lib/libc/__times.c @@ -1,6 +1,5 @@ /* - * RTEMS _times Implementation - * + * times() - POSIX 1003.1b 4.5.2 - Get Process Times * * COPYRIGHT (c) 1989-1998. * On-Line Applications Research Corporation (OAR). @@ -25,8 +24,8 @@ clock_t _times( struct tms *ptms ) { - rtems_status_code status; - rtems_interval ticks_since_boot; + rtems_status_code status; + rtems_interval ticks; if ( !ptms ) { errno = EFAULT; @@ -34,21 +33,19 @@ clock_t _times( } /* "POSIX" does not seem to allow for not having a TOD */ - status = rtems_clock_get( - RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, - &ticks_since_boot - ); + status = rtems_clock_get( RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &ticks ); if ( status != RTEMS_SUCCESSFUL ) { assert( 0 ); return -1; } /* - * RTEMS has no notion of system versus user time and does - * not (as of 3.2.0) keep track of CPU usage on a per task basis. + * RTEMS has no notion of system versus user time and although + * a way to keep track of per task CPU usage was added since + * 3.6.0, this routine does not utilize it yet. */ - ptms->tms_utime = ticks_since_boot; + ptms->tms_utime = ticks; ptms->tms_stime = 0; ptms->tms_cutime = 0; ptms->tms_cstime = 0; @@ -56,6 +53,12 @@ clock_t _times( return 0; } +/* + * times() + * + * times() system call wrapper for _times() above. + */ + clock_t times( struct tms *ptms ) @@ -63,12 +66,21 @@ clock_t times( return _times( ptms ); } +/* + * _times_r + * + * This is the Newlib dependent reentrant version of times(). + */ + #if defined(RTEMS_NEWLIB) + +#include <reent.h> + clock_t _times_r( struct _reent *ptr, struct tms *ptms ) { - return _times(ptms); + return _times( ptms ); } #endif |