1/* $Id$ $Revision$ */
2/* vim:set shiftwidth=4 ts=8: */
3
4/*************************************************************************
5 * Copyright (c) 2011 AT&T Intellectual Property
6 * All rights reserved. This program and the accompanying materials
7 * are made available under the terms of the Eclipse Public License v1.0
8 * which accompanies this distribution, and is available at
9 * http://www.eclipse.org/legal/epl-v10.html
10 *
11 * Contributors: See CVS logs. Details at http://www.graphviz.org/
12 *************************************************************************/
13
14#ifndef _WIN32
15
16#include <unistd.h>
17#include <sys/types.h>
18#include <sys/times.h>
19#include <sys/param.h>
20
21
22
23#ifndef HZ
24#define HZ 60
25#endif
26typedef struct tms mytime_t;
27#define GET_TIME(S) times(&(S))
28#define DIFF_IN_SECS(S,T) ((S.tms_utime + S.tms_stime - T.tms_utime - T.tms_stime)/(double)HZ)
29
30#else
31
32#include <time.h>
33#include "render.h"
34#include "utils.h"
35
36typedef clock_t mytime_t;
37#define GET_TIME(S) S = clock()
38#define DIFF_IN_SECS(S,T) ((S - T) / (double)CLOCKS_PER_SEC)
39
40#endif
41
42
43static mytime_t T;
44
45void start_timer(void)
46{
47 GET_TIME(T);
48}
49
50double elapsed_sec(void)
51{
52 mytime_t S;
53 double rv;
54
55 GET_TIME(S);
56 rv = DIFF_IN_SECS(S, T);
57 return rv;
58}
59