]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/common/clock_getres.c
Inital import
[l4.git] / l4 / pkg / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / common / clock_getres.c
diff --git a/l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/common/clock_getres.c b/l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/common/clock_getres.c
new file mode 100644 (file)
index 0000000..61413b6
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * clock_getres() for uClibc
+ *
+ * Copyright (C) 2005 by Peter Kjellerstedt <pkj@axis.com>
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <time.h>
+#include <unistd.h>
+
+#ifdef __NR_clock_getres
+_syscall2(int, clock_getres, clockid_t, clock_id, struct timespec*, res)
+#else
+
+int clock_getres(clockid_t clock_id, struct timespec* res)
+{
+       int retval = -1;
+
+       switch (clock_id) {
+               case CLOCK_REALTIME:
+                       if (res) {
+                               long clk_tck;
+
+                               if ((clk_tck = sysconf(_SC_CLK_TCK)) < 0)
+                                       clk_tck = 100;
+                               res->tv_sec = 0;
+                               res->tv_nsec = 1000000000 / clk_tck;
+                       }
+                       retval = 0;
+                       break;
+
+               default:
+                       errno = EINVAL;
+                       break;
+       }
+
+       return retval;
+}
+#endif
+libc_hidden_def(clock_getres)