Files
rtems/cpukit/posix/src/clockgettime.c
T
Joel Sherrill fbfb59262d 2007-12-13 Joel Sherrill <joel.sherrill@OARcorp.com>
* posix/Makefile.am, posix/src/clockgetcpuclockid.c,
	posix/src/clockgetenableattr.c, posix/src/clockgettime.c,
	posix/src/clocksetenableattr.c, posix/src/clocksettime.c,
	posix/src/devctl.c, posix/src/execl.c, posix/src/execle.c,
	posix/src/execlp.c, posix/src/execv.c, posix/src/execve.c,
	posix/src/execvp.c, posix/src/fork.c, posix/src/mutexinit.c,
	posix/src/pthreadatfork.c, posix/src/pthreadgetcpuclockid.c,
	posix/src/pthreadkill.c, posix/src/semaphorecreatesupp.c,
	posix/src/sysconf.c, posix/src/wait.c, posix/src/waitpid.c: Split
	files into one function per file.
	* posix/src/aio_cancel.c, posix/src/aio_error.c, posix/src/aio_fsync.c,
	posix/src/aio_read.c, posix/src/aio_return.c,
	posix/src/aio_suspend.c, posix/src/aio_write.c,
	posix/src/lio_listio.c, posix/src/sched_getparam.c,
	posix/src/sched_getprioritymax.c, posix/src/sched_getprioritymin.c,
	posix/src/sched_getscheduler.c, posix/src/sched_rr_get_interval.c,
	posix/src/sched_setparam.c, posix/src/sched_setscheduler.c,
	posix/src/sched_yield.c: New files.
	* posix/src/aio.c, posix/src/sched.c, posix/src/types.c: Removed.
2007-12-13 16:52:21 +00:00

68 lines
1.2 KiB
C

/*
* COPYRIGHT (c) 1989-2007.
* 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.
*
* $Id$
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <time.h>
#include <errno.h>
#include <rtems/system.h>
#include <rtems/score/isr.h>
#include <rtems/score/thread.h>
#include <rtems/score/tod.h>
#include <rtems/seterr.h>
/*PAGE
*
* 14.2.1 Clocks, P1003.1b-1993, p. 263
*/
int clock_gettime(
clockid_t clock_id,
struct timespec *tp
)
{
if ( !tp )
rtems_set_errno_and_return_minus_one( EINVAL );
switch ( clock_id ) {
case CLOCK_REALTIME:
_TOD_Get(tp);
break;
#ifdef CLOCK_MONOTONIC
case CLOCK_MONOTONIC:
_TOD_Get_uptime(tp);
break;
#endif
#ifdef _POSIX_CPUTIME
case CLOCK_PROCESS_CPUTIME:
_TOD_Get_uptime(tp);
break;
#endif
#ifdef _POSIX_THREAD_CPUTIME
case CLOCK_THREAD_CPUTIME:
rtems_set_errno_and_return_minus_one( ENOSYS );
break;
#endif
default:
rtems_set_errno_and_return_minus_one( EINVAL );
}
return 0;
}