* University of Maryland at College Park
*/
/*
- * $Id: clock.h,v 1.5 2002/04/08 00:16:18 jrjackson Exp $
+ * $Id: clock.h,v 1.6 2006/05/25 01:47:11 johnfranks Exp $
*
* interface for timing functions
*/
#include "amanda.h"
-typedef struct times_s {
- struct timeval r;
+typedef GTimeVal times_t;
-#ifdef INSTRUMENTATION
- struct timeval u,s;
-#endif
-} times_t;
+/* NOT THREAD SAFE */
+void startclock(void);
+times_t stopclock(void);
+times_t curclock(void);
+char * walltime_str(times_t t);
+int clock_is_running(void);
-extern times_t times_zero, start_time;
+/* Thread safe */
+times_t timeadd(times_t a, times_t b);
+#define timesadd(x, y) timeadd(x, y)
-#ifdef HAVE_TWO_ARG_GETTIMEOFDAY
-# define amanda_timezone struct timezone
-# define amanda_gettimeofday(x, y) gettimeofday((x), (y))
-#else
-# define amanda_timezone int
-# define amanda_gettimeofday(x, y) gettimeofday((x))
-#endif
+times_t timesub(times_t a, times_t b);
+#define timessub(x, y) timesub(x, y)
+
+double g_timeval_to_double(GTimeVal v);
+
+void amanda_gettimeofday(struct timeval * timeval_time);
-void startclock P((void));
-times_t stopclock P((void));
-times_t curclock P((void));
-times_t timesadd P((times_t a, times_t b));
-times_t timessub P((times_t a, times_t b));
-char * times_str P((times_t t));
-char * walltime_str P((times_t t));
-int clock_is_running P((void));
#endif /* CLOCK_H */