+double xbt_os_time(void) {
+#ifdef HAVE_GETTIMEOFDAY
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+
+ return (double)(tv.tv_sec + tv.tv_usec / 1000000.0);
+#else
+ /* Poor resolution */
+ return (double)(time(NULL));
+#endif /* HAVE_GETTIMEOFDAY? */
+}
+
+/*XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sysdep, xbt, "System dependency");*/
+
+
+struct s_xbt_os_timer {
+#ifdef HAVE_GETTIMEOFDAY
+ struct timeval start,stop;
+#else
+ unsigned long int start,stop;
+#endif
+};
+
+xbt_os_timer_t xbt_os_timer_new(void) {
+ return xbt_new0(struct s_xbt_os_timer,1);
+}
+void xbt_os_timer_free(xbt_os_timer_t timer) {
+ free (timer);
+}
+void xbt_os_timer_start(xbt_os_timer_t timer) {
+#ifdef HAVE_GETTIMEOFDAY
+ gettimeofday(&(timer->start), NULL);
+#else
+ timer->start = (unsigned long int)(time(NULL));
+#endif