Index: fusl/src/time/clock.c |
diff --git a/fusl/src/time/clock.c b/fusl/src/time/clock.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c348e39836caec86425652d6e0e3259ff9c05a2c |
--- /dev/null |
+++ b/fusl/src/time/clock.c |
@@ -0,0 +1,18 @@ |
+#include <time.h> |
+#include <limits.h> |
+ |
+int __clock_gettime(clockid_t, struct timespec *); |
+ |
+clock_t clock() |
+{ |
+ struct timespec ts; |
+ |
+ if (__clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts)) |
+ return -1; |
+ |
+ if (ts.tv_sec > LONG_MAX/1000000 |
+ || ts.tv_nsec/1000 > LONG_MAX-1000000*ts.tv_sec) |
+ return -1; |
+ |
+ return ts.tv_sec*1000000 + ts.tv_nsec/1000; |
+} |