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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [kernel/] [v2_0/] [cdl/] [synch.cdl] - Blame information for rev 174

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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