]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/compat/posix/v2_0/cdl/posix.cdl
Initial revision
[karo-tx-redboot.git] / packages / compat / posix / v2_0 / cdl / posix.cdl
1 # ====================================================================
2 #
3 #      posix.cdl
4 #
5 #      POSIX layer 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):      nickg
44 # Contributors:
45 # Date:           2000-3-28
46 #
47 #####DESCRIPTIONEND####
48 #
49 # ====================================================================
50
51 cdl_package CYGPKG_POSIX {
52     display        "POSIX compatibility layer"
53     description    "This package enables the POSIX compatibility
54                     layer that implements IEEE 1003.1."
55     doc            ref/posix-compatibility.html
56     include_dir    cyg/posix
57     
58     requires       CYGPKG_KERNEL
59     requires       CYGPKG_ISOINFRA
60     requires       CYGPKG_ERROR
61     requires       CYGINT_ISO_ERRNO
62     requires       CYGINT_ISO_ERRNO_CODES
63     requires       CYGIMP_KERNEL_SCHED_SORTED_QUEUES
64
65     implements     CYGINT_ISO_SCHED_IMPL
66     implements     CYGINT_ISO_POSIX_LIMITS
67     implements     CYGINT_ISO_PMUTEXTYPES
68     implements     CYGINT_ISO_PTHREAD_MUTEX
69     requires       { CYGBLD_ISO_POSIX_LIMITS_HEADER == \
70                          "<cyg/posix/limits.h>" }
71     requires       { CYGBLD_ISO_PMUTEXTYPES_HEADER == \
72                          "<cyg/posix/muttypes.h>" }
73     requires       { CYGBLD_ISO_PTHREAD_MUTEX_HEADER == \
74                          "<cyg/posix/mutex.h>" }
75     
76     compile        mqueue.cxx mutex.cxx misc.cxx
77     compile       -library=libextras.a startup.cxx
78
79     cdl_option _POSIX_THREAD_PRIO_INHERIT {
80         display         "POSIX mutex priority inheritance feature test macro"
81         flavor          bool
82         default_value   1
83         requires        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
84         description     "This option defines the POSIX feature test macro
85                          for supporting priority inheritance protocol in
86                          mutexes."
87     }
88     
89     cdl_option _POSIX_THREAD_PRIO_PROTECT {
90         display         "POSIX mutex priority ceiling feature test macro"
91         flavor          bool
92         default_value   1
93         requires        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
94         description     "This option defines the POSIX feature test macro
95                          for supporting priority ceiling protocol in mutexes."
96     }
97     
98     # ----------------------------------------------------------------
99     # Scheduling component
100     
101     cdl_component CYGPKG_POSIX_SCHED {
102         display          "POSIX scheduling configuration"
103         flavor           bool
104         default_value    1
105         description      "This component provides controls over scheduling
106                           in POSIX."
107         requires         CYGPKG_POSIX_CLOCKS
108         compile          sched.cxx
109
110         cdl_option _POSIX_PRIORITY_SCHEDULING {
111             display       "POSIX priority scheduling feature test macro"
112             flavor        bool
113             calculated    1
114             requires      CYGSEM_KERNEL_SCHED_MLQUEUE
115             description   "This option defines the POSIX feature test macro
116                            that indicates that priority scheduling is present.
117                            This should not be undefined."
118         }
119     }
120
121     # ----------------------------------------------------------------
122     # Pthreads component
123
124     cdl_component CYGPKG_POSIX_PTHREAD {
125         display          "POSIX pthread configuration"
126         flavor           bool
127         default_value    1
128         description      "This component provides configuration controls for
129                           the POSIX pthreads package."
130         compile          pthread.cxx
131         script           pthread.cdl
132     }
133
134     # ----------------------------------------------------------------
135     # Timers component
136
137     cdl_option CYGPKG_POSIX_CLOCKS {
138         display          "POSIX clocks"
139         flavor           bool
140         default_value    1
141         implements       CYGINT_ISO_POSIX_CLOCK_TYPES
142         implements       CYGINT_ISO_POSIX_CLOCKS
143         implements       CYGINT_ISO_POSIX_SLEEP
144         requires         { CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER == \
145                              "<cyg/posix/time.h>" }
146         requires         { CYGBLD_ISO_POSIX_CLOCKS_HEADER == \
147                              "<cyg/posix/time.h>" }
148         requires         CYGPKG_KERNEL
149         requires         CYGVAR_KERNEL_COUNTERS_CLOCK
150         compile          time.cxx
151         description      "This component provides configuration controls for
152                           the POSIX clocks."
153     }
154
155     # ----------------------------------------------------------------
156     # Timers component
157
158     cdl_option CYGPKG_POSIX_TIMERS {
159         display          "POSIX timers"
160         flavor           bool
161         default_value    1
162         implements       CYGINT_ISO_POSIX_TIMER_TYPES
163         implements       CYGINT_ISO_POSIX_TIMERS
164         implements       CYGINT_ISO_POSIX_TIMER_OPS
165         requires         { CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER == \
166                              "<cyg/posix/time.h>" }
167         requires         { CYGBLD_ISO_POSIX_TIMERS_HEADER == \
168                              "<cyg/posix/time.h>" }
169         requires         CYGPKG_KERNEL
170         requires         CYGVAR_KERNEL_COUNTERS_CLOCK
171         requires         CYGPKG_POSIX_PTHREAD
172         requires         CYGPKG_POSIX_CLOCKS
173         requires         CYGPKG_POSIX_SIGNALS
174         description      "This component provides configuration controls for
175                           the POSIX timers."
176     }
177
178     # ----------------------------------------------------------------
179     # Semaphores component
180
181     cdl_option CYGPKG_POSIX_SEMAPHORES {
182         display          "POSIX semaphores"
183         flavor           bool
184         default_value    1
185         implements       CYGINT_ISO_SEMAPHORES
186         requires         { CYGBLD_ISO_SEMAPHORES_HEADER == \
187                              "<cyg/posix/semaphore.h>" }
188         description      "This component provides configuration controls for
189                           POSIX semaphores."
190
191         compile          sem.cxx
192     }
193
194     # ----------------------------------------------------------------
195     # Message queues component
196
197     cdl_component CYGPKG_POSIX_MQUEUES {
198         display          "POSIX message queues"
199         flavor           bool
200         default_value    1
201         implements       CYGINT_ISO_MQUEUE
202         requires         CYGPKG_KERNEL
203         requires         CYGINT_ISO_MALLOC
204         requires         CYGINT_ISO_ERRNO
205         requires         CYGINT_ISO_STRING_STRFUNCS
206         description      "This component provides configuration controls for
207                           POSIX message queues."
208
209         cdl_option CYGNUM_POSIX_MQUEUE_OPEN_MAX {
210             display          "Maximum number of message queues"
211             flavor           data
212             default_value    8
213             legal_values     1 to 999999
214         }
215
216         cdl_option CYGIMP_POSIX_MQUEUE_VALIDATE_DESCRIPTOR {
217             display          "Validate queue descriptors"
218             flavor           bool
219             default_value    1
220             description      "
221                 This option turns on checking that message queue descriptors
222                 (of type mqd_t) passed into mq_* functions are valid. If so,
223                 the functions will fail with EBADF, as POSIX 1003.1 mandates.
224                 If this option is disabled, if an invalid descriptor is used,
225                 random corruption may occur, or the system may crash. If
226                 you are confident invalid descriptors will not be used,
227                 you may wish to be disable this to save some per-instance
228                 memory and execution time."
229         }
230
231         cdl_option CYGFUN_POSIX_MQUEUE_NOTIFY {
232             display          "Allow empty queue notification"
233             flavor           bool
234             requires         CYGPKG_POSIX_SIGNALS
235             default_value    CYGPKG_POSIX_SIGNALS
236             description      "
237                 Enabling this option adds the function mq_notify() to the
238                 API. Without it, some code and per-message queue descriptor
239                 space is saved, as well as no longer requiring POSIX realtime
240                 signal support."
241         }
242     }
243
244     # ----------------------------------------------------------------
245     # Signals component
246
247     cdl_component CYGPKG_POSIX_SIGNALS {
248         display          "POSIX signals configuration"
249         flavor           bool
250         default_value    1
251         requires         CYGPKG_KERNEL_EXCEPTIONS
252         requires         CYGPKG_POSIX_PTHREAD
253         requires         CYGPKG_POSIX_TIMERS
254         implements       CYGINT_POSIX_REALTIME_SIGNALS
255         implements       CYGINT_ISO_SIGSETJMP
256         requires         { CYGBLD_ISO_SIGSETJMP_HEADER == \
257                              "<cyg/posix/sigsetjmp.h>" }
258         implements       CYGINT_ISO_SIGNAL_NUMBERS
259         implements       CYGINT_ISO_SIGNAL_IMPL
260         requires         { CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == \
261                              "<cyg/posix/signal.h>" }
262         requires         { CYGBLD_ISO_SIGNAL_IMPL_HEADER == \
263                              "<cyg/posix/signal.h>" }
264         description      "This component provides configuration controls for
265                           the POSIX signals."
266         compile          signal.cxx except.cxx 
267     }
268
269     # ----------------------------------------------------------------
270     # uname structure component
271
272     cdl_component CYGPKG_POSIX_UTSNAME {
273         display           "POSIX utsname configuration"
274         flavor            bool
275         default_value     1
276         requires          { CYGBLD_ISO_UTSNAME_HEADER == \
277                             "<cyg/posix/utsname.h>" }
278         description       "This component provides configuration controls for
279                            the POSIX utsname structure and the uname() function."
280
281         cdl_option CYG_POSIX_UTSNAME_LENGTH {
282             display          "Length of name strings in utsname structure"
283             flavor           data
284             default_value    65
285             legal_values     1 to 99999999
286         }
287
288         cdl_option CYG_POSIX_UTSNAME_NODENAME_LENGTH {
289             display          "Length of nodename string in utsname structure"
290             flavor           data
291             default_value    { CYG_POSIX_UTSNAME_LENGTH }
292             legal_values     1 to 99999999          
293         }
294
295     }
296
297     # ----------------------------------------------------------------
298     # Tests
299
300         cdl_option CYGPKG_POSIX_TESTS {
301             display "POSIX tests"
302             flavor  data
303             no_define
304             calculated { 
305                 "tests/pthread1 tests/pthread2 tests/pthread3 tests/mutex3 tests/mqueue2"
306                 . ((CYGPKG_POSIX_SIGNALS) ? " tests/mqueue1 tests/signal1 tests/signal2 tests/signal3 tests/sigsetjmp tests/timer1 tests/tm_basic" : "")
307             }
308             description   "
309                 This option specifies the set of tests for the POSIX package."
310         }
311
312 }
313
314 # ====================================================================
315 # End of posix.cdl
316
317