Changes for 4.5.0 snapshot
[newlib-cygwin.git] / libgloss / crx / time.c
blobe82468cb9bd90265763f4af8bd85d00edcbdad65
1 /* time.c -- Implementation of the low-level time() routine
3 * Copyright (c) 2004 National Semiconductor Corporation
5 * The authors hereby grant permission to use, copy, modify, distribute,
6 * and license this software and its documentation for any purpose, provided
7 * that existing copyright notices are retained in all copies and that this
8 * notice is included verbatim in any distributions. No written agreement,
9 * license, or royalty fee is required for any of the authorized uses.
10 * Modifications to this software may be copyrighted by their authors
11 * and need not follow the licensing terms described here, provided that
12 * the new terms are clearly indicated on the first page of each file where
13 * they apply.
16 #include <unistd.h>
17 #include <time.h>
18 #include <errno.h>
19 #include <sys/time.h>
20 #include <sys/times.h>
21 #include <sys/syscall.h>
23 time_t _Time (time_t *timer)
25 HOST_SERVICE (SVC_TIME);
28 time_t time (time_t *tod)
30 time_t t = _Time (NULL);
32 if (tod)
33 *tod = t;
35 return (t);
38 /* _times -- no clock, so return an error. */
39 clock_t times (struct tms *buf)
41 errno = EINVAL;
42 return (-1);
45 /* _gettimeofday -- implement in terms of time. */
46 int gettimeofday (struct timeval *tv, void *tzvp)
48 struct timezone *tz = tzvp;
49 if (tz)
50 tz->tz_minuteswest = tz->tz_dsttime = 0;
52 tv->tv_usec = 0;
53 tv->tv_sec = time (0);
54 return 0;