source: rtems/cpukit/include/rtems/rtems/config.h @ 21275b58

Last change on this file since 21275b58 was 21275b58, checked in by Sebastian Huber <sebastian.huber@…>, on Nov 22, 2018 at 6:14:51 PM

score: Static Objects_Information initialization

Statically allocate the objects information together with the initial
set of objects either via <rtems/confdefs.h>. Provide default object
informations with zero objects via librtemscpu.a. This greatly
simplifies the workspace size estimate. RTEMS applications which do not
use the unlimited objects option are easier to debug since all objects
reside now in statically allocated objects of the right types.

Close #3621.

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/**
2 * @file rtems/rtems/config.h
3 *
4 * @defgroup ClassicConfig Configuration
5 *
6 * @ingroup ClassicRTEMS
7 * @brief Configuration Table
8 *
9 * This include file contains the table of user defined configuration
10 * parameters specific for the RTEMS API.
11 */
12
13/* COPYRIGHT (c) 1989-2013.
14 * On-Line Applications Research Corporation (OAR).
15 *
16 * The license and distribution terms for this file may be
17 * found in the file LICENSE in this distribution or at
18 * http://www.rtems.org/license/LICENSE.
19 */
20
21#ifndef _RTEMS_RTEMS_CONFIG_H
22#define _RTEMS_RTEMS_CONFIG_H
23
24#include <rtems/rtems/types.h>
25#include <rtems/rtems/tasks.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31/**
32 *  @defgroup ClassicConfig Configuration
33 *
34 *  @ingroup ClassicRTEMS
35 *
36 *  This encapsulates functionality related to the application's configuration
37 *  of the Classic API including the maximum number of each class of objects.
38 */
39/**@{*/
40
41/**
42 *  The following records define the Configuration Table.  The
43 *  information contained in this table is required in all
44 *  RTEMS systems, whether single or multiprocessor.  This
45 *  table primarily defines the following:
46 *
47 *     + required number of each object type
48 */
49typedef struct {
50
51  /**
52   * This field contains the number of Classic API Initialization
53   * Tasks which are configured for this application.
54   */
55  uint32_t                    number_of_initialization_tasks;
56
57  /**
58   * This field is the set of Classic API Initialization
59   * Tasks which are configured for this application.
60   */
61  rtems_initialization_tasks_table *User_initialization_tasks_table;
62} rtems_api_configuration_table;
63
64/**
65 *  @brief RTEMS API Configuration Table
66 *
67 *  This is the RTEMS API Configuration Table expected to be generated
68 *  by confdefs.h.
69 */
70extern rtems_api_configuration_table Configuration_RTEMS_API;
71
72/**@}*/
73
74uint32_t rtems_configuration_get_maximum_barriers( void );
75
76uint32_t rtems_configuration_get_maximum_message_queues( void );
77
78uint32_t rtems_configuration_get_maximum_partitions( void );
79
80uint32_t rtems_configuration_get_maximum_periods( void );
81
82uint32_t rtems_configuration_get_maximum_ports( void );
83
84uint32_t rtems_configuration_get_maximum_regions( void );
85
86uint32_t rtems_configuration_get_maximum_semaphores( void );
87
88uint32_t rtems_configuration_get_maximum_timers( void );
89
90uint32_t rtems_configuration_get_maximum_tasks( void );
91
92#ifdef __cplusplus
93}
94#endif
95
96/**@}*/
97
98#endif
99/* end of include file */
Note: See TracBrowser for help on using the repository browser.