--- cpukit/posix/src/pthreadgetcpuclockid.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/cpukit/posix/src/pthreadgetcpuclockid.c b/cpukit/posix/src/pthreadgetcpuclockid.c index cd7814b..c15962e 100644 --- a/cpukit/posix/src/pthreadgetcpuclockid.c +++ b/cpukit/posix/src/pthreadgetcpuclockid.c @@ -7,8 +7,10 @@ /* * 20.1.6 Accessing a Thread CPU-time Clock, P1003.4b/Draft 8, p. 58 - * - * COPYRIGHT (c) 1989-2007. + */ + +/* + * COPYRIGHT (c) 1989-2007,2020. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -23,12 +25,31 @@ #include <pthread.h> #include <errno.h> -#include <rtems/seterr.h> +#include <rtems/score/threadimpl.h> int pthread_getcpuclockid( - pthread_t pid, + pthread_t thread, clockid_t *clock_id ) { - rtems_set_errno_and_return_minus_one( ENOSYS ); + Thread_Control *the_thread; + ISR_lock_Context lock_context; + + if ( clock_id == NULL ) { + return EINVAL; + } + + the_thread = _Thread_Get( thread, &lock_context ); + + if ( the_thread == NULL ) { + return ESRCH; + } + + _Thread_State_acquire_critical( the_thread, &lock_context ); + + *clock_id = the_thread->Object.id; + + _Thread_State_release( the_thread, &lock_context ); + + return 0; } -- 1.8.3.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel