Mercurial > flash_v2
diff packages/kernel/current/cdl/interrupts.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 | 6736c52df507 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/kernel/current/cdl/interrupts.cdl @@ -0,0 +1,119 @@ +# ==================================================================== +# +# interrupts.cdl +# +# configuration data related to kernel interrupt handling +# +# ==================================================================== +#####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): bartv +# Original data: nickg +# Contributors: +# Date: 1999-06-13 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + +# NOTE: the choice of list vs table should not be two separate +# options. There is a single option which must have one of +# two legal values. +cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS { + display "Use delayed service routines (DSRs)" + default_value 1 + description " + In eCos the recommended way to handle device interrupts is to + do a minimum amount of work inside the low level interrupt + handler itself, and instead do as much as possible in a + Delayed Service Routine or DSR. If an application does not + make use of DSRs directly or indirectly then it is possible + to disable the DSR support completely, which reduces the + overheads of context switches and interrupt handling. Note + that the kernel real-time clock makes use of DSRs, as do many + of the device drivers. " + + cdl_interface CYGINT_KERNEL_INTERRUPTS_DSRS { + requires 1 == CYGINT_KERNEL_INTERRUPTS_DSRS + } + + # NOTE: the choice of list vs table should not be two separate + # options. There is a single option which must have one of + # two legal values. + cdl_option CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST { + display "Use linked lists for DSRs" + default_value 1 + implements CYGINT_KERNEL_INTERRUPTS_DSRS + description " + When DSR support is enabled the kernel must keep track of all + the DSRs that are pending. This information can be kept in a + fixed-size table or in a linked list. The list implementation + requires that the kernel disable interrupts for a very short + period of time outside interrupt handlers, but there is no + possibility of a table overflow occurring." + } + + cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE { + display "Use fixed-size table for DSRs" + default_value 0 + implements CYGINT_KERNEL_INTERRUPTS_DSRS + description " + When DSR support is enabled the kernel must keep track of all + the DSRs that are pending. This information can be kept in a + fixed-size table or in a linked list. The table + implementation involves a very small risk of overflow at + run-time if a given interrupt source is able to have more + than one pending DSR. However it has the advantage that + the kernel does not need to disable interrupts outside + interrupt handlers." + + cdl_option CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE { + display "Number of entries in fixed-size DSR table" + flavor data + legal_values 2 to 1024 + default_value 32 + description " + When DSR support is enabled the kernel must keep track of all + the DSRs that are pending. One approach involves a fixed-size + table, which involves a very small risk of overflow at + run-time. By increasing the table size it is possible to reduce + this risk." + } + } + + cdl_option CYGIMP_KERNEL_INTERRUPTS_CHAIN { + display "Chain all interrupts together" + requires CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN + default_value 0 + description " + Interrupts can be attached to vectors either singly, or be + chained together. The latter is necessary if there is no way + of discovering which device has interrupted without + inspecting the device itself. It can also reduce the amount + of RAM needed for interrupt decoding tables and code." + } +}
