RTEMS  5.1
objectsclassic.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 
13 /*
14  * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
15  *
16  * Redistribution and use in source and binary forms, with or without
17  * modification, are permitted provided that the following conditions
18  * are met:
19  * 1. Redistributions of source code must retain the above copyright
20  * notice, this list of conditions and the following disclaimer.
21  * 2. Redistributions in binary form must reproduce the above copyright
22  * notice, this list of conditions and the following disclaimer in the
23  * documentation and/or other materials provided with the distribution.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35  * POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef _RTEMS_CONFDEFS_OBJECTSCLASSIC_H
39 #define _RTEMS_CONFDEFS_OBJECTSCLASSIC_H
40 
41 #ifndef __CONFIGURATION_TEMPLATE_h
42 #error "Do not include this file directly, use <rtems/confdefs.h> instead"
43 #endif
44 
45 #ifdef CONFIGURE_INIT
46 
48 
49 #if CONFIGURE_MAXIMUM_BARRIERS > 0
50  #include <rtems/rtems/barrierdata.h>
51 #endif
52 
53 #if CONFIGURE_MAXIMUM_PORTS > 0
54  #include <rtems/rtems/dpmemdata.h>
55 #endif
56 
57 #if CONFIGURE_MAXIMUM_MESSAGE_QUEUES > 0
58  #include <rtems/rtems/messagedata.h>
59 #endif
60 
61 #if CONFIGURE_MAXIMUM_PARTITIONS > 0
62  #include <rtems/rtems/partdata.h>
63 #endif
64 
65 #if CONFIGURE_MAXIMUM_PERIODS > 0
66  #include <rtems/rtems/ratemondata.h>
67 #endif
68 
69 #if CONFIGURE_MAXIMUM_REGIONS > 0
70  #include <rtems/rtems/regiondata.h>
71 #endif
72 
73 #if CONFIGURE_MAXIMUM_SEMAPHORES > 0
75  #include <rtems/rtems/semdata.h>
76 #endif
77 
78 #if CONFIGURE_MAXIMUM_TIMERS > 0
79  #include <rtems/rtems/timerdata.h>
80 #endif
81 
82 #ifdef __cplusplus
83 extern "C" {
84 #endif
85 
86 #if CONFIGURE_MAXIMUM_BARRIERS > 0
87  BARRIER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_BARRIERS );
88 #endif
89 
90 #if CONFIGURE_MAXIMUM_MESSAGE_QUEUES > 0
91  MESSAGE_QUEUE_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_MESSAGE_QUEUES );
92 #endif
93 
94 #if CONFIGURE_MAXIMUM_PARTITIONS > 0
95  PARTITION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PARTITIONS );
96 #endif
97 
98 #if CONFIGURE_MAXIMUM_PERIODS > 0
99  RATE_MONOTONIC_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PERIODS );
100 #endif
101 
102 #if CONFIGURE_MAXIMUM_PORTS > 0
103  DUAL_PORTED_MEMORY_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PORTS );
104 #endif
105 
106 #if CONFIGURE_MAXIMUM_REGIONS > 0
107  REGION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_REGIONS );
108 #endif
109 
110 #if CONFIGURE_MAXIMUM_SEMAPHORES > 0
112  CONFIGURE_MAXIMUM_SEMAPHORES,
113  _CONFIGURE_SCHEDULER_COUNT
114  );
115 #endif
116 
117 #if CONFIGURE_MAXIMUM_TIMERS > 0
118  TIMER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_TIMERS );
119 #endif
120 
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 #endif /* CONFIGURE_INIT */
126 
127 #endif /* _RTEMS_CONFDEFS_OBJECTSCLASSIC_H */
#define REGION_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Region objects.
Definition: regiondata.h:63
#define TIMER_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Timer objects.
Definition: timerdata.h:74
Classic Dual Ported Memory Manager Data Structures.
#define SEMAPHORE_INFORMATION_DEFINE(max, scheduler_count)
Macro to define the objects information for the Classic Semaphore objects.
Definition: semdata.h:136
Evaluate Unlimited Objects Configuration Options.
Evaluate Scheduler Configuration Options.
Classic Semaphore Manager Data Structures.
#define DUAL_PORTED_MEMORY_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Dual Ported Memory objects.
Definition: dpmemdata.h:63
Classic Partition Manager Data Structures.
#define BARRIER_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Barrier objects.
Definition: barrierdata.h:61
Classic Rate Monotonic Scheduler Data Structures.
Classic Message Queue Manager API.
#define MESSAGE_QUEUE_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Message Queue objects.
Definition: messagedata.h:75
#define RATE_MONOTONIC_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Rate Monotonic objects.
Definition: ratemondata.h:147
Classic Partition Manager Data Structures.
Classic Barrier Manager Data Structures.
Classic Region Manager Data Structures.
#define PARTITION_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Partition objects.
Definition: partdata.h:84