Changes for 4.5.0 snapshot
[newlib-cygwin.git] / libgloss / moxie / sim-time.c
blob53793bfe1baad71504d4b30d8f9dfb1b44e06991
1 /* sim-time.c -- stubs so clock can be linked in.
3 * Copyright (c) 2008 Anthony Green
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.
15 #include <errno.h>
16 #include <sys/time.h>
17 #include <sys/times.h>
18 #include "glue.h"
21 * time -- simulator interface to return current time in seconds.
23 __asm__ ("\
24 .text\n\
25 .globl _sim_time\n\
26 .type _sim_time,@function\n\
27 _sim_time:\n\
28 jmpa _sim_time\n\
29 ret\n\
30 .Lsim:\n\
31 .size _sim_time,.Lsim-_sim_time");
33 extern time_t _sim_time (void) __asm__("_sim_time");
37 * time -- return current time in seconds.
39 time_t
40 time (time_t *t)
42 time_t ret = _sim_time ();
44 if (t)
45 *t = ret;
47 return ret;
51 * _times -- no clock, so return an error.
53 int
54 _times (struct tms *buf)
56 errno = EINVAL;
57 return (-1);
61 * _gettimeofday -- implement in terms of time, which means we can't return the
62 * microseconds.
64 int
65 _gettimeofday (struct timeval *tv,
66 void *tzvp)
68 struct timezone *tz = tzvp;
69 if (tz)
70 tz->tz_minuteswest = tz->tz_dsttime = 0;
72 tv->tv_usec = 0;
73 tv->tv_sec = _sim_time ();
74 return 0;