source: rtems/cpukit/posix/include/rtems/posix/config.h @ c499856

4.115
Last change on this file since c499856 was c499856, checked in by Chris Johns <chrisj@…>, on 03/20/14 at 21:10:47

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 4.4 KB
Line 
1/**
2 * @file
3 *
4 * @brief User Defined Configuration Parameters Specific For The POSIX API
5 *
6 * This include file contains the table of user defined configuration
7 * parameters specific for the POSIX API.
8 */
9
10/*
11 *  COPYRIGHT (c) 1989-2014.
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_CONFIG_H
20#define _RTEMS_POSIX_CONFIG_H
21
22#include <stdint.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/**
29 *  @defgroup ClassicConfig Configuration
30 *
31 *  @ingroup ClassicRTEMS
32 *
33 *  This encapsulates functionality related to the application's configuration
34 *  of the Classic API including the maximum number of each class of objects.
35 */
36/**@{*/
37
38/**
39 *  For now, we are only allowing the user to specify the entry point
40 *  and stack size for POSIX initialization threads.
41 */
42typedef struct {
43  /** This is the entry point for a POSIX initialization thread. */
44  void       *(*thread_entry)(void *);
45  /** This is the stack size for a POSIX initialization thread. */
46  int       stack_size;
47} posix_initialization_threads_table;
48
49/**
50 *  The following records define the POSIX Configuration Table.
51 *  The information contained in this table is required in all
52 *  RTEMS systems which include POSIX threads support, whether
53 *  single or multiprocessor.  This table primarily defines the
54 *  following:
55 *
56 *     + required number of each object type
57 */
58typedef struct {
59  /**
60   * This field contains the maximum number of POSIX API
61   * threads which are configured for this application.
62   */
63  uint32_t                            maximum_threads;
64
65  /**
66   * This field contains the maximum number of POSIX API
67   * mutexes which are configured for this application.
68   */
69  uint32_t                            maximum_mutexes;
70
71  /**
72   * This field contains the maximum number of POSIX API
73   * condition variables which are configured for this application.
74   */
75  uint32_t                            maximum_condition_variables;
76
77  /**
78   * This field contains the maximum number of POSIX API
79   * timers which are configured for this application.
80   */
81  uint32_t                            maximum_timers;
82
83  /**
84   * This field contains the maximum number of POSIX API
85   * queued signals which are configured for this application.
86   */
87  uint32_t                            maximum_queued_signals;
88
89  /**
90   * This field contains the maximum number of POSIX API
91   * message queues which are configured for this application.
92   */
93  uint32_t                            maximum_message_queues;
94
95  /**
96   * This field contains the maximum number of POSIX API
97   * message queue file descriptors which are configured
98   * for this application.
99   *
100   * @note There can be one or more file descriptors used with
101   *       each message queue. This value should be greater than
102   *       or equal to the number of message queues.
103   */
104  uint32_t                            maximum_message_queue_descriptors;
105
106  /**
107   * This field contains the maximum number of POSIX API
108   * semaphores which are configured for this application.
109   */
110  uint32_t                            maximum_semaphores;
111
112  /**
113   * This field contains the maximum number of POSIX API
114   * barriers which are configured for this application.
115   */
116  uint32_t                            maximum_barriers;
117
118  /**
119   * This field contains the maximum number of POSIX API
120   * read/write locks which are configured for this application.
121   */
122  uint32_t                            maximum_rwlocks;
123
124  /**
125   * This field contains the maximum number of POSIX API
126   * spinlocks which are configured for this application.
127   */
128  uint32_t                            maximum_spinlocks;
129
130  /**
131   * This field contains the number of POSIX API Initialization
132   * threads listed in @a User_initialization_thread_table.
133   */
134  uint32_t                            number_of_initialization_threads;
135
136  /**
137   * This field contains the list of POSIX API Initialization threads.
138   */
139  posix_initialization_threads_table *User_initialization_threads_table;
140} posix_api_configuration_table;
141
142/**
143 * @brief POSIX API configuration table.
144 *
145 * This is the POSIX API Configuration Table expected to be generated
146 * by confdefs.h.
147 */
148extern posix_api_configuration_table Configuration_POSIX_API;
149
150/**@}*/
151#ifdef __cplusplus
152}
153#endif
154
155#endif
156/* end of include file */
Note: See TracBrowser for help on using the repository browser.