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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [kernel/] [v2_0/] [cdl/] [kernel.cdl] - Blame information for rev 773

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
# ====================================================================
2
#
3
#      kernel.cdl
4
#
5
#      eCos kernel 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:  nickg
45
# Contributors:
46
# Date:           1999-06-13
47
#
48
#####DESCRIPTIONEND####
49
#
50
# ====================================================================
51
 
52
cdl_package CYGPKG_KERNEL {
53
    display       "eCos kernel"
54
    doc           ref/kernel.html
55
    include_dir   cyg/kernel
56
    description   "
57
        This package contains the core functionality of the eCos
58
        kernel. It relies on functionality provided by various HAL
59
        packages and by the eCos infrastructure. In turn the eCos
60
        kernel provides support for other packages such as the device
61
        drivers and the uITRON compatibility layer."
62
    # FIXME: The compile statement should be split up and integrated as
63
    #        part of the components - so files only get comiled when they
64
    #        will actually be used.
65
    compile       common/clock.cxx     common/timer.cxx  common/kapi.cxx   \
66
                  common/thread.cxx    common/except.cxx                   \
67
                  intr/intr.cxx                                            \
68
                  sched/bitmap.cxx     sched/lottery.cxx sched/mlqueue.cxx \
69
                  sched/sched.cxx                                          \
70
                  sync/bin_sem.cxx     sync/cnt_sem.cxx  sync/flag.cxx     \
71
                  sync/cnt_sem2.cxx    sync/mbox.cxx     sync/mutex.cxx    \
72
                  debug/dbg-thread-demux.c
73
 
74
    # ---------------------------------------------------------------------
75
    # The first component within the kernel is related to interrupt
76
    # handling.
77
    cdl_component CYGPKG_KERNEL_INTERRUPTS {
78
        display       "Kernel interrupt handling"
79
        flavor        none
80
        doc           ref/kernel-interrupts.html
81
        description   "
82
            The majority of configuration options related to interrupt
83
            handling are in the HAL packages, since usually the code has
84
            to be platform-specific. There are a number of options
85
            provided within the kernel related to slightly higher-level
86
            concepts, for example Delayed Service Routines."
87
 
88
        script        interrupts.cdl
89
    }
90
 
91
    # ---------------------------------------------------------------------
92
    # Exceptions. Currently there are only two options. The first
93
    # determines whether or not exceptions are enabled at all. The
94
    # second controls whether they apply globally or on a per-thread
95
    # basis. There should probably be more options, but the boundary
96
    # between the HAL and kernel becomes blurred.
97
    cdl_component CYGPKG_KERNEL_EXCEPTIONS {
98
        display       "Exception handling"
99
        requires      CYGPKG_HAL_EXCEPTIONS
100
        default_value 1
101
        doc           ref/kernel-exceptions.html
102
        description   "
103
            In the context of the eCos kernel exceptions are unexpected
104
            events detected by the hardware, for example an attempt to
105
            execute an illegal instruction. There is no relation with
106
            other forms of exception, for example the catch and throw
107
            facilities of languages like C++. It is possible to disable
108
            all support for exceptions and thus save some memory."
109
 
110
        cdl_option CYGSEM_KERNEL_EXCEPTIONS_DECODE {
111
            display       "Decode exception types in kernel"
112
            default_value 0
113
            description   "
114
                On targets where several different types of exception are
115
                possible, for example executing an illegal instruction and
116
                division by zero, it is possible for the kernel to do some
117
                decoding of the exception type and deliver the different
118
                types of exception to different handlers in the application
119
                code. Alternatively the kernel can simply pass all
120
                exceptions directly to application code, leaving the
121
                decoding to be done by the application"
122
        }
123
 
124
        cdl_option CYGSEM_KERNEL_EXCEPTIONS_GLOBAL {
125
            display       "Use global exception handlers"
126
            default_value 1
127
            description   "
128
                In the context of the eCos kernel exceptions are
129
                unexpected events detected by the hardware, for
130
                example an attempt to execute an illegal
131
                instruction. If the kernel is configured
132
                to support exceptions then two implementations are
133
                possible. The default implementation involves a single set
134
                of exception handlers that are in use for the entire
135
                system. The alternative implementation allows different
136
                exception handlers to be specified for each thread."
137
        }
138
    }
139
 
140
    # ---------------------------------------------------------------------
141
    cdl_component CYGPKG_KERNEL_SCHED {
142
        display       "Kernel schedulers"
143
        flavor        none
144
        doc           ref/kernel-overview.html#KERNEL-OVERVIEW-SCHEDULERS
145
        description   "
146
            The eCos kernel provides a choice of schedulers. In addition
147
            there are a number of configuration options to control the
148
            detailed behaviour of these schedulers."
149
 
150
        script        scheduler.cdl
151
    }
152
 
153
    # ---------------------------------------------------------------------
154
    # SMP support
155
 
156
    cdl_component CYGPKG_KERNEL_SMP_SUPPORT {
157
        display       "SMP support"
158
        flavor        bool
159
        requires      CYGPKG_HAL_SMP_SUPPORT
160
        default_value 0
161
    }
162
 
163
    # ---------------------------------------------------------------------
164
    cdl_component CYGPKG_KERNEL_COUNTERS {
165
        display       "Counters and clocks"
166
        flavor        none
167
        doc           ref/kernel-counters.html
168
        description   "
169
            The counter objects provided by the kernel provide an
170
            abstraction of the clock facility that is generally provided.
171
            Application code can associate alarms with counters, where an
172
            alarm is identified by the number of ticks until it triggers,
173
            the action to be taken on triggering, and whether or not the
174
            alarm should be repeated."
175
 
176
        script        counters.cdl
177
    }
178
 
179
    # ---------------------------------------------------------------------
180
    cdl_component CYGPKG_KERNEL_THREADS {
181
        display       "Thread-related options"
182
        flavor        none
183
        description   "
184
            There are a number of configuration options related to the
185
            implementation of threads, for example whether or not the
186
            eCos kernel supports per-thread data."
187
 
188
        script        thread.cdl
189
    }
190
 
191
    # ---------------------------------------------------------------------
192
    cdl_component CYGPKG_KERNEL_SYNCH {
193
        display       "Synchronization primitives"
194
        flavor        none
195
        description   "
196
            The eCos kernel supports a number of different
197
            synchronization primitives such as mutexes, semaphores,
198
            condition variables, and message boxes. There are
199
            configuration options to control the exact behaviour of some
200
            of these synchronization primitives."
201
 
202
        script        synch.cdl
203
    }
204
 
205
    # ---------------------------------------------------------------------
206
    cdl_component CYGPKG_KERNEL_INSTRUMENT {
207
        display       "Kernel instrumentation"
208
        flavor        bool
209
        default_value 0
210
        description   "
211
            The current release of the kernel contains an initial version
212
            of instrumentation support. The various parts of the kernel
213
            will invoke instrumentation routines whenever appropriate
214
            events occur, and these will be stored in a circular buffer
215
            for later reference."
216
 
217
        compile       instrmnt/meminst.cxx
218
        script        instrument.cdl
219
    }
220
 
221
    #===================================================================
222
    # Options related to source-level debugging and diagnostics.
223
    cdl_component CYGPKG_KERNEL_DEBUG {
224
        display       "Source-level debugging support"
225
        flavor        none
226
        description   "
227
            If the source level debugger gdb is to be used for debugging
228
            application code then it may be necessary to configure in support
229
            for this in the kernel."
230
 
231
        # NOTE: does this require any other support ?
232
        cdl_option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT {
233
            display       "Include GDB multi-threading debug support"
234
            requires      CYGVAR_KERNEL_THREADS_LIST
235
            requires      CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
236
            default_value 1
237
            compile       debug/dbg_gdb.cxx
238
            description "
239
            This option enables some extra kernel code which is needed
240
            to support multi-threaded source level debugging."
241
        }
242
    }
243
 
244
    # ---------------------------------------------------------------------
245
    # Kernel API's. The C++ one is the default. A C API is optional.
246
    # Support for other languages is possible.
247
    cdl_component CYGPKG_KERNEL_API {
248
        display       "Kernel APIs"
249
        flavor        none
250
        description   "
251
            The eCos kernel is implemented in C++, so a C++ interface
252
            to the kernel is always available. There is also an optional
253
            C API. Additional API's may be provided in future versions."
254
 
255
        cdl_option CYGFUN_KERNEL_API_C {
256
            display       "Provide C API"
257
            default_value 1
258
            description   "
259
                The eCos kernel is implemented in C++, but there is an
260
                optional C API for use by application code. This C API can be
261
                disabled if the application code does not invoke the kernel
262
                directly, but instead uses higher level code such as the
263
                uITRON compatibility layer."
264
        }
265
    }
266
 
267
    define_proc {
268
        puts $::cdl_header "/***** proc output start *****/"
269
 
270
        # Clients of pkgconf/kernel.h expects system.h to be included.
271
        puts $::cdl_header "#include "
272
        # FIXME: Some clients may rely on hal.h and infra.h being included.
273
        #        This should go away when any such client has been fixed.
274
        puts $::cdl_header "#include "
275
        puts $::cdl_header "#include "
276
 
277
        # Include HAL/Platform specifics
278
        puts $::cdl_header "#include CYGBLD_HAL_PLATFORM_H"
279
        # Fallback defaults (in case HAL didn't define these)
280
        puts $::cdl_header "#ifndef CYGNUM_HAL_RTC_NUMERATOR"
281
        puts $::cdl_header "# define CYGNUM_HAL_RTC_NUMERATOR     1000000000"
282
        puts $::cdl_header "# define CYGNUM_HAL_RTC_DENOMINATOR   100"
283
        puts $::cdl_header "# define CYGNUM_HAL_RTC_PERIOD        9999"
284
        puts $::cdl_header "#endif"
285
 
286
        puts $::cdl_header "/*****  proc output end  *****/"
287
    }
288
 
289
    cdl_component CYGPKG_KERNEL_OPTIONS {
290
        display "Kernel build options"
291
        flavor  none
292
        description   "
293
            Package specific build options including control over
294
            compiler flags used only in building this package,
295
            and details of which tests are built."
296
 
297
 
298
        cdl_option CYGPKG_KERNEL_CFLAGS_ADD {
299
            display "Additional compiler flags"
300
            flavor  data
301
            no_define
302
            default_value { "" }
303
            description   "
304
                This option modifies the set of compiler flags for
305
                building the eCos kernel. These flags are used in addition
306
                to the set of global flags."
307
        }
308
 
309
        cdl_option CYGPKG_KERNEL_CFLAGS_REMOVE {
310
            display "Suppressed compiler flags"
311
            flavor  data
312
            no_define
313
            default_value { "" }
314
            description   "
315
                This option modifies the set of compiler flags for
316
                building the eCos kernel. These flags are removed from
317
                the set of global flags if present."
318
        }
319
 
320
        cdl_option CYGPKG_KERNEL_TESTS {
321
            display "Kernel tests"
322
            flavor  data
323
            no_define
324
            calculated {
325
                "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2"
326
                . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/tm_basic tests/fptest" : "")
327
                . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
328
                . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
329
                . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
330
            }
331
            description   "
332
                This option specifies the set of tests for the eCos kernel."
333
        }
334
    }
335
}
336
 
337
# EOF kernel.cdl

powered by: WebSVN 2.1.0

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