source: trunk/libs/newlib/src/libgloss/frv/sim-time.c @ 597

Last change on this file since 597 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.6 KB
RevLine 
[444]1/* sim-time.c -- stubs so clock can be linked in.
2 *
3 * Copyright (c) 2002 Red Hat, Inc
4 *
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.
14 */
15#include <errno.h>
16#include <sys/time.h>
17#include <sys/times.h>
18#include "glue.h"
19
20/*
21 * time -- simulator interface to return current time in seconds.
22 */
23__asm__ ("\
24        .text\n\
25        .globl  _sim_time\n\
26        .type   _sim_time,@function\n\
27_sim_time:\n\
28        setlos  #18, gr7\n\
29        tira    gr0, #0\n\
30        ret\n\
31.Lsim:\n\
32        .size   _sim_time,.Lsim-_sim_time");
33
34extern time_t _sim_time (void) __asm__("_sim_time");
35
36
37/*
38 * time -- return current time in seconds.
39 */
40time_t
41time (time_t *t)
42{
43  time_t ret = _sim_time ();
44
45  if (t)
46    *t = ret;
47
48  return ret;
49}
50
51/*
52 * _times -- no clock, so return an error.
53 */
54int
55_times (struct tms *buf)
56{
57  errno = EINVAL;
58  return (-1);
59}
60
61/*
62 * _gettimeofday -- implement in terms of time, which means we can't return the
63 * microseconds.
64 */
65int
66_gettimeofday (struct timeval *tv,
67        void *tzvp)
68{
69  struct timezone *tz = tzvp;
70  if (tz)
71    tz->tz_minuteswest = tz->tz_dsttime = 0;
72
73  tv->tv_usec = 0;
74  tv->tv_sec = _sim_time ();
75  return 0;
76}
Note: See TracBrowser for help on using the repository browser.