This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

file handle problem on synthetic target


Hello gurus,
I am trying to run a simple program that opens a file, print
"Successful" if it was open, and close a file afterwards. However, file
opening is failed when the application was compiled with the synthetic
target. I really appreciate your help with that issue.

The code is:
#include <stdio.h>
#include <cyg/libc/stdio/stdiofiles.hxx> // C library files
#include <cyg/libc/stdio/stream.hxx>     // C library streams
#include <cyg/libc/stdio/io.inl>     // I/O system inlines

int main()
{

    FILE *fp = fopen("/home/ecos/fo/mytmp", "r");

    if (fp == NULL)
        printf("open failed\n");
    else
        printf("open sucessful\n");

    fclose(fp);

    return 0;
}

And the target configuration is:

# eCos saved configuration

# -- commands --
# This section contains information about the savefile format.
# It should not be edited. Any modifications made to this section
# may make it impossible for the configuration tools to read
# the savefile.

cdl_savefile_version 1;
cdl_savefile_command cdl_savefile_version {};
cdl_savefile_command cdl_savefile_command {};
cdl_savefile_command cdl_configuration { description hardware template
package };
cdl_savefile_command cdl_package { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_component { value_source user_value
wizard_value inferred_value };
cdl_savefile_command cdl_option { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_interface { value_source user_value
wizard_value inferred_value };

# -- toplevel --
# This section defines the toplevel configuration object. The only
# values that can be changed are the name of the configuration and
# the description field. It is not possible to modify the target,
# the template or the set of packages simply by editing the lines
# below because these changes have wide-ranging effects. Instead
# the appropriate tools should be used to make such modifications.

cdl_configuration eCos {
    description "" ;

    # These fields should not be modified.
    hardware    linux ;
    template    default ;
    package -hardware CYGPKG_HAL_SYNTH current ;
    package -hardware CYGPKG_HAL_SYNTH_I386 current ;
    package -hardware CYGPKG_DEVS_FLASH_SYNTH current ;
    package -hardware CYGPKG_DEVS_ETH_ECOSYNTH current ;
    package -hardware CYGPKG_DEVS_WATCHDOG_SYNTH current ;
    package -hardware CYGPKG_DEVS_WALLCLOCK_SYNTH current ;
    package CYGPKG_HAL current ;
    package CYGPKG_IO current ;
    package CYGPKG_IO_SERIAL current ;
    package CYGPKG_INFRA current ;
    package CYGPKG_KERNEL current ;
    package CYGPKG_MEMALLOC current ;
    package CYGPKG_ISOINFRA current ;
    package CYGPKG_LIBC current ;
    package CYGPKG_LIBC_I18N current ;
    package CYGPKG_LIBC_SETJMP current ;
    package CYGPKG_LIBC_STARTUP current ;
    package CYGPKG_LIBC_STDIO current ;
    package CYGPKG_LIBC_STDLIB current ;
    package CYGPKG_LIBC_STRING current ;
    package CYGPKG_LIBC_TIME current ;
    package CYGPKG_LIBM current ;
    package CYGPKG_POSIX current ;
    package CYGPKG_UITRON current ;
    package CYGPKG_IO_WATCHDOG current ;
    package CYGPKG_LIBC_SIGNALS current ;
    package CYGPKG_IO_WALLCLOCK current ;
    package CYGPKG_ERROR current ;
    package CYGPKG_IO_FILEIO current ;
    package CYGPKG_FS_FAT current ;
    package CYGPKG_BLOCK_LIB current ;
    package CYGPKG_LINUX_COMPAT current ;
};

# -- conflicts --
# There are no conflicts.

# -- contents --
# >
# >
# Linux Synthetic target
# The Linux Synthetic Target HAL package provides the 
# support needed to run eCos binaries on top of a
# Linux kernel.
#
cdl_package CYGPKG_HAL_SYNTH {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
    # Requires: !CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT == 0
    #   --> 1
    # Requires:  CYGIMP_IDLE_THREAD_YIELD implies
CYGIMP_HAL_IDLE_THREAD_SPIN 
    #     CYGIMP_IDLE_THREAD_YIELD == 0
    #     CYGIMP_HAL_IDLE_THREAD_SPIN == 0
    #   --> 1

    # The following properties are affected by this value
    # package CYGPKG_DEVS_ETH_ECOSYNTH
    #     ActiveIf: CYGPKG_HAL_SYNTH
    # package CYGPKG_DEVS_WALLCLOCK_SYNTH
    #     Requires: CYGPKG_HAL_SYNTH
};

# >
# Real-time clock constants.
# These values are used in the usec field of the itimerval structure
# when using getitimer/setitimer.
#
cdl_component CYGNUM_HAL_RTC_CONSTANTS {
    # There is no associated value.
};

# >
# Real-time clock numerator
#
cdl_option CYGNUM_HAL_RTC_NUMERATOR {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 1000000000
    # value_source default
    # Default value: 1000000000
};

# Real-time clock denominator
#
cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 100
    # value_source default
    # Default value: 100
};

# Real-time clock period
#
cdl_option CYGNUM_HAL_RTC_PERIOD {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 10000
    # value_source default
    # Default value: 10000
};

# <
# Spin when idle
# By default, whenever the eCos application enters the idle thread
# the synthetic target HAL will make a select() system call. Effectively
# this causes the application to block until an interrupt occurs,
# without consuming any cpu resources, as if the hardware supported
# some sort of IDLE instruction. Usually this behaviour is desirable.
# However it interferes with the emulation of some hardware. For
# example the synthetic watchdog timer device can use consumed cpu time
# rather than wallclock time to determine whether or not the watchdog
# has triggered, and if the process is spending nearly all its time
# blocked in select() then the watchdog will not trigger when it should.
# There are also some kernel configurations which require that the idle
# thread does not block.
#
cdl_option CYGIMP_HAL_IDLE_THREAD_SPIN {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: CYGIMP_IDLE_THREAD_YIELD
    #     CYGIMP_IDLE_THREAD_YIELD == 0
    #   --> 0

    # The following properties are affected by this value
    # package CYGPKG_HAL_SYNTH
    #     Requires:  CYGIMP_IDLE_THREAD_YIELD implies
CYGIMP_HAL_IDLE_THREAD_SPIN 
};

# Linker script
#
cdl_option CYGBLD_LINKER_SCRIPT {
    # Calculated value:  "src/synth.ld" 
    # Flavor: data
    # Current_value: src/synth.ld
};

# Linux/i386 synthetic target
# The Linux/i386 Synthetic Target HAL package provides the 
# support needed to run eCos binaries on top of the i386
# Linux kernel.
#
cdl_package CYGPKG_HAL_SYNTH_I386 {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
    # Requires:  !CYGPKG_LIBC_STARTUP ||
CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE ||
(CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE >= (16 * 1024)) 
    #     CYGPKG_LIBC_STARTUP == current
    #     CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE == 0
    #     CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE == 16384
    #   --> 1

    # The following properties are affected by this value
    # option CYGPKG_LIBM_CFLAGS_ADD
    #     DefaultValue:  ((0 == CYGPKG_HAL_I386) && (0 ==
CYGPKG_HAL_SYNTH_I386)) ? "" : "-ffloat-store" 
};

# >
# Startup type
# At the moment only ROM startup is supported. In the context
# of the synthetic target this means a read-only region for
# code and a read-write region for data.
#
cdl_component CYG_HAL_STARTUP {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value ROM
    # value_source default
    # Default value: ROM
    # Legal values: "ROM"

    # The following properties are affected by this value
    # option CYGSEM_HAL_INSTALL_MMU_TABLES
    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" 
    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
    #     DefaultValue:  (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS  ||
CYG_HAL_STARTUP == "RAM") ? 1 : 0
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" ||
!CYGSEM_HAL_USE_ROM_MONITOR 
};

