1 # ====================================================================
5 # POSIX pthread 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####
44 # Contributors: jlarmour
47 #####DESCRIPTIONEND####
49 # ====================================================================
51 cdl_option CYGPKG_POSIX_PTHREAD_REQUIREMENTS {
52 display "Generic requirements of pthread package"
55 implements CYGINT_ISO_PTHREADTYPES
56 implements CYGINT_ISO_PTHREAD_IMPL
57 requires CYGPKG_POSIX_SCHED
58 requires CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE
59 requires CYGSEM_KERNEL_SCHED_ASR_SUPPORT
60 requires CYGSEM_KERNEL_SCHED_ASR_GLOBAL
61 requires !CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL
62 requires CYGFUN_KERNEL_THREADS_STACK_LIMIT
63 requires { CYGBLD_ISO_PTHREADTYPES_HEADER == \
64 "<cyg/posix/types.h>" }
65 requires { CYGBLD_ISO_PTHREAD_IMPL_HEADER == \
66 "<cyg/posix/pthread.h>" }
67 description "This option exists merely to carry the pthread
68 package requirements."
72 # ====================================================================
74 cdl_component CYGPKG_POSIX_PTHREAD_VALUES {
75 display "Constant values used in pthread package"
78 description "These are values that are either configurable, or derived
79 from system parameters."
81 cdl_option CYGNUM_POSIX_PTHREAD_DESTRUCTOR_ITERATIONS {
82 display "Maximum number of iterations of key destructors"
86 description "Maximum number of iterations of key destructors allowed."
89 cdl_option CYGNUM_POSIX_PTHREAD_KEYS_MAX {
90 display "Maximum number of per-thread data keys allowed"
92 legal_values 128 to 65535
94 description "Number of per-thread data keys supported."
97 cdl_option CYGNUM_POSIX_PTHREAD_THREADS_MAX {
98 display "Maximum number of threads allowed"
100 legal_values 64 to 1024
102 description "Maximum number of threads supported."
107 # ====================================================================
109 cdl_component CYGPKG_POSIX_PTHREAD_FEATURES {
110 display "Fixed Feature test macros for POSIX"
113 description "These options define POSIX feature test macros that
114 describe the eCos implementation of pthreads. These
115 are not changeable configuration options."
117 cdl_option _POSIX_THREADS {
118 display "POSIX thread support feature test macro"
121 requires CYGSEM_KERNEL_SCHED_TIMESLICE
122 requires CYGVAR_KERNEL_THREADS_DATA
123 description "This option defines the POSIX feature test macro
127 cdl_option _POSIX_THREAD_PRIORITY_SCHEDULING {
128 display "POSIX thread priority scheduling feature test macro"
131 requires CYGSEM_KERNEL_SCHED_MLQUEUE
132 requires _POSIX_THREADS
133 description "This option defines the POSIX feature test macro
134 for thread priority scheduling support."
137 cdl_option _POSIX_THREAD_ATTR_STACKADDR {
138 display "POSIX stack address attribute feature test macro"
141 description "This option defines the POSIX feature test macro
142 for supporting the thread stack address in the thread
146 cdl_option _POSIX_THREAD_ATTR_STACKSIZE {
147 display "POSIX stack size attribute feature test macro"
150 description "This option defines the POSIX feature test macro
151 for supporting the thread stack size in the thread
155 cdl_option _POSIX_THREAD_PROCESS_SHARED {
156 display "POSIX process shared attribute feature test macro"
159 description "This option defines the POSIX feature test macro
160 for supporting process shared mutexes. Since eCos
161 does not have processes, this attribute is undefined."
166 # ====================================================================
168 cdl_component CYGPKG_POSIX_MAIN_THREAD {
169 display "Main thread configuration"
172 requires { 0 != CYGPKG_LIBC_STARTUP }
173 requires CYGSEM_LIBC_STARTUP_MAIN_OTHER
174 implements CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
175 description "These options control the thread used to
176 run the main() application entry routine."
178 cdl_option CYGNUM_POSIX_MAIN_DEFAULT_PRIORITY {
179 display "main()'s default thread priority"
184 POSIX compatibility requires that the application's
185 main() function be invoked in a thread.
186 This option controls the priority of that thread. This
187 priority is the POSIX priority and is NOT the same as
188 an eCos thread priority. With POSIX thread priorities,
189 lower numbers are lower priority, and higher numbers are
194 # ====================================================================