aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/pthread/getcpuclockid.c
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/sysdeps/pthread/getcpuclockid.c')
-rw-r--r--linuxthreads/sysdeps/pthread/getcpuclockid.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/linuxthreads/sysdeps/pthread/getcpuclockid.c b/linuxthreads/sysdeps/pthread/getcpuclockid.c
index ef1f84fd3e..76d39a5de4 100644
--- a/linuxthreads/sysdeps/pthread/getcpuclockid.c
+++ b/linuxthreads/sysdeps/pthread/getcpuclockid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,10 +19,22 @@
#include <errno.h>
#include <pthread.h>
#include <sys/time.h>
+#include <internals.h>
int
-pthread_getcpuclockid (pthread_t pthread_id, clockid_t *clock_id)
+pthread_getcpuclockid (pthread_t thread_id, clockid_t *clock_id)
{
+ /* We don't allow any process ID but our own. */
+ if (thread_handle (thread_id)->h_descr != thread_self ())
+ return EPERM;
+
+#ifdef CLOCK_THREAD_CPUTIME_ID
+ /* Store the number. */
+ *clock_id = CLOCK_THREAD_CPUTIME_ID;
+
+ return 0;
+#else
/* We don't have a timer for that. */
return ENOENT;
+#endif
}