purge remaining gpl code from clib, and make clib build again
[tangerine.git] / compiler / clib / clock.c
blob543ef147cf0b7e4aa3177fed5347a9dd514f1b9b
1 /*
2 Copyright © 1995-2003, The AROS Development Team. All rights reserved.
3 $Id$
5 Returns time passed since start of program.
6 */
8 #include "__arosc_privdata.h"
10 #include <dos/dos.h>
11 #include <proto/dos.h>
12 #include <aros/symbolsets.h>
14 /*****************************************************************************
16 NAME */
17 #include <time.h>
19 clock_t clock (
21 /* SYNOPSIS */
22 void)
24 /* FUNCTION
25 clock() returns an approximation of the time passed since
26 the program was started
28 INPUTS
30 RESULT
31 The time passed in CLOCKS_PER_SEC units. To get the
32 number of seconds divide by CLOCKS_PER_SEC.
34 NOTES
35 This function must not be used in a shared library or
36 in a threaded application.
38 EXAMPLE
40 BUGS
42 SEE ALSO
43 time()
45 INTERNALS
47 ******************************************************************************/
49 struct DateStamp t;
50 clock_t retval;
52 DateStamp (&t); /* Get timestamp */
54 /* Day difference */
55 retval = (t.ds_Days - __startup_datestamp.ds_Days);
57 /* Convert into minutes */
58 retval *= (24 * 60);
60 /* Minute difference */
61 retval += (t.ds_Minute - __startup_datestamp.ds_Minute);
63 /* Convert into CLOCKS_PER_SEC (which is the same as TICKS_PER_SECOND) units */
64 retval *= (60 * TICKS_PER_SECOND);
66 /* Add tick difference */
67 retval += (t.ds_Tick - __startup_datestamp.ds_Tick);
69 return retval;
71 } /* clock */
73 int __init_clock(void)
75 DateStamp(&__startup_datestamp);
76 return 1;
79 ADD2INIT(__init_clock, 20);