# Memory layout
#
cdl_component CYGHWR_MEMORY_LAYOUT {
    # Calculated value:  "mlt_synth_i386_rom" 
    # Flavor: data
    # Current_value: mlt_synth_i386_rom
};

# >
# Memory layout linker script fragment
#
cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
    # Calculated value:  "<pkgconf/mlt_synth_i386_rom.ldi>" 
    # Flavor: data
    # Current_value: <pkgconf/mlt_synth_i386_rom.ldi>
};

# Memory layout header file
#
cdl_option CYGHWR_MEMORY_LAYOUT_H {
    # Calculated value:  "<pkgconf/mlt_synth_i386_rom.h>" 
    # Flavor: data
    # Current_value: <pkgconf/mlt_synth_i386_rom.h>
};

# <
# <
# <
# Global build options
# Global build options including control over
# compiler flags, linker flags and choice of toolchain.
#
cdl_component CYGBLD_GLOBAL_OPTIONS {
    # There is no associated value.

    # The following properties are affected by this value
};

# >
# Global command prefix
# This option specifies the command prefix used when
# invoking the build tools. You must be using gcc-2.95.2 or
# later, and "ld -v" must report a version more recent than
# 2.9.1.
#
cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value ""
    # value_source default
    # Default value: ""
};

# Global compiler flags
# This option controls the global compiler flags which
# are used to compile all packages by
# default. Individual packages may define
# options which override these global flags.
#
cdl_option CYGBLD_GLOBAL_CFLAGS {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "-Wall -Wpointer-arith -Wstrict-prototypes -Winline
-Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections
-fno-rtti -fno-exceptions -fvtable-gc -finit-priority"
    # value_source default
    # Default value: "-Wall -Wpointer-arith -Wstrict-prototypes -Winline
-Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections
-fno-rtti -fno-exceptions -fvtable-gc -finit-priority"

    # The following properties are affected by this value
    # option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
    # option CYGBLD_INFRA_CFLAGS_PIPE
    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
};

# Global linker flags
# This option controls the global linker flags. Individual
# packages may define options which override these global flags.
#
cdl_option CYGBLD_GLOBAL_LDFLAGS {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "-g -nostdlib -Wl,--gc-sections -Wl,-static"
    # value_source default
    # Default value: "-g -nostdlib -Wl,--gc-sections -Wl,-static"
};

# Build common GDB stub ROM image
# Unless a target board has specific requirements to the
# stub implementation, it can use a simple common stub.
# This option, which gets enabled by platform HALs as
# appropriate, controls the building of the common stub.
#
cdl_option CYGBLD_BUILD_COMMON_GDB_STUBS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 0
};

# <
# Synthetic FLASH memory support
# FLASH memory device support for Synthetic target
#
cdl_package CYGPKG_DEVS_FLASH_SYNTH {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This option is not active
    # ActiveIf constraint: CYGPKG_IO_FLASH
    #     CYGPKG_IO_FLASH (unknown) == 0
    #   --> 0

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
    # Requires: CYGINT_ISO_ERRNO_CODES
    #     CYGINT_ISO_ERRNO_CODES == 1
    #   --> 1
};

# >
# Base address of flash
# If enabled, controls where in the synth target memory map the 
# flash is mapped. WARNING: This must be somewhere 
# the host Linux kernel is prepaired to mmap a file. It
# must be page aligned. For hosts with recent x86 Linux kernels,
# a value of 0x40000000 is likely appropriate. When disabled,
# the driver will automatically use whatever address the kernel
# provides it with.
#
cdl_option CYGMEM_FLASH_SYNTH_BASE {
    # This option is not active
    # The parent CYGPKG_DEVS_FLASH_SYNTH is not active

    # Flavor: booldata
    # No user value, uncomment the following line to provide one.
    # user_value 0 0
    # value_source default
    # Default value: 0 0
};

# FLASH changes modify the underlying file
# If enabled, changes made to the contents of the emulated
# FLASH are reflected in the underlying file. Otherwise,
# the file will be left unaffected by any changes the program
# makes to FLASH contents.
#
cdl_option CYGSEM_FLASH_SYNTH_FILE_WRITEBACK {
    # This option is not active
    # The parent CYGPKG_DEVS_FLASH_SYNTH is not active

    # Flavor: booldata
    # No user value, uncomment the following line to provide one.
    # user_value 0 0
    # value_source default
    # Default value: 0 0
};

# Size of one block of synth flash
# This controls the size of one block of flash. This is 
# the minimum size that can be erased.
#
cdl_option CYGNUM_FLASH_SYNTH_BLOCKSIZE {
    # This option is not active
    # The parent CYGPKG_DEVS_FLASH_SYNTH is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 65536
    # value_source default
    # Default value: 65536
    # Legal values: 4096 to 999999
    # Requires:  (CYGNUM_FLASH_SYNTH_BLOCKSIZE % 4096) == 0 
    #     CYGNUM_FLASH_SYNTH_BLOCKSIZE == 0
    #   --> 1

    # The following properties are affected by this value
    # option CYGNUM_FLASH_SYNTH_BLOCKSIZE
    #     Requires:  (CYGNUM_FLASH_SYNTH_BLOCKSIZE % 4096) == 0 
};

# Number of blocks in the synth flash
# This controls how many blocks there are in the flash
#
cdl_option CYGNUM_FLASH_SYNTH_NUMBLOCKS {
    # This option is not active
    # The parent CYGPKG_DEVS_FLASH_SYNTH is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 16
    # value_source default
    # Default value: 16
};

# Name of file emulating synth flash
# This is the name of the file which holds the contents of
# the flash. It is mmap'ed into memory and written for flash
# program & erase operations. It will be created if it does
# not exist.
#
cdl_option CYGDAT_FLASH_SYNTH_FILENAME {
    # This option is not active
    # The parent CYGPKG_DEVS_FLASH_SYNTH is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"synth.flash\""
    # value_source default
    # Default value: "\"synth.flash\""
};

# Synth flash tests
# This option specifies the set of tests for the synth flash package.
#
cdl_option CYGPKG_DEVS_FLASH_SYNTH_TESTS {
    # This option is not active
    # The parent CYGPKG_DEVS_FLASH_SYNTH is not active

    # Calculated value:  "tests/flash1.c"
    # Flavor: data
    # Current_value: tests/flash1.c
};

# <
# Synthetic target ethernet driver
# doc: ref/devs-eth-synth-ecosynth.html
# The ethernet driver for the eCos synthetic target allows applications
# and other packages such as a TCP/IP stack to perform ethernet I/O.
# This can involve either an unused ethernet device, or an emulated
# ethernet device as provided by the Linux kernel's tunnel/tap
# support. The eCos code interacts with a suitable Linux application
# through the I/O auxiliary. Up to four ethernet devices are
# supported, and the host-side target definition file controls how
# each device will perform its I/O.
#
cdl_package CYGPKG_DEVS_ETH_ECOSYNTH {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This option is not active
    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
    #   --> 0
    # ActiveIf constraint: CYGPKG_HAL_SYNTH
    #     CYGPKG_HAL_SYNTH == current
    #   --> 1

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
};

# >
# Provide eth0 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth0 is enabled when a TCP/IP stack
# is part of the configuration, disabled otherwise.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: CYGPKG_NET_STACK
    #     CYGPKG_NET_STACK (unknown) == 0
    #   --> 0

    # The following properties are affected by this value
    # component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
    #     ActiveIf:  CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 
};

# Provide eth1 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth1 is always disabled, but can
# be enabled if the eCos application needs more than one ethernet
# device.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
    #     ActiveIf:  CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 
};

# Provide eth2 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth2 is always disabled, but can
# be enabled if the eCos application needs more than two ethernet
# devices.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
    #     ActiveIf:  CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 
};

