source: rtems/cpukit/include/rtems/posix/threadsup.h @ 21275b58

Last change on this file since 21275b58 was 033f31c8, checked in by Sebastian Huber <sebastian.huber@…>, on Oct 25, 2018 at 8:26:40 AM

posix: Hide POSIX_API_Control by default

Update #2514.

  • Property mode set to 100644
File size: 2.1 KB
Line 
1/**
2 * @file
3 *
4 * @brief POSIX Thread API Support
5 *
6 * This defines the POSIX thread API extension.
7 */
8
9/*
10 *  COPYRIGHT (c) 1989-2014.
11 *  On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.org/license/LICENSE.
16 */
17
18#ifndef _RTEMS_POSIX_THREADSUP_H
19#define _RTEMS_POSIX_THREADSUP_H
20
21#include <rtems/score/thread.h>
22#include <rtems/score/watchdog.h>
23
24#include <pthread.h>
25#include <signal.h>
26
27/**
28 *  @defgroup POSIX_THREAD POSIX Thread API Extension
29 *
30 *  @ingroup POSIXAPI
31 *
32 */
33/**@{**/
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38#if defined(RTEMS_POSIX_API)
39/**
40 * This defines the POSIX API support structure associated with
41 * each thread in a system with POSIX configured.
42 */
43typedef struct {
44  /**
45   * @brief Control block for the sporadic server scheduling policy.
46   */
47  struct {
48    /** The thread of this sporadic control block */
49    Thread_Control *thread;
50
51    /**
52     * @brief This is the timer which controls when the thread executes at high
53     * and low priority when using the sporadic server scheduling policy.
54     */
55    Watchdog_Control Timer;
56
57    /**
58     * @brief The low priority when using the sporadic server scheduling
59     * policy.
60     */
61    Priority_Node Low_priority;
62
63    /**
64     * @brief Replenishment period for sporadic server.
65     */
66    struct timespec sched_ss_repl_period;
67
68    /**
69     * @brief Initial budget for sporadic server.
70     */
71    struct timespec sched_ss_init_budget;
72
73    /**
74     * @brief Maximum pending replenishments.
75     *
76     * Only used by pthread_getschedparam() and pthread_getattr_np().
77    */
78    int sched_ss_max_repl;
79  } Sporadic;
80
81  /** This is the set of signals which are currently unblocked. */
82  sigset_t                signals_unblocked;
83  /** This is the set of signals which are currently pending. */
84  sigset_t                signals_pending;
85
86  /**
87   * @brief Signal post-switch action in case signals are pending.
88   */
89  Thread_Action           Signal_action;
90} POSIX_API_Control;
91#endif
92
93/** @} */
94
95#ifdef __cplusplus
96}
97#endif
98
99#endif
100/* end of include file */
Note: See TracBrowser for help on using the repository browser.