RTEMS
unlimited.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 
11 /*
12  * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
13  *
14  * Redistribution and use in source and binary forms, with or without
15  * modification, are permitted provided that the following conditions
16  * are met:
17  * 1. Redistributions of source code must retain the above copyright
18  * notice, this list of conditions and the following disclaimer.
19  * 2. Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in the
21  * documentation and/or other materials provided with the distribution.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGE.
34  */
35 
36 #ifndef _RTEMS_CONFDEFS_UNLIMITED_H
37 #define _RTEMS_CONFDEFS_UNLIMITED_H
38 
39 #ifndef __CONFIGURATION_TEMPLATE_h
40 #error "Do not include this file directly, use <rtems/confdefs.h> instead"
41 #endif
42 
43 #ifdef CONFIGURE_INIT
44 
45 #ifdef CONFIGURE_UNLIMITED_OBJECTS
46 
47 #include <rtems/config.h>
48 
49 #if !defined(CONFIGURE_UNIFIED_WORK_AREAS) \
50  && !defined(CONFIGURE_EXECUTIVE_RAM_SIZE) \
51  && !defined(CONFIGURE_MEMORY_OVERHEAD)
52  #error "CONFIGURE_UNLIMITED_OBJECTS requires one of CONFIGURE_UNIFIED_WORK_AREAS, CONFIGURE_EXECUTIVE_RAM_SIZE, and CONFIGURE_MEMORY_OVERHEAD"
53 #endif
54 
55 #ifndef CONFIGURE_UNLIMITED_ALLOCATION_SIZE
56  #define CONFIGURE_UNLIMITED_ALLOCATION_SIZE 8
57 #endif
58 
59 #ifndef CONFIGURE_MAXIMUM_TASKS
60  #define CONFIGURE_MAXIMUM_TASKS \
61  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
62 #endif
63 
64 #ifndef CONFIGURE_MAXIMUM_TIMERS
65  #define CONFIGURE_MAXIMUM_TIMERS \
66  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
67 #endif
68 
69 #ifndef CONFIGURE_MAXIMUM_SEMAPHORES
70  #define CONFIGURE_MAXIMUM_SEMAPHORES \
71  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
72 #endif
73 
74 #ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
75  #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES \
76  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
77 #endif
78 
79 #ifndef CONFIGURE_MAXIMUM_PARTITIONS
80  #define CONFIGURE_MAXIMUM_PARTITIONS \
81  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
82 #endif
83 
84 #ifndef CONFIGURE_MAXIMUM_REGIONS
85  #define CONFIGURE_MAXIMUM_REGIONS \
86  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
87 #endif
88 
89 #ifndef CONFIGURE_MAXIMUM_PORTS
90  #define CONFIGURE_MAXIMUM_PORTS \
91  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
92 #endif
93 
94 #ifndef CONFIGURE_MAXIMUM_PERIODS
95  #define CONFIGURE_MAXIMUM_PERIODS \
96  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
97 #endif
98 
99 #ifndef CONFIGURE_MAXIMUM_BARRIERS
100  #define CONFIGURE_MAXIMUM_BARRIERS \
101  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
102 #endif
103 
104 #ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
105  #define CONFIGURE_MAXIMUM_POSIX_KEYS \
106  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
107 #endif
108 
109 #ifndef CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
110  #define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
111  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
112 #endif
113 
114 #ifndef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
115  #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES \
116  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
117 #endif
118 
119 #ifndef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
120  #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES \
121  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
122 #endif
123 
124 #ifndef CONFIGURE_MAXIMUM_POSIX_SHMS
125  #define CONFIGURE_MAXIMUM_POSIX_SHMS \
126  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
127 #endif
128 
129 #ifndef CONFIGURE_MAXIMUM_POSIX_THREADS
130  #define CONFIGURE_MAXIMUM_POSIX_THREADS \
131  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
132 #endif
133 
134 #if defined(RTEMS_POSIX_API) && !defined(CONFIGURE_MAXIMUM_POSIX_TIMERS)
135  #define CONFIGURE_MAXIMUM_POSIX_TIMERS \
136  rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
137 #endif
138 
139 #endif /* CONFIGURE_UNLIMITED_OBJECTS */
140 
141 #endif /* CONFIGURE_INIT */
142 
143 #endif /* _RTEMS_CONFDEFS_UNLIMITED_H */