Mercurial > flash_v2
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 } |
