From bd5be58fa6b4f1108fc69c8ff55cf2d20ddde620 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 10 Oct 2017 07:18:09 +0200 Subject: posix: Unconditional thread attribute support Update #2514. --- cpukit/posix/include/rtems/posix/pthreadattrimpl.h | 71 ++++++++++++++++++++++ cpukit/posix/include/rtems/posix/pthreadimpl.h | 29 --------- 2 files changed, 71 insertions(+), 29 deletions(-) create mode 100644 cpukit/posix/include/rtems/posix/pthreadattrimpl.h (limited to 'cpukit/posix/include') diff --git a/cpukit/posix/include/rtems/posix/pthreadattrimpl.h b/cpukit/posix/include/rtems/posix/pthreadattrimpl.h new file mode 100644 index 0000000000..a52be931a1 --- /dev/null +++ b/cpukit/posix/include/rtems/posix/pthreadattrimpl.h @@ -0,0 +1,71 @@ +/** + * @file + * + * @brief POSIX Threads Private Support + * + * This include file contains all the private support information for + * POSIX threads. + */ + +/* + * COPYRIGHT (c) 1989-2011. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#ifndef _RTEMS_POSIX_PTHREADATTRIMPL_H +#define _RTEMS_POSIX_PTHREADATTRIMPL_H + +#include +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup POSIX_PTHREAD + */ +/**@{**/ + +/** + * This variable contains the default POSIX Thread attributes. + */ +extern const pthread_attr_t _POSIX_Threads_Default_attributes; + +RTEMS_INLINE_ROUTINE void _POSIX_Threads_Copy_attributes( + pthread_attr_t *dst_attr, + const pthread_attr_t *src_attr +) +{ + *dst_attr = *src_attr; + _Assert( + dst_attr->affinitysetsize == sizeof(dst_attr->affinitysetpreallocated) + ); + dst_attr->affinityset = &dst_attr->affinitysetpreallocated; +} + +RTEMS_INLINE_ROUTINE void _POSIX_Threads_Initialize_attributes( + pthread_attr_t *attr +) +{ + _POSIX_Threads_Copy_attributes( + attr, + &_POSIX_Threads_Default_attributes + ); +} + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/cpukit/posix/include/rtems/posix/pthreadimpl.h b/cpukit/posix/include/rtems/posix/pthreadimpl.h index 6b338f9d5c..055043105b 100644 --- a/cpukit/posix/include/rtems/posix/pthreadimpl.h +++ b/cpukit/posix/include/rtems/posix/pthreadimpl.h @@ -48,11 +48,6 @@ extern "C" { */ extern Thread_Information _POSIX_Threads_Information; -/** - * This variable contains the default POSIX Thread attributes. - */ -extern const pthread_attr_t _POSIX_Threads_Default_attributes; - RTEMS_INLINE_ROUTINE void _POSIX_Threads_Sporadic_timer_insert( Thread_Control *the_thread, POSIX_API_Control *api @@ -113,20 +108,6 @@ RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate(void) _Objects_Allocate_unprotected( &_POSIX_Threads_Information.Objects ); } -RTEMS_INLINE_ROUTINE void _POSIX_Threads_Copy_attributes( - pthread_attr_t *dst_attr, - const pthread_attr_t *src_attr -) -{ - *dst_attr = *src_attr; -#if defined(RTEMS_SMP) - _Assert( - dst_attr->affinitysetsize == sizeof(dst_attr->affinitysetpreallocated) - ); - dst_attr->affinityset = &dst_attr->affinitysetpreallocated; -#endif -} - RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free ( Thread_Control *the_pthread ) @@ -134,16 +115,6 @@ RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free ( _Objects_Free( &_POSIX_Threads_Information.Objects, &the_pthread->Object ); } -RTEMS_INLINE_ROUTINE void _POSIX_Threads_Initialize_attributes( - pthread_attr_t *attr -) -{ - _POSIX_Threads_Copy_attributes( - attr, - &_POSIX_Threads_Default_attributes - ); -} - /** @} */ #ifdef __cplusplus -- cgit v1.2.3