1 # ====================================================================
5 # POSIX layer configuration data
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.
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.
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
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.
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.
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.
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####
47 #####DESCRIPTIONEND####
49 # ====================================================================
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
58 requires CYGPKG_KERNEL
59 requires CYGPKG_ISOINFRA
61 requires CYGINT_ISO_ERRNO
62 requires CYGINT_ISO_ERRNO_CODES
63 requires CYGIMP_KERNEL_SCHED_SORTED_QUEUES
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>" }
76 compile mqueue.cxx mutex.cxx misc.cxx
77 compile -library=libextras.a startup.cxx
79 cdl_option _POSIX_THREAD_PRIO_INHERIT {
80 display "POSIX mutex priority inheritance feature test macro"
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
89 cdl_option _POSIX_THREAD_PRIO_PROTECT {
90 display "POSIX mutex priority ceiling feature test macro"
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."
98 # ----------------------------------------------------------------
99 # Scheduling component
101 cdl_component CYGPKG_POSIX_SCHED {
102 display "POSIX scheduling configuration"
105 description "This component provides controls over scheduling
107 requires CYGPKG_POSIX_CLOCKS
110 cdl_option _POSIX_PRIORITY_SCHEDULING {
111 display "POSIX priority scheduling feature test macro"
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."
121 # ----------------------------------------------------------------
124 cdl_component CYGPKG_POSIX_PTHREAD {
125 display "POSIX pthread configuration"
128 description "This component provides configuration controls for
129 the POSIX pthreads package."
134 # ----------------------------------------------------------------
137 cdl_option CYGPKG_POSIX_CLOCKS {
138 display "POSIX clocks"
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
151 description "This component provides configuration controls for
155 # ----------------------------------------------------------------
158 cdl_option CYGPKG_POSIX_TIMERS {
159 display "POSIX timers"
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
178 # ----------------------------------------------------------------
179 # Semaphores component
181 cdl_option CYGPKG_POSIX_SEMAPHORES {
182 display "POSIX semaphores"
185 implements CYGINT_ISO_SEMAPHORES
186 requires { CYGBLD_ISO_SEMAPHORES_HEADER == \
187 "<cyg/posix/semaphore.h>" }
188 description "This component provides configuration controls for
194 # ----------------------------------------------------------------
195 # Message queues component
197 cdl_component CYGPKG_POSIX_MQUEUES {
198 display "POSIX message queues"
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."
209 cdl_option CYGNUM_POSIX_MQUEUE_OPEN_MAX {
210 display "Maximum number of message queues"
213 legal_values 1 to 999999
216 cdl_option CYGIMP_POSIX_MQUEUE_VALIDATE_DESCRIPTOR {
217 display "Validate queue descriptors"
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."
231 cdl_option CYGFUN_POSIX_MQUEUE_NOTIFY {
232 display "Allow empty queue notification"
234 requires CYGPKG_POSIX_SIGNALS
235 default_value CYGPKG_POSIX_SIGNALS
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
244 # ----------------------------------------------------------------
247 cdl_component CYGPKG_POSIX_SIGNALS {
248 display "POSIX signals configuration"
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
266 compile signal.cxx except.cxx
269 # ----------------------------------------------------------------
270 # uname structure component
272 cdl_component CYGPKG_POSIX_UTSNAME {
273 display "POSIX utsname configuration"
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."
281 cdl_option CYG_POSIX_UTSNAME_LENGTH {
282 display "Length of name strings in utsname structure"
285 legal_values 1 to 99999999
288 cdl_option CYG_POSIX_UTSNAME_NODENAME_LENGTH {
289 display "Length of nodename string in utsname structure"
291 default_value { CYG_POSIX_UTSNAME_LENGTH }
292 legal_values 1 to 99999999
297 # ----------------------------------------------------------------
300 cdl_option CYGPKG_POSIX_TESTS {
301 display "POSIX tests"
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" : "")
309 This option specifies the set of tests for the POSIX package."
314 # ====================================================================