add legacy ftime function and sys/timeb.h
authorRich Felker <dalias@aerifal.cx>
Fri, 25 Oct 2013 18:15:08 +0000 (14:15 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 25 Oct 2013 18:15:08 +0000 (14:15 -0400)
despite being marked legacy, this was specified by SUSv3 as part of
the XSI option; only the most recent version of the standard dropped
it. reportedly there's actual code using it.

include/sys/timeb.h [new file with mode: 0644]
src/time/ftime.c [new file with mode: 0644]

diff --git a/include/sys/timeb.h b/include/sys/timeb.h
new file mode 100644 (file)
index 0000000..108c1f5
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef _SYS_TIMEB_H
+#define _SYS_TIMEB_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define __NEED_time_t
+
+#include <bits/alltypes.h>
+
+struct timeb {
+       time_t time;
+       unsigned short millitm;
+       short timezone, dstflag;
+};
+
+int ftime(struct timeb *);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/time/ftime.c b/src/time/ftime.c
new file mode 100644 (file)
index 0000000..a1734d0
--- /dev/null
@@ -0,0 +1,12 @@
+#include <sys/timeb.h>
+#include <time.h>
+
+int ftime(struct timeb *tp)
+{
+       struct timespec ts;
+       clock_gettime(CLOCK_REALTIME, &ts);
+       tp->time = ts.tv_sec;
+       tp->millitm = ts.tv_nsec / 1000000;
+       tp->timezone = tp->dstflag = 0;
+       return 0;
+}