]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/io/wallclock/v2_0/cdl/wallclock.cdl
Initial revision
[karo-tx-redboot.git] / packages / io / wallclock / v2_0 / cdl / wallclock.cdl
1 # ====================================================================
2 #
3 #      wallclock.cdl
4 #
5 #      eCos wallclock 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):      jskov
44 # Original data:  nickg
45 # Contributors:
46 # Date:           1999-07-13
47 #
48 #####DESCRIPTIONEND####
49 #
50 # ====================================================================
51
52 cdl_package CYGPKG_IO_WALLCLOCK {
53     display       "Wallclock device"
54     include_dir   cyg/io
55
56     define_header wallclock.h
57     description   "
58         The wallclock device provides real time stamps, as opposed
59         to the eCos kernel timers which typically just count the
60         number of clock ticks since the hardware was powered up.
61         Depending on the target platform this device may involve
62         interacting with a suitable clock chip, or it may be
63         emulated by using the kernel timers."
64
65     compile       wallclock.cxx
66
67     cdl_interface CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS {
68         display       "Number of wallclock hardware implementations"
69         no_define
70     }
71
72     cdl_interface CYGINT_WALLCLOCK_IMPLEMENTATIONS {
73         display       "Number of wallclock implementations"
74         no_define
75         requires      1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
76     }
77
78     cdl_interface CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED {
79         display       "Wallclock driver supports set/get mode"
80         no_define
81     }
82
83     cdl_option CYGSEM_WALLCLOCK_MODE {
84         display       "Wallclock mode"
85         flavor        data
86         legal_values  { "init_get" "set_get" }
87         default_value { CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ? \
88                         "set_get" : "init_get" }
89         requires      { CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED || \
90                         CYGSEM_WALLCLOCK_MODE == "init_get" }
91         no_define
92         description   "
93             The wallclock driver can be used in one of two
94             modes. Set/get mode allows time to be kept during power
95             off (assuming there's a battery backed clock). Init/get
96             mode is slightly smaller and can be used when there is no
97             battery backed clock - in this mode time 0 is the time of
98             the board power up."
99     }
100
101     cdl_option CYGSEM_WALLCLOCK_SET_GET_MODE {
102         display     "Wallclock set/get mode"
103         calculated  { CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 }
104     }
105
106     cdl_component CYGPKG_IO_WALLCLOCK_IMPLEMENTATION {
107         display "Wallclock implementation"
108         flavor none
109         no_define
110         description "Implementations of the wallclock device."
111
112         cdl_option CYGPKG_WALLCLOCK_EMULATE {
113             default_value { 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS }
114             display       "Wallclock emulator"
115             implements    CYGINT_WALLCLOCK_IMPLEMENTATIONS
116             compile       emulate.cxx
117             requires      CYGPKG_KERNEL
118             define_proc {
119                 puts $::cdl_header "#undef CYGSEM_WALLCLOCK_SET_GET_MODE"
120             }
121             description   "
122                 When this option is enabled, a wallclock device will be
123                 emulated using the kernel real-time clock."
124         }
125
126         cdl_option CYGIMP_WALLCLOCK_NONE {
127             display       "No wallclock"
128             default_value { !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS }
129             implements    CYGINT_WALLCLOCK_IMPLEMENTATIONS
130             description   "Disables the wallclock."
131         }
132     }
133
134     cdl_component CYGPKG_IO_WALLCLOCK_OPTIONS {
135         display "Wallclock build options"
136         flavor  none
137         description   "
138             Package specific build options including control over
139             compiler flags used only in building this package,
140             and details of which tests are built."
141
142
143         cdl_option CYGPKG_IO_WALLCLOCK_CFLAGS_ADD {
144             display "Additional compiler flags"
145             flavor  data
146             no_define
147             default_value { "" }
148             description   "
149                 This option modifies the set of compiler flags for
150                 building the wallclock device. These flags are used in addition
151                 to the set of global flags."
152         }
153
154         cdl_option CYGPKG_IO_WALLCLOCK_CFLAGS_REMOVE {
155             display "Suppressed compiler flags"
156             flavor  data
157             no_define
158             default_value { "" }
159             description   "
160                 This option modifies the set of compiler flags for
161                 building the wallclock device. These flags are removed from
162                 the set of global flags if present."
163         }
164
165         cdl_option CYGPKG_IO_WALLCLOCK_TESTS {
166             display "Wallclock tests"
167             flavor  data
168             no_define
169             calculated { CYGPKG_KERNEL ? "tests/wallclock tests/wallclock2" : "" }
170             description   "
171                 This option specifies the set of tests for the
172                 wallclock device."
173         }
174     }
175 }