Signed-off-by: Jens Axboe <axboe@kernel.dk>
static int fill_timespec(struct timespec *ts)
{
static int fill_timespec(struct timespec *ts)
{
-#ifdef _POSIX_TIMERS
- if (!clock_gettime(CLOCK_MONOTONIC, ts))
+#ifdef CONFIG_CLOCK_GETTIME
+#ifdef CONFIG_CLOCK_MONOTONIC
+ clockid_t clk = CLOCK_MONOTONIC;
+#else
+ clockid_t clk = CLOCK_REALTIME;
+#endif
+ if (!clock_gettime(clk, ts))
return 0;
perror("clock_gettime");
return 0;
perror("clock_gettime");
+#else
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ return 0;
+#endif
}
static unsigned long long ts_utime_since_now(struct timespec *t)
}
static unsigned long long ts_utime_since_now(struct timespec *t)
if (t && !fill_timespec(&start))
have_timeout = 1;
if (t && !fill_timespec(&start))
have_timeout = 1;
+ else
+ memset(&start, 0, sizeof(start));
r = 0;
memset(suspend_list, 0, sizeof(*suspend_list));
r = 0;
memset(suspend_list, 0, sizeof(*suspend_list));
-#ifndef CLOCK_MONOTONIC
-#define CLOCK_MONOTONIC 1
-#endif
-
#ifndef CLOCK_REALTIME
#define CLOCK_REALTIME 1
#endif
#ifndef CLOCK_REALTIME
#define CLOCK_REALTIME 1
#endif
{
return mach_thread_self();
}
{
return mach_thread_self();
}
+
+/*
+ * For some reason, there's no header definition for fdatasync(), even
+ * if it exists.
+ */
+extern int fdatasync(int fd);
+