# Provide eth3 device
# The synthetic target can provide up to four ethernet devices,
# eth0 to eth3. By default eth3 is always disabled, but can
# be enabled if the eCos application needs more than three ethernet
# devices.
#
cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS
    #     ActiveIf:  CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 
};

# Build options
# Package-specific build options including control over compiler
# flags used only in building this package.
#
cdl_component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH is not active
    # ActiveIf constraint:  CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 ||
CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 
    #     CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 == 0
    #     CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 == 0
    #     CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 == 0
    #     CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 == 0
    #   --> 0

    # There is no associated value.
    # Requires: CYGINT_ISO_ERRNO_CODES CYGINT_ISO_STRING_MEMFUNCS
    #     CYGINT_ISO_ERRNO_CODES == 1
    #     CYGINT_ISO_STRING_MEMFUNCS == 1
    #   --> 1
};

# >
# Additional compiler flags
# This option modifies the set of compiler flags for
# building this package. These flags are used in addition
# to the set of global flags.
#
cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_ADD {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "-D_KERNEL -D__ECOS"
    # value_source default
    # Default value: "-D_KERNEL -D__ECOS"
};

# Suppressed compiler flags
# This option modifies the set of compiler flags for
# building this package. These flags are removed from
# the set of global flags if present.
#
cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_REMOVE {
    # This option is not active
    # The parent CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value ""
    # value_source default
    # Default value: ""
};

# <
# <
# <
# eCos HAL
# doc: ref/the-ecos-hardware-abstraction-layer.html
# The eCos HAL package provide a porting layer for
# higher-level parts of the system such as the kernel and the
# C library. Each installation should have HAL packages for
# one or more architectures, and for each architecture there
# may be one or more supported platforms. It is necessary to
# select one target architecture and one platform for that
# architecture. There are also a number of configuration
# options that are common to all HAL packages.
#
cdl_package CYGPKG_HAL {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
    # Requires: CYGPKG_INFRA
    #     CYGPKG_INFRA == current
    #   --> 1
};

# >
# Platform-independent HAL options
# A number of configuration options are common to most or all
# HAL packages, for example options controlling how much state
# should be saved during a context switch. The implementations
# of these options will vary from architecture to architecture.
#
cdl_component CYGPKG_HAL_COMMON {
    # There is no associated value.
};

# >
# Provide eCos kernel support
# The HAL can be configured to either support the full eCos
# kernel, or to support only very simple applications which do
# not require a full kernel. If kernel support is not required
# then some of the startup, exception, and interrupt handling
# code can be eliminated.
#
cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: CYGPKG_KERNEL
    #     CYGPKG_KERNEL == current
    #   --> 1
    # Requires: CYGPKG_KERNEL
    #     CYGPKG_KERNEL == current
    #   --> 1
};

# HAL exception support
# When a processor exception occurs, for example an attempt to
# execute an illegal instruction or to perform a divide by
# zero, this exception may be handled in a number of different
# ways. If the target system has gdb support then typically
# the exception will be handled by gdb code. Otherwise if the
# HAL exception support is enabled then the HAL will invoke a
# routine deliver_exception(). Typically this routine will be
# provided by the eCos kernel, but it is possible for
# application code to provide its own implementation. If the
# HAL exception support is not enabled and a processor
# exception occurs then the behaviour of the system is
# undefined.
#
cdl_option CYGPKG_HAL_EXCEPTIONS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: CYGPKG_KERNEL_EXCEPTIONS
    #     CYGPKG_KERNEL_EXCEPTIONS == 1
    #   --> 1
    # Requires: CYGPKG_KERNEL_EXCEPTIONS
    #     CYGPKG_KERNEL_EXCEPTIONS == 1
    #   --> 1

    # The following properties are affected by this value
    # component CYGPKG_KERNEL_EXCEPTIONS
    #     Requires: CYGPKG_HAL_EXCEPTIONS
};

# Stop calling constructors early
# This option supports environments where some constructors
# must be run in the context of a thread rather than at
# simple system startup time. A boolean flag named
# cyg_hal_stop_constructors is set to 1 when constructors
# should no longer be invoked. It is up to some other
# package to deal with the rest of the constructors.
# In the current version this is only possible with the
# C library.
#
cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
    #     CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
    #     Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
};

# HAL uses the MMU and allows for CDL manipulation of it's use
#
cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGSEM_HAL_INSTALL_MMU_TABLES
    #     ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES
};

# Install MMU tables.
# This option controls whether this application installs
# its own Memory Management Unit (MMU) tables, or relies on the
# existing environment to run.
#
cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES {
    # This option is not active
    # ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES
    #     CYGINT_HAL_SUPPORTS_MMU_TABLES == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value:  CYG_HAL_STARTUP != "RAM" 
    #     CYG_HAL_STARTUP == ROM
    #   --> 1

    # The following properties are affected by this value
    # option CYGSEM_HAL_STATIC_MMU_TABLES
    #     Requires: CYGSEM_HAL_INSTALL_MMU_TABLES
};

# Use static MMU tables.
# This option defines an environment where any Memory
# Management Unit (MMU) tables are constant.  Normally used by ROM
# based environments, this provides a way to save RAM usage which
# would otherwise be required for these tables.
#
cdl_option CYGSEM_HAL_STATIC_MMU_TABLES {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires: CYGSEM_HAL_INSTALL_MMU_TABLES
    #     CYGSEM_HAL_INSTALL_MMU_TABLES == 0
    #   --> 0
};

# Route diagnostic output to debug channel
# If not inheriting the console setup from the ROM monitor,
# it is possible to redirect diagnostic output to the debug
# channel by enabling this option. Depending on the debugger
# used it may also be necessary to select a mangler for the
# output to be displayed by the debugger.
#
cdl_component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN {
    # This option is not active
    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0
    #   --> 1
    # ActiveIf constraint:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx 
|| CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
    #     CYGPKG_HAL_ARM (unknown) == 0
    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS  ||
CYG_HAL_STARTUP == "RAM") ? 1 : 0
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #     CYG_HAL_STARTUP == ROM
    #   --> 0

    # The following properties are affected by this value
    # option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
    #     Calculated:  !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE  &&
!CYGDBG_HAL_DIAG_TO_DEBUG_CHAN 
};

# >
# Mangler used on diag output
# It is sometimes necessary to mangle (encode) the
# diag ASCII text output in order for it to show up at the
# other end. In particular, GDB may silently ignore raw
# ASCII text.
#
cdl_option CYGSEM_HAL_DIAG_MANGLER {
    # This option is not active
    # The parent CYGDBG_HAL_DIAG_TO_DEBUG_CHAN is not active
    # The parent CYGDBG_HAL_DIAG_TO_DEBUG_CHAN is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value GDB
    # value_source default
    # Default value: GDB
    # Legal values: "GDB" "None"
};

# <
# <
# HAL interrupt handling
# A number of configuration options related to interrupt
# handling are common to most or all HAL packages, even though
# the implementations will vary from architecture to
# architecture.
#
cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
    # There is no associated value.
};

# >
# Use separate stack for interrupts
# When an interrupt occurs this interrupt can be handled either
# on the current stack or on a separate stack maintained by the
# HAL. Using a separate stack requires a small number of extra
# instructions in the interrupt handling code, but it has the
# advantage that it is no longer necessary to allow extra space
# in every thread stack for the interrupt handlers. The amount
# of extra space required depends on the interrupt handlers
# that are being used.
#
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# Interrupt stack size
# This configuration option specifies the stack size in bytes
# for the interrupt stack. Typically this should be a multiple
# of 16, but the exact requirements will vary from architecture
# to architecture. The interrupt stack serves two separate
# purposes. It is used as the stack during system
# initialization. In addition, if the interrupt system is
# configured to use a separate stack then all interrupts will
# be processed on this stack. The exact memory requirements
# will vary from application to application, and will depend
# heavily on whether or not other interrupt-related options,
# for example nested interrupts, are enabled. On most targets,
# in a configuration with no kernel this stack will also be
# the stack used to invoke the application, and must obviously
# be appropriately large in that case.
#
cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 4096
    # value_source default
    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
    #     CYGPKG_KERNEL == current
    #   --> 4096
    # Legal values: 128 to 1048576
};

