summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/include/rtems/rtems/config.h
blob: 4b6ea93bc2f919bcebed1e0cc019ecb02e029875 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/**
 * @file rtems/rtems/config.h
 *
 *  This include file contains the table of user defined configuration
 *  parameters specific for the RTEMS API.
 */

/*  COPYRIGHT (c) 1989-2008.
 *  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.com/license/LICENSE.
 *
 *  $Id$
 */

#ifndef _RTEMS_RTEMS_CONFIG_H
#define _RTEMS_RTEMS_CONFIG_H

#include <rtems/rtems/types.h>
#include <rtems/rtems/tasks.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 *  @defgroup ClassicConfig Configuration
 *
 *  @ingroup ClassicRTEMS
 *
 *  This encapsulates functionality which XXX
 */
/**@{*/

/**
 *  The following records define the Configuration Table.  The
 *  information contained in this table is required in all
 *  RTEMS systems, whether single or multiprocessor.  This
 *  table primarily defines the following:
 *
 *     + required number of each object type
 */
typedef struct {
  /**
   * This field contains the maximum number of Classic API 
   * Tasks which are configured for this application.
   */
  uint32_t                    maximum_tasks;

  /**
   * This field indicates whether Classic API notepads are
   * enabled or disabled.
   */
  bool                        notepads_enabled;

  /**
   * This field contains the maximum number of Classic API 
   * Timers which are configured for this application.
   */
  uint32_t                    maximum_timers;

  /**
   * This field contains the maximum number of Classic API 
   * Semaphores which are configured for this application.
   */
  uint32_t                    maximum_semaphores;

  /**
   * This field contains the maximum number of Classic API 
   * Message Queues which are configured for this application.
   */
  uint32_t                    maximum_message_queues;

  /**
   * This field contains the maximum number of Classic API 
   * Partitions which are configured for this application.
   */
  uint32_t                    maximum_partitions;

  /**
   * This field contains the maximum number of Classic API 
   * Regions which are configured for this application.
   */
  uint32_t                    maximum_regions;

  /**
   * This field contains the maximum number of Classic API 
   * Dual Ported Memory Areas which are configured for this
   * application.
   */
  uint32_t                    maximum_ports;

  /**
   * This field contains the maximum number of Classic API 
   * Rate Monotonic Periods which are configured for this
   * application.
   */
  uint32_t                    maximum_periods;

  /**
   * This field contains the maximum number of Classic API 
   * Barriers which are configured for this application.
   */
  uint32_t                    maximum_barriers;

  /**
   * This field contains the number of Classic API Initialization
   * Tasks which are configured for this application.
   */
  uint32_t                    number_of_initialization_tasks;

  /**
   * This field is the set of Classic API Initialization
   * Tasks which are configured for this application.
   */
  rtems_initialization_tasks_table *User_initialization_tasks_table;
} rtems_api_configuration_table;

/**
 *  @brief RTEMS API Configuration Table
 *
 *  This is the RTEMS API Configuration Table expected to be generated
 *  by confdefs.h.
 */
extern rtems_api_configuration_table Configuration_RTEMS_API;

/**@}*/

/**
 *  This macro returns the value of the notepads enabled field
 *  in the Classic API configuration table.
 */
#define rtems_configuration_get_notepads_enabled() \
        rtems_configuration_get_rtems_api_configuration()->notepads_enabled

#ifdef __cplusplus
}
#endif

/**@}*/

#endif
/* end of include file */