浏览代码

implement the remaining clock_* interfaces

Rich Felker 14 年之前
父节点
当前提交
4b1244a0bf
共有 5 个文件被更改,包括 36 次插入0 次删除
  1. 11 0
      src/time/clock_getcpuclockid.c
  2. 8 0
      src/time/clock_getres.c
  3. 1 0
      src/time/clock_gettime.c
  4. 8 0
      src/time/clock_nanosleep.c
  5. 8 0
      src/time/clock_settime.c

+ 11 - 0
src/time/clock_getcpuclockid.c

@@ -0,0 +1,11 @@
+#include <time.h>
+#include <errno.h>
+#include <unistd.h>
+#include "syscall.h"
+
+int clock_getcpuclockid(pid_t pid, clockid_t *clk)
+{
+	if (pid && pid != getpid()) return EPERM;
+	*clk = CLOCK_PROCESS_CPUTIME_ID;
+	return 0;
+}

+ 8 - 0
src/time/clock_getres.c

@@ -0,0 +1,8 @@
+#define SYSCALL_RETURN_ERRNO
+#include <time.h>
+#include "syscall.h"
+
+int clock_getres(clockid_t clk, struct timespec *ts)
+{
+	return syscall2(__NR_clock_getres, clk, (long)ts);
+}

+ 1 - 0
src/time/clock_gettime.c

@@ -1,3 +1,4 @@
+#define SYSCALL_RETURN_ERRNO
 #include <time.h>
 #include <time.h>
 #include "syscall.h"
 #include "syscall.h"
 
 

+ 8 - 0
src/time/clock_nanosleep.c

@@ -0,0 +1,8 @@
+#define SYSCALL_RETURN_ERRNO
+#include <time.h>
+#include "syscall.h"
+
+int clock_nanosleep(clockid_t clk, int flags, const struct timespec *req, struct timespec *rem)
+{
+	return syscall4(__NR_clock_nanosleep, clk, flags, (long)req, (long)rem);
+}

+ 8 - 0
src/time/clock_settime.c

@@ -0,0 +1,8 @@
+#define SYSCALL_RETURN_ERRNO
+#include <time.h>
+#include "syscall.h"
+
+int clock_settime(clockid_t clk, const struct timespec *ts)
+{
+	return syscall2(__NR_clock_settime, clk, (long)ts);
+}