# Allow nested interrupts
# When an interrupt occurs the HAL interrupt handling code can
# either leave interrupts disabled for the duration of the
# interrupt handling code, or by doing some extra work it can
# reenable interrupts before invoking the interrupt handler and
# thus allow nested interrupts to happen. If all the interrupt
# handlers being used are small and do not involve any loops
# then it is usually better to disallow nested interrupts.
# However if any of the interrupt handlers are more complicated
# than nested interrupts will usually be required.
#
cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# Save minimum context on interrupt
# The HAL interrupt handling code can exploit the calling conventions
# defined for a given architecture to reduce the amount of state
# that has to be saved. Generally this improves performance and
# reduces code size. However it can make source-level debugging
# more difficult.
#
cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
};

# Chain all interrupts together
# 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.
#
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # option CYGIMP_KERNEL_INTERRUPTS_CHAIN
    #     Requires: CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
};

# Ignore spurious [fleeting] interrupts
# On some hardware, interrupt sources may not be de-bounced or
# de-glitched.  Rather than try to handle these interrupts (no
# handling may be possible), this option allows the HAL to simply
# ignore them.  In most cases, if the interrupt is real it will
# reoccur in a detectable form.
#
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# <
# HAL context switch support
# A number of configuration options related to thread contexts
# are common to most or all HAL packages, even though the
# implementations will vary from architecture to architecture.
#
cdl_component CYGPKG_HAL_COMMON_CONTEXT {
    # There is no associated value.

    # The following properties are affected by this value
};

# >
# Use minimum thread context
# The thread context switch code can exploit the calling
# conventions defined for a given architecture to reduce the
# amount of state that has to be saved during a context
# switch. Generally this improves performance and reduces
# code size. However it can make source-level debugging more
# difficult.
#
cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
};

# <
# Explicit control over cache behaviour
# These options let the default behaviour of the caches 
# be easily configurable.
#
cdl_component CYGPKG_HAL_CACHE_CONTROL {
    # There is no associated value.
};

# >
# Enable DATA cache on startup
# Enabling this option will cause the data cache to be enabled
# as soon as practicable when eCos starts up.  One would choose
# to disable this if the data cache cannot safely be turned on,
# such as a case where the cache(s) require additional platform
# specific setup.
#
cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# >
# DATA cache mode on startup
# This option controls the mode the cache will be set to
# when enabled on startup.
#
cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value COPYBACK
    # value_source default
    # Default value: COPYBACK
    # Legal values:  "COPYBACK" "WRITETHRU" 
};

# <
# Enable INSTRUCTION cache on startup
# Enabling this option will cause the instruction cache to be enabled
# as soon as practicable when eCos starts up.  One would choose
# to disable this if the instruction cache cannot safely be turned on,
# such as a case where the cache(s) require additional platform
# specific setup.
#
cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# <
# Source-level debugging support
# If the source level debugger gdb is to be used for debugging
# application code then it may be necessary to configure in support
# for this in the HAL.
#
cdl_component CYGPKG_HAL_DEBUG {
    # There is no associated value.
};

# >
# Support for GDB stubs
# The HAL implements GDB stubs for the target.
#
cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
};

# Include GDB stubs in HAL
# This option causes a set of GDB stubs to be included into the
# system. On some target systems the GDB support will be
# provided by other means, for example by a ROM monitor. On
# other targets, especially when building a ROM-booting system,
# the necessary support has to go into the target library
# itself. When GDB stubs are include in a configuration, HAL
# serial drivers must also be included.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
    # This option is not active
    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
    #     CYGINT_HAL_DEBUG_GDB_STUBS == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
    #     CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
    #   --> 1
    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 1
    #   --> 0
    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
    #   --> 0
    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 0
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
    #   --> 1

    # The following properties are affected by this value
    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
    #     DefaultValue:  (CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS  ||
CYG_HAL_STARTUP == "RAM") ? 1 : 0
    # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
    #     DefaultValue: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
    #     DefaultValue:  !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
    # option CYGBLD_BUILD_COMMON_GDB_STUBS
    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    # option CYGPKG_HAL_GDB_FILEIO
    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
};

# Support for external break support in GDB stubs
# The HAL implements external break (or asynchronous interrupt)
# in the GDB stubs for the target.
#
cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS_BREAK {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
};

# Include GDB external break support for stubs
# This option causes the GDB stub to add a serial interrupt handler
# which will listen for GDB break packets. This lets you stop the
# target asynchronously when using GDB, usually by hitting Control+C
# or pressing the STOP button. This option differs from
# CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT in that it is used when
# GDB stubs are present.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT {
    # This option is not active
    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 0
    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
    #     Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
};

# Platform does not support CTRLC
#
cdl_interface CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
    #     ActiveIf:  CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 
};

# Include GDB external break support when no stubs
# This option adds an interrupt handler for the GDB serial line
# which will listen for GDB break packets. This lets you stop the
# target asynchronously when using GDB, usually by hitting Control+C
# or pressing the STOP button. This option differs from
# CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT in that it is used when the GDB
# stubs are NOT present.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT {
    # This option is not active
    # ActiveIf constraint:  CYGSEM_HAL_USE_ROM_MONITOR ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
    #     CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 0
    # ActiveIf constraint:  CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0 
    #     CYGINT_HAL_DEBUG_GDB_CTRLC_UNSUPPORTED == 0
    #   --> 1

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value:  !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 1
    # Requires: !CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
    #   --> 1
};

# Include GDB multi-threading debug support
# This option enables some extra HAL code which is needed
# to support multi-threaded source level debugging.
#
cdl_option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT {
    # This option is not active
    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR ||
CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
    #     CYGSEM_HAL_ROM_MONITOR (unknown) == 0
    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1

    # The following properties are affected by this value
    # option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
};

# Number of times to retry sending a $O packet
# This option controls the number of attempts that eCos programs
# will make to send a $O packet to a host GDB process.  If it is
# set non-zero, then the target process will attempt to resend the
# $O packet data up to this number of retries.  Caution: use of
# this option is not recommended as it can thoroughly confuse the
# host GDB process.
#
cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# Timeout period for GDB packets
# This option controls the time (in milliseconds) that eCos programs
# will wait for a response when sending packets to a host GDB process.
# If this time elapses, then the packet will be resent, up to some
# maximum number of times (CYGNUM_HAL_DEBUG_GDB_PROTOCOL_RETRIES).
#
cdl_option CYGNUM_HAL_DEBUG_GDB_PROTOCOL_TIMEOUT {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 500
    # value_source default
    # Default value: 500
};

# Location of CRC32 table
# The stubs use a 1 kilobyte CRC table that can either be pregenerated
# and placed in ROM, or generated at runtime in RAM. Depending on
# your memory constraints, one of these options may be better.
#
cdl_option CYGDBG_HAL_CRCTABLE_LOCATION {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value RAM
    # value_source default
    # Default value: RAM
    # Legal values: "ROM" "RAM"
};

# <
# ROM monitor support
# Support for ROM monitors can be built in to your application. 
# It may also be relevant to build your application as a ROM monitor
# itself. Such options are contained here if relevant for your chosen
# platform. The options and ROM monitors available to choose are
# platform-dependent.
#
cdl_component CYGPKG_HAL_ROM_MONITOR {
    # There is no associated value.
};

