OSX: Fixup warnings and clock_gettime() bug

Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/engines/posixaio.c b/engines/posixaio.c
index 0872f9a..a943e5b 100644
--- a/engines/posixaio.c
+++ b/engines/posixaio.c
@@ -19,13 +19,25 @@
 
 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");
-#endif
 	return 1;
+#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)
@@ -91,6 +103,8 @@
 
 	if (t && !fill_timespec(&start))
 		have_timeout = 1;
+	else
+		memset(&start, 0, sizeof(start));
 
 	r = 0;
 	memset(suspend_list, 0, sizeof(*suspend_list));
diff --git a/os/os-mac.h b/os/os-mac.h
index 0f351a7..c8d7dca 100644
--- a/os/os-mac.h
+++ b/os/os-mac.h
@@ -16,10 +16,6 @@
 
 #include "../file.h"
 
-#ifndef CLOCK_MONOTONIC
-#define CLOCK_MONOTONIC 1
-#endif
-
 #ifndef CLOCK_REALTIME
 #define CLOCK_REALTIME 1
 #endif
@@ -177,4 +173,11 @@
 {
 	return mach_thread_self();
 }
+
+/*
+ * For some reason, there's no header definition for fdatasync(), even
+ * if it exists.
+ */
+extern int fdatasync(int fd);
+
 #endif