OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [kernel/] [current/] [cdl/] [synch.cdl] - Blame information for rev 851

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
# ====================================================================
2
#
3
#      synch.cdl
4
#
5
#      configuration data related to the kernel synchronization primitives
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, 2006 Free Software Foundation, 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
16
## version.
17
##
18
## eCos is distributed in the hope that it will be useful, but WITHOUT
19
## ANY 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
24
## along with eCos; if not, write to the Free Software Foundation, Inc.,
25
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
26
##
27
## As a special exception, if other files instantiate templates or use
28
## macros or inline functions from this file, or you compile this file
29
## and link it with other works to produce a work based on this file,
30
## this file does not by itself cause the resulting work to be covered by
31
## the GNU General Public License. However the source code for this file
32
## must still be made available in accordance with section (3) of the GNU
33
## General Public License v2.
34
##
35
## This exception does not invalidate any other reasons why a work based
36
## on this file might be covered by the GNU General Public License.
37
## -------------------------------------------
38
## ####ECOSGPLCOPYRIGHTEND####
39
# ====================================================================
40
######DESCRIPTIONBEGIN####
41
#
42
# Author(s):      jskov
43
# Original data:  nickg
44
# Contributors:
45
# Date:           1999-07-05
46
#
47
#####DESCRIPTIONEND####
48
#
49
# ====================================================================
50
 
51
 
52
cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL {
53
    display      "Priority inversion protection protocols"
54
    flavor       booldata
55
    doc          ref/kernel-mutexes.html
56
    legal_values { "SIMPLE" }
57
    default_value { "SIMPLE" }
58
    active_if    { CYGSEM_KERNEL_SCHED_MLQUEUE }
59
    requires     { CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 }
60
    description "
61
        This component controls the protocols used to protect mutexes against
62
        priority inversion. If this option is enabled it defines which
63
        algorithm is used to implement this protection. At present only
64
        one such algorithm is defined: \"SIMPLE\". The implementation
65
        will only work in the mlqueue scheduler, and it does not handle the
66
        rare case of nested mutexes completely correctly. However it is
67
        both fast and deterministic."
68
 
69
    cdl_option  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT {
70
        display       "Enable priority inheritance protocol"
71
        default_value 1
72
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
73
        description   "
74
            This option enables priority inheritance protocol. This protocol
75
            causes the owner of a mutex to be executed at the highest priority
76
            of the threads waiting for access to the mutex."
77
    }
78
 
79
    cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING {
80
        display       "Enable priority ceiling protocol"
81
        default_value 1
82
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
83
        description   "
84
            This option enables priority ceiling protocol. This protocol
85
            causes the owner of a mutex to be executed at a  priority
86
            associated with the mutex."
87
        cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY {
88
            display       "Default priority ceiling"
89
            flavor        data
90
            legal_values  0 to { CYGNUM_KERNEL_SCHED_PRIORITIES - 1 }
91
            default_value 0
92
            active_if     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
93
            description   "
94
            This option defines the default priority ceiling to be
95
            used if the chosen default priority inversion protocol is
96
            priority ceoptioniling protocol. The default value for this is zero,
97
            making all such mutexes boost threads to the maximum priority."
98
        }
99
    }
100
 
101
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE {
102
        display       "No priority inversion protocol"
103
        default_value 1
104
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
105
        description   "
106
            This option enables the ability to have no priority inversion protocol.
107
            It is equivalent to disabling the priority inversion protocol at
108
            the top level, but is necessary for the runtime and default
109
            selection options."
110
    }
111
 
112
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT {
113
        display      "Default priority inversion protocol"
114
        flavor       data
115
        active_if      { CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 }
116
        legal_values { "INHERIT" "CEILING" "NONE" }
117
        default_value { CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
118
                        "INHERIT" :
119
                        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
120
                        "CEILING" : "NONE" }
121
        description   "
122
            This option defines the default inversion protocol used for mutexes that
123
            are created without an explicit protocol being specified. The protocol
124
            chosen by default is to use priority inheritance if it is present otherwise
125
            priority ceiling, or none if neither is present."
126
    }
127
 
128
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC {
129
        display        "Specify mutex priority inversion protocol at runtime"
130
        default_value  1
131
        active_if      { CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 }
132
        description    "
133
            This option controls whether the priority inversion protocol used by
134
            a mutex can be specified when that mutex is created."
135
    }
136
 
137
    cdl_interface CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT {
138
        display      "Number of protocols selected"
139
    }
140
 
141
}
142
 
143
cdl_option CYGIMP_MBOX_USE_MBOXT_PLAIN {
144
    display       "Use mboxt_plain mbox implementation"
145
    default_value 1
146
    description   "
147
       Use the plain mboxt implementation instead of the mboxt2
148
       implementation. The mboxt2 version is designed to provide
149
       semantics compatible with UITRON, the plain implementation
150
       is adquate in most other situations."
151
}
152
 
153
cdl_option CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT {
154
    display       "Message box blocking put support"
155
    doc           ref/kernel-mail-boxes.html
156
    default_value 1
157
    description   "
158
        Message boxes can support three different versions of the
159
        put-message operation. The first is tryput(), which will fail
160
        if the message box is already full. The other two are the
161
        ordinary put() function which will block if the message box
162
        is full, and a timed put() operation which will block for
163
        upto a certain length of time if the message box is currently
164
        full. The blocking versions require extra memory in the
165
        message box data structure and extra code in the other
166
        message box functions, so they can be disabled if the
167
        application does not require them. If this option is enabled
168
        then the system will always provide the blocking put()
169
        function, and it will also provide the timed put() function
170
        if thread timers are enabled."
171
}
172
 
173
cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE {
174
    display       "Message box queue size"
175
    doc           ref/kernel-mail-boxes.html
176
    flavor        data
177
    legal_values  1 to 65535
178
    default_value 10
179
    description   "
180
        This configuration option controls the number of messages
181
        that can be queued in a message box before a non-blocking
182
        put() operation will fail or a blocking put() operation will
183
        block. The cost in memory is one pointer per message box for
184
        each possible message."
185
}
186
 
187
cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT {
188
    display       "Condition variable timed-wait support"
189
    doc           ref/kernel-condition-variables.html
190
    requires      CYGFUN_KERNEL_THREADS_TIMER
191
    default_value 1
192
    description   "
193
        This option enables the condition variable timed wait
194
        facility."
195
}
196
 
197
cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_WAIT_MUTEX {
198
    display       "Condition variable explicit mutex wait support"
199
    doc           ref/kernel-condition-variables.html
200
    default_value 1
201
    description   "
202
        This option enables the condition variable explicit mutex wait
203
        facility. By default condition variables in eCos are created with
204
        a statically associated mutex. This option permits wait (and timed wait
205
        if CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT is enabled) to provide a
206
        different mutex as an argument. This makes no difference to the semantics
207
        the wait operation except that a different mutex will be used during it."
208
}
209
 
210
cdl_option CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE {
211
    display       "Avoid inlines in mqueue implementation"
212
    default_value 0
213
    description   "
214
        With this option disabled, the 'mqueue' message queue implementation
215
        provides most of its implementation via inlines. However this can
216
        adversely affect code size in application that make lots of mqueue
217
        calls from different places, so enabling this option provides
218
        non-inline versions to be used instead."
219
    compile       sync/mqueue.cxx
220
}
221
 
222
# EOF synch.cdl

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.