# >
# Target has virtual vector support
#
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
};

# Target supports baud rate control via vectors
# Whether this target supports the __COMMCTL_GETBAUD
# and __COMMCTL_SETBAUD virtual vector comm control operations.
#
cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Enable use of virtual vector calling interface
# Virtual vector support allows the HAL to let the ROM
# monitor handle certain operations. The virtual vector table
# defines a calling interface between applications running in
# RAM and the ROM monitor.
#
cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
    # This option is not active
    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 0
    #   --> 0

    # Calculated value: 1
    # Flavor: bool
    # Current value: 1
};

# >
# Inherit console settings from ROM monitor
# When this option is set, the application will inherit
# the console as set up by the ROM monitor. This means
# that the application will use whatever channel and
# mangling style was used by the ROM monitor when
# the application was launched.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
    #     CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
    #   --> 1

    # The following properties are affected by this value
    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
    #     ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
    # option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
    #     Calculated:  !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE  &&
!CYGDBG_HAL_DIAG_TO_DEBUG_CHAN 
};

# Debug channel is configurable
# This option is a configuration hint - it is enabled
# when the HAL initialization code will make use
# of the debug channel configuration option.
#
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
    # Flavor: bool
    # Current value: 0
};

# Console channel is configurable
# This option is a configuration hint - it is enabled
# when the HAL initialization code will make use
# of the console channel configuration option.
#
cdl_option CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Calculated value:  !CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE  &&
!CYGDBG_HAL_DIAG_TO_DEBUG_CHAN 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE == 0
    #     CYGDBG_HAL_DIAG_TO_DEBUG_CHAN == 0
    # Flavor: bool
    # Current value: 1
};

# Initialize whole of virtual vector table
# This option will cause the whole of the virtual
# vector table to be initialized with dummy values on
# startup. When this option is enabled, all the
# options below must also be enabled - or the
# table would be empty when the application
# launches.
# On targets where older ROM monitors without
# virtual vector support may still be in use, it is
# necessary for RAM applictions to initialize the
# table (since all HAL diagnostics and debug IO
# happens via the table).
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value:  CYG_HAL_STARTUP != "RAM" ||
!CYGSEM_HAL_USE_ROM_MONITOR 
    #     CYG_HAL_STARTUP == ROM
    #     CYGSEM_HAL_USE_ROM_MONITOR (unknown) == 0
    #   --> 1
    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 0
    #   --> 0
    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 0
    #   --> 0
    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 0
    #   --> 0
    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 0
    #   --> 0
    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
    #     ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
};

# Claim virtual vector table entries by default
# By default most virtual vectors will be claimed by
# RAM startup configurations, meaning that the RAM
# application will provide the services. The
# exception is COMMS support (HAL
# diagnostics/debugging IO) which is left in the
# control of the ROM monitor.
# The reasoning behind this is to get as much of the
# code exercised during regular development so it
# is known to be working the few times a new ROM
# monitor or a ROM production configuration is used
# - COMMS are excluded only by necessity in order to
# avoid breaking an existing debugger connections
# (there may be ways around this).
# For production RAM configurations this option can
# be switched off, causing the appliction to rely on
# the ROM monitor for these services, thus
# saving some space.
# Individual vectors may also be left unclaimed,
# controlled by the below options (meaning that the
# associated service provided by the ROM monitor
# will be used).
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active
    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #   --> 1

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1

    # The following properties are affected by this value
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
    #     DefaultValue:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
};

# Claim reset virtual vectors
# This option will cause the reset and kill_by_reset
# virtual vectors to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
};

# Claim version virtual vectors
# This option will cause the version
# virtual vectors to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #   --> 0
};

# Claim delay_us virtual vector
# This option will cause the delay_us
# virtual vector to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
};

# Claim cache virtual vectors
# This option will cause the cache virtual vectors
# to be claimed.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
};

# Claim data virtual vectors
# This option will cause the data virtual vectors
# to be claimed. At present there is only one, used
# by the RedBoot ethernet driver to share diag output.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
};

# Claim comms virtual vectors
# This option will cause the communication tables
# that are part of the virtual vectors mechanism to
# be claimed. Note that doing this may cause an
# existing ROM monitor communication connection to
# be closed. For this reason, the option is disabled
# per default for normal application
# configurations.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE  ||
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 0
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
    #     DefaultValue:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
    # option CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
    #     Calculated:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
};

# Do diagnostic IO via virtual vector table
# All HAL IO happens via the virtual vector table / comm
# tables when those tables are supported by the HAL.
# If so desired, the low-level IO functions can
# still be provided by the RAM application by
# enabling the CLAIM_COMMS option.
#
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_DIAG {
    # This option is not active
    # The parent CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT is not active

    # Calculated value: 1
    # Flavor: bool
    # Current value: 1

    # The following properties are affected by this value
    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  ||
CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  ||
CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
};

# <
# <
# Platform defined I/O channels.
# Platforms which provide additional I/O channels can implement
# this interface, indicating that the function plf_if_init()
# needs to be called.
#
cdl_interface CYGINT_HAL_PLF_IF_INIT {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Platform IDE I/O support.
# Platforms which provide IDE controllers can implement
# this interface, indicating that IDE I/O macros are
# available.
#
cdl_interface CYGINT_HAL_PLF_IF_IDE {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# File I/O operations via GDB
# This option enables support for various file I/O
# operations using the GDB remote protocol to communicate
# with GDB. The operations are then performed on the
# debugging host by proxy. These operations are only
# currently available by using a system call interface
# to RedBoot. This may change in the future.
#
cdl_option CYGPKG_HAL_GDB_FILEIO {
    # This option is not active
    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
    #     CYGSEM_REDBOOT_BSP_SYSCALLS (unknown) == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
    #   --> 0
};

# Build Compiler sanity checking tests
# Enabling this option causes compiler tests to be built.
#
cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # component CYGPKG_HAL_TESTS
    #     Calculated:   "tests/context tests/basic"
    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? "
tests/cache" : "")
    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "
tests/cpp1 tests/vaargs" : "")
    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   "
tests/intr" : "") 
};

# Common HAL tests
# This option specifies the set of tests for the common HAL.
#
cdl_component CYGPKG_HAL_TESTS {
    # Calculated value:   "tests/context tests/basic"
    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? "
tests/cache" : "")
    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "
tests/cpp1 tests/vaargs" : "")
    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   "
tests/intr" : "") 
    #     CYGINT_HAL_TESTS_NO_CACHES == 1
    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
    # Flavor: data
    # Current_value: tests/context tests/basic
};

# >
# Interface for cache presence
# Some architectures and/or platforms do not have caches. By
# implementing this interface, these can disable the various
# cache-related tests.
#
cdl_interface CYGINT_HAL_TESTS_NO_CACHES {
    # Implemented by CYGPKG_HAL_SYNTH, active, enabled
    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 1

    # The following properties are affected by this value
    # component CYGPKG_HAL_TESTS
    #     Calculated:   "tests/context tests/basic"
    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? "
tests/cache" : "")
    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? "
tests/cpp1 tests/vaargs" : "")
    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   "
tests/intr" : "") 
    # option CYGPKG_KERNEL_TESTS
    #     Calculated:  
    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2
tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth
tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1
tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0
tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1
tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0
tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0
tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3
tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0
tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice
tests/tm_basic tests/fptest tests/kalarm0" : "")
    #                     . ((!CYGPKG_INFRA_DEBUG &&
!CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" :
"")
    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT &&
CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES &&
CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
    #                 
};

