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] - Diff between revs 27 and 174

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 27 Rev 174
# ====================================================================
# ====================================================================
#
#
#      synch.cdl
#      synch.cdl
#
#
#      configuration data related to the kernel synchronization primitives
#      configuration data related to the kernel synchronization primitives
#
#
# ====================================================================
# ====================================================================
#####ECOSGPLCOPYRIGHTBEGIN####
#####ECOSGPLCOPYRIGHTBEGIN####
## -------------------------------------------
## -------------------------------------------
## This file is part of eCos, the Embedded Configurable Operating System.
## This file is part of eCos, the Embedded Configurable Operating System.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
##
##
## eCos is free software; you can redistribute it and/or modify it under
## eCos is free software; you can redistribute it and/or modify it under
## the terms of the GNU General Public License as published by the Free
## the terms of the GNU General Public License as published by the Free
## Software Foundation; either version 2 or (at your option) any later version.
## Software Foundation; either version 2 or (at your option) any later version.
##
##
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
## for more details.
## for more details.
##
##
## You should have received a copy of the GNU General Public License along
## You should have received a copy of the GNU General Public License along
## with eCos; if not, write to the Free Software Foundation, Inc.,
## with eCos; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
##
##
## As a special exception, if other files instantiate templates or use macros
## As a special exception, if other files instantiate templates or use macros
## or inline functions from this file, or you compile this file and link it
## or inline functions from this file, or you compile this file and link it
## with other works to produce a work based on this file, this file does not
## with other works to produce a work based on this file, this file does not
## by itself cause the resulting work to be covered by the GNU General Public
## by itself cause the resulting work to be covered by the GNU General Public
## License. However the source code for this file must still be made available
## License. However the source code for this file must still be made available
## in accordance with section (3) of the GNU General Public License.
## in accordance with section (3) of the GNU General Public License.
##
##
## This exception does not invalidate any other reasons why a work based on
## This exception does not invalidate any other reasons why a work based on
## this file might be covered by the GNU General Public License.
## this file might be covered by the GNU General Public License.
##
##
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
## at http://sources.redhat.com/ecos/ecos-license/
## at http://sources.redhat.com/ecos/ecos-license/
## -------------------------------------------
## -------------------------------------------
#####ECOSGPLCOPYRIGHTEND####
#####ECOSGPLCOPYRIGHTEND####
# ====================================================================
# ====================================================================
######DESCRIPTIONBEGIN####
######DESCRIPTIONBEGIN####
#
#
# Author(s):      jskov
# Author(s):      jskov
# Original data:  nickg
# Original data:  nickg
# Contributors:
# Contributors:
# Date:           1999-07-05
# Date:           1999-07-05
#
#
#####DESCRIPTIONEND####
#####DESCRIPTIONEND####
#
#
# ====================================================================
# ====================================================================
cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL {
cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL {
    display      "Priority inversion protection protocols"
    display      "Priority inversion protection protocols"
    flavor       booldata
    flavor       booldata
    doc          ref/kernel-mutexes.html
    doc          ref/kernel-mutexes.html
    legal_values { "SIMPLE" }
    legal_values { "SIMPLE" }
    default_value { "SIMPLE" }
    default_value { "SIMPLE" }
    active_if    { CYGSEM_KERNEL_SCHED_MLQUEUE }
    active_if    { CYGSEM_KERNEL_SCHED_MLQUEUE }
    requires     { CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 }
    requires     { CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 }
    description "
    description "
        This component controls the protocols used to protect mutexes against
        This component controls the protocols used to protect mutexes against
        priority inversion. If this option is enabled it defines which
        priority inversion. If this option is enabled it defines which
        algorithm is used to implement this protection. At present only
        algorithm is used to implement this protection. At present only
        one such algorithm is defined: \"SIMPLE\". The implementation
        one such algorithm is defined: \"SIMPLE\". The implementation
        will only work in the mlqueue scheduler, and it does not handle the
        will only work in the mlqueue scheduler, and it does not handle the
        rare case of nested mutexes completely correctly. However it is
        rare case of nested mutexes completely correctly. However it is
        both fast and deterministic."
        both fast and deterministic."
    cdl_option  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT {
    cdl_option  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT {
        display       "Enable priority inheritance protocol"
        display       "Enable priority inheritance protocol"
        default_value 1
        default_value 1
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
        description   "
        description   "
            This option enables priority inheritance protocol. This protocol
            This option enables priority inheritance protocol. This protocol
            causes the owner of a mutex to be executed at the highest priority
            causes the owner of a mutex to be executed at the highest priority
            of the threads waiting for access to the mutex."
            of the threads waiting for access to the mutex."
    }
    }
    cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING {
    cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING {
        display       "Enable priority ceiling protocol"
        display       "Enable priority ceiling protocol"
        default_value 1
        default_value 1
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
        description   "
        description   "
            This option enables priority ceiling protocol. This protocol
            This option enables priority ceiling protocol. This protocol
            causes the owner of a mutex to be executed at a  priority
            causes the owner of a mutex to be executed at a  priority
            associated with the mutex."
            associated with the mutex."
        cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY {
        cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY {
            display       "Default priority ceiling"
            display       "Default priority ceiling"
            flavor        data
            flavor        data
            legal_values  0 to { CYGNUM_KERNEL_SCHED_PRIORITIES - 1 }
            legal_values  0 to { CYGNUM_KERNEL_SCHED_PRIORITIES - 1 }
            default_value 0
            default_value 0
            active_if     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
            active_if     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
            description   "
            description   "
            This option defines the default priority ceiling to be
            This option defines the default priority ceiling to be
            used if the chosen default priority inversion protocol is
            used if the chosen default priority inversion protocol is
            priority ceoptioniling protocol. The default value for this is zero,
            priority ceoptioniling protocol. The default value for this is zero,
            making all such mutexes boost threads to the maximum priority."
            making all such mutexes boost threads to the maximum priority."
        }
        }
    }
    }
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE {
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE {
        display       "No priority inversion protocol"
        display       "No priority inversion protocol"
        default_value 1
        default_value 1
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
        implements CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT
        description   "
        description   "
            This option enables the ability to have no priority inversion protocol.
            This option enables the ability to have no priority inversion protocol.
            It is equivalent to disabling the priority inversion protocol at
            It is equivalent to disabling the priority inversion protocol at
            the top level, but is necessary for the runtime and default
            the top level, but is necessary for the runtime and default
            selection options."
            selection options."
    }
    }
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT {
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT {
        display      "Default priority inversion protocol"
        display      "Default priority inversion protocol"
        flavor       data
        flavor       data
        active_if      { CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 }
        active_if      { CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 }
        legal_values { "INHERIT" "CEILING" "NONE" }
        legal_values { "INHERIT" "CEILING" "NONE" }
        default_value { CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
        default_value { CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
                        "INHERIT" :
                        "INHERIT" :
                        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
                        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
                        "CEILING" : "NONE" }
                        "CEILING" : "NONE" }
        description   "
        description   "
            This option defines the default inversion protocol used for mutexes that
            This option defines the default inversion protocol used for mutexes that
            are created without an explicit protocol being specified. The protocol
            are created without an explicit protocol being specified. The protocol
            chosen by default is to use priority inheritance if it is present otherwise
            chosen by default is to use priority inheritance if it is present otherwise
            priority ceiling, or none if neither is present."
            priority ceiling, or none if neither is present."
    }
    }
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC {
    cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC {
        display        "Specify mutex priority inversion protocol at runtime"
        display        "Specify mutex priority inversion protocol at runtime"
        default_value  1
        default_value  1
        active_if      { CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 }
        active_if      { CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 }
        description    "
        description    "
            This option controls whether the priority inversion protocol used by
            This option controls whether the priority inversion protocol used by
            a mutex can be specified when that mutex is created."
            a mutex can be specified when that mutex is created."
    }
    }
    cdl_interface CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT {
    cdl_interface CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT {
        display      "Number of protocols selected"
        display      "Number of protocols selected"
    }
    }
}
}
cdl_option CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT {
cdl_option CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT {
    display       "Message box blocking put support"
    display       "Message box blocking put support"
    doc           ref/kernel-mail-boxes.html
    doc           ref/kernel-mail-boxes.html
    default_value 1
    default_value 1
    description   "
    description   "
        Message boxes can support three different versions of the
        Message boxes can support three different versions of the
        put-message operation. The first is tryput(), which will fail
        put-message operation. The first is tryput(), which will fail
        if the message box is already full. The other two are the
        if the message box is already full. The other two are the
        ordinary put() function which will block if the message box
        ordinary put() function which will block if the message box
        is full, and a timed put() operation which will block for
        is full, and a timed put() operation which will block for
        upto a certain length of time if the message box is currently
        upto a certain length of time if the message box is currently
        full. The blocking versions require extra memory in the
        full. The blocking versions require extra memory in the
        message box data structure and extra code in the other
        message box data structure and extra code in the other
        message box functions, so they can be disabled if the
        message box functions, so they can be disabled if the
        application does not require them. If this option is enabled
        application does not require them. If this option is enabled
        then the system will always provide the blocking put()
        then the system will always provide the blocking put()
        function, and it will also provide the timed put() function
        function, and it will also provide the timed put() function
        if thread timers are enabled."
        if thread timers are enabled."
}
}
cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE {
cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE {
    display       "Message box queue size"
    display       "Message box queue size"
    doc           ref/kernel-mail-boxes.html
    doc           ref/kernel-mail-boxes.html
    flavor        data
    flavor        data
    legal_values  1 to 65535
    legal_values  1 to 65535
    default_value 10
    default_value 10
    description   "
    description   "
        This configuration option controls the number of messages
        This configuration option controls the number of messages
        that can be queued in a message box before a non-blocking
        that can be queued in a message box before a non-blocking
        put() operation will fail or a blocking put() operation will
        put() operation will fail or a blocking put() operation will
        block. The cost in memory is one pointer per message box for
        block. The cost in memory is one pointer per message box for
        each possible message."
        each possible message."
}
}
cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT {
cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT {
    display       "Condition variable timed-wait support"
    display       "Condition variable timed-wait support"
    doc           ref/kernel-condition-variables.html
    doc           ref/kernel-condition-variables.html
    requires      CYGFUN_KERNEL_THREADS_TIMER
    requires      CYGFUN_KERNEL_THREADS_TIMER
    default_value 1
    default_value 1
    description   "
    description   "
        This option enables the condition variable timed wait
        This option enables the condition variable timed wait
        facility."
        facility."
}
}
cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_WAIT_MUTEX {
cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_WAIT_MUTEX {
    display       "Condition variable explicit mutex wait support"
    display       "Condition variable explicit mutex wait support"
    doc           ref/kernel-condition-variables.html
    doc           ref/kernel-condition-variables.html
    default_value 1
    default_value 1
    description   "
    description   "
        This option enables the condition variable explicit mutex wait
        This option enables the condition variable explicit mutex wait
        facility. By default condition variables in eCos are created with
        facility. By default condition variables in eCos are created with
        a statically associated mutex. This option permits wait (and timed wait
        a statically associated mutex. This option permits wait (and timed wait
        if CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT is enabled) to provide a
        if CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT is enabled) to provide a
        different mutex as an argument. This makes no difference to the semantics
        different mutex as an argument. This makes no difference to the semantics
        the wait operation except that a different mutex will be used during it."
        the wait operation except that a different mutex will be used during it."
}
}
cdl_option CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE {
cdl_option CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE {
    display       "Avoid inlines in mqueue implementation"
    display       "Avoid inlines in mqueue implementation"
    default_value 0
    default_value 0
    description   "
    description   "
        With this option disabled, the 'mqueue' message queue implementation
        With this option disabled, the 'mqueue' message queue implementation
        provides most of its implementation via inlines. However this can
        provides most of its implementation via inlines. However this can
        adversely affect code size in application that make lots of mqueue
        adversely affect code size in application that make lots of mqueue
        calls from different places, so enabling this option provides
        calls from different places, so enabling this option provides
        non-inline versions to be used instead."
        non-inline versions to be used instead."
    compile       sync/mqueue.cxx
    compile       sync/mqueue.cxx
}
}
# EOF synch.cdl
# EOF synch.cdl
 
 

powered by: WebSVN 2.1.0

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