OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [compat/] [uitron/] [v2_0/] [cdl/] [uitron.cdl] - Blame information for rev 174

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.