]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/compat/posix/v2_0/cdl/posix.cdl
unified MX27, MX25, MX37 trees
[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 ## Copyright (C) 2008 eCosCentric Limited
13 ##
14 ## eCos is free software; you can redistribute it and/or modify it under
15 ## the terms of the GNU General Public License as published by the Free
16 ## Software Foundation; either version 2 or (at your option) any later version.
17 ##
18 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
19 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21 ## for more details.
22 ##
23 ## You should have received a copy of the GNU General Public License along
24 ## with eCos; if not, write to the Free Software Foundation, Inc.,
25 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
26 ##
27 ## As a special exception, if other files instantiate templates or use macros
28 ## or inline functions from this file, or you compile this file and link it
29 ## with other works to produce a work based on this file, this file does not
30 ## by itself cause the resulting work to be covered by the GNU General Public
31 ## License. However the source code for this file must still be made available
32 ## in accordance with section (3) of the GNU General Public License.
33 ##
34 ## This exception does not invalidate any other reasons why a work based on
35 ## this file might be covered by the GNU General Public License.
36 ##
37 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
38 ## at http://sources.redhat.com/ecos/ecos-license/
39 ## -------------------------------------------
40 #####ECOSGPLCOPYRIGHTEND####
41 # ====================================================================
42 ######DESCRIPTIONBEGIN####
43 #
44 # Author(s):      nickg
45 # Contributors:
46 # Date:           2000-3-28
47 #
48 #####DESCRIPTIONEND####
49 #
50 # ====================================================================
51
52 cdl_package CYGPKG_POSIX {
53     display        "POSIX compatibility layer"
54     description    "This package enables the POSIX compatibility
55                     layer that implements IEEE 1003.1."
56
57     doc            ref/posix-compatibility.html
58     include_dir    cyg/posix
59     
60     requires       CYGPKG_KERNEL
61     requires       CYGPKG_ISOINFRA
62     requires       CYGPKG_ERROR
63     requires       CYGINT_ISO_ERRNO
64     requires       CYGINT_ISO_ERRNO_CODES
65     requires       CYGIMP_KERNEL_SCHED_SORTED_QUEUES
66
67     implements     CYGINT_ISO_POSIX_LIMITS
68     requires       { CYGBLD_ISO_POSIX_LIMITS_HEADER == \
69                          "<cyg/posix/limits.h>" }
70     requires       { CYGBLD_ISO_PMUTEXTYPES_HEADER == \
71                          "<cyg/posix/muttypes.h>" }
72     requires       { CYGBLD_ISO_PTHREAD_MUTEX_HEADER == \
73                          "<cyg/posix/mutex.h>" }
74     
75     compile        misc.cxx
76     compile       -library=libextras.a startup.cxx
77
78     cdl_component CYGPKG_POSIX_PTHREAD_MUTEX {
79
80         display          "POSIX pthread mutexes"
81         flavor           bool
82         default_value    1
83         implements       CYGINT_ISO_PMUTEXTYPES
84         implements       CYGINT_ISO_PTHREAD_MUTEX
85         description      "
86             This component provides support for POSIX pthreads
87             mutexes."
88
89         compile          mutex.cxx
90
91         cdl_option _POSIX_THREAD_PRIO_INHERIT {
92             display       "POSIX mutex priority inheritance feature test macro"
93             flavor        bool
94             default_value 1
95             requires      CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
96             description   "
97                 This option defines the POSIX feature test macro for
98                 supporting priority inheritance protocol in mutexes."
99         }
100     
101         cdl_option _POSIX_THREAD_PRIO_PROTECT {
102             display       "POSIX mutex priority ceiling feature test macro"
103             flavor        bool
104             default_value 1
105             requires      CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
106             description   "
107                 This option defines the POSIX feature test macro for 
108                 supporting priority ceiling protocol in mutexes."
109         }
110     }
111     
112     # ----------------------------------------------------------------
113     # Scheduling component
114     
115     cdl_component CYGPKG_POSIX_SCHED {
116         display          "POSIX scheduling configuration"
117         flavor           bool
118         default_value    1
119         implements       CYGINT_ISO_SCHED_IMPL
120         requires         CYGPKG_POSIX_CLOCKS
121
122         description      "
123             This component provides controls over scheduling in POSIX."
124
125         compile          sched.cxx
126
127         cdl_option _POSIX_PRIORITY_SCHEDULING {
128             display       "POSIX priority scheduling feature test macro"
129             flavor        bool
130             calculated    1
131             requires      CYGSEM_KERNEL_SCHED_MLQUEUE
132             description   "
133                 This option defines the POSIX feature test macro that 
134                 indicates that priority scheduling is present. This 
135                 should not be undefined."
136         }
137     }
138
139     # ----------------------------------------------------------------
140     # Pthreads component
141
142     cdl_component CYGPKG_POSIX_PTHREAD {
143         display          "POSIX pthread configuration"
144         flavor           bool
145         default_value    1
146         description      "
147             This component provides configuration controls for the 
148             POSIX pthreads package."
149
150         script           pthread.cdl
151         compile          pthread.cxx
152
153     }
154
155     # ----------------------------------------------------------------
156     # Clock component
157
158     cdl_option CYGPKG_POSIX_CLOCKS {
159         display          "POSIX clocks"
160         flavor           bool
161         default_value    1
162         implements       CYGINT_ISO_POSIX_CLOCK_TYPES
163         implements       CYGINT_ISO_POSIX_CLOCKS
164         implements       CYGINT_ISO_POSIX_SLEEP
165         requires         { CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER == \
166                              "<cyg/posix/time.h>" }
167         requires         { CYGBLD_ISO_POSIX_CLOCKS_HEADER == \
168                              "<cyg/posix/time.h>" }
169         requires         { CYGBLD_ISO_STRUCTTIMEVAL_HEADER == \
170                              "<cyg/posix/sys/time.h>" }
171         requires         CYGPKG_KERNEL
172         requires         CYGVAR_KERNEL_COUNTERS_CLOCK
173
174         description      "
175             This component provides configuration controls for
176             the POSIX clocks and the sleep(), nanosleep() and 
177             gettimeofday() functions."
178
179         compile          time.cxx
180
181     }
182
183     # ----------------------------------------------------------------
184     # Timers component
185
186     cdl_option CYGPKG_POSIX_TIMERS {
187         display          "POSIX timers"
188         flavor           bool
189         default_value    1
190         implements       CYGINT_ISO_POSIX_TIMER_TYPES
191         implements       CYGINT_ISO_POSIX_TIMERS
192         implements       CYGINT_ISO_POSIX_TIMER_OPS
193         requires         { CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER == \
194                              "<cyg/posix/time.h>" }
195         requires         { CYGBLD_ISO_POSIX_TIMERS_HEADER == \
196                              "<cyg/posix/time.h>" }
197         requires         CYGPKG_KERNEL
198         requires         CYGVAR_KERNEL_COUNTERS_CLOCK
199         requires         CYGPKG_POSIX_PTHREAD
200         requires         CYGPKG_POSIX_SIGNALS
201         requires         CYGINT_ISO_POSIX_CLOCKS
202         description      "
203              This component provides configuration controls for
204              the POSIX timers."
205     }
206
207     # ----------------------------------------------------------------
208     # Semaphores component
209
210     cdl_option CYGPKG_POSIX_SEMAPHORES {
211         display          "POSIX semaphores"
212         flavor           bool
213         default_value    1
214         implements       CYGINT_ISO_SEMAPHORES
215         requires         { CYGBLD_ISO_SEMAPHORES_HEADER == \
216                              "<cyg/posix/semaphore.h>" }
217         description      "This component provides configuration controls for
218                           POSIX semaphores."
219
220         compile          sem.cxx
221     }
222
223     # ----------------------------------------------------------------
224     # Message queues component
225
226     cdl_component CYGPKG_POSIX_MQUEUES {
227         display          "POSIX message queues"
228         flavor           bool
229         default_value    1
230         compile          mqueue.cxx
231         implements       CYGINT_ISO_MQUEUE
232         requires         CYGPKG_KERNEL
233         requires         CYGINT_ISO_MALLOC
234         requires         CYGINT_ISO_ERRNO
235         requires         CYGINT_ISO_STRING_STRFUNCS
236         requires         CYGINT_ISO_PTHREAD_MUTEX
237         requires         CYGPKG_POSIX_CLOCKS
238         description      "This component provides configuration controls for
239                           POSIX message queues."
240
241         cdl_option CYGNUM_POSIX_MQUEUE_OPEN_MAX {
242             display          "Maximum number of message queues"
243             flavor           data
244             default_value    8
245             legal_values     1 to 999999
246         }
247
248         cdl_option CYGIMP_POSIX_MQUEUE_VALIDATE_DESCRIPTOR {
249             display          "Validate queue descriptors"
250             flavor           bool
251             default_value    1
252             description      "
253                 This option turns on checking that message queue descriptors
254                 (of type mqd_t) passed into mq_* functions are valid. If so,
255                 the functions will fail with EBADF, as POSIX 1003.1 mandates.
256                 If this option is disabled, if an invalid descriptor is used,
257                 random corruption may occur, or the system may crash. If
258                 you are confident invalid descriptors will not be used,
259                 you may wish to be disable this to save some per-instance
260                 memory and execution time."
261         }
262
263         cdl_option CYGFUN_POSIX_MQUEUE_NOTIFY {
264             display          "Allow empty queue notification"
265             flavor           bool
266             requires         CYGPKG_POSIX_SIGNALS
267             default_value    CYGPKG_POSIX_SIGNALS
268             description      "
269                 Enabling this option adds the function mq_notify() to the
270                 API. Without it, some code and per-message queue descriptor
271                 space is saved, as well as no longer requiring POSIX realtime
272                 signal support."
273         }
274     }
275
276     # ----------------------------------------------------------------
277     # Signals component
278
279     cdl_component CYGPKG_POSIX_SIGNALS {
280         display          "POSIX signals configuration"
281         flavor           bool
282         default_value    1
283         requires         CYGPKG_KERNEL_EXCEPTIONS
284         requires         CYGPKG_POSIX_PTHREAD
285         requires         CYGPKG_POSIX_TIMERS
286         implements       CYGINT_POSIX_REALTIME_SIGNALS
287         implements       CYGINT_ISO_SIGSETJMP
288         requires         { CYGBLD_ISO_SIGSETJMP_HEADER == \
289                              "<cyg/posix/sigsetjmp.h>" }
290         implements       CYGINT_ISO_SIGNAL_NUMBERS
291         implements       CYGINT_ISO_SIGNAL_IMPL
292         requires         { CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == \
293                              "<cyg/posix/signal.h>" }
294         requires         { CYGBLD_ISO_SIGNAL_IMPL_HEADER == \
295                              "<cyg/posix/signal.h>" }
296         description      "
297             This component provides configuration controls for
298             the POSIX signals."
299
300         compile          signal.cxx except.cxx 
301     }
302
303     # ----------------------------------------------------------------
304     # uname structure component
305
306     cdl_component CYGPKG_POSIX_UTSNAME {
307         display           "POSIX utsname configuration"
308         flavor            bool
309         default_value     1
310         requires          { CYGBLD_ISO_UTSNAME_HEADER == \
311                             "<cyg/posix/utsname.h>" }
312         description       "
313             This component provides configuration controls for
314             the POSIX utsname structure and the uname() function."
315
316         cdl_option CYG_POSIX_UTSNAME_LENGTH {
317             display          "Length of name strings in utsname structure"
318             flavor           data
319             default_value    65
320             legal_values     1 to 99999999
321         }
322
323         cdl_option CYG_POSIX_UTSNAME_NODENAME_LENGTH {
324             display          "Length of nodename string in utsname structure"
325             flavor           data
326             default_value    { CYG_POSIX_UTSNAME_LENGTH }
327             legal_values     1 to 99999999          
328         }
329
330     }
331
332     # ----------------------------------------------------------------
333     # Tests
334
335     cdl_option CYGPKG_POSIX_TESTS {
336         display "POSIX tests"
337         flavor  data
338         no_define
339         calculated { 
340             (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
341                                   : "") .
342             (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
343             (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
344             (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3 \
345                                      tests/sigsetjmp " : "") .
346             ((CYGPKG_POSIX_SIGNALS && 
347               CYGPKG_POSIX_TIMERS && 
348               CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
349             ((CYGPKG_POSIX_SIGNALS && 
350               CYGPKG_POSIX_TIMERS &&     
351               CYGPKG_POSIX_PTHREAD &&
352               CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
353             }
354             description   "
355                 This option specifies the set of tests for the POSIX package."
356         }
357
358 }
359
360 # ====================================================================
361 # End of posix.cdl
362
363