comparison packages/kernel/current/cdl/thread.cdl @ 76:435cced73e2f ecos-v1_3_1-release

eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
author jlarmour
date Tue, 28 Mar 2000 14:10:45 +0000
parents
children 6ed91473a1cd
comparison
equal deleted inserted replaced
75:41bf073c0c32 76:435cced73e2f
1 # ====================================================================
2 #
3 # thread.cdl
4 #
5 # configuration data related to the kernel threads
6 #
7 # ====================================================================
8 #####COPYRIGHTBEGIN####
9 #
10 # -------------------------------------------
11 # The contents of this file are subject to the Red Hat eCos Public License
12 # Version 1.1 (the "License"); you may not use this file except in
13 # compliance with the License. You may obtain a copy of the License at
14 # http://www.redhat.com/
15 #
16 # Software distributed under the License is distributed on an "AS IS"
17 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
18 # License for the specific language governing rights and limitations under
19 # the License.
20 #
21 # The Original Code is eCos - Embedded Configurable Operating System,
22 # released September 30, 1998.
23 #
24 # The Initial Developer of the Original Code is Red Hat.
25 # Portions created by Red Hat are
26 # Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
27 # All Rights Reserved.
28 # -------------------------------------------
29 #
30 #####COPYRIGHTEND####
31 # ====================================================================
32 ######DESCRIPTIONBEGIN####
33 #
34 # Author(s): jskov
35 # Original data: nickg
36 # Contributors:
37 # Date: 1999-07-05
38 #
39 #####DESCRIPTIONEND####
40 #
41 # ====================================================================
42
43 cdl_option CYGFUN_KERNEL_THREADS_TIMER {
44 display "Allow per-thread timers"
45 requires CYGVAR_KERNEL_COUNTERS_CLOCK
46 default_value 1
47 description "
48 This option controls whether or not the kernel should support
49 per-thread clock and alarm related functions. Also some of
50 the synchronization primitives such as semaphore and
51 condition variable timed wait operations require per-thread
52 timer support. If none of these facilities are required then
53 the option can be disabled."
54 }
55
56 cdl_option CYGVAR_KERNEL_THREADS_NAME {
57 display "Support optional name for each thread"
58 default_value 1
59 description "
60 Threads may optionally be supplied with a name string that is
61 used to identify them during debugging. This name is only
62 present if `this option is defined. Disabling it reduces both
63 code and data size."
64 }
65
66 cdl_option CYGVAR_KERNEL_THREADS_LIST {
67 display "Keep track of all threads using a linked list"
68 default_value 1
69 description "
70 Threads may optionally be placed on a housekeeping list so
71 that all threads may be located easily. This is useful mainly
72 in conjunction with source-level debugging."
73 }
74
75 cdl_option CYGFUN_KERNEL_THREADS_STACK_LIMIT {
76 display "Keep track of the base of each thread's stack"
77 default_value 1
78 description "
79 This option makes the kernel keep track of the lower limit on
80 each thread's stack. It allows the kernel to adjust the lower
81 limit, thus making space for per-thread data. Note that it
82 does not imply any form of run-time stack overflow checking."
83 }
84
85 cdl_component CYGVAR_KERNEL_THREADS_DATA {
86 display "Support for per-thread data"
87 requires CYGFUN_KERNEL_THREADS_STACK_LIMIT
88 default_value 1
89 description "
90 It is possible for the kernel to support per-thread data, in
91 other words an area of memory specific to each thread which
92 can be used to store data for that thread. This per-thread
93 data can be used by applications or by other packages such as
94 the ISO C library."
95
96 cdl_option CYGNUM_KERNEL_THREADS_DATA_MAX {
97 display "Number of words of per-thread data"
98 flavor data
99 legal_values 4 to 65535
100 default_value 6
101 description "
102 It is possible for the kernel to support per-thread data, in
103 other words an area of memory specific to each thread which
104 can be used to store data for that thread. This per-thread
105 data can be used by applications or by other packages such as
106 the ISO C library. This configuration option controls the
107 number of words of per-thread data that the kernel will
108 allow."
109 }
110
111 cdl_component CYGNUM_KERNEL_THREADS_DATA_ALL {
112 display "Bitmap of preallocated slots of thread data"
113 flavor data
114 calculated 15
115 description "
116 Per thread data options. Per thread data support is based loosely
117 on that defined by POSIX. Each thread has an array of slots, up to
118 CYGNUM_KERNEL_THREADS_DATA_MAX, that may contain data. Some of the
119 slots have been preallocated to specific packages. Others may be
120 allocated dynamically."
121
122 cdl_option CYGNUM_KERNEL_THREADS_DATA_KERNEL {
123 display "Slot 0 preallocated for the kernel"
124 flavor data
125 calculated 0
126 description "
127 This option defines the index of a per-thread data
128 slot which is reserved by
129 the eCos kernel
130 for private use."
131 }
132 cdl_option CYGNUM_KERNEL_THREADS_DATA_ITRON {
133 display "Slot 1 preallocated for uITRON"
134 flavor data
135 calculated 1
136 description "
137 This option defines the index of a per-thread data
138 slot which is reserved by
139 the uITRON compatibility layer
140 for private use."
141 }
142 cdl_option CYGNUM_KERNEL_THREADS_DATA_LIBC {
143 display "Slot 2 preallocated for libc"
144 flavor data
145 calculated 2
146 description "
147 This option defines the index of a per-thread data
148 slot which is reserved by
149 the C library (libc)
150 for private use."
151 }
152 cdl_option CYGNUM_KERNEL_THREADS_DATA_POSIX {
153 display "Slot 3 preallocated for POSIX"
154 flavor data
155 calculated 3
156 description "
157 This option defines the index of a per-thread data
158 slot which is reserved by
159 POSIX
160 for private use."
161 }
162 }
163 }
164
165 cdl_option CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE {
166 display "Stack size for the idle thread"
167 flavor data
168 legal_values 512 to 65536
169 default_value 2048
170 description "
171 This configuration option specifies the stack size in bytes
172 for the idle thread. Unless the HAL is configured to use a
173 separate interrupt stack this size must be sufficient to meet
174 the requirements of all interrupt handlers - these
175 requirements are cumulative if nested interrupted are
176 enabled. Depending on the target architecture, the stack size
177 typically has to be a multiple of eight or sixteen bytes.
178 This will be overridden where it is used if the
179 architectural HAL requires a minimum stack size
180 to handle interrupts correctly."
181 }
182
183 # ---------------------------------------------------------------------
184 # Thread-related miscellania.
185 cdl_option CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT {
186 display "Maximal suspend count"
187 flavor data
188 default_value 500
189 description "
190 This option provides for an assertion that the count value for
191 counted thread suspends do not exceed set limits. This is to help
192 with debugging, to allow a runaaway loop, for example, to be
193 detected more easily.
194
195 If the option is not defined, no assert is included. Whether asserts
196 are themselves included depends on infrastructure configury in
197 infra.h"
198 }
199
200 cdl_option CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT {
201 display "Maximal wake count"
202 flavor data
203 default_value 500
204 description "
205 This option provides for an assertion that the count value for
206 counted thread wakeups do not exceed set limits. This is to
207 help with debugging, to allow a runaaway loop, for example, to
208 be detected more easily.
209
210 If the option is not defined, no assert is included. Whether asserts
211 are themselves included depends on infrastructure configury in
212 infra.h"
213 }
214
215
216 #if CYGNUM_KERNEL_SCHED_PRIORITIES == 1
217 # define CYGIMP_IDLE_THREAD_YIELD
218 #endif
219 cdl_option CYGIMP_IDLE_THREAD_YIELD {
220 display "Idle thread must always yield"
221 calculated 1
222 active_if (CYGNUM_KERNEL_SCHED_PRIORITIES == 1)
223 description "
224 If the scheduler configuration only has a single priority
225 level, then the idle thread must yield each time around its loop."
226 }
227
228
229 # ---------------------------------------------------------------------
230 # Synchronization primitives miscellania.
231 cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE {
232 display "Priority inheritance"
233 calculated 1
234 active_if CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE
235 description "
236 This option is automatically enabled when any implementation
237 of priority inheritance is selected."
238 }