source: rtems/cpukit/posix/include/rtems/posix/pthreadattrimpl.h @ 3f3f4248

Last change on this file since 3f3f4248 was 3f3f4248, checked in by Sebastian Huber <sebastian.huber@…>, on Oct 17, 2017 at 7:20:20 AM

posix: Remove POSIX_API_Control::schedparam

Move sporadic server scheduler parameters to
POSIX_API_Control::Sporadic. Remove redundant scheduler priority
parameter.

Update #2514.

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/**
2 * @file
3 *
4 * @brief POSIX Threads Private Support
5 *
6 * This include file contains all the private support information for
7 * POSIX threads.
8 */
9
10/*
11 *  COPYRIGHT (c) 1989-2011.
12 *  On-Line Applications Research Corporation (OAR).
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.rtems.org/license/LICENSE.
17 */
18
19#ifndef _RTEMS_POSIX_PTHREADATTRIMPL_H
20#define _RTEMS_POSIX_PTHREADATTRIMPL_H
21
22#include <errno.h>
23#include <pthread.h>
24
25#include <rtems/score/basedefs.h>
26#include <rtems/score/assert.h>
27#include <rtems/posix/priorityimpl.h>
28#include <rtems/posix/threadsup.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/**
35 * @addtogroup POSIX_PTHREAD
36 */
37/**@{**/
38
39/**
40 * This variable contains the default POSIX Thread attributes.
41 */
42extern const pthread_attr_t _POSIX_Threads_Default_attributes;
43
44RTEMS_INLINE_ROUTINE void _POSIX_Threads_Copy_attributes(
45  pthread_attr_t        *dst_attr,
46  const pthread_attr_t  *src_attr
47)
48{
49  *dst_attr = *src_attr;
50  _Assert(
51    dst_attr->affinitysetsize == sizeof(dst_attr->affinitysetpreallocated)
52  );
53  dst_attr->affinityset = &dst_attr->affinitysetpreallocated;
54}
55
56RTEMS_INLINE_ROUTINE void _POSIX_Threads_Initialize_attributes(
57  pthread_attr_t  *attr
58)
59{
60  _POSIX_Threads_Copy_attributes(
61    attr,
62    &_POSIX_Threads_Default_attributes
63  );
64}
65
66RTEMS_INLINE_ROUTINE void _POSIX_Threads_Get_sched_param_sporadic(
67  const Thread_Control    *the_thread,
68  const POSIX_API_Control *api,
69  const Scheduler_Control *scheduler,
70  struct sched_param      *param
71)
72{
73  param->sched_ss_low_priority = _POSIX_Priority_From_core(
74    scheduler,
75    api->Sporadic.Low_priority.priority
76  );
77  param->sched_ss_repl_period = api->Sporadic.sched_ss_repl_period;
78  param->sched_ss_init_budget = api->Sporadic.sched_ss_init_budget;
79  param->sched_ss_max_repl = api->Sporadic.sched_ss_max_repl;
80}
81
82/** @} */
83
84#ifdef __cplusplus
85}
86#endif
87
88#endif
89/*  end of include file */
Note: See TracBrowser for help on using the repository browser.