Mercurial > flash_v2
diff packages/kernel/current/cdl/synch.cdl @ 76:435cced73e2f ecos-v1_3_1-release
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
| author | jlarmour |
|---|---|
| date | Tue, 28 Mar 2000 14:10:45 +0000 |
| parents | |
| children | 6ed91473a1cd |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/kernel/current/cdl/synch.cdl @@ -0,0 +1,111 @@ +# ==================================================================== +# +# synch.cdl +# +# configuration data related to the kernel synchronization primitives +# +# ==================================================================== +#####COPYRIGHTBEGIN#### +# +# ------------------------------------------- +# The contents of this file are subject to the Red Hat eCos Public License +# Version 1.1 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.redhat.com/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations under +# the License. +# +# The Original Code is eCos - Embedded Configurable Operating System, +# released September 30, 1998. +# +# The Initial Developer of the Original Code is Red Hat. +# Portions created by Red Hat are +# Copyright (C) 1998, 1999, 2000 Red Hat, Inc. +# All Rights Reserved. +# ------------------------------------------- +# +#####COPYRIGHTEND#### +# ==================================================================== +######DESCRIPTIONBEGIN#### +# +# Author(s): jskov +# Original data: nickg +# Contributors: +# Date: 1999-07-05 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + +# NOTE: the requires statement is only valid for the current kernel. +# Priority inheritance is possible in other schedulers as well +# but is not yet implemented. +cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE { + display "Simple mutex priority inheritance" + requires CYGSEM_KERNEL_SCHED_MLQUEUE + default_value 1 + description " + This option enables a relatively simple implementation of + mutex priority inheritance. The implementation will only work + in the mlqueue scheduler, and it does not handle the rare + case of nested mutexes completely correctly. However it is + both fast and deterministic. Mutex priority inheritance can + be disabled if the application does not require it, which + will reduce both code size and data space." +} + +cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY { + display "Relay enhancement to simple mutex priority inheritance" + active_if CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE + default_value 1 + description " + This option enables an extension to the simple implementation of + mutex priority inheritance whereby a thread releasing a mutex to a + waiting thread relays its own priority to the new owner if there + are still further threads waiting. This can be viewed as a + discovered priority ceiling." +} + +cdl_option CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT { + display "Message box blocking put support" + default_value 1 + description " + Message boxes can support three different versions of the + put-message operation. The first is tryput(), which will fail + if the message box is already full. The other two are the + ordinary put() function which will block if the message box + is full, and a timed put() operation which will block for + upto a certain length of time if the message box is currently + full. The blocking versions require extra memory in the + message box data structure and extra code in the other + message box functions, so they can be disabled if the + application does not require them. If this option is enabled + then the system will always provide the blocking put() + function, and it will also provide the timed put() function + if thread timers are enabled." +} + +cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE { + display "Message box queue size" + flavor data + legal_values 1 to 65535 + default_value 10 + description " + This configuration option controls the number of messages + that can be queued in a message box before a non-blocking + put() operation will fail or a blocking put() operation will + block. The cost in memory is one pointer per message box for + each possible message." +} + +cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT { + display "Condition variable timed-wait support" + requires CYGFUN_KERNEL_THREADS_TIMER + default_value 1 + description " + This option enables the condition variable timed wait + facility." +}