# <
# <
# I/O sub-system
# doc: ref/io.html
# The eCos system is supplied with a number of different
# device drivers.  This option enables the basic I/O system
# support which is the basis for all drivers.
#
cdl_package CYGPKG_IO {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
    # Requires: CYGPKG_ERROR
    #     CYGPKG_ERROR == current
    #   --> 1

    # The following properties are affected by this value
    # package CYGPKG_IO_SERIAL
    #     ActiveIf: CYGPKG_IO
    # package CYGPKG_LIBC_STDIO
    #     Requires: CYGPKG_IO
    # option CYGPKG_IO_FILEIO_DEVFS_SUPPORT
    #     ActiveIf: CYGPKG_IO
};

# >
# Debug I/O sub-system
# This option enables verbose messages to be displayed on the
# system 'diag' device during I/O system initialization.
#
cdl_option CYGDBG_IO_INIT {
    # Flavor: bool
    user_value 1
    # value_source user
    # Default value: 0
};

# Basic support for file based I/O
# This option control support for simple file I/O primitives. It is only
# present if the FILEIO package is not included.
#
cdl_component CYGPKG_IO_FILE_SUPPORT {
    # This option is not active
    # ActiveIf constraint: !CYGPKG_IO_FILEIO
    #     CYGPKG_IO_FILEIO == current
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# >
# Number of open files
# This option controls the number of open files.
#
cdl_option CYGPKG_IO_NFILE {
    # This option is not active
    # The parent CYGPKG_IO_FILE_SUPPORT is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 16
    # value_source default
    # Default value: 16
};

# <
# <
# Serial device drivers
# doc: ref/io.html
# This option enables drivers for basic I/O services on
# serial devices.
#
cdl_package CYGPKG_IO_SERIAL {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # ActiveIf constraint: CYGPKG_IO
    #     CYGPKG_IO == current
    #   --> 1

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current
    # Requires: CYGPKG_ERROR
    #     CYGPKG_ERROR == current
    #   --> 1
};

# >
# Support non-blocking read and write calls
# This option enables extra code in the generic serial driver
# which allows clients to switch read() and write() call
# semantics from blocking to non-blocking.
#
cdl_option CYGOPT_IO_SERIAL_SUPPORT_NONBLOCKING {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# Driver requires block transfer callback functions
# Some low-level drivers can be optimized to transfer blocks
# of data instead of a single character at a time. These usually
# rely on a hardware FIFO of some sort.
#
cdl_interface CYGINT_IO_SERIAL_BLOCK_TRANSFER {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Serial driver supports line status
#
cdl_interface CYGINT_IO_SERIAL_LINE_STATUS_HW {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
    #     Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
    #     DefaultValue:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
};

# Support line status callbacks
# This option indicates that if the serial driver supports it,
# serial line status and modem status information should be
# propagated to higher layers via callbacks.
#
cdl_option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 0
    #   --> 0
    # Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
    #     Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ? 
CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
};

# Flow control
# This component contains options related to flow control.
#
cdl_component CYGPKG_IO_SERIAL_FLOW_CONTROL {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE ||
CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE == 0
    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_HW == 0
    #   --> 0
};

# >
# Software flow control
# This component enables support of software flow control.
#
cdl_component CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1

    # The following properties are affected by this value
    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE ||
CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
};

# >
# Start character
# This option specifies the ascii character used to
# indicate that transmission should start.
#
cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XON_CHAR {
    # This option is not active
    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 17
    # value_source default
    # Default value: 17
    # Legal values: 0 to 255
};

# Stop character
# This option specifies the ascii character used to
# indicate that transmission should stop.
#
cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XOFF_CHAR {
    # This option is not active
    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 19
    # value_source default
    # Default value: 19
    # Legal values: 0 to 255
};

# <
# Hardware flow control
# If the hardware supports it, this option allows hardware
# flow control to be enabled. This may be in the form of
# either or both of RTS/CTS, or DSR/DTR flow control.
#
cdl_option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
    # ActiveIf constraint:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ? 
CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 0
    #   --> 0
    # Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
    #   --> 0
    # Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 0
    #   --> 0

    # The following properties are affected by this value
    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE ||
CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
};

# Serial h/w supports hardware flow control
#
cdl_interface CYGINT_IO_SERIAL_FLOW_CONTROL_HW {
    # No options implement this inferface
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled

    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
    #     ActiveIf:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
    #     Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ? 
CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
};

# Default flow control method
# This option allows a default flow control method
# to be defined. Combinations of flow control methods
# may also be set, but this is only possible by
# using the cyg_io_set_config() API in source code.
#
cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value NONE
    # value_source default
    # Default value: NONE
    # Legal values:  "NONE" "XONXOFF" "RTSCTS" "DSRDTR" 
};

# Rx flow control low water mark
# This sets the water mark used for determining
# when to disable flow control, expressed
# as a percentage of the buffer size. When the
# receive buffer size is lower than this percentage,
# if the transmitter had previously been throttled, it
# will now be informed it can restart.
#
cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 33
    # value_source default
    # Default value: 33
    # Legal values: 1 to 100

    # The following properties are affected by this value
    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
>=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
};

# Rx flow control high water mark
# This sets the water mark used for determining
# when to enable flow control, expressed
# as a percentage of the buffer size. When the
# receive buffer size exceeds this percentage,
# signals are sent to the transmitter to tell it
# to throttle tranmission.
#
cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 66
    # value_source default
    # Default value: 66
    # Legal values: 1 to 100
    # Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >= 
CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT == 0
    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT == 0
    #   --> 1

    # The following properties are affected by this value
    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
>=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
};

# <
# TTY-mode serial device drivers
# This option enables a simple terminal-like device driver 
# that can be used for serial devices that interact with humans,
# such as a system console.
#
cdl_component CYGPKG_IO_SERIAL_TTY {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# >
# HAL/diag serial device driver
# This option enables the use of the HAL diagnostic channel
# via the standard I/O drivers.
#
cdl_component CYGPKG_IO_SERIAL_HALDIAG {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1

    # The following properties are affected by this value
    # package CYGPKG_LIBC_STDIO
    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE ==
"\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
};

# Console device name
# This option selects the TTY device to use for the console.
#
cdl_option CYGDAT_IO_SERIAL_TTY_CONSOLE {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ttydiag\""
    # value_source default
    # Default value: "\"/dev/ttydiag\""

    # The following properties are affected by this value
    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
    #     DefaultValue: CYGDAT_IO_SERIAL_TTY_CONSOLE
};

# TTY mode HAL/diag channel
# This option causes '/dev/ttydiag' to be included in the standard
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTYDIAG {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# TTY mode channel #0
# This option causes '/dev/tty0' to be included in the standard 
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTY0 {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# >
# TTY mode channel #0 device
# This option selects the physical device to use for 
# '/dev/tty0'.
#
cdl_option CYGDAT_IO_SERIAL_TTY_TTY0_DEV {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_TTY_TTY0 is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ser0\""
    # value_source default
    # Default value: "\"/dev/ser0\""
};

# <
# TTY mode channel #1
# This option causes '/dev/tty1' to be included in the standard 
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTY1 {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# >
# TTY mode channel #1 device
# This option selects the physical device to use for 
# '/dev/tty1'.
#
cdl_option CYGDAT_IO_SERIAL_TTY_TTY1_DEV {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_TTY_TTY1 is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ser1\""
    # value_source default
    # Default value: "\"/dev/ser1\""
};

# <
# TTY mode channel #2
# This option causes '/dev/tty2' to be included in the standard 
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TTY_TTY2 {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# >
# TTY mode channel #2 device
# This option selects the physical device to use for 
# '/dev/tty2'.
#
cdl_option CYGDAT_IO_SERIAL_TTY_TTY2_DEV {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_TTY_TTY2 is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ser2\""
    # value_source default
    # Default value: "\"/dev/ser2\""
};

# <
# <
# Termios compatible TTY drivers
# This option enables terminal drivers compatible with
# POSIX termios.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO && 
0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
    #     CYGPKG_ISOINFRA == current
    #     CYGPKG_IO_FILEIO == current
    #     CYGINT_ISO_ERRNO_CODES == 1
    #     CYGINT_ISO_ERRNO == 1
    #   --> 1
    # Requires: CYGPKG_ISOINFRA
    #     CYGPKG_ISOINFRA == current
    #   --> 1
    # Requires: CYGPKG_IO_FILEIO
    #     CYGPKG_IO_FILEIO == current
    #   --> 1
    # Requires: CYGINT_ISO_ERRNO_CODES
    #     CYGINT_ISO_ERRNO_CODES == 1
    #   --> 1
    # Requires: CYGINT_ISO_ERRNO
    #     CYGINT_ISO_ERRNO == 1
    #   --> 1
    # Requires: CYGINT_ISO_MALLOC
    #     CYGINT_ISO_MALLOC == 1
    #   --> 1
};

# >
# Interface for termios tty driver file enabling
#
cdl_interface CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY {
    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0, active, disabled
    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1, active, disabled
    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2, active, disabled
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY
    #     ActiveIf:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
};

# Build termios tty driver file
#
cdl_option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY {
    # This option is not active
    # ActiveIf constraint:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
    #     CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY == 0
    #   --> 0

    # Calculated value: 1
    # Flavor: bool
    # Current value: 1
};

# Termios TTY channel #0
# This option causes '/dev/termios0' to be included in the standard 
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# >
# Termios TTY channel #0 device
# This option selects the physical device to use for 
# '/dev/termios0'.
#
cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS0_DEV {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ser0\""
    # value_source default
    # Default value: "\"/dev/ser0\""
};

# <
# Termios TTY channel #1
# This option causes '/dev/termios1' to be included in the standard 
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# >
# Termios TTY channel #1 device
# This option selects the physical device to use for 
# '/dev/termios1'.
#
cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS1_DEV {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ser1\""
    # value_source default
    # Default value: "\"/dev/ser1\""
};

# <
# Termios TTY channel #2
# This option causes '/dev/termios2' to be included in the standard 
# drivers.
#
cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# >
# Termios TTY channel #2 device
# This option selects the physical device to use for 
# '/dev/termios2'.
#
cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS2_DEV {
    # This option is not active
    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 is disabled

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value "\"/dev/ser2\""
    # value_source default
    # Default value: "\"/dev/ser2\""
};

# <
# Support signals
# This option selects whether those parts of the termios
# interface involving signals is supported. This includes
# BRKINT mode, the INTR and QUIT characters, and whether
# SIGHUP is sent on terminal close.
#
cdl_option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS {
    # Flavor: bool
    user_value 1
    # value_source user
    # Default value:  CYGINT_ISO_SIGNAL_NUMBERS != 0 && 
CYGINT_ISO_SIGNAL_IMPL != 0 
    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
    #     CYGINT_ISO_SIGNAL_IMPL == 1
    #   --> 1
    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
    #   --> 1
    # Requires: CYGINT_ISO_SIGNAL_IMPL
    #     CYGINT_ISO_SIGNAL_IMPL == 1
    #   --> 1
};

# <
# Hardware serial device drivers
# This option enables the hardware device drivers
# for the current platform.
#
cdl_component CYGPKG_IO_SERIAL_DEVICES {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # option CYGPKG_IO_SERIAL_TESTS
    #     Calculated:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1
tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1
tests/tty2 tests/flow1 tests/flow2" : "" 
};

# Build extra serial tests
# This option enables the building of some extra tests which
# can be used when testing / debugging serial drivers. These
# are not built by default since they do not use the dedicated
# testing infrastructure.
#
cdl_option CYGBLD_IO_SERIAL_EXTRA_TESTS {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# Serial device driver build options
# Package specific build options including control over
# compiler flags used only in building this package,
# and details of which tests are built.
#
cdl_component CYGPKG_IO_SERIAL_OPTIONS {
    # There is no associated value.
};

# >
# Additional compiler flags
# This option modifies the set of compiler flags for
# building the serial device drivers. These flags are used in addition
# to the set of global flags.
#
cdl_option CYGPKG_IO_SERIAL_CFLAGS_ADD {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value ""
    # value_source default
    # Default value: ""
};

# Suppressed compiler flags
# This option modifies the set of compiler flags for
# building the serial device drivers. These flags are removed from
# the set of global flags if present.
#
cdl_option CYGPKG_IO_SERIAL_CFLAGS_REMOVE {
    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value ""
    # value_source default
    # Default value: ""
};

# Serial device driver tests
# This option specifies the set of tests for the serial device drivers.
#
cdl_option CYGPKG_IO_SERIAL_TESTS {
    # Calculated value:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1
tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1
tests/tty2 tests/flow1 tests/flow2" : "" 
    #     CYGPKG_IO_SERIAL_DEVICES == 0
    # Flavor: data
    # Current_value: 
};

# <
# Enable serial device select support
# This option enables support for the select() API function on all
# serial devices.
#
cdl_option CYGPKG_IO_SERIAL_SELECT_SUPPORT {
    # ActiveIf constraint: CYGPKG_IO_FILEIO
    #     CYGPKG_IO_FILEIO == current
    #   --> 1

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
    # Requires: CYGPKG_IO_FILEIO
    #     CYGPKG_IO_FILEIO == current
    #   --> 1
};

# Serial testing specification
#
cdl_component CYGPKG_IO_SERIAL_TEST_SPECS {
    # Calculated value: 1
    # Flavor: bool
    # Current value: 1
};

# >
# Skip 9600 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_9600 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip 14400 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_14400 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip 19200 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_19200 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip 38400 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_38400 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip 57600 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_57600 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip 115200 baud testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_115200 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip even-parity testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_EVEN {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip odd-parity testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_ODD {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# Skip 2-stop bit testing
#
cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_STOP_2 {
    # No options implement this inferface
    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0
};

# <
# <
# Infrastructure
# Common types and useful macros.
# Tracing and assertion facilities.
# Package startup options.
#
cdl_package CYGPKG_INFRA {
    # Packages cannot be added or removed, nor can their version be
changed,
    # simply by editing their value. Instead the appropriate
configuration
    # should be used to perform these actions.

    # This value cannot be modified here.
    # Flavor: booldata
    # Current value: 1 current

    # The following properties are affected by this value
    # package CYGPKG_HAL
    #     Requires: CYGPKG_INFRA
};

# >
# Asserts & Tracing
# The eCos source code contains a significant amount of
# internal debugging support, in the form of assertions and
# tracing.
# Assertions check at runtime that various conditions are as
# expected; if not, execution is halted.
# Tracing takes the form of text messages that are output
# whenever certain events occur, or whenever functions are
# called or return.
# The most important property of these checks and messages is
# that they are not required for the program to run.
# It is prudent to develop software with assertions enabled,
# but disable them when making a product release, thus
# removing the overhead of that checking.
# It is possible to enable assertions and tracing
# independently.
# There are also options controlling the exact behaviour of
# the assertion and tracing facilities, thus giving users
# finer control over the code and data size requirements.
#
cdl_component CYGPKG_INFRA_DEBUG {
    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # component CYGFUN_KERNEL_THREADS_STACK_CHECKING
    #     ActiveIf: CYGPKG_INFRA_DEBUG
    # component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
    #     DefaultValue:  0 != CYGPKG_INFRA_DEBUG 
    # option CYGPKG_KERNEL_TESTS
    #     Calculated:  
    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2
tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth
tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1
tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0
tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1
tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0
tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0
tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3
tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0
tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice
tests/tm_basic tests/fptest tests/kalarm0" : "")
    #                     . ((!CYGPKG_INFRA_DEBUG &&
!CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" :
"")
    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT &&
CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES &&
CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
    #                 
    # option CYGDBG_FS_FAT_NODE_CACHE_EXTRA_CHECKS
    #     ActiveIf: CYGPKG_INFRA_DEBUG && CYGDBG_USE_ASSERTS
};

# >
# Use asserts
# If this option is defined, asserts in the code are tested.
# Assert functions (CYG_ASSERT()) are defined in
# 'include/cyg/infra/cyg_ass.h' within the 'install' tree.
# If it is not defined, these result in no additional
# object code and no checking of the asserted conditions.
#
cdl_component CYGDBG_USE_ASSERTS {
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
    # Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
    #     CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
    #   --> 0

    # The following properties are affected by this value
    # component CYGFUN_KERNEL_THREADS_STACK_CHECKING
    #     ActiveIf: CYGDBG_USE_ASSERTS
    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
    #     Requires: CYGDBG_USE_ASSERTS
    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
    #     DefaultValue:  0 != CYGDBG_USE_ASSERTS 
    # option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
    #     Requires: CYGDBG_USE_ASSERTS
    # option CYGDBG_FS_FAT_NODE_CACHE_EXTRA_CHECKS
    #     ActiveIf: CYGPKG_INFRA_DEBUG && CYGDBG_USE_ASSERTS
};

# >
# Preconditions
# This option allows individual control of preconditions.
# A precondition is one type of assert, which it is
# useful to control separately from more general asserts.
# The function is CYG_PRECONDITION(condition,msg).
#
cdl_option CYGDBG_INFRA_DEBUG_PRECONDITIONS {
    # This option is not active
    # The parent CYGDBG_USE_ASSERTS is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# Postconditions
# This option allows individual control of postconditions.
# A postcondition is one type of assert, which it is
# useful to control separately from more general asserts.
# The function is CYG_POSTCONDITION(condition,msg).
#
cdl_option CYGDBG_INFRA_DEBUG_POSTCONDITIONS {
    # This option is not active
    # The parent CYGDBG_USE_ASSERTS is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# Loop invariants
# This option allows individual control of loop invariants.
# A loop invariant is one type of assert, which it is
# useful to control separately from more general asserts,
# particularly since a loop invariant is typically evaluated
# a great many times when used correctly.
# The function is CYG_LOOP_INVARIANT(condition,msg).
#
cdl_option CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS {
    # This option is not active
    # The parent CYGDBG_USE_ASSERTS is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# Use assert text
# All assertions within eCos contain a text message
# which should give some information about the condition
# being tested.
# These text messages will end up being embedded in the
# application image and hence there is a significant penalty
# in terms of image size.
# It is possible to suppress the use of these messages by
# disabling this option.
# This results in smaller code size, but there is less
# human-readable information if an assertion actually gets
# triggered.
#
cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE {
    # This option is not active
    # The parent CYGDBG_USE_ASSERTS is not active

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# <
# Use tracing
# If this option is defined, tracing operations
# result in output or logging, depending on other options.
# This may have adverse effects on performance, if the time
# taken to output message overwhelms the available CPU
# power or output bandwidth.
# Trace functions (CYG_TRACE()) are defined in
# 'include/cyg/infra/cyg_trac.h' within the 'install' tree.
# If it is not defined, these result in no additional
# object code and no trace information.
#
cdl_component CYGDBG_USE_TRACING {
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
    # Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
    #     CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
    #   --> 0

    # The following properties are affected by this value
    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE
    #     ActiveIf: CYGDBG_USE_TRACING
    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP
    #     ActiveIf: CYGDBG_USE_TRACING
    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT
    #     ActiveIf: CYGDBG_USE_TRACING
    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT
    #     ActiveIf: CYGDBG_USE_TRACING
    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT
    #     ActiveIf: CYGDBG_USE_TRACING
    # option CYGDBG_KERNEL_TRACE_TIMESLICE
    #     ActiveIf: CYGDBG_USE_TRACING
    # component CYGPKG_LIBM_TRACE
    #     Requires: CYGDBG_USE_TRACING
};

# >
# Trace function reports
# This option allows individual control of
# function entry/exit tracing, independent of
# more general tracing output.
# This may be useful to remove clutter from a
# trace log.
#
cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS {
    # This option is not active
    # The parent CYGDBG_USE_TRACING is not active
    # The parent CYGDBG_USE_TRACING is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# Use trace text
# All trace calls within eCos contain a text message
# which should give some information about the circumstances.
# These text messages will end up being embedded in the
# application image and hence there is a significant penalty
# in terms of image size.
# It is possible to suppress the use of these messages by
# disabling this option.
# This results in smaller code size, but there is less
# human-readable information available in the trace output,
# possibly only filenames and line numbers.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE {
    # This option is not active
    # The parent CYGDBG_USE_TRACING is not active
    # The parent CYGDBG_USE_TRACING is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# <
# Trace output implementations
#
cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL {
    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive,
disabled
    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive,
disabled
    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive,
disabled
    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive,
enabled
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # This value cannot be modified here.
    # Flavor: data
    # Current_value: 0

    # The following properties are affected by this value
    # component CYGDBG_USE_ASSERTS
    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
    # component CYGDBG_USE_TRACING
    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
};

# Null output
# A null output module which is useful when
# debugging interactively; the output routines
# can be breakpointed rather than have them actually
# 'print' something.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL {
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# Simple output
# An output module which produces simple output
# from tracing and assertion events.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE {
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # option CYGDBG_KERNEL_TRACE_TIMESLICE
    #     Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
};

# Fancy output
# An output module which produces fancy output
# from tracing and assertion events.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY {
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0

    # The following properties are affected by this value
    # option CYGDBG_KERNEL_TRACE_TIMESLICE
    #     Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
};

# Buffered tracing
# An output module which buffers output
# from tracing and assertion events. The stored
# messages are output when an assert fires, or
# CYG_TRACE_PRINT() (defined in <cyg/infra/cyg_trac.h>)
# is called.
# Of course, there will only be stored messages
# if tracing per se (CYGDBG_USE_TRACING)
# is enabled above.
#
cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER {
    # This option is not active
    # The parent CYGPKG_INFRA_DEBUG is disabled

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# >
# Trace buffer size
# The size of the trace buffer. This counts the number
# of trace records stored. When the buffer fills it
# either wraps, stops recording, or generates output.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE {
    # This option is not active
    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
    # ActiveIf constraint: CYGDBG_USE_TRACING
    #     CYGDBG_USE_TRACING == 0
    #   --> 0

    # Flavor: data
    # No user value, uncomment the following line to provide one.
    # user_value 32
    # value_source default
    # Default value: 32
    # Legal values: 5 to 65535
};

# Wrap trace buffer when full
# When the trace buffer has filled with records it
# starts again at the beginning. Hence only the last
# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
# be recorded.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP {
    # This option is not active
    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
    # ActiveIf constraint: CYGDBG_USE_TRACING
    #     CYGDBG_USE_TRACING == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 1
    # value_source default
    # Default value: 1
};

# Halt trace buffer when full
# When the trace buffer has filled with records it
# stops recording. Hence only the first
# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
# be recorded.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT {
    # This option is not active
    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
    # ActiveIf constraint: CYGDBG_USE_TRACING
    #     CYGDBG_USE_TRACING == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0
    # value_source default
    # Default value: 0
};

# Print trace buffer when full
# When the trace buffer has filled with records it
# prints the contents of the buffer. The buffer is then
# emptied and the system continues.
#
cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT {
    # This option is not active
    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
    # ActiveIf constraint: CYGDBG_USE_TRACING
    #     CYGDBG_USE_TRACING == 0
    #   --> 0

    # Flavor: bool
    # No user value, uncomment the following line to provide one.
    # user_value 0


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]