summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/pthreadattrimpl.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-10 07:18:09 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-10 07:18:09 +0200
commitbd5be58fa6b4f1108fc69c8ff55cf2d20ddde620 (patch)
tree747a03289a5f31df52a69f04a57a916b069d4a78 /cpukit/posix/include/rtems/posix/pthreadattrimpl.h
parentposix: Constify default thread processor affinity (diff)
downloadrtems-bd5be58fa6b4f1108fc69c8ff55cf2d20ddde620.tar.bz2
posix: Unconditional thread attribute support
Update #2514.
Diffstat (limited to 'cpukit/posix/include/rtems/posix/pthreadattrimpl.h')
-rw-r--r--cpukit/posix/include/rtems/posix/pthreadattrimpl.h71
1 files changed, 71 insertions, 0 deletions
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 <errno.h>
+#include <pthread.h>
+
+#include <rtems/score/basedefs.h>
+#include <rtems/score/assert.h>
+
+#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 */