From af9115f35cfb3d0adeb3e105fd608883596f2637 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 6 Oct 2017 10:07:38 +0200 Subject: posix: Simplify POSIX_API_Control Return stack area via pthread_getattr_np(). Simplify * pthread_attr_setaffinity_np(), and * pthread_attr_getaffinity_np() and let the scheduler do the more sophisticated error checks. Make * pthread_setaffinity_np(), * pthread_getaffinity_np(), * pthread_attr_setaffinity_np(), and * pthread_attr_getaffinity_np() available in all configurations. Update #2514. Close #3145. Close #3168. --- cpukit/posix/include/rtems/posix/pthreadimpl.h | 4 ++-- cpukit/posix/include/rtems/posix/threadsup.h | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'cpukit/posix/include/rtems/posix') diff --git a/cpukit/posix/include/rtems/posix/pthreadimpl.h b/cpukit/posix/include/rtems/posix/pthreadimpl.h index 90a60b6c4d..290fbad02e 100644 --- a/cpukit/posix/include/rtems/posix/pthreadimpl.h +++ b/cpukit/posix/include/rtems/posix/pthreadimpl.h @@ -59,12 +59,12 @@ RTEMS_INLINE_ROUTINE void _POSIX_Threads_Sporadic_timer_insert( ) { the_thread->cpu_time_budget = - _Timespec_To_ticks( &api->Attributes.schedparam.sched_ss_init_budget ); + _Timespec_To_ticks( &api->schedparam.sched_ss_init_budget ); _Watchdog_Per_CPU_insert_relative( &api->Sporadic.Timer, _Per_CPU_Get(), - _Timespec_To_ticks( &api->Attributes.schedparam.sched_ss_repl_period ) + _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period ) ); } diff --git a/cpukit/posix/include/rtems/posix/threadsup.h b/cpukit/posix/include/rtems/posix/threadsup.h index 3bb2210d97..cc250f7464 100644 --- a/cpukit/posix/include/rtems/posix/threadsup.h +++ b/cpukit/posix/include/rtems/posix/threadsup.h @@ -43,8 +43,14 @@ typedef struct { /** Back pointer to thread of this POSIX API control. */ Thread_Control *thread; - /** This is the POSIX threads attribute set. */ - pthread_attr_t Attributes; + /** Created with explicit or inherited scheduler. */ + bool created_with_explicit_scheduler; + + /** The scheduler policy. */ + int schedpolicy; + + /** The scheduler parameters */ + struct sched_param schedparam; /** * @brief Control block for the sporadic server scheduling policy. -- cgit v1.2.3