comparison packages/compat/uitron/current/cdl/uitron.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 6736c52df507
comparison
equal deleted inserted replaced
75:41bf073c0c32 76:435cced73e2f
1 # ====================================================================
2 #
3 # uitron.cdl
4 #
5 # uITRON configuration data
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): bartv
35 # Original data: hmt
36 # Contributors:
37 # Date: 1999-06-13
38 #
39 #####DESCRIPTIONEND####
40 #
41 # ====================================================================
42
43 cdl_package CYGPKG_UITRON {
44 display "uITRON compatibility layer"
45 include_dir cyg/compat/uitron
46 doc redirect/micro-itron-api.html
47 requires CYGPKG_KERNEL
48 description "
49 eCos supports a uITRON Compatibility Layer, providing
50 full Level S (Standard) compliance with Version 3.02 of
51 the uITRON Standard, plus many Level E (Extended) features.
52 uITRON is the premier Japanese embedded RTOS standard."
53
54 compile uit_func.cxx uit_ifnc.cxx uit_objs.cxx
55
56 # ------------------------------------------------------------------------
57 # Conformance check
58 # ------------------------------------------------------------------------
59 cdl_interface CYGINT_UITRON_CONFORMANCE {
60 requires 1 == CYGINT_UITRON_CONFORMANCE
61 }
62
63 cdl_option CYGIMP_UITRON_STRICT_CONFORMANCE {
64 display "Check strict uITRON standards conformance"
65 default_value 0
66 requires CYGVAR_KERNEL_COUNTERS_CLOCK
67 requires CYGSEM_KERNEL_SCHED_MLQUEUE
68 requires !CYGSEM_KERNEL_SCHED_TIMESLICE
69 requires CYGFUN_KERNEL_THREADS_TIMER
70 implements CYGINT_UITRON_CONFORMANCE
71 description "
72 Require the rest of the system configuration
73 to match the needs of strict uITRON standards conformance.
74 This option can only be set if the rest of the system is
75 configured correctly for uITRON semantics, for example
76 there must be a realtime clock, a suitable scheduler, and no
77 timeslicing.
78 Of course a system without this selected can be completely
79 conformant; this is here to help you check."
80 }
81 cdl_option CYGIMP_UITRON_LOOSE_CONFORMANCE {
82 display "System configuration overrides uITRON"
83 default_value 1
84 implements CYGINT_UITRON_CONFORMANCE
85 description "
86 Do not require the rest of the system configuration
87 to match the needs of strict uITRON standards conformance.
88 For example a bitmap scheduler, or timeslicing, can be used
89 with the uITRON functions, but such an environment is not
90 strictly conformant with the uITRON specification.
91 Of course a system with this selected can be completely
92 conformant; but it is up to you to configure it correctly."
93 }
94
95 # ------------------------------------------------------------------------
96 # uITRON FUNCTION CALLS
97 # ------------------------------------------------------------------------
98 cdl_option CYGIMP_UITRON_INLINE_FUNCS {
99 display "Inline functions"
100 default_value 0
101 description "
102 If compiling your application with a C++ compiler,
103 uITRON functions can be inline: set this to make it so.
104 Inlining functions often increases execution speed,
105 though possibly at the cost of a larger executable,
106 depending on what functions are used.
107 Do NOT set this if compiling your application
108 in plain C."
109 }
110
111 cdl_option CYGIMP_UITRON_CPP_OUTLINE_FUNCS {
112 display "C++ function names"
113 default_value 0
114 description "
115 If compiling your application with a C++ compiler,
116 uITRON functions can be given C++ style mangled names:
117 set this to make it so.
118 This option may make debugging your program easier,
119 depending on your development environment.
120 Do NOT set this if compiling your application
121 in plain C."
122 }
123
124 cdl_option CYGSEM_UITRON_BAD_PARAMS_RETURN_ERRORS {
125 display "Return error codes for bad params"
126 default_value 1
127 description "
128 When an application is fully debugged there is no need
129 to check for bad parameters on every system call, for those
130 parameters which are typically pointers or constants.
131 Removing the checking code saves space
132 and improves performance: set this to make it so.
133 When this option is set, the correctness of parameters
134 is asserted using CYG_ASSERT() which compiles to
135 nothing in a non-debug configuration."
136 }
137
138 cdl_option CYGSEM_UITRON_PARAMS_NULL_IS_GOOD_PTR {
139 display "NULL is a good pointer"
140 default_value 0
141 description "
142 uITRON deliberately defines the constant NADR (-1) for
143 use as an invalid memory address.
144 The value -1 is chosen to allow working in microcontrollers
145 which have real memory at address zero, the traditional 'C'
146 NULL pointer.
147 By default, uITRON functions check for both NULL and NADR as
148 bad addresses: set this option to prevent checking for
149 NULL and allow pointers to address zero to be used."
150 }
151
152 # ------------------------------------------------------------------------
153 # uITRON KERNEL OBJECTS
154 # ------------------------------------------------------------------------
155 cdl_component CYGPKG_UITRON_SEMAS {
156 display "Semaphores"
157 flavor bool
158 default_value 1
159 description "
160 uITRON Semaphore objects are used with functions
161 named xxx_sem(); they support traditional semaphore
162 semantics."
163
164 script semas.cdl
165 }
166
167 cdl_component CYGPKG_UITRON_MBOXES {
168 display "Mailboxes"
169 flavor bool
170 default_value 1
171 description "
172 uITRON Mailbox objects are used with functions
173 named xxx_msg() and xxx_mbx(); they support
174 passing addresses (of 'messages') between tasks
175 in a safe manner."
176
177 script mboxes.cdl
178 }
179
180 cdl_component CYGPKG_UITRON_FLAGS {
181 display "Eventflags"
182 flavor bool
183 default_value 1
184 description "
185 uITRON Eventflag objects are used with functions
186 named xxx_flg(); they support communication between
187 tasks by means of setting and clearing bits in a word
188 or flag value.
189 Waiting for all or any of a set of bits is supported."
190
191 script flags.cdl
192 }
193
194 # ------------------------------------------------------------------------
195 # uITRON TASKS
196 # ------------------------------------------------------------------------
197 cdl_component CYGPKG_UITRON_TASKS {
198 display "Tasks"
199 flavor none
200 description "
201 uITRON Tasks are the basic blocks of multi-tasking
202 in the uITRON world; they are threads or lightweight
203 processes, sharing the address space and the CPU.
204 They communicate using the primitives outlined above.
205 Each has a stack, an entry point (a C or C++ function),
206 and (where appropriate) a scheduling priority."
207
208 script tasks.cdl
209 }
210
211 # ------------------------------------------------------------------------
212 # Memory Pools, both fixed and variable block
213 # ------------------------------------------------------------------------
214 cdl_component CYGPKG_UITRON_MEMPOOLFIXED {
215 display "Fixed-size memorypools"
216 flavor bool
217 default_value 1
218 description "
219 uITRON supports memory pools for dynamic, task-safe
220 memory allocation.
221 Two kinds are supported, fixed-size and variable-size.
222 There may be multiple of each
223 type of pool, each with differing characteristics.
224 This option controls whether there are any fixed-size
225 memorypools in the system.
226 A fixed-size memorypool allocates blocks of memory of
227 its preset fixed size and none other."
228
229 script mempoolfixed.cdl
230 }
231
232 cdl_component CYGPKG_UITRON_MEMPOOLVAR {
233 display "Variable-size memorypools"
234 flavor bool
235 default_value 1
236 description "
237 uITRON supports memory pools for dynamic, task-safe
238 memory allocation.
239 Two kinds are supported, fixed-size and variable-size.
240 There may be multiple of each
241 type of pool, each with differing characteristics.
242 This option controls whether there are any variable-size
243 memorypools in the system.
244 A variable-size memorypool allocates blocks of memory of
245 any size requested, resources permitting."
246
247 script mempoolvar.cdl
248 }
249
250 # ------------------------------------------------------------------------
251 # One-shot Alarm and Cyclic Alarm handlers:
252 # ------------------------------------------------------------------------
253
254 cdl_option CYGSEM_UITRON_TIME_IS_MILLISECONDS {
255 display "uITRON time unit is mS"
256 flavor bool
257 default_value 0
258 active_if CYGVAR_KERNEL_COUNTERS_CLOCK
259 description "
260 Setting this option enables a conversion feature so that
261 time parameters to uITRON APIs are converted from milliSeconds
262 to whatever the eCos kernel real-time clock's units are,
263 or vice versa.
264 If this option is not set, time parameters are expressed in
265 kernel clock ticks."
266 }
267
268 cdl_component CYGPKG_UITRON_ALARMS {
269 display "Alarm handlers"
270 flavor bool
271 default_value 1
272 requires CYGVAR_KERNEL_COUNTERS_CLOCK
273 description "
274 uITRON Alarm Handlers are used with functions
275 named def_alm() and ref_alm(); they support
276 simple timing, with a function callback
277 at the end of the timed period."
278
279
280 cdl_option CYGNUM_UITRON_ALARMS {
281 display "Number of alarm handlers"
282 flavor data
283 legal_values 1 to 65535
284 default_value 3
285 description "
286 The number of uITRON alarm
287 handlers present in the system.
288 Valid alarm handler numbers will range
289 from 1 to this value."
290 }
291 }
292
293 cdl_component CYGPKG_UITRON_CYCLICS {
294 display "Cyclic handlers"
295 flavor bool
296 default_value 1
297 requires CYGVAR_KERNEL_COUNTERS_CLOCK
298 description "
299 uITRON Cyclic Handlers are used with functions
300 named xxx_cyc(); they support timing
301 with a periodic function callback that
302 can be dynamically turned on or off, and
303 resynchronized with external events."
304
305 cdl_option CYGNUM_UITRON_CYCLICS {
306 display "Number cyclic handlers"
307 flavor data
308 legal_values 1 to 65535
309 default_value 3
310 description "
311 The number of uITRON cyclics
312 handlers present in the system.
313 Valid cyclic handler numbers will range
314 from 1 to this value."
315 }
316 }
317
318 # ------------------------------------------------------------------------
319 # Interrupt-safe functions [ixxx_yyy()]:
320 # ------------------------------------------------------------------------
321 cdl_component CYGPKG_UITRON_INTERRUPT_FUNCTIONS {
322 display "Interrupt-safe functions"
323 flavor none
324 description "The uITRON system provides some functions which may
325 safely be used within interrupt handlers. In eCos, this
326 means within ISRs, providing that the corresponding DSR is
327 associated with that interrupt. These functions are
328 typically named ixxx_yyy(), according to the uITRON
329 specification, for example isig_sem() corresponds to normal
330 function sig_sem()."
331
332 cdl_option CYGSEM_UITRON_ISRFUNCS_TRY_IMMEDIATE_EXECUTION {
333 display "Execute in ISR if safe"
334 parent CYGPKG_UITRON_INTERRUPT_FUNCTIONS
335 flavor bool
336 default_value 1
337 description "
338 These functions of necessity maintain a queue of
339 operations requested for deferred execution. However,
340 during an interrupt, it may be safe to perform scheduling
341 operations. If this option is set, the interrupt-safe
342 functions will have effect there and then if it is indeed
343 safe, rather than queueing a request to perform the
344 operation in the DSR."
345 }
346 cdl_option CYGNUM_UITRON_ISR_ACTION_QUEUESIZE {
347 display "Deferred operation queue size"
348 parent CYGPKG_UITRON_INTERRUPT_FUNCTIONS
349 flavor data
350 legal_values 4 8 16 32 64 128 256
351 default_value 32
352 description "These functions of necessity maintain a queue of
353 operations requested for deferred execution. This option
354 controls the queue size. It must be a power of two for
355 implementation reasons."
356 }
357 }
358
359 # ------------------------------------------------------------------------
360 # uITRON VERSION INFORMATION
361 # ------------------------------------------------------------------------
362 cdl_component CYGPKG_UITRON_VERSION {
363 display "Version information"
364 flavor none
365 description "
366 The get_ver() uITRON system call returns
367 several version related values describing
368 the vendor, product and CPU in question
369 as well as the version of the uITRON
370 standard supported.
371 These values may be specified here."
372
373 script version.cdl
374 }
375
376 define_proc {
377 puts $::cdl_header "/***** proc output start *****/"
378 puts $::cdl_header "#include <pkgconf/system.h>"
379 puts $::cdl_header "#include <pkgconf/kernel.h>"
380 puts $::cdl_header "/***** proc output end *****/"
381 }
382
383 cdl_component CYGPKG_UITRON_OPTIONS {
384 display "uITRON build options"
385 flavor none
386 description "
387 Package specific build options including control over
388 compiler flags used only in building this package,
389 and details of which tests are built."
390
391 cdl_option CYGPKG_UITRON_CFLAGS_ADD {
392 display "Additional compiler flags"
393 flavor data
394 no_define
395 default_value { "" }
396 description "
397 This option modifies the set of compiler flags for
398 building the uITRON compatibility layer. These flags are used in addition
399 to the set of global flags."
400 }
401
402 cdl_option CYGPKG_UITRON_CFLAGS_REMOVE {
403 display "Supressed compiler flags"
404 flavor data
405 no_define
406 default_value { "" }
407 description "
408 This option modifies the set of compiler flags for
409 building the uITRON compatibility layer. These flags are removed from
410 the set of global flags if present."
411 }
412
413 cdl_option CYGPKG_UITRON_TESTS {
414 display "uITRON tests"
415 flavor data
416 no_define
417 calculated { "tests/test1 tests/test2 tests/test3 tests/test4 tests/test5 tests/test6 tests/test7 tests/test8 tests/test9 tests/testcxx tests/testcx2 tests/testcx3 tests/testcx4 tests/testcx5 tests/testcx6 tests/testcx7 tests/testcx8 tests/testcx9 tests/testintr" }
418 description "
419 This option specifies the set of tests for the uITRON compatibility layer."
420 }
421 }
422 }