]> git.karo-electronics.de Git - karo-tx-redboot.git/commitdiff
RedBoot Release TX53-v3 2012-02-08
authorlothar <lothar>
Wed, 8 Feb 2012 12:40:09 +0000 (12:40 +0000)
committerlothar <lothar>
Wed, 8 Feb 2012 12:40:09 +0000 (12:40 +0000)
70 files changed:
build.sh
config/TX25-40x1.ecc
config/TX27-40x0.ecc
config/TX27-40x1.ecc
config/TX51-60x0.ecc
config/TX51-60x1.ecc
config/TX51-60x2.ecc
config/TX51-80x0.ecc
config/TX51-80x1.ecc
config/TX51-80x2.ecc
config/TX53-1022.ecc [deleted file]
config/TX53-1x30.ecc [deleted file]
config/TX53-1x31.ecc [deleted file]
config/TX53-8020.ecc [deleted file]
config/TX53-8x30.ecc [deleted file]
config/TX53-8x31.ecc [deleted file]
config/TX53-xx30.ecc [moved from config/TX53-1020.ecc with 99% similarity]
config/TX53-xx31.ecc [moved from config/TX53-8021.ecc with 99% similarity]
packages/error/v2_0/cdl/error.cdl
packages/hal/arm/arch/v2_0/cdl/hal_arm.cdl
packages/hal/arm/arch/v2_0/src/arm.ld
packages/hal/arm/arch/v2_0/src/arm_eabi.c [new file with mode: 0644]
packages/hal/arm/mx25/karo/v1_0/cdl/hal_arm_tx25.cdl
packages/hal/arm/mx25/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx25/karo/v1_0/include/plf_io.h
packages/hal/arm/mx25/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx25/karo/v1_0/src/tx25_diag.c
packages/hal/arm/mx25/karo/v1_0/src/tx25_misc.c
packages/hal/arm/mx25/karo/v1_0/src/tx25_splash.c
packages/hal/arm/mx27/karo/v1_0/cdl/hal_arm_tx27.cdl
packages/hal/arm/mx27/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx27/karo/v1_0/include/pkgconf/mlt_arm_tx27_romram.ldi
packages/hal/arm/mx27/karo/v1_0/include/plf_io.h
packages/hal/arm/mx27/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx27/karo/v1_0/src/tx27_diag.c
packages/hal/arm/mx27/karo/v1_0/src/tx27_misc.c
packages/hal/arm/mx37/karo/v1_0/cdl/hal_arm_tx37.cdl
packages/hal/arm/mx37/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx37/karo/v1_0/include/pkgconf/mlt_arm_tx37_romram.ldi
packages/hal/arm/mx37/karo/v1_0/include/plf_io.h
packages/hal/arm/mx37/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx37/karo/v1_0/src/tx37_diag.c
packages/hal/arm/mx37/karo/v1_0/src/tx37_misc.c
packages/hal/arm/mx51/karo/v1_0/cdl/hal_arm_tx51.cdl
packages/hal/arm/mx51/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx51/karo/v1_0/include/plf_io.h
packages/hal/arm/mx51/karo/v1_0/src/redboot_cmds.c
packages/hal/arm/mx51/karo/v1_0/src/tx51_misc.c
packages/hal/arm/mx53/karo/v1_0/cdl/hal_arm_tx53.cdl
packages/hal/arm/mx53/karo/v1_0/include/hal_platform_setup.h
packages/hal/arm/mx53/karo/v1_0/src/tx53_misc.c
packages/hal/arm/mx53/var/v2_0/include/hal_soc.h
packages/hal/arm/mx53/var/v2_0/src/cmds.c
packages/redboot/v2_0/src/net/bootp.c
packages/redboot/v2_0/src/wince.c
tools/src/libcdl/build.cxx
tools/src/libcdl/cdl.hxx
tools/src/libcdl/cdlcore.hxx
tools/src/libcdl/cdlmisc.cxx
tools/src/libcdl/component.cxx
tools/src/libcdl/config.cxx
tools/src/libcdl/database.cxx
tools/src/libcdl/dialog.cxx
tools/src/libcdl/interface.cxx
tools/src/libcdl/interp.cxx
tools/src/libcdl/option.cxx
tools/src/libcdl/package.cxx
tools/src/libcdl/parse.cxx
tools/src/libcdl/value.cxx
tools/src/libcdl/wizard.cxx

index 2fec628ffe8213b06af7034aa48b47612bb5727d..eca1640393ba18c56fe33e9c06aaf3569834b148 100644 (file)
--- a/build.sh
+++ b/build.sh
@@ -12,9 +12,11 @@ make_opts=
 pattern="*"
 
 error() {
 pattern="*"
 
 error() {
+    rc=$?
     if [ -n "${target}" ];then
        echo "${target} build aborted"
     fi
     if [ -n "${target}" ];then
        echo "${target} build aborted"
     fi
+    return $rc
 }
 
 build_host_tools() {
 }
 
 build_host_tools() {
index bce8e4e9f189aab026e5979d593a8c8bf02e3ae7..8a95c3864fb0ec75514ec754537dfee1d5d6f215 100644 (file)
@@ -75,9 +75,11 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value arm-926ejs-linux-gnu
+    # user_value arm-926ejs-linux-gnueabi
     # value_source default
     # value_source default
-    # Default value: arm-926ejs-linux-gnu
+    # Default value:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-926ejs-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,9 +90,13 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # user_value "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # value_source default
     # value_source default
-    # Default value: "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2797,6 +2803,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2819,6 +2844,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4183,7 +4212,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4203,7 +4232,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10284,9 +10313,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index d2724584e3a15a3c03b4a8f2077564220ac7a9a8..acbbb8c9a3dbce0b70ddb12acedb4462e2ef71b1 100644 (file)
@@ -75,9 +75,11 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value arm-926ejs-linux-gnu
+    # user_value arm-926ejs-linux-gnueabi
     # value_source default
     # value_source default
-    # Default value: arm-926ejs-linux-gnu
+    # Default value:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-926ejs-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +90,13 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source inferred
-    # Default value: "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # user_value "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2804,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2845,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4193,7 +4220,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4213,7 +4240,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10291,9 +10318,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index c61ee3d21fe5b85c02fe9d67ce9300197ff3db3e..6484fbbd21f7a53a3df8f277d2655fc227f7860e 100644 (file)
@@ -75,9 +75,11 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value arm-926ejs-linux-gnu
+    # user_value arm-926ejs-linux-gnueabi
     # value_source default
     # value_source default
-    # Default value: arm-926ejs-linux-gnu
+    # Default value:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-926ejs-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +90,13 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source inferred
-    # Default value: "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # user_value "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2804,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2845,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4192,7 +4219,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4212,7 +4239,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10292,9 +10319,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index fc6733b9c71b5925dd968ebe02f5db85ef34c16d..9da29b6a7a8c0c1eb1c5c793bcc65dc61efff9d5 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4221,7 +4250,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4241,7 +4270,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10323,9 +10352,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index 99fe584d4afd13705165dcaf5e1b5794812d05c6..d9f3568156acf97db5dd46495a65f71171ad3d86 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4219,7 +4248,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4239,7 +4268,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10321,9 +10350,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index 76554cbdbb40c7fec9d81f33084637d183cc9e0d..684904aecb1dfb21eb2a982e595364038275eda4 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4220,7 +4249,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4240,7 +4269,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10322,9 +10351,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index c888afff82526d4331c0ac23f60fb31b97bd6ff0..665565bb1c90404d6abf928c485c5f587572c6f5 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4222,7 +4251,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4242,7 +4271,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10324,9 +10353,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index a458c85f92a462f9d71493922855288ce3f3eca8..c6f0439a33f87fdcefdf57a5903c9c7f9f412968 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4220,7 +4249,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4240,7 +4269,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10322,9 +10351,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index 5f754992805adbb6dd6540affc4ba48d80d411f7..97bd1deee5f6d3307f0c6a538c5b7ef19cb5909f 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2800,6 +2806,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2822,6 +2847,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -4221,7 +4250,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4241,7 +4270,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -mfloat-abi=softfp -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10323,9 +10352,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
diff --git a/config/TX53-1022.ecc b/config/TX53-1022.ecc
deleted file mode 100644 (file)
index 0f908f5..0000000
+++ /dev/null
@@ -1,10427 +0,0 @@
-# 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    tx53karo ;
-    template    redboot ;
-    package -hardware CYGPKG_HAL_ARM current ;
-    package -hardware CYGPKG_HAL_ARM_MX53 current ;
-    package -hardware CYGPKG_HAL_ARM_TX53KARO current ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_REDBOOT current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_CRC current ;
-    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
-    package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ;
-    package -hardware CYGPKG_DEVS_ETH_FEC current ;
-    package -hardware CYGPKG_COMPRESS_ZLIB current ;
-    package -hardware CYGPKG_IO_FLASH current ;
-    package -hardware CYGPKG_DEVS_FLASH_ONMXC current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_DEVS_ETH_PHY current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_DEVS_MXC_I2C current ;
-    package -hardware CYGPKG_DEVS_IMX_IPU current ;
-};
-
-# ---- conflicts -------------------------------------------------------
-# There are no conflicts.
-
-# ---- contents --------------------------------------------------------
-# >
-# >
-# 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.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
-};
-
-# 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
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
-    #   --> 1
-
-    # 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 "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-    # value_source default
-    # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-};
-
-# 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
-};
-
-# <
-# ISO C library string functions
-# doc: ref/libc.html
-# This package provides string functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STRING {
-    # 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:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Inline versions of <string.h> functions
-# This option chooses whether some of the
-# particularly simple string functions from
-# <string.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_STRING_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Optimize string functions for code size
-# This option tries to reduce string function
-# code size at the expense of execution speed. The
-# same effect can be produced if the code is
-# compiled with the -Os option to the compiler.
-#
-cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide BSD compatibility functions
-# Enabling this option causes various compatibility functions
-# commonly found in the BSD UNIX operating system to be included.
-# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
-# strncasecmp, index, rindex and swab.
-#
-cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-};
-
-# strtok
-# These options control the behaviour of the
-# strtok() and strtok_r() string tokenization
-# functions.
-#
-cdl_component CYGPKG_LIBC_STRING_STRTOK {
-    # There is no associated value.
-};
-
-# >
-# Per-thread strtok()
-# This option controls whether the string function
-# strtok() has its state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard strtok_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the <string.h>
-# functions strtok() and strtok_r(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strdup
-# This option indicates whether strdup() is to be supported.
-#
-cdl_option CYGFUN_LIBC_STRING_STRDUP {
-    # ActiveIf constraint: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# C library string functions 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_LIBC_STRING_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library string function tests
-# This option specifies the set of tests for the C library
-# string functions.
-#
-cdl_option CYGPKG_LIBC_STRING_TESTS {
-    # Calculated value:  "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" 
-    # Flavor: data
-    # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2
-};
-
-# <
-# <
-# Common ethernet support
-# doc: ref/io-eth-drv-generic.html
-# Platform independent ethernet drivers
-#
-cdl_package CYGPKG_IO_ETH_DRIVERS {
-    # 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
-    # component CYGPKG_REDBOOT_NETWORKING
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_ARM_TX53
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_PHY
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-};
-
-# >
-# Network drivers
-#
-cdl_interface CYGHWR_NET_DRIVERS {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-    # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-};
-
-# Driver supports multicast addressing
-# This interface defines whether or not a driver can handle
-# requests for multicast addressing.
-#
-cdl_interface CYGINT_IO_ETH_MULTICAST {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Support printing driver debug information
-# Selecting this option will include code to allow the driver to
-# print lots of information on diagnostic output such as full
-# packet dumps.
-#
-cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Driver debug output verbosity
-# The value of this option indicates the default verbosity
-# level of debugging output. 0 means no debugging output
-# is made by default. Higher values indicate higher verbosity.
-# The verbosity level may also be changed at run time by
-# changing the variable cyg_io_eth_net_debug.
-#
-cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Size of scatter-gather I/O lists
-# A scatter-gather list is used to pass requests to/from
-# the physical device driver.  This list can typically be
-# small, as the data is normally already packed into reasonable
-# chunks.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# Support for standard eCos TCP/IP stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_NET {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Warn when there are no more mbufs
-# Warnings about running out of mbufs are printed to the
-# diagnostic output channel via diag_printf() if this option
-# is enabled.  Mbufs are the network stack's basic dynamic
-# memory objects that hold all packets in transit; running
-# out is bad for performance but not fatal, not a crash.
-# You might want to turn off the warnings to preserve realtime
-# properties of the system even in extremis.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Simulate network failures for testing
-# This package contains a suite of simulated failure modes
-# for the ethernet device layer, including dropping and/or
-# corrupting received packets, dropping packets queued for
-# transmission, and simulating a complete network break.
-# It requires the kernel as a source of time information.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Drop incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Corrupt incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Drop outgoing packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Simulate a line cut from time to time
-# This option causes the system to drop all packets for a
-# short random period (10s of seconds), and then act
-# normally for up to 4 times that long.  This simulates your
-# sysadmin fiddling with plugs in the network switch
-# cupboard.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# Support for stand-alone network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE {
-    # ActiveIf constraint: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Pass packets to an alternate stack
-# Define this to allow packets seen by this layer to be
-# passed on to the previous logical layer, i.e. when
-# stand-alone processing replaces system (eCos) processing.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_REDBOOT_NETWORKING 
-    #     CYGPKG_REDBOOT_NETWORKING == 1
-    #   --> 1
-};
-
-# Number of [network] buffers
-# This option is used to allocate space to buffer incoming network
-# packets.  These buffers are used to hold data until they can be
-# logically processed by higher layers.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 2 to 32
-};
-
-# Show driver warnings
-# Selecting this option will allows the stand-alone ethernet driver
-# to display warnings on the system console when incoming network
-# packets are being discarded due to lack of buffer space.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_WARN {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support for lwIP network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET_LWIP
-    #     CYGPKG_NET_LWIP (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-};
-
-# Interrupt support required
-# This interface is used to indicate to the low
-# level device drivers that interrupt driven operation
-# is required by higher layers.
-#
-cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED {
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Common ethernet support build options
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the common ethernet support package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# Ethernet driver for Ka-Ro electronics TX53 processor module
-#
-cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# FEC ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED
-};
-
-# Ka-Ro TX53 ethernet port driver
-# This option includes the ethernet device driver for the
-# MXC Board port.
-#
-cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-    # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-    #     CYGHWR_DEVS_ETH_PHY_LAN8700 == 1
-    #   --> 1
-};
-
-# >
-# Device name for the ETH0 ethernet driver
-# This option sets the name of the ethernet device.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# OUI part of MAC address
-# This option sets OUI part (manufacturer ID) of the MAC address
-# for validation.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
-    # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ 0x00, 0x0c, 0xc6 }"
-    # value_source default
-    # Default value: "{ 0x00, 0x0c, 0xc6 }"
-};
-
-# <
-# <
-# Driver for fast ethernet controller.
-# Driver for fast ethernet controller.
-#
-cdl_package CYGPKG_DEVS_ETH_FEC {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED
-    #     CYGINT_DEVS_ETH_FEC_REQUIRED == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC FEC ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Cirrus Logic ethernet driver package.
-# These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# MXC FEC MII Gasket for RMII mode
-# This option enables the use of the MII Gasket for
-# RMII mode found in i.MX25 and i.MX53 processors.
-#
-cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK {
-    # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Ethernet transceiver (PHY) support
-# API for ethernet PHY devices
-#
-cdl_package CYGPKG_DEVS_ETH_PHY {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-};
-
-# >
-# Enable driver debugging
-# Enables the diagnostic debug messages on the
-# console device.
-#
-cdl_option CYGDBG_DEVS_ETH_PHY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time period (seconds) to wait for auto-negotiation
-# The length of time to wait for auto-negotiation to complete
-# before giving up and declaring the link dead/missing.
-#
-cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-};
-
-# NSDP83847
-# Include support for National Semiconductor DP83847 DsPHYTER II
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# AMD 79C874
-# Include support for AMD 79C874 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Intel LXT972
-# Include support for Intel LXT972xxx PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1890
-# Include support for ICS 1890 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1892
-# Include support for ICS 1892 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1893
-# Include support for ICS 1893 and 1893AF PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Davicom DM9161A
-# Include support for the Davicom DM9161A PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Micrel KS8721
-# Include support for the Micrel KS8721 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# SMSC LAN8700
-# Include support for SMSC LAN8700 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-};
-
-# <
-# <
-# ISO C library internationalization functions
-# doc: ref/libc.html
-# This package provides internationalization functions specified by the
-# ISO C standard - ISO/IEC 9899:1990. These include locale-related
-# functionality and <ctype.h> functionality.
-#
-cdl_package CYGPKG_LIBC_I18N {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Supported locales
-# These options determine which locales other than the "C" locale
-# are supported and hence contribute to the size of the executable.
-#
-cdl_component CYGPKG_LIBC_I18N_LOCALES {
-    # There is no associated value.
-};
-
-# >
-# Support for multiple locales required
-#
-cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-    #     CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-};
-
-# C-SJIS locale support
-# This option controls if the "C-SJIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese SJIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-JIS locale support
-# This option controls if the "C-JIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese JIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-EUCJP locale support
-# This option controls if the "C-EUCJP" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese EUCJP multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# <
-# Newlib's ctype implementation
-# This option enables the implementation of the ctype functions
-# that comes with newlib. It is table driven and therefore
-# exhibits different performance characteristics. It also offers
-# a limited amount of binary compatibility
-# with newlib so that programs linked against newlib ctype/locale
-# do not need to be recompiled when linked with eCos.
-#
-cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 0
-};
-
-# Per-thread multibyte state
-# This option controls whether the multibyte character
-# handling functions mblen(), mbtowc(), and wctomb(),
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Enabling this option will use three slots
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Size of locale name strings
-# This option controls the maximum size of
-# locale names and is used, among other things
-# to instantiate a static string used
-# as a return value from the
-# setlocale() function. When requesting the
-# current locale settings with LC_ALL, a string
-# must be constructed to contain this data, rather
-# than just returning a constant string. This
-# string data is stored in the static string.
-# This depends on the length of locale names,
-# hence this option. If just the C locale is
-# present, this option can be set as low as 2.
-#
-cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-    #   --> 2
-    # Legal values:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-};
-
-# Inline versions of <ctype.h> functions
-# This option chooses whether the simple character
-# classification and conversion functions (e.g.
-# isupper(), isalpha(), toupper(), etc.)
-# from <ctype.h> are available as inline
-# functions. This may improve performance and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 1
-};
-
-# C library i18n functions 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_LIBC_I18N_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library i18n function tests
-# This option specifies the set of tests for the C library
-# i18n functions.
-#
-cdl_option CYGPKG_LIBC_I18N_TESTS {
-    # Calculated value:  "tests/ctype tests/setlocale tests/i18nmb" 
-    # Flavor: data
-    # Current_value: tests/ctype tests/setlocale tests/i18nmb
-};
-
-# <
-# <
-# ISO C library general utility functions
-# doc: ref/libc.html
-# This package provides general utility functions in <stdlib.h>
-# as specified by the ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Inline versions of <stdlib.h> functions
-# This option chooses whether some of the
-# particularly simple standard utility functions
-# from <stdlib.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_component CYGIMP_LIBC_STDLIB_INLINES {
-    # There is no associated value.
-};
-
-# >
-# abs() / labs()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
-    #   --> 1
-};
-
-# div() / ldiv()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
-    #   --> 1
-};
-
-# atof() / atoi() / atol()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
-    #   --> 1
-};
-
-# <
-# Random number generation
-# These options control the behaviour of the
-# functions rand(), srand() and rand_r()
-#
-cdl_component CYGPKG_LIBC_RAND {
-    # There is no associated value.
-};
-
-# >
-# Per-thread random seed
-# doc: ref/libc-thread-safety.html
-# This option controls whether the pseudo-random
-# number generation functions rand() and srand()
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard rand_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Random number seed
-# This selects the initial random number seed for
-# rand()'s pseudo-random number generator. For
-# strict ISO standard compliance, this should be 1,
-# as per section 7.10.2.2 of the standard.
-#
-cdl_option CYGNUM_LIBC_RAND_SEED {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 0 to 0x7fffffff
-};
-
-# Tracing level
-# Trace verbosity level for debugging the rand(),
-# srand() and rand_r() functions. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# Simplest implementation
-# This provides a very simple implementation of rand()
-# that does not perform well with randomness in the
-# lower significant bits. However it is exceptionally
-# fast. It uses the sample algorithm from the ISO C
-# standard itself.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple implementation #1
-# This provides a very simple implementation of rand()
-# based on the simplest implementation above. However
-# it does try to work around the lack of randomness
-# in the lower significant bits, at the expense of a
-# little speed.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Knuth implementation #1
-# This implements a slightly more complex algorithm
-# published in Donald E. Knuth's Art of Computer
-# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
-# This produces better random numbers than the
-# simplest approach but is slower.
-#
-cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# <
-# Provides strtod()
-# This option allows use of the utility function
-# strtod() (and consequently atof()) to convert
-# from string to double precision floating point
-# numbers. Disabling this option removes the
-# dependency on the math library package.
-#
-cdl_option CYGFUN_LIBC_strtod {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-};
-
-# Provides long long conversion functions
-# Enabling this option will provide support for the strtoll(),
-# strtoull() and atoll() conversion functions, which are
-# the long long variants of the standard versions of these
-# functions. Supporting this requires extra code and compile
-# time.
-#
-cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# bsearch() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# binary search function bsearch(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# qsort() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# quicksort function qsort(). Increase this value
-# to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# C library stdlib 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_LIBC_STDLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_LIBC_STDLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library stdlib tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STDLIB_TESTS {
-    # Calculated value:  "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" 
-    # Flavor: data
-    # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul
-};
-
-# <
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-};
-
-# >
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-};
-
-# 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 (unknown) == 0
-    #   --> 0
-};
-
-# 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 == ROMRAM
-    #   --> 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 {
-    # 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 == current
-    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
-    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #   --> 1
-
-    # 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 == ROMRAM
-    #   --> 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 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_REDBOOT
-    #     Requires:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-};
-
-# 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 32768
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 32768
-    # 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-};
-
-# 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 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
-    # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
-    #     Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1
-    #   --> 1
-
-    # 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
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 == 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
-
-    # The following properties are affected by this value
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 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 CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     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.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Target has virtual vector support
-#
-cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE
-    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    # package CYGPKG_DEVS_ETH_PHY
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-};
-
-# >
-# 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
-    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 0
-
-    # 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 {
-    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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 == ROMRAM
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 1
-
-    # 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
-    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 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 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 1
-};
-
-# 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 1
-
-    # 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 {
-    # 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 
-};
-
-# <
-# Behave as a ROM monitor
-# Enable this option if this program is to be used as a ROM monitor,
-# i.e. applications will be loaded into RAM on the TX53 module, and this
-# ROM monitor may process exceptions or interrupts generated from the
-# application. This enables features such as utilizing a separate
-# interrupt stack when exceptions are generated.
-#
-cdl_option CYGSEM_HAL_ROM_MONITOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-};
-
-# Work with a ROM monitor
-# Support can be enabled for different varieties of ROM monitor.
-# This support changes various eCos semantics such as the encoding
-# of diagnostic output, or the overriding of hardware interrupt
-# vectors.
-# Firstly there is "Generic" support which prevents the HAL
-# from overriding the hardware vectors that it does not use, to
-# instead allow an installed ROM monitor to handle them. This is
-# the most basic support which is likely to be common to most
-# implementations of ROM monitor.
-# "GDB_stubs" provides support when GDB stubs are included in
-# the ROM monitor or boot ROM.
-#
-cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
-    #     ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR 
-};
-
-# <
-# 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
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_DISK_IDE
-    #     ActiveIf:  CYGINT_HAL_PLF_IF_IDE != 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 == 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 == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache tests/intr
-};
-
-# >
-# 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 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" : "") 
-};
-
-# <
-# ARM architecture
-# The ARM architecture HAL package provides generic
-# support for this processor architecture. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM {
-    # 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
-    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
-    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
-    # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     ActiveIf: CYGPKG_HAL_ARM
-};
-
-# >
-# The CPU architecture supports THUMB mode
-#
-cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
-    # 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 CYGHWR_THUMB
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-};
-
-# Enable Thumb instruction set
-# Enable use of the Thumb instruction set.
-#
-cdl_option CYGHWR_THUMB {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # 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 CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-};
-
-# Enable Thumb interworking compiler option
-# This option controls the use of -mthumb-interwork in the
-# compiler flags. It defaults enabled in Thumb or ROM monitor
-# configurations, but can be overridden for reduced memory
-# footprint where interworking is not a requirement.
-#
-cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    #     CYGHWR_THUMB == 0
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# The platform and architecture supports Big Endian operation
-#
-cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
-    # 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 CYGHWR_HAL_ARM_BIGENDIAN
-    #     ActiveIf:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-};
-
-# Use big-endian mode
-# Use the CPU in big-endian mode.
-#
-cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-    #     CYGINT_HAL_ARM_BIGENDIAN == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# The platform uses a processor with an ARM7 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with an ARM9 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a StrongARM core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a XScale core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# ARM CPU family
-# It is possible to optimize code for different
-# ARM CPU families. This option selects which CPU to
-# optimize for on boards that support multiple CPU types.
-#
-cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ARM9
-    # value_source default
-    # Default value:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-    #   --> ARM9
-    # Legal values:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-};
-
-# Provide diagnostic dump for exceptions
-# Print messages about hardware exceptions, including
-# raw exception frame dump and register contents.
-#
-cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
-    # 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
-    #   --> 1
-};
-
-# Process all exceptions with the eCos application
-# Normal RAM-based programs which do not include GDB stubs 
-# defer processing of the illegal instruction exception to GDB.
-# Setting this options allows the program to explicitly handle
-# the illegal instruction exception itself.  Note: this will
-# prevent the use of GDB to debug the application as breakpoints
-# will no longer work.
-#
-cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support GDB thread operations via ICE/Multi-ICE
-# Allow GDB to get thread information via the ICE/Multi-ICE
-# connection.
-#
-cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
-    # 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
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
-    #   --> 0
-};
-
-# Support for 'gprof' callbacks
-# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
-# to acquire the interrupt-context PC and SP, when this option is
-# active.
-#
-cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS == 0
-    #   --> 0
-    # ActiveIf constraint:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Accept exceptions and irq's occurring in user mode
-# For standalone Redboot based programs running in user mode.
-#
-cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Preserve svc spsr before returning to svc mode
-# This option secures exception and breakpoint processing
-# triggered during execution of application specific SWI
-# handlers.
-#
-cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Linker script
-#
-cdl_option CYGBLD_LINKER_SCRIPT {
-    # Calculated value:  "src/arm.ld" 
-    # Flavor: data
-    # Current_value: src/arm.ld
-};
-
-# Implementations of hal_arm_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Freescale SoC architecture
-# This HAL variant package provides generic
-# support for the Freescale SoC. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM_MX53 {
-    # 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
-    # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK
-    #     ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-};
-
-# >
-# Processor clock rate
-# The processor can run at various frequencies.
-# These values are expressed in KHz.  Note that there are
-# several steppings of the rate to run at different
-# maximum frequencies.  Check the specs to make sure that your
-# particular processor can run at the rate you select here.
-#
-cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
-    # This option is not active
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 150000
-    # value_source default
-    # Default value:  CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
-    #                             CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #   --> 150000
-    # Legal values: 150000 200000
-};
-
-# Real-time clock constants
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Calculated value: 1000000000
-    # Flavor: data
-    # Current_value: 1000000000
-};
-
-# Real-time clock denominator
-# This option selects the heartbeat rate for the real-time clock.
-# The rate is specified in ticks per second.  Change this value
-# with caution - too high and your system will become saturated
-# just handling clock interrupts, too low and some operations
-# such as thread scheduling may become sluggish.
-#
-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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_RTC_PERIOD
-    #     Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    # Flavor: data
-    # Current_value: 36864
-};
-
-# <
-# UART1 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART1 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART2 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART2 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART3 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART3 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART4 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART4 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART5 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART5 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Ka-Ro TX53 module
-# This HAL platform package provides generic
-# support for the Ka-Ro electronics TX53 module.
-#
-cdl_package CYGPKG_HAL_ARM_TX53KARO {
-    # 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: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGBLD_BUILD_REDBOOT == 1
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-};
-
-# >
-# Startup type
-# The only startup type allowed is ROMRAM, since this will allow
-# the program to exist in ROM, but be copied to RAM during startup
-# which is required to boot from NAND flash.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ROMRAM
-    # value_source default
-    # Default value: ROMRAM
-    # Legal values:  "ROMRAM" "RAM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     DefaultValue:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "RAM" 
-    # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" 
-    # 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 
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     ActiveIf:  CYG_HAL_STARTUP != "RAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the console port.
-# Note: this should match the value chosen for the GDB port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option selects the baud rate used for the GDB port.
-# Note: this should match the value chosen for the console port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the TX53
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Calculated value: 5
-    # Flavor: data
-    # Current_value: 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-};
-
-# Debug serial port
-# The TX53 provides access to five serial ports. This option
-# chooses which port will be used to connect to a host
-# running GDB.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Console serial port
-# The TX53 provides access to three serial ports. This option
-# chooses which port will be used for console output.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0
-    #   --> 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Ka-Ro electronics TX53 module 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_HAL_ARM_TX53_OPTIONS {
-    # There is no associated value.
-    # Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-};
-
-# >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
-# SDRAM size
-# This option specifies the SDRAM size of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
-    # Flavor: data
-    user_value 0x40000000
-    # value_source user
-    # Default value: 0x20000000
-    # Legal values:  0x40000000 0x20000000 
-};
-
-# CPU clock
-# This option specifies the CPU clock in MHz of the TX51 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # value_source default
-    # Default value: 1000
-    # Legal values:  800 1000 
-};
-
-# Enable low level debugging with LED
-# This option enables low level debugging by blink codes
-# of the LED on STK5.
-#
-cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  false 
-    #     false (unknown) == 0
-    #   --> 0
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the TX53 HAL. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_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 TX53 HAL. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Show a splash screen from the FIS partition: 'logo'
-# When this option is enabled, RedBoot will look for a flash partition
-# named 'logo' and display the contents of this partition as initial
-# screen on the LCD
-#
-cdl_option CYGHWR_MX53_LCD_LOGO {
-    # ActiveIf constraint:  CYGPKG_DEVS_IMX_IPU 
-    #     CYGPKG_DEVS_IMX_IPU == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 400
-    # value_source default
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
-# <
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  "arm_tx53_romram" 
-    # Flavor: data
-    # Current_value: arm_tx53_romram
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
-};
-
-# <
-# <
-# <
-# <
-# <
-# 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-    # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-};
-
-# >
-# 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
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != 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
-};
-
-# >
-# 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
-};
-
-# 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
-};
-
-# 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
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer on assert fail
-# When an assertion fails the trace buffer will be 
-# printed to the default diagnostic device.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT {
-    # 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
-};
-
-# <
-# Use function names
-# All trace and assert calls within eCos contain a
-# reference to the builtin macro '__PRETTY_FUNCTION__',
-# which evaluates to a string containing
-# the name of the current function.
-# This is useful when reading a trace log.
-# It is possible to suppress the use of the function name
-# 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_FUNCTION_PSEUDOMACRO {
-    # 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
-};
-
-# <
-# Startup options
-# Some packages require a startup routine to be called.
-# This can be carried out by application code, by supplying
-# a routine called cyg_package_start() which calls the
-# appropriate package startup routine(s).
-# Alternatively, this routine can be constructed automatically
-# and configured to call the startup routines of your choice.
-#
-cdl_component CYGPKG_INFRA_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# Start uITRON subsystem
-# Generate a call to initialize the
-# uITRON compatibility subsystem
-# within the system version of cyg_package_start().
-# This enables compatibility with uITRON.
-# You must configure uITRON with the correct tasks before
-# starting the uItron subsystem.
-# If this is disabled, and you want to use uITRON,
-# you must call cyg_uitron_start() from your own
-# cyg_package_start() or cyg_userstart().
-#
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_UITRON
-    #     CYGPKG_UITRON (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: CYGPKG_UITRON
-    #     CYGPKG_UITRON (unknown) == 0
-    #   --> 0
-};
-
-# <
-# Smaller slower memcpy()
-# Enabling this option causes the implementation of
-# the standard memcpy() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memcpy() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Smaller slower memset()
-# Enabling this option causes the implementation of
-# the standard memset() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memset() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide empty C++ delete functions
-# To deal with virtual destructors, where the correct delete()
-# function must be called for the derived class in question, the
-# underlying delete is called when needed, from destructors.  This
-# is regardless of whether the destructor is called by delete itself.
-# So there is a reference to delete() from all destructors.  The
-# default builtin delete() attempts to call free() if there is
-# one defined.  So, if you have destructors, and you have free(),
-# as in malloc() and free(), any destructor counts as a reference
-# to free().  So the dynamic memory allocation code is linked
-# in regardless of whether it gets explicitly called. This
-# increases code and data size needlessly.
-# To defeat this undesirable behaviour, we define empty versions
-# of delete and delete.  But doing this prevents proper use
-# of dynamic memory in C++ programs via C++'s new and delete
-# operators.
-# Therefore, this option is provided
-# for explicitly disabling the provision of these empty functions,
-# so that new and delete can be used, if that is what is required.
-#
-cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Threshold for valid number of delete calls
-# Some users don't know about the empty delete function and then
-# wonder why their C++ classes are leaking memory. If
-# INFRA_DEBUG is enabled we keep a counter for the number of
-# times delete is called. If it goes above this threshold we throw
-# an assertion failure. This should point heavy users of
-# delete in the right direction without upsetting those who want
-# an empty delete function. 
-#
-cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# Provide dummy abort() function
-# This option controls the inclusion of a dummy abort() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to abort(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. It is not expected that this function
-# will ever be called, so its current behaviour is to simply loop.
-#
-cdl_option CYGFUN_INFRA_DUMMY_ABORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-};
-
-# Reset platform at end of test case execution
-# If this option is set then test case programs will reset the platform
-# when they terminate, as opposed to the default which is to just hang
-# in a loop.
-#
-cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide dummy strlen() function
-# This option controls the inclusion of a dummy strlen() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to strlen(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. While it is not expected that this function
-# will ever be called, it is functional but uses the simplest, smallest
-# algorithm. There is a faster version of strlen() in the C library.
-#
-cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-};
-
-# Make all compiler warnings show as errors
-# Enabling this option will cause all compiler warnings to show
-# as errors and bring the library build to a halt. This is used
-# to ensure that the code base is warning free, and thus ensure
-# that newly introduced warnings stand out and get fixed before
-# they show up as weird run-time behavior.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-};
-
-# Make compiler and assembler communicate by pipe
-# Enabling this option will cause the compiler to feed the
-# assembly output the the assembler via a pipe instead of
-# via a temporary file. This normally reduces the build
-# time.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-};
-
-# Infra build options
-# Package specific build options including control over
-# compiler flags used only in building this package.
-#
-cdl_component CYGPKG_INFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Suppressed linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--gc-sections
-    # value_source default
-    # Default value: -Wl,--gc-sections
-};
-
-# Additional linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are added to
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--fatal-warnings
-    # value_source default
-    # Default value: -Wl,--fatal-warnings
-};
-
-# Infra package tests
-#
-cdl_component CYGPKG_INFRA_TESTS {
-    # Calculated value:  "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" 
-    # Flavor: data
-    # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2
-};
-
-# >
-# Number of times a test runs
-# This option controls the number of times tests will execute their
-# basic function.  Not all tests will honor this setting, but those
-# that do will execute the test N times before terminating.  A value
-# less than 0 indicates to run forever.
-#
-cdl_option CYGNUM_TESTS_RUN_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# <
-# Redboot ROM monitor
-# doc: ref/redboot.html
-# This package supports the Redboot [stand-alone debug monitor]
-# using eCos as the underlying board support mechanism.
-#
-cdl_package CYGPKG_REDBOOT {
-    # 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:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_ARM_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # option CYGSEM_IO_ETH_DRIVERS_WARN
-    #     ActiveIf: CYGPKG_REDBOOT
-};
-
-# >
-# Include support for ELF file format
-#
-cdl_component CYGSEM_REDBOOT_ELF {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use the virtual address in the ELF headers
-# The ELF headers contain both a virtual and a physical address
-# for where code/data should be loaded. By default the physical
-# address is used but sometimes it is necassary to use the
-# virtual address because of bugy toolchains
-#
-cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Methods of loading images using redboot
-#
-cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled
-    # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_REDBOOT_LOAD_METHOD
-};
-
-# Build Redboot ROM ELF image
-# This option enables the building of the Redboot ELF image.
-# The image may require further relocation or symbol
-# stripping before being converted to a binary image.
-# This is handled by a rule in the target CDL.
-#
-cdl_component CYGBLD_BUILD_REDBOOT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires: CYGPKG_INFRA
-    #     CYGPKG_INFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_REDBOOT_LOAD_METHOD
-    #     CYGINT_REDBOOT_LOAD_METHOD == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGBLD_BUILD_REDBOOT == 1
-    # option CYGBLD_BUILD_REDBOOT_BIN
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT
-};
-
-# >
-# Include GDB support in RedBoot
-# RedBoot normally includes support for the GDB debugging
-# protocols. This option allows this to be disabled which
-# may yield a substantial savings in terms of code and memory 
-# usage by RedBoot.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-};
-
-# Threads debugging support
-# Enabling this option will include special code in the
-# GDB stubs to support debugging of threaded programs.  In
-# the case of eCos programs, this support allows GDB to
-# have complete access to the eCos threads in the
-# program.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
-    # ActiveIf constraint:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # 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_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-};
-
-# Customized version string
-# Use this option to define a customized version "string" for
-# RedBoot.  Note: this value is only cosmetic, displayed by the
-# "version" command, but is useful for providing site specific
-# information about the RedBoot configuration.
-#
-cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 "Ka-Ro 2010-01-06"
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Enable command line editing
-# If this option is non-zero, RedBoot will remember the
-# last N command lines.  These lines may be reused.
-# Enabling this history will also enable rudimentary
-# editting of the lines themselves.
-#
-cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES
-    #     ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    # option CYGBLD_REDBOOT_CMD_LINE_HISTORY
-    #     Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-};
-
-# Enable command line editing using ANSI arrows, etc
-# If this option is enabled, RedBoot will accept standard ANSI key
-# sequences for cursor movement (along with the emacs style keys).
-#
-cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
-    # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Enable history command and expansion
-# Enabling this option will allow RedBoot to provide a
-# history command to list previous commands. Also enables
-# history expansion via '!'  character similar to bash
-# shell.
-#
-cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-};
-
-# Number of unique RAM segments on platform
-# Change this option to be the number of memory segments which are
-# supported by the platform.  If the value is greater than 1, then
-# a platform specific function must provide information about the
-# additional segments.
-#
-cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include support gzip/zlib decompression
-#
-cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
-    # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB
-    #     CYGPKG_COMPRESS_ZLIB == current
-    #   --> 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
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# >
-# Size of zlib decompression buffer
-# This is the size of the buffer filled with incoming data
-# during load before calls are made to the decompressor
-# function. For ethernet downloads this can be made bigger
-# (at the cost of memory), but for serial downloads on slow
-# processors it may be necessary to reduce the size to
-# avoid serial overruns. zlib appears to bail out if less 
-# than five bytes are available initially so this is the 
-# minimum.
-#
-cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 5 to 256
-};
-
-# Support compression of Flash images
-# This CDL indicates whether flash images can
-# be decompressed from gzip/zlib format into RAM.
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-    # ActiveIf constraint:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #     CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Include GZIP uncompress command
-# Enable this option to include a 'gunzip' command 
-# to uncompress GZIP compressed data.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Turn on CYGPRI_REDBOOT_ZLIB_FLASH
-# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-};
-
-# <
-# Include support for xyzModem downloads
-# doc: ref/download-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
-    # 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 CYGPKG_REDBOOT_CFLAGS_ADD
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_REDBOOT_CFLAGS_ADD {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-    #     CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-inline
-    # value_source default
-    # Default value: -Wno-inline
-};
-
-# Allow the load-command write into Flash.
-# Write images direct to Flash via the load command.
-# We assume anything which is invalid RAM is flash, hence
-# the requires statement
-#
-cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-    #     CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1
-    #   --> 1
-};
-
-# Include MS Windows CE support
-# doc: ref/wince.html
-# This option enables MS Windows CE EShell support
-# and Windows CE .BIN images support
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Include support for MXC USB downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include support for i.MX USB OTG downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include POSIX checksum command
-# doc: ref/cksum-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory fill command
-# doc: ref/mfill-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory compare command
-# doc: ref/mcmp-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory copy command
-# doc: ref/mcopy-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory dump command
-# doc: ref/dump-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include cache command
-# doc: ref/cache-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include exec command
-# doc: ref/exec-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
-    # 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_REDBOOT_ARM_LINUX_EXEC
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-};
-
-# Include I/O Memory commands 'iopeek' and 'iopoke'
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Granularity of timer/ticks
-# This option controls the granularity of the timers.
-# Faster CPUs can afford higher granularity (lower values)
-# which should give higher network performance since the stack
-# is purely polled.
-#
-cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 250
-    # value_source default
-    # Default value: 250
-    # Legal values:  10 25 50 100 250 500 1000 
-};
-
-# Redboot Networking
-# This option includes networking support in RedBoot.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING {
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 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_IO_ETH_DRIVERS_PASS_PACKETS
-    #     DefaultValue:  0 != CYGPKG_REDBOOT_NETWORKING 
-};
-
-# >
-# Print net debug information
-# This option is overriden by the configuration stored 
-# in flash.
-#
-cdl_option CYGDBG_REDBOOT_NET_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support TFTP for download
-# This option enables the use of the TFTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support HTTP for download
-# This option enables the use of the HTTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Default IP address
-# This IP address is the default used by RedBoot if
-# a BOOTP/DHCP server does not respond. The numbers
-# should be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# >
-# Do not try to use BOOTP
-# By default Redboot tries to use BOOTP to get an IP
-# address. If there's no BOOTP server on your network
-# use this option to avoid to wait until the
-# timeout. This option is overriden by the
-# configuration stored in flash.
-#
-cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Default bootp server
-# This IP address is the default server
-# address used by RedBoot if a BOOTP/DHCP
-# server does not respond. The numbers should
-# be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in
-# preference.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# Use DHCP to get IP information
-# Use DHCP protocol to obtain pertinent IP addresses, such 
-# as the client, server, gateway, etc.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
-    # 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 CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-    #     Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-};
-
-# Use a gateway for non-local IP traffic
-# Enabling this option will allow the RedBoot networking
-# stack to use a [single] gateway to reach a non-local
-# IP address.  If disabled, RedBoot will only be able to
-# reach nodes on the same subnet.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-    #     CYGSEM_REDBOOT_NETWORKING_DHCP == 1
-    #   --> 1
-};
-
-# >
-# Default gateway IP address
-# This IP address is the default used by RedBoot
-# if a BOOTP/DHCP server does not respond. The
-# numbers should be separated by *commas*, and
-# not dots. If an IP address is configured into
-# the Flash configuration, that will be used in
-# preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# Default IP address mask
-# This IP address mask is the default used by
-# RedBoot if a BOOTP/DHCP server does not
-# respond. The numbers should be separated by
-# *commas*, and not dots. If an IP address is
-# configured into the Flash configuration, that
-# will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# TCP port to listen for incoming connections
-# RedBoot will 'listen' on this port for incoming TCP 
-# connections. This allows outside connections to be made 
-# to the platform, either for GDB or RedBoot commands.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 9000
-    # value_source default
-    # Default value: 9000
-};
-
-# Number of [network] packet buffers
-# RedBoot may need to buffer network data to support
-# various connections.  This option allows control
-# over the number of such buffered packets, and in
-# turn, controls the amount of memory used by RedBoot
-# (which is not available to user applications).
-# Each packet buffer takes up about 1514 bytes.
-# Note: there is little need to make this larger than
-# the default.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 3 to 8
-};
-
-# DNS support
-# When this option is enabled, RedBoot will be built with
-# support for DNS, allowing use of hostnames on the command
-# line.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NS_DNS
-    #     CYGPKG_NS_DNS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NS_DNS_BUILD
-    #     CYGPKG_NS_DNS_BUILD (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Default DNS IP
-# This option sets the IP of the default DNS. The IP can be
-# changed at runtime as well.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-    # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0.0.0.0
-    # value_source default
-    # Default value: 0.0.0.0
-};
-
-# Timeout in DNS lookup
-# This option sets the timeout used when looking up an
-# address via the DNS. Default is 10 seconds.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Support the use of a domain name
-# This option controls if Redboot supports domain
-# names when performing DNS lookups
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Default DNS domain
-# This option sets the default DNS domain name.
-# This value will be overwritten by the value in
-# flash or a domain returned by DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Get DNS domain from Flash
-# This option enables getting the domain name 
-# from the flash configuration. This can later be 
-# overwritten by a value learnt from DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-    # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use DNS domain from DHCP
-# This option enables the use of the domain name
-# returned by DHCP.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# BOOTP/DHCP DNS domain buffer size
-# This options sets the size of the static
-# buffer used by BOOTP/DHCP to store the DNS
-# domain name. The domain name will not be
-# set if the buffer is too small to hold it.
-#
-cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# <
-# <
-# Default network device driver
-# This is the name of the default network device to use.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"\""
-    # value_source default
-    # Default value: "\"\""
-};
-
-# Initialize only one net device
-# This option tells RedBoot to stop initializing network
-# devices when it finds the first device which is
-# successfully initialized. The default behavior causes
-# all network devices to be initialized.
-#
-cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Let RedBoot use any I/O channel for its console.
-# If this option is enabled then RedBoot will attempt to use all
-# defined serial I/O channels for its console device.  Once input
-# arrives at one of these channels then the console will use only
-# that port.
-#
-cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# Let RedBoot adjust the baud rate of the serial console.
-# If this option is enabled then RedBoot will support commands 
-# to set and query the baud rate on the selected console.
-#
-cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Run a platform specific startup function.
-# If this option is enabled then RedBoot will execute a platform
-# specific startup function before entering into its command line
-# processing.  This allows the platform to perform any special
-# setups before RedBoot actually starts running.  Note: the entire
-# RedBoot environment will already be initialized at this point.
-#
-cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Run a platform specific ESA validation function.
-# If this option is enabled then RedBoot will execute a platform
-# specific function to validate an ethernet ESA.  This would be
-# useful if the address must conform to standards set by the
-# hardware manufacturer, etc.
-#
-cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI
-    #     ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-};
-
-# Maximum command line length
-# This option allows control over how long the CLI command line
-# should be.  This space will be allocated statically
-# rather than from RedBoot's stack.
-#
-cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # The inferred value should not be edited directly.
-    inferred_value 1024
-    # value_source inferred
-    # Default value: 256
-};
-
-# Command processing idle timeout (ms)
-# This option controls the timeout period before the
-# command processing is considered 'idle'.  Making this
-# number smaller will cause idle processing to take place
-# more often, etc.  The default value of 10ms is a reasonable
-# tradeoff between responsiveness and overhead.
-#
-cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Validate RAM addresses during load
-# This option controls whether or not RedBoot will make
-# sure that memory being used by the "load" command is
-# in fact in user RAM.  Leaving the option enabled makes
-# for a safer environment, but this check may not be valid
-# on all platforms, thus the ability to disable it.  
-# ** Disable this only with great care **
-#
-cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
-    # 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 CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-};
-
-# Allow RedBoot to support FLASH programming
-# If this option is enabled then RedBoot will provide commands
-# to manage images in FLASH memory.  These images can be loaded
-# into memory for execution or executed in place.
-#
-cdl_component CYGPKG_REDBOOT_FLASH {
-    # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE
-    #     CYGHWR_IO_FLASH_DEVICE == 1
-    #   --> 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 CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-    # option CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-};
-
-# >
-# Byte order used to store info in flash.
-# This option controls the byte ordering used to store
-# the FIS directory info and flash config info.
-#
-cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NATURAL
-    # value_source default
-    # Default value: NATURAL
-    # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" 
-};
-
-# RedBoot Flash Image System support
-# doc: ref/flash-image-system.html
-# This option enables the Flash Image System commands
-# and support within RedBoot.  If disabled, simple Flash
-# access commands such as "fis write" will still exist.
-# This option would be disabled for targets that need simple
-# FLASH manipulation, but do not have the need or space for
-# complete image management.
-#
-cdl_option CYGOPT_REDBOOT_FIS {
-    # 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_REDBOOT_FIS_CONTENTS
-    #     ActiveIf: CYGOPT_REDBOOT_FIS
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# Max number of chunks of free space to manage
-# If this option is defined then "fis free" will
-# rely on the FIS directory to determine what space is
-# free within the FLASH.  This option controls the
-# maximum number of free segment which can be handled
-# (typically this number is small).  If this option is
-# not enabled, the the archaic behaviour of actually
-# scanning the FLASH for erased sectors (unreliable)
-# will be used to determine what's free and what's
-# not.
-#
-cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 32
-    # value_source default
-    # Default value: 1 32
-};
-
-# Flash Image System default directory contents
-#
-cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
-    # ActiveIf constraint: CYGOPT_REDBOOT_FIS
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Flash block containing the Directory
-# Which block of flash should hold the directory
-# information. Positive numbers are absolute block
-# numbers.  Negative block numbers count backwards
-# from the last block.  eg 2 means block 2, -2
-# means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
-    # Flavor: data
-    # 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 CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# Redundant Flash Image System Directory Support
-# This option enables the use of a redundant FIS
-# directory within RedBoot.  If enabled a flash block
-# will be reserved for a second copy of the fis
-# directory. Doing this allow for power failure safe
-# updates of the directory by the application.
-#
-cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-    #     CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1
-    #   --> 0
-};
-
-# >
-# Flash block containing the backup Directory
-# Which block of flash should hold the redundant
-# directory information. Positive numbers are
-# absolute block numbers. Negative block numbers
-# count backwards from the last block. eg 2 means
-# block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -3
-    # value_source default
-    # Default value: -3
-    # Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-    #     CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0
-    #     CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# <
-# Pseudo-file to describe reserved area
-# If an area of FLASH is reserved, it is informative to
-# have a fis entry describing it.  This option controls
-# creation of such an entry by default in the fis init
-# command.
-#
-cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
-    # This option is not active
-    # ActiveIf constraint:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# File to describe RedBoot boot image
-# Normally a ROM-startup RedBoot image is first in the
-# FLASH, and the system boots using that image.  This
-# option controls creation of an entry describing it in
-# the fis init command.  It might be disabled if a
-# platform has an immutable boot image of its own, where
-# we use a POST-startup RedBoot instead, which performs
-# less board initialization.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
-    # 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 CYGOPT_REDBOOT_FIS_REDBOOT_POST
-    #     DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT
-    # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE
-    #     DefaultValue:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-};
-
-# File to describe RedBoot POST-compatible image
-# This option controls creation of an entry describing a
-# POST-startup RedBoot image in the fis init command.
-# Not all platforms support POST-startup.  A platform
-# might have both for testing purposes, where the
-# eventual user would substitute their own POST code for
-# the initial ROM-startup RedBoot, and then jump to the
-# POST-compatible RedBoot immediately following.
-#
-cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0
-};
-
-# >
-# Offset of POST image from FLASH start
-# This option specifies the offset for a POST image from
-# the start of FLASH.  If unset, then the fis entry
-# describing the POST image will be placed where
-# convenient.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# File to describe RedBoot backup image
-# This option controls creation of an entry describing a
-# backup RedBoot image in the fis init command.
-# Conventionally a RAM-startup RedBoot image is kept
-# under this name for use in updating the ROM-based
-# RedBoot that boots the board.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include ARM SIB ID in FIS
-# If set, this option will cause the last 5 words of
-# the FIS to include the special ID needed for the
-# flash to be recognized as a reserved area for RedBoot
-# by an ARM BootRom monitor.
-#
-cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Size of FIS directory entry
-# The FIS directory is limited to one single flash
-# sector. If your flash has tiny sectors, you may wish
-# to reduce this value in order to get more slots in
-# the FIS directory.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-};
-
-# Number of FIS directory entries
-# The FIS directory normally occupies a single flash
-# sector. Adjusting this value can allow for more than
-# one flash sector to be used, which is useful if your
-# sectors are very small.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Maximum RedBoot image size
-# This option controls the maximum length reserved
-# for the RedBoot boot image in the FIS table.
-# This should be a multiple of the flash's erase
-# block size.
-#
-cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00020000
-    # The inferred value should not be edited directly.
-    inferred_value 0x00040000
-    # value_source inferred
-    # Default value:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0x00020000
-};
-
-# Offset from start of FLASH to RedBoot boot image
-# This option controls where the RedBoot boot image is 
-# located relative to the start of FLASH.
-#
-cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-    # Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # component CYGPKG_HAL_ARM_TX53_OPTIONS
-    #     Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-};
-
-# Size of reserved area at start of FLASH
-# This option reserves an area at the start of
-# FLASH where RedBoot will never interfere; it is
-# expected that this area contains
-# (non-RedBoot-based) POST code or some other boot
-# monitor that executes before RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
-    # Flavor: data
-    # 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 CYGOPT_REDBOOT_FIS_RESERVED_BASE
-    #     ActiveIf:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# Keep all RedBoot FLASH data blocks locked.
-# When this option is enabled, RedBoot will keep configuration
-# data and the FIS directory blocks implicitly locked.  While
-# this is somewhat safer, it does add overhead during updates.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-    #     CYGHWR_IO_FLASH_BLOCK_LOCKING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use CRC checksums on FIS images.
-# When this option is enabled, RedBoot will use CRC checksums
-# when reading and writing flash images.
-#
-cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# ARM FLASH drivers support SIB flash block structure
-# This interface is implemented by a flash driver
-# to indicate that it supports the ARM SIB flash
-# block structure
-#
-cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGPKG_HAL_ARM
-    #     CYGPKG_HAL_ARM == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_FLASH_SIB
-    #     ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-};
-
-# Use ARM SIB flash block structure
-# This option is used to interpret ARM Flash System 
-# information blocks.
-#
-cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Keep RedBoot configuration data in FLASH
-# When this option is enabled, RedBoot will keep configuration
-# data in a separate block of FLASH memory.  This data will
-# include such items as the node IP address or startup scripts.
-#
-cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_IO_FLASH != 0 
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_IP
-    #     ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN
-    #     ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# >
-# Length of configuration data in FLASH
-# This option is used to control the amount of memory and FLASH
-# to be used for configuration options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value: 4096
-};
-
-# Style of media used for persistent data storage
-# Persistent data storage can either be held in 'norma' FLASH
-# or some other device (represented by the 'EEPROM' choice).
-# The different styles utilize different access methods.
-#
-cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value FLASH
-    # value_source default
-    # Default value: FLASH
-    # Legal values:  "FLASH" "EEPROM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK
-    #     DefaultValue:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-};
-
-# Merged config data and FIS directory
-# If this option is set, then the FIS directory and FLASH 
-# configuration database will be stored in the same physical
-# FLASH block.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
-    # ActiveIf constraint:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGOPT_REDBOOT_FIS == 1
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 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
-    # component CYGOPT_REDBOOT_REDUNDANT_FIS
-    #     Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-};
-
-# Which block of flash to use
-# Which block of flash should hold the configuration 
-# information. Positive numbers are absolute block numbers. 
-# Negative block numbers count backwards from the last block.
-# eg 2 means block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -2
-    # value_source default
-    # Default value: -2
-};
-
-# Support simple macros/aliases in FLASH
-# This option is used to allow support for simple text-based
-# macros (aliases).  These aliases are kept in the FLASH
-# configuration data (persistent storage).
-#
-cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Length of strings in FLASH configuration data
-# This option is used to control the amount of memory
-# and FLASH to be used for string configuration
-# options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-};
-
-# Length of configuration script(s) in FLASH
-# This option is used to control the amount of memory and 
-# FLASH to be used for configuration options (persistent 
-# storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 512
-    # The inferred value should not be edited directly.
-    inferred_value 2048
-    # value_source inferred
-    # Default value: 512
-};
-
-# Fallback to read-only FLASH configuration
-# This option will cause the configuration information to
-# revert to the readonly information stored in the FLASH.
-# The option only takes effect after 
-# 1) the config_ok flag has been set to be true,
-# indicating that at one time the copy in RAM was valid;
-# and
-# 2) the information in RAM has been verified to be invalid
-#
-cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 1
-};
-
-# <
-# Allow RedBoot to support fileio
-# If this option is enabled then RedBoot will provide commands
-# to load files from fileio file systems such as JFFS2.
-#
-cdl_component CYGPKG_REDBOOT_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO (unknown) == 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 CYGNUM_REDBOOT_GETC_BUFFER
-    #     DefaultValue:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-};
-
-# >
-# Include an ls command
-# If this option is enabled a simple ls command will be
-# included in redboot so the contents of a directory
-# can be listed
-#
-cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_FILEIO is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Allow RedBoot to support disks
-# If this option is enabled then RedBoot will provide commands
-# to load disk files.
-#
-cdl_component CYGPKG_REDBOOT_DISK {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# >
-# Include Redboot commands for disk access
-#
-cdl_option CYGSEM_REDBOOT_DISK {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-    #     CYGINT_REDBOOT_DISK_DRIVERS == 0
-    #   --> 0
-};
-
-# Hardware drivers for disk-type devices
-#
-cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
-    # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_DISK
-    #     DefaultValue:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-};
-
-# Maximum number of supported disks
-# This option controls the number of disks supported by 
-# RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_MAX_DISKS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# Maximum number of partitions per disk
-# This option controls the maximum number of supported 
-# partitions per disk.
-#
-cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Support IDE disks.
-# When this option is enabled, RedBoot will support IDE disks.
-#
-cdl_component CYGSEM_REDBOOT_DISK_IDE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-    # ActiveIf constraint:  CYGINT_HAL_PLF_IF_IDE != 0 
-    #     CYGINT_HAL_PLF_IF_IDE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Work with VMware virtual disks
-# This option controls the disk driver behavior at 
-# ide-init
-#
-cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_DISK_IDE is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support Linux second extended filesystems.
-# When this option is enabled, RedBoot will support EXT2 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support ISO9660 filesystems.
-# When this option is enabled, RedBoot will support ISO9660 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Boot scripting
-# doc: ref/persistent-state-flash.html
-# This contains options related to RedBoot's boot script
-# functionality.
-#
-cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
-    # There is no associated value.
-};
-
-# >
-# Boot scripting enabled
-# This option controls whether RedBoot boot script
-# functionality is enabled.
-#
-cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
-    # ActiveIf constraint:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-    #     CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Use default RedBoot boot script
-# If enabled, this option will tell RedBoot to use the 
-# value of this option as a default boot script.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 0 0
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# Resolution (in ms) for script timeout value.
-# This option controls the resolution of the script
-# timeout.  The value is specified in milliseconds
-# (ms), thus to have the script timeout be defined in
-# terms of tenths of seconds, use 100.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # The inferred value should not be edited directly.
-    inferred_value 10
-    # value_source inferred
-    # Default value: 1000
-};
-
-# Script default timeout value
-# This option is used to set the default timeout for startup
-# scripts, when they are enabled.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 10
-};
-
-# <
-# Support RTC for time & date functions
-# When this option is enabled, RedBoot will support commands to
-# query and set the real time clock (time and date)
-#
-cdl_option CYGSEM_REDBOOT_RTC {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_IO_WALLCLOCK 
-    #     CYGPKG_IO_WALLCLOCK (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Behave like a ROM monitor
-# Enabling this option will allow RedBoot to provide ROM 
-# monitor-style services to programs which it executes.
-#
-cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# Allow RedBoot to handle GNUPro application 'syscalls'.
-# If this option is enabled then RedBoot will install a
-# syscall handler to support debugging of applications
-# based on GNUPro newlib/bsp.
-#
-cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
-    # 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 CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-    # option CYGPKG_HAL_GDB_FILEIO
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-};
-
-# >
-# Support additional syscalls for 'gprof' profiling
-# Support additional syscalls to support a periodic callback
-# function for histogram-style profiling, and an enquire/set
-# of the tick rate.
-# The application must use the GNUPro newlib facilities
-# to set this up.
-#
-cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-    # ActiveIf constraint:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-    #     CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does the HAL support 'gprof' profiling?
-#
-cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
-    # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF
-    #     ActiveIf:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-};
-
-# Do not raise SIGTRAP when program exits
-# For some (single shot) newlib based programs,
-# exiting and returning a termination status may be
-# the normal expected behavior.
-#
-cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Use a common buffer for Zlib and FIS
-# Use a common memory buffer for both the zlib workspace
-# and FIS directory operations. This can save a substantial
-# amount of RAM, especially when flash sectors are large.
-#
-cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
-    # ActiveIf constraint:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-    #     CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of Zlib/FIS common buffer
-# Size of common buffer to allocate. Must be at least the
-# size of one flash sector.
-#
-cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000C000
-    # value_source default
-    # Default value: 0x0000C000
-    # Legal values: 0x4000 to 0x80000000
-};
-
-# <
-# Buffer size in getc when loading images
-# When loading images a buffer is used between redboot and the
-# underlying storage medium, eg a filesystem, or a socket etc.
-# The size of this buffer can have a big impart on load speed.
-#
-cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-    #     CYGPKG_REDBOOT_FILEIO == 0
-    #   --> 256
-};
-
-# <
-# Redboot for ARM options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Provide the exec command in RedBoot
-# This option contains requirements for booting linux
-# from RedBoot. The component is enabled/disabled from
-# RedBoots CDL.
-#
-cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Enable -x switch for exec command.
-# This option allows bi-endian platforms to launch kernels
-# built for an endianess different than the RedBoot endianess
-#
-cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x70108000
-    # value_source default
-    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 0x70108000
-};
-
-# Default physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image. This option gets set by the 
-# platform CDL.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00008000
-    # The inferred value should not be edited directly.
-    inferred_value 0x70108000
-    # value_source inferred
-    # Default value: 0x00008000
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS
-    #     DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-};
-
-# Base address of linux kernel parameter tags
-# This is the base address of the area of memory used to
-# pass parameters to the Linux kernel. This should be chosen
-# to avoid overlap with the kernel and any ramdisk image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000100
-    # value_source default
-    # Default value: 0x00000100
-};
-
-# <
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Build Redboot ROM binary image
-# This option enables the conversion of the Redboot ELF
-# image to a binary image suitable for ROM programming.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Redboot HAL variant options
-#
-cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 1
-};
-
-# <
-# ISO C and POSIX infrastructure
-# eCos supports implementations of ISO C libraries and POSIX
-# implementations. This package provides infrastructure used by
-# all such implementations.
-#
-cdl_package CYGPKG_ISOINFRA {
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_COMPRESS_ZLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-};
-
-# >
-# Startup and termination
-#
-cdl_component CYGPKG_ISO_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# main() startup implementations
-# Implementations of this interface arrange for a user-supplied
-# main() to be called in an ISO compatible environment.
-#
-cdl_interface CYGINT_ISO_MAIN_STARTUP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-};
-
-# <
-# ctype.h functions
-#
-cdl_component CYGPKG_ISO_CTYPE_H {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of ctype functions
-#
-cdl_interface CYGINT_ISO_CTYPE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_CTYPE 
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_CTYPE
-    #     Requires:  1 >= CYGINT_ISO_CTYPE 
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-};
-
-# Ctype implementation header
-#
-cdl_option CYGBLD_ISO_CTYPE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/i18n/ctype.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-};
-
-# <
-# Error handling
-#
-cdl_component CYGPKG_ISO_ERRNO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of error codes
-#
-cdl_interface CYGINT_ISO_ERRNO_CODES {
-    # Implemented by CYGPKG_ERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO_CODES
-    #     Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-};
-
-# Error codes implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/codes.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_ERROR
-    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-};
-
-# Number of implementations of errno variable
-#
-cdl_interface CYGINT_ISO_ERRNO {
-    # Implemented by CYGPKG_ERROR_ERRNO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO 
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO
-    #     Requires:  1 >= CYGINT_ISO_ERRNO 
-};
-
-# errno variable implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/errno.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_ERROR_ERRNO
-    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-};
-
-# <
-# Locale-related functions
-#
-cdl_component CYGPKG_ISO_LOCALE {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of locale functions
-#
-cdl_interface CYGINT_ISO_LOCALE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_LOCALE 
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_LOCALE
-    #     Requires:  1 >= CYGINT_ISO_LOCALE 
-};
-
-# Locale implementation header
-#
-cdl_option CYGBLD_ISO_LOCALE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard I/O-related functionality
-#
-cdl_component CYGPKG_ISO_STDIO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of stdio file types
-#
-cdl_interface CYGINT_ISO_STDIO_FILETYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-};
-
-# Stdio file types implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-};
-
-# Stdio standard streams implementation header
-# This header file must define stdin, stdout
-# and stderr.
-#
-cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEOPS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-};
-
-# Stdio file operations implementation header
-# This header controls the file system operations on a file
-# such as remove(), rename(), tmpfile(), tmpnam() and associated
-# constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-};
-
-# Stdio file access implementation header
-# This header controls the file access operations
-# such as fclose(), fflush(), fopen(), freopen(), setbuf(),
-# setvbuf(), and associated constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-};
-
-# Stdio formatted I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-};
-
-# Stdio character I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-};
-
-# Stdio direct I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEPOS
-};
-
-# Stdio file positioning implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-};
-
-# Stdio error handling implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS
-    #     Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-};
-
-# POSIX fd-related function implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard general utility functions
-#
-cdl_component CYGPKG_ISO_STDLIB {
-    # There is no associated value.
-};
-
-# >
-# String conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-};
-
-# String conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/atox.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ATOX
-    #     Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-};
-
-# String to FP conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT {
-    # Implemented by CYGFUN_LIBC_strtod, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-};
-
-# String to FP conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Random number generator implementations
-#
-cdl_interface CYGINT_ISO_RAND {
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_RAND 
-    #     CYGINT_ISO_RAND == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_RAND
-    #     Requires:  1 >= CYGINT_ISO_RAND 
-};
-
-# Random number generator implementation header
-#
-cdl_option CYGBLD_ISO_RAND_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Malloc implementations
-#
-cdl_interface CYGINT_ISO_MALLOC {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLOC
-    #     Requires:  1 >= CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-};
-
-# Malloc implementation header
-#
-cdl_option CYGBLD_ISO_MALLOC_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Mallinfo() implementations
-#
-cdl_interface CYGINT_ISO_MALLINFO {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLINFO 
-    #     CYGINT_ISO_MALLINFO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLINFO
-    #     Requires:  1 >= CYGINT_ISO_MALLINFO 
-};
-
-# Mallinfo() implementation header
-#
-cdl_option CYGBLD_ISO_MALLINFO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program exit functionality implementations
-#
-cdl_interface CYGINT_ISO_EXIT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_EXIT
-    #     Requires:  1 >= CYGINT_ISO_EXIT 
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     Requires: !CYGINT_ISO_EXIT
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     DefaultValue:  CYGINT_ISO_EXIT == 0 
-};
-
-# Program exit functionality implementation header
-#
-cdl_option CYGBLD_ISO_EXIT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program environment implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-    #     CYGINT_ISO_STDLIB_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-};
-
-# Program environment implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# system() implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_SYSTEM {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-    #     CYGINT_ISO_STDLIB_SYSTEM == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_SYSTEM
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-};
-
-# system() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# bsearch() implementations
-#
-cdl_interface CYGINT_ISO_BSEARCH {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_BSEARCH 
-    #     CYGINT_ISO_BSEARCH == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSEARCH
-    #     Requires:  1 >= CYGINT_ISO_BSEARCH 
-};
-
-# bsearch() implementation header
-#
-cdl_option CYGBLD_ISO_BSEARCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# qsort() implementations
-#
-cdl_interface CYGINT_ISO_QSORT {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_QSORT 
-    #     CYGINT_ISO_STDLIB_QSORT (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# qsort() implementation header
-#
-cdl_option CYGBLD_ISO_QSORT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# abs()/labs() implementations
-#
-cdl_interface CYGINT_ISO_ABS {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ABS 
-    #     CYGINT_ISO_STDLIB_ABS (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# abs()/labs() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/abs.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ABS
-    #     Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-};
-
-# div()/ldiv() implementations
-#
-cdl_interface CYGINT_ISO_DIV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_DIV 
-    #     CYGINT_ISO_STDLIB_DIV (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# div()/ldiv() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/div.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_DIV
-    #     Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-};
-
-# Header defining the implementation's MB_CUR_MAX
-#
-cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBC_I18N_MB_REQUIRED
-    #     Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-};
-
-# Multibyte character implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-    #     CYGINT_ISO_STDLIB_MULTIBYTE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_MULTIBYTE
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-};
-
-# Multibyte character implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# String functions
-#
-cdl_component CYGPKG_ISO_STRING {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of strerror() function
-#
-cdl_interface CYGINT_ISO_STRERROR {
-    # Implemented by CYGPKG_ERROR_STRERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRERROR 
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRERROR
-    #     Requires:  1 >= CYGINT_ISO_STRERROR 
-};
-
-# strerror() implementation header
-#
-cdl_option CYGBLD_ISO_STRERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/strerror.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_ERROR_STRERROR
-    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-};
-
-# memcpy() implementation header
-#
-cdl_option CYGBLD_ISO_MEMCPY_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# memset() implementation header
-#
-cdl_option CYGBLD_ISO_MEMSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of strtok_r() function
-#
-cdl_interface CYGINT_ISO_STRTOK_R {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRTOK_R 
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRTOK_R
-    #     Requires:  1 >= CYGINT_ISO_STRTOK_R 
-};
-
-# strtok_r() implementation header
-#
-cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of locale-specific string  functions
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-};
-
-# Locale-specific string functions' implementation  header
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of BSD string functions
-#
-cdl_interface CYGINT_ISO_STRING_BSD_FUNCS {
-    # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-};
-
-# BSD string functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/bsdstring.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-};
-
-# Number of implementations of other mem*() functions
-#
-cdl_interface CYGINT_ISO_STRING_MEMFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_MEMFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-};
-
-# Other mem*() functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of other ISO C str*()  functions
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_interface CYGINT_ISO_STRING_STRFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_STRFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     Requires: !CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     DefaultValue:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_NET
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-};
-
-# Other ISO C str*() functions' implementation  header
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# <
-# Clock and time functionality
-#
-cdl_component CYGPKG_ISO_TIME {
-    # There is no associated value.
-};
-
-# >
-# time_t implementation header
-#
-cdl_option CYGBLD_ISO_TIME_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# clock_t implementation header
-#
-cdl_option CYGBLD_ISO_CLOCK_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# struct timeval implementation header
-#
-cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-    #     CYGINT_ISO_POSIX_TIMER_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-};
-
-# POSIX timer types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCK_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-};
-
-# POSIX clock types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-};
-
-# ISO C time types implementation header
-#
-cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-    #     CYGINT_ISO_POSIX_TIMERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMERS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-};
-
-# POSIX timer implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_CLOCK_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-};
-
-# ISO C clock functions' implementation header
-#
-cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of tzset() function
-#
-cdl_interface CYGINT_ISO_TZSET {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_TZSET 
-    #     CYGINT_ISO_TZSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TZSET
-    #     Requires:  1 >= CYGINT_ISO_TZSET 
-};
-
-# tzset() implementation header
-#
-cdl_option CYGBLD_ISO_TZSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Signal functionality
-#
-cdl_component CYGPKG_ISO_SIGNAL {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of signal numbers
-#
-cdl_interface CYGINT_ISO_SIGNAL_NUMBERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-};
-
-# Signal numbering implementation header
-# This header provides the mapping of signal
-# names (e.g. SIGBUS) to numbers.
-#
-cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-};
-
-# Signals implementation header
-#
-cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX real time signals feature test macro
-# This defines the POSIX feature test macro
-# that indicates that the POSIX real time signals
-# are present.
-#
-cdl_interface CYGINT_POSIX_REALTIME_SIGNALS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-    #     CYGINT_POSIX_REALTIME_SIGNALS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_POSIX_REALTIME_SIGNALS
-    #     Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-};
-
-# <
-# Non-local jumps functionality
-#
-cdl_component CYGPKG_ISO_SETJMP {
-    # There is no associated value.
-};
-
-# >
-# setjmp() / longjmp() implementations
-#
-cdl_interface CYGINT_ISO_SETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SETJMP
-    #     Requires:  1 >= CYGINT_ISO_SETJMP 
-};
-
-# setjmp() / longjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-    #     CYGINT_ISO_SIGSETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGSETJMP
-    #     Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-};
-
-# sigsetjmp() / siglongjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Assertions implementation header
-#
-cdl_option CYGBLD_ISO_ASSERT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file control
-# This covers the POSIX file control definitions,
-# normally found in <fcntl.h>
-#
-cdl_component CYGPKG_ISO_POSIX_FCNTL {
-    # There is no associated value.
-};
-
-# >
-# POSIX open flags implementation header
-#
-cdl_option CYGBLD_ISO_OFLAG_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fcntl() implementations
-#
-cdl_interface CYGINT_ISO_FCNTL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_FCNTL
-    #     Requires:  1 >= CYGINT_ISO_FCNTL 
-};
-
-# POSIX fcntl() implementation header
-#
-cdl_option CYGBLD_ISO_FCNTL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file open implementations
-#
-cdl_interface CYGINT_ISO_OPEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_OPEN
-    #     Requires:  1 >= CYGINT_ISO_OPEN 
-};
-
-# POSIX file open implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# <sys/stat.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_STAT_DEFS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX directory reading implementation
-#
-cdl_interface CYGINT_ISO_DIRENT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DIRENT
-    #     Requires:  1 >= CYGINT_ISO_DIRENT 
-};
-
-# <dirent.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_DIRENT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX <sys/types.h> contents
-# This covers the types required by POSIX to be in
-# <sys/types.h>
-#
-cdl_component CYGPKG_ISO_POSIX_TYPES {
-    # There is no associated value.
-};
-
-# >
-# POSIX thread types implementations
-#
-cdl_interface CYGINT_ISO_PTHREADTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREADTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    # interface CYGINT_ISO_PMUTEXTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-};
-
-# POSIX thread types implementation header
-#
-cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# ssize_t implementation header
-#
-cdl_option CYGBLD_ISO_SSIZE_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Filesystem types implementation header
-#
-cdl_option CYGBLD_ISO_FSTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# gid_t, pid_t, uid_t implementation header
-#
-cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Non-POSIX <sys/types.h> contents
-# This covers the extra types required by non-POSIX
-# packages to be in <sys/types.h>. These would normally
-# only be visible if _POSIX_SOURCE is not defined.
-#
-cdl_component CYGPKG_ISO_EXTRA_TYPES {
-    # There is no associated value.
-};
-
-# >
-# BSD compatible types
-#
-cdl_interface CYGINT_ISO_BSDTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_BSDTYPES 
-    #     CYGINT_ISO_BSDTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSDTYPES
-    #     Requires:  1 >= CYGINT_ISO_BSDTYPES 
-};
-
-# BSD types header
-#
-cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Utsname structure
-#
-cdl_component CYGPKG_ISO_UTSNAME {
-    # There is no associated value.
-};
-
-# >
-# Utsname header
-#
-cdl_option CYGBLD_ISO_UTSNAME_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SCHED_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-};
-
-# POSIX scheduler implementation header
-#
-cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX semaphores
-#
-cdl_component CYGPKG_ISO_SEMAPHORES {
-    # There is no associated value.
-};
-
-# >
-# POSIX semaphore implementations
-#
-cdl_interface CYGINT_ISO_SEMAPHORES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SEMAPHORES
-    #     Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-};
-
-# POSIX semaphore implementation header
-#
-cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MQUEUE
-    #     Requires:  1 >= CYGINT_ISO_MQUEUE 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-    # option CYGNUM_ISO_MQUEUE_PRIO_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-};
-
-# Implementation header
-#
-cdl_option CYGBLD_ISO_MQUEUE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Maximum number of open message queues
-#
-cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #   --> 0 0
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 65535
-    # value_source default
-    # Default value: 1 65535
-};
-
-# <
-# POSIX threads
-#
-cdl_component CYGPKG_ISO_PTHREAD {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_IMPL
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-};
-
-# POSIX pthread implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_LIMITS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-};
-
-# POSIX pthread limits implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# LINK_MAX implementation header
-#
-cdl_option CYGBLD_ISO_LINK_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# NAME_MAX implementation header
-#
-cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# PATH_MAX implementation header
-#
-cdl_option CYGBLD_ISO_PATH_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX termios
-#
-cdl_component CYGPKG_ISO_TERMIOS {
-    # There is no associated value.
-};
-
-# >
-# POSIX termios implementations
-#
-cdl_interface CYGINT_ISO_TERMIOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TERMIOS
-    #     Requires:  1 >= CYGINT_ISO_TERMIOS 
-};
-
-# POSIX termios implementation header
-#
-cdl_option CYGBLD_ISO_TERMIOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Dynamic load API
-#
-cdl_component CYGPKG_ISO_DLFCN {
-    # There is no associated value.
-};
-
-# >
-# Dynamic load implementations
-#
-cdl_interface CYGINT_ISO_DLFCN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DLFCN 
-    #     CYGINT_ISO_DLFCN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DLFCN
-    #     Requires:  1 >= CYGINT_ISO_DLFCN 
-};
-
-# Dynamic load implementation header
-#
-cdl_option CYGBLD_ISO_DLFCN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# UNIX standard functions
-#
-cdl_component CYGPKG_ISO_UNISTD {
-    # There is no associated value.
-};
-
-# >
-# POSIX timer operations implementations
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_OPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-    #     CYGINT_ISO_POSIX_TIMER_OPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_OPS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-};
-
-# POSIX timer operations implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX sleep() implementations
-#
-cdl_interface CYGINT_ISO_POSIX_SLEEP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_SLEEP
-    #     Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-};
-
-# POSIX sleep() implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# select()/poll() functions
-#
-cdl_component CYGPKG_ISO_SELECT {
-    # There is no associated value.
-};
-
-# >
-# select() implementations
-#
-cdl_interface CYGINT_ISO_SELECT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SELECT
-    #     Requires:  1 >= CYGINT_ISO_SELECT 
-};
-
-# select() implementation header
-#
-cdl_option CYGBLD_ISO_SELECT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# poll() implementations
-#
-cdl_interface CYGINT_ISO_POLL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POLL 
-    #     CYGINT_ISO_POLL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POLL
-    #     Requires:  1 >= CYGINT_ISO_POLL 
-};
-
-# poll() implementation header
-#
-cdl_option CYGBLD_ISO_POLL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# NetDB utility functions
-#
-cdl_component CYGPKG_ISO_NETDB {
-    # There is no associated value.
-};
-
-# >
-# DNS implementations
-#
-cdl_interface CYGINT_ISO_DNS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_DNS 
-    #     CYGINT_ISO_DNS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DNS
-    #     Requires:  1 >= CYGINT_ISO_DNS 
-};
-
-# DNS implementation header
-#
-cdl_option CYGBLD_ISO_DNS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Protocol network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_PROTO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-    #     CYGINT_ISO_NETDB_PROTO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_PROTO
-    #     Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-};
-
-# Protocol network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Services network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_SERV {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-    #     CYGINT_ISO_NETDB_SERV == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_SERV
-    #     Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-};
-
-# Services network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# 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_ISOINFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the ISO C and POSIX infrastructure package.
-# These flags are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_ISOINFRA_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 ISO C and POSIX infrastructure package.
-# These flags are removed from the set of global flags
-# if present.
-#
-cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# Compute CRCs
-# doc: ref/services-crc.html
-# This package provides support for CRC calculation. Currently 
-# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by 
-# Gary S. Brown, and a 16 bit CRC.
-#
-cdl_package CYGPKG_CRC {
-    # 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_COMPRESS_ZLIB
-    #     Requires: CYGPKG_CRC
-};
-
-# >
-# POSIX CRC tests
-#
-cdl_option CYGPKG_CRC_TESTS {
-    # Calculated value:  "tests/crc_test" 
-    # Flavor: data
-    # Current_value: tests/crc_test
-};
-
-# <
-# Zlib compress and decompress package
-# This package provides support for compression and
-# decompression.
-#
-cdl_package CYGPKG_COMPRESS_ZLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_CRC
-    #     CYGPKG_CRC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB
-    #     ActiveIf: CYGPKG_COMPRESS_ZLIB
-};
-
-# >
-# Override memory allocation routines.
-#
-cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     ActiveIf:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-};
-
-# Should deflate() produce 'gzip' compatible output?
-# If this option is set then the output of calling deflate()
-# will be wrapped up as a 'gzip' compatible file.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does this library need malloc?
-# This pseudo-option will force the memalloc library to be
-# required iff the application does not provide it's own
-# infrastructure.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-    #     CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-};
-
-# Include stdio-like utility functions
-# This option enables the stdio-like zlib utility functions
-# (gzread/gzwrite and friends) provided in gzio.c.
-#
-cdl_option CYGFUN_COMPRESS_ZLIB_GZIO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 
-    #     CYGPKG_LIBC_STDIO_OPEN (unknown) == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 0
-};
-
-# Zlib compress and decompress package 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_COMPRESS_ZLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_COMPRESS_ZLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D__ECOS__ -DNO_ERRNO_H"
-    # value_source default
-    # Default value: "-D__ECOS__ -DNO_ERRNO_H"
-};
-
-# 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_COMPRESS_ZLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wstrict-prototypes
-    # value_source default
-    # Default value: -Wstrict-prototypes
-};
-
-# 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_COMPRESS_ZLIB_LDFLAGS_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# zlib tests
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_TESTS {
-    # Calculated value:  "tests/zlib1.c tests/zlib2.c" 
-    # Flavor: data
-    # Current_value: tests/zlib1.c tests/zlib2.c
-};
-
-# <
-# FLASH device drivers
-# doc: ref/flash.html
-# This option enables drivers for basic I/O services on
-# flash devices.
-#
-cdl_package CYGPKG_IO_FLASH {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_FLASH_CONFIG
-    #     DefaultValue:  CYGPKG_IO_FLASH != 0 
-    # package CYGPKG_DEVS_FLASH_ONMXC
-    #     ActiveIf: CYGPKG_IO_FLASH
-};
-
-# >
-# Hardware FLASH device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE {
-    # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_FLASH
-    #     ActiveIf: CYGHWR_IO_FLASH_DEVICE
-};
-
-# Hardware FLASH device drivers are not in RAM
-# Use of this interface is deprecated.
-# Drivers should make sure that the functions are
-# linked to RAM by putting them in .2ram sections.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-};
-
-# Hardware can support block locking
-# This option will be enabled by devices which can support
-# locking (write-protection) of individual blocks.
-#
-cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL
-    #     ActiveIf:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-};
-
-# Hardware cannot support direct access to FLASH memory
-# This option will be asserted by devices which cannot support
-# direct access to the FLASH memory contents (e.g. EEPROM or NAND
-# devices).  In these cases, the driver must provide an appropriate
-# hardware access function.
-#
-cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-    #     CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    # component CYGHWR_DEVS_FLASH_MMC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_SD
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_NAND
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-};
-
-# Display status messages during flash operations
-# Selecting this option will cause the drivers to print status
-# messages as various flash operations are undertaken.
-#
-cdl_option CYGSEM_IO_FLASH_CHATTER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Verify data programmed to flash
-# Selecting this option will cause verification of data
-# programmed to flash.
-#
-cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_IO_FLASH_READ_INDIRECT
-    #     Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-};
-
-# Platform has flash soft DIP switch write-protect
-# Selecting this option will cause the state of a hardware jumper or
-# dipswitch to be read by software to determine whether the flash is
-# write-protected or not.
-#
-cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instantiate in I/O block device API
-# Provides a block device accessible using the standard I/O
-# API ( cyg_io_read() etc. )
-#
-cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of flash device 1 block device
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
-    # This option is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/flash1\""
-    # value_source default
-    # Default value: "\"/dev/flash1\""
-};
-
-# >
-#
-cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 {
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     CYGINT_IO_FLASH_BLOCK_CFG_1 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-};
-
-# Static configuration
-# This configures the flash device 1 block device
-# with static base and length
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash which this
-# block device corresponds to.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash given over
-# to this block device.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Configuration from FIS
-# This configures the flash device 1 block device
-# from Redboot FIS
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of FIS entry
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"jffs2\""
-    # value_source default
-    # Default value: "\"jffs2\""
-};
-
-# <
-# <
-# <
-# Flash 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_FLASH_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the flash device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_FLASH_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 flash device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Flash device driver tests
-# This option specifies the set of tests for the flash device drivers.
-#
-cdl_component CYGPKG_IO_FLASH_TESTS {
-    # Calculated value:  "tests/flash1" 
-    # Flavor: data
-    # Current_value: tests/flash1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash where tests
-# can be run.  It is important to set this correctly, as an
-# incorrect value could allow the tests to write over critical
-# portions of the FLASH device and possibly render the target
-# board totally non-functional.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash used for testing.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# <
-# Support FLASH memory on Freescale MXC platforms
-#
-cdl_package CYGPKG_DEVS_FLASH_ONMXC {
-    # 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_FLASH
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC platform MMC card support
-# When this option is enabled, it indicates MMC card is
-# supported on the MXC platforms
-#
-cdl_component CYGHWR_DEVS_FLASH_MMC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# >
-# MXC platform MMC card for newer SDHC controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# MXC platform MMC card for older MMC/SD controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_SD {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS 
-    #     CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX31ADS (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:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# <
-# MXC platform NOR flash memory support
-# When this option is enabled, it indicates NOR flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR
-    #     Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# MXC platform NAND flash memory support
-# When this option is enabled, it indicates NAND flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-};
-
-# i.MX platform SPI NOR flash memory support
-# When this option is enabled, it indicates SPI NOR flash is
-# supported on the i.MX platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #   --> 0
-};
-
-# MXC platform ATA support
-# When this option is enabled, it indicates ATA is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_ATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use a flash based Bad Block Table
-#
-cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH {
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# When this option is enabled, the driver will search for a flash
-# based bad block table
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# header file defining the NAND BBT descriptor
-# defines the name of the header file that describes the BBT layout
-#
-cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Number of blocks to reserve for BBT
-# Number of blocks to reserve for BBT
-#
-cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# <
-# MXC platform multi flash memory support
-# When this option is enabled, it indicates multi flashes are
-# supported on the MXC platforms (like NAND and NOR)
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
-    # This option is not active
-    # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# MXC platform NAND flash reset workaround support
-# When this option is enabled, it indicates 0xFFFF is used for
-# the NAND reset command instead of 0xFF.
-#
-cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# Dynamic memory allocation
-# doc: ref/memalloc.html
-# This package provides memory allocator infrastructure required for
-# dynamic memory allocators, including the ISO standard malloc
-# interface. It also contains some sample implementations.
-#
-cdl_package CYGPKG_MEMALLOC {
-    # 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
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     Requires: CYGPKG_MEMALLOC
-};
-
-# >
-# Memory allocator implementations
-# This component contains configuration options related to the 
-# various memory allocators available.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATORS {
-    # There is no associated value.
-};
-
-# >
-# Fixed block allocator
-# This component contains configuration options related to the 
-# fixed block memory allocator.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Simple variable block allocator
-# This component contains configuration options related to the 
-# simple variable block memory allocator. This allocator is not
-# very fast, and in particular does not scale well with large
-# numbers of allocations. It is however very compact in terms of
-# code size and does not have very much overhead per allocation.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are added that allow a thread to wait until memory
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Coalesce memory
-# The variable-block memory allocator can perform coalescing
-# of memory whenever the application code releases memory back
-# to the pool. This coalescing reduces the possibility of
-# memory fragmentation problems, but involves extra code and
-# processor cycles.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE {
-    # 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 CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-};
-
-# <
-# Doug Lea's malloc
-# This component contains configuration options related to the 
-# port of Doug Lea's memory allocator, normally known as
-# dlmalloc. dlmalloc has a reputation for being both fast
-# and space-conserving, as well as resisting fragmentation well.
-# It is a common choice for a general purpose allocator and
-# has been used in both newlib and Linux glibc.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC {
-    # There is no associated value.
-};
-
-# >
-# Debug build
-# Doug Lea's malloc implementation has substantial amounts
-# of internal checking in order to verify the operation
-# and consistency of the allocator. However this imposes
-# substantial overhead on each operation. Therefore this
-# checking may be individually disabled.
-#
-cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGDBG_USE_ASSERTS 
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Support more than one instance
-# Having this option disabled allows important
-# implementation structures to be declared as a single
-# static instance, allowing faster access. However this
-# would fail if there is more than one instance of
-# the dlmalloc allocator class. Therefore this option can
-# be enabled if multiple instances are required. Note: as
-# a special case, if this allocator is used as the
-# implementation of malloc, and it can be determined there
-# is more than one malloc pool, then this option will be
-# silently enabled.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use system memmove() and memset()
-# This may be used to control whether memset() and memmove()
-# are used within the implementation. The alternative is
-# to use some macro equivalents, which some people report
-# are faster in some circumstances.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA 
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# Minimum alignment of allocated blocks
-# This option controls the minimum alignment that the
-# allocated memory blocks are aligned on, specified as
-# 2^N. Note that using large mininum alignments can lead
-# to excessive memory wastage.
-#
-cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 3 to 10
-};
-
-# <
-# Variable block allocator with separate metadata
-# This component contains configuration options related to the 
-# variable block memory allocator with separate metadata.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# Kernel C API support for memory allocation
-# This option must be enabled to provide the extensions required
-# to support integration into the kernel C API.
-#
-cdl_option CYGFUN_MEMALLOC_KAPI {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C (unknown) == 0
-    #   --> 0
-};
-
-# malloc(0) returns NULL
-# This option controls the behavior of malloc(0) ( or calloc with
-# either argument 0 ). It is permitted by the standard to return
-# either a NULL pointer or a unique pointer. Enabling this option
-# forces a NULL pointer to be returned.
-#
-cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Breakpoint site when running out of memory
-# Whenever the system runs out of memory, it invokes this function
-# before either going to sleep waiting for memory to become 
-# available or returning failure.
-#
-cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# malloc() and supporting allocators
-# This component enables support for dynamic memory
-# allocation as supplied by the functions malloc(),
-# free(), calloc() and realloc(). As these
-# functions are often used, but can have quite an
-# overhead, disabling them here can ensure they
-# cannot even be used accidentally when static
-# allocation is preferred. Within this component are
-# various allocators that can be selected for use
-# as the underlying implementation of the dynamic
-# allocation functions.
-#
-cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS {
-    # ActiveIf constraint: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use external heap definition
-# This option allows other components in the
-# system to override the default system
-# provision of heap memory pools. This should
-# be set to a header which provides the equivalent
-# definitions to <pkgconf/heaps.hxx>.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Use external implementation of joining multiple heaps
-# The default implementation of joining multiple heaps
-# is fine for the case where there are multiple disjoint
-# memory regions of the same type. However, in a system
-# there might be e.g. a small amount of internal SRAM and
-# a large amount of external DRAM. The SRAM is faster and
-# the DRAM is slower. An application can implement some 
-# heuristic to choose which pool to allocate from. This
-# heuristic can be highly application specific.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# malloc() allocator implementations
-#
-cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS {
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-    #     CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS
-    #     Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-};
-
-# malloc() implementation instantiation data
-# Memory allocator implementations that are capable of being
-# used underneath malloc() must be instantiated. The code
-# to do this is set in this option. It is only intended to
-# be set by the implementation, not the user.
-#
-cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value <cyg/memalloc/dlmalloc.hxx>
-    # value_source default
-    # Default value: <cyg/memalloc/dlmalloc.hxx>
-
-    # The following properties are affected by this value
-    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-};
-
-# Simple variable block implementation
-# This causes malloc() to use the simple
-# variable block allocator.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 0
-    # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-    #     CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1
-    #   --> 1
-};
-
-# Doug Lea's malloc implementation
-# This causes malloc() to use a version of Doug Lea's
-# malloc (dlmalloc) as the underlying implementation.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 1
-};
-
-# <
-# Size of the fallback dynamic memory pool in bytes
-# If *no* heaps are configured in your memory layout,
-# dynamic memory allocation by
-# malloc() and calloc() must be from a fixed-size,
-# contiguous memory pool (note here that it is the
-# pool that is of a fixed size, but malloc() is still
-# able to allocate variable sized chunks of memory
-# from it). This option is the size
-# of that pool, in bytes. Note that not all of
-# this is available for programs to
-# use - some is needed for internal information
-# about memory regions, and some may be lost to
-# ensure that memory allocation only returns
-# memory aligned on word (or double word)
-# boundaries - a very common architecture
-# constraint.
-#
-cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16384
-    # value_source default
-    # Default value: 16384
-    # Legal values: 32 to 0x7fffffff
-};
-
-# Common memory allocator package 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_MEMALLOC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_MEMALLOC_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_MEMALLOC_TESTS {
-    # Calculated value:  "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" 
-    # Flavor: data
-    # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2
-};
-
-# <
-# <
-# Common error code support
-# This package contains the common list of error and
-# status codes. It is held centrally to allow
-# packages to interchange error codes and status
-# codes in a common way, rather than each package
-# having its own conventions for error/status
-# reporting. The error codes are modelled on the
-# POSIX style naming e.g. EINVAL etc. This package
-# also provides the standard strerror() function to
-# convert error codes to textual representation, as
-# well as an implementation of the errno idiom.
-#
-cdl_package CYGPKG_ERROR {
-    # 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:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
-    #   --> 1
-};
-
-# >
-# errno variable
-# This package controls the behaviour of the
-# errno variable (or more strictly, expression)
-# from <errno.h>.
-#
-cdl_component CYGPKG_ERROR_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
-    #   --> 1
-};
-
-# >
-# Per-thread errno
-# This option controls whether the standard error
-# code reporting variable errno is a per-thread
-# variable, rather than global.
-#
-cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the errno
-# retrieval mechanism in errno.cxx. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strerror function
-# This package controls the presence and behaviour of the
-# strerror() function from <string.h>
-#
-cdl_option CYGPKG_ERROR_STRERROR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
-    #   --> 1
-};
-
-# Error package 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_ERROR_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the error package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_ERROR_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 error package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# I2C driver for FSL MXC-based platforms
-#
-cdl_package CYGPKG_DEVS_MXC_I2C {
-    # 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
-};
-
-# ipu driver for mxc
-#
-cdl_package CYGPKG_DEVS_IMX_IPU {
-    # 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
-    # option CYGHWR_MX53_LCD_LOGO
-    #     ActiveIf:  CYGPKG_DEVS_IMX_IPU 
-};
-
-# >
-# IPU version 3EX support
-# When this option is enabled, it indicates the IPU version
-# is 3EX
-#
-cdl_option CYGHWR_DEVS_IPU_3_EX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-};
-
-# IPU version 3D support
-# When this option is enabled, it indicates the IPU version
-# is 3D
-#
-cdl_option CYGHWR_DEVS_IPU_3_D {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
diff --git a/config/TX53-1x30.ecc b/config/TX53-1x30.ecc
deleted file mode 100644 (file)
index f32ca83..0000000
+++ /dev/null
@@ -1,10427 +0,0 @@
-# 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    tx53karo ;
-    template    redboot ;
-    package -hardware CYGPKG_HAL_ARM current ;
-    package -hardware CYGPKG_HAL_ARM_MX53 current ;
-    package -hardware CYGPKG_HAL_ARM_TX53KARO current ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_REDBOOT current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_CRC current ;
-    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
-    package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ;
-    package -hardware CYGPKG_DEVS_ETH_FEC current ;
-    package -hardware CYGPKG_COMPRESS_ZLIB current ;
-    package -hardware CYGPKG_IO_FLASH current ;
-    package -hardware CYGPKG_DEVS_FLASH_ONMXC current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_DEVS_ETH_PHY current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_DEVS_MXC_I2C current ;
-    package -hardware CYGPKG_DEVS_IMX_IPU current ;
-};
-
-# ---- conflicts -------------------------------------------------------
-# There are no conflicts.
-
-# ---- contents --------------------------------------------------------
-# >
-# >
-# 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.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
-};
-
-# 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
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
-    #   --> 1
-
-    # 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 "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-    # value_source default
-    # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-};
-
-# 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
-};
-
-# <
-# ISO C library string functions
-# doc: ref/libc.html
-# This package provides string functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STRING {
-    # 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:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Inline versions of <string.h> functions
-# This option chooses whether some of the
-# particularly simple string functions from
-# <string.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_STRING_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Optimize string functions for code size
-# This option tries to reduce string function
-# code size at the expense of execution speed. The
-# same effect can be produced if the code is
-# compiled with the -Os option to the compiler.
-#
-cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide BSD compatibility functions
-# Enabling this option causes various compatibility functions
-# commonly found in the BSD UNIX operating system to be included.
-# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
-# strncasecmp, index, rindex and swab.
-#
-cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-};
-
-# strtok
-# These options control the behaviour of the
-# strtok() and strtok_r() string tokenization
-# functions.
-#
-cdl_component CYGPKG_LIBC_STRING_STRTOK {
-    # There is no associated value.
-};
-
-# >
-# Per-thread strtok()
-# This option controls whether the string function
-# strtok() has its state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard strtok_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the <string.h>
-# functions strtok() and strtok_r(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strdup
-# This option indicates whether strdup() is to be supported.
-#
-cdl_option CYGFUN_LIBC_STRING_STRDUP {
-    # ActiveIf constraint: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# C library string functions 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_LIBC_STRING_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library string function tests
-# This option specifies the set of tests for the C library
-# string functions.
-#
-cdl_option CYGPKG_LIBC_STRING_TESTS {
-    # Calculated value:  "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" 
-    # Flavor: data
-    # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2
-};
-
-# <
-# <
-# Common ethernet support
-# doc: ref/io-eth-drv-generic.html
-# Platform independent ethernet drivers
-#
-cdl_package CYGPKG_IO_ETH_DRIVERS {
-    # 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
-    # component CYGPKG_REDBOOT_NETWORKING
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_ARM_TX53
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_PHY
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-};
-
-# >
-# Network drivers
-#
-cdl_interface CYGHWR_NET_DRIVERS {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-    # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-};
-
-# Driver supports multicast addressing
-# This interface defines whether or not a driver can handle
-# requests for multicast addressing.
-#
-cdl_interface CYGINT_IO_ETH_MULTICAST {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Support printing driver debug information
-# Selecting this option will include code to allow the driver to
-# print lots of information on diagnostic output such as full
-# packet dumps.
-#
-cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Driver debug output verbosity
-# The value of this option indicates the default verbosity
-# level of debugging output. 0 means no debugging output
-# is made by default. Higher values indicate higher verbosity.
-# The verbosity level may also be changed at run time by
-# changing the variable cyg_io_eth_net_debug.
-#
-cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Size of scatter-gather I/O lists
-# A scatter-gather list is used to pass requests to/from
-# the physical device driver.  This list can typically be
-# small, as the data is normally already packed into reasonable
-# chunks.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# Support for standard eCos TCP/IP stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_NET {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Warn when there are no more mbufs
-# Warnings about running out of mbufs are printed to the
-# diagnostic output channel via diag_printf() if this option
-# is enabled.  Mbufs are the network stack's basic dynamic
-# memory objects that hold all packets in transit; running
-# out is bad for performance but not fatal, not a crash.
-# You might want to turn off the warnings to preserve realtime
-# properties of the system even in extremis.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Simulate network failures for testing
-# This package contains a suite of simulated failure modes
-# for the ethernet device layer, including dropping and/or
-# corrupting received packets, dropping packets queued for
-# transmission, and simulating a complete network break.
-# It requires the kernel as a source of time information.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Drop incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Corrupt incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Drop outgoing packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Simulate a line cut from time to time
-# This option causes the system to drop all packets for a
-# short random period (10s of seconds), and then act
-# normally for up to 4 times that long.  This simulates your
-# sysadmin fiddling with plugs in the network switch
-# cupboard.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# Support for stand-alone network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE {
-    # ActiveIf constraint: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Pass packets to an alternate stack
-# Define this to allow packets seen by this layer to be
-# passed on to the previous logical layer, i.e. when
-# stand-alone processing replaces system (eCos) processing.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_REDBOOT_NETWORKING 
-    #     CYGPKG_REDBOOT_NETWORKING == 1
-    #   --> 1
-};
-
-# Number of [network] buffers
-# This option is used to allocate space to buffer incoming network
-# packets.  These buffers are used to hold data until they can be
-# logically processed by higher layers.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 2 to 32
-};
-
-# Show driver warnings
-# Selecting this option will allows the stand-alone ethernet driver
-# to display warnings on the system console when incoming network
-# packets are being discarded due to lack of buffer space.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_WARN {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support for lwIP network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET_LWIP
-    #     CYGPKG_NET_LWIP (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-};
-
-# Interrupt support required
-# This interface is used to indicate to the low
-# level device drivers that interrupt driven operation
-# is required by higher layers.
-#
-cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED {
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Common ethernet support build options
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the common ethernet support package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# Ethernet driver for Ka-Ro electronics TX53 processor module
-#
-cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# FEC ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED
-};
-
-# Ka-Ro TX53 ethernet port driver
-# This option includes the ethernet device driver for the
-# MXC Board port.
-#
-cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-    # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-    #     CYGHWR_DEVS_ETH_PHY_LAN8700 == 1
-    #   --> 1
-};
-
-# >
-# Device name for the ETH0 ethernet driver
-# This option sets the name of the ethernet device.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# OUI part of MAC address
-# This option sets OUI part (manufacturer ID) of the MAC address
-# for validation.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
-    # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ 0x00, 0x0c, 0xc6 }"
-    # value_source default
-    # Default value: "{ 0x00, 0x0c, 0xc6 }"
-};
-
-# <
-# <
-# Driver for fast ethernet controller.
-# Driver for fast ethernet controller.
-#
-cdl_package CYGPKG_DEVS_ETH_FEC {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED
-    #     CYGINT_DEVS_ETH_FEC_REQUIRED == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC FEC ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Cirrus Logic ethernet driver package.
-# These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# MXC FEC MII Gasket for RMII mode
-# This option enables the use of the MII Gasket for
-# RMII mode found in i.MX25 and i.MX53 processors.
-#
-cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK {
-    # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Ethernet transceiver (PHY) support
-# API for ethernet PHY devices
-#
-cdl_package CYGPKG_DEVS_ETH_PHY {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-};
-
-# >
-# Enable driver debugging
-# Enables the diagnostic debug messages on the
-# console device.
-#
-cdl_option CYGDBG_DEVS_ETH_PHY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time period (seconds) to wait for auto-negotiation
-# The length of time to wait for auto-negotiation to complete
-# before giving up and declaring the link dead/missing.
-#
-cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-};
-
-# NSDP83847
-# Include support for National Semiconductor DP83847 DsPHYTER II
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# AMD 79C874
-# Include support for AMD 79C874 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Intel LXT972
-# Include support for Intel LXT972xxx PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1890
-# Include support for ICS 1890 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1892
-# Include support for ICS 1892 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1893
-# Include support for ICS 1893 and 1893AF PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Davicom DM9161A
-# Include support for the Davicom DM9161A PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Micrel KS8721
-# Include support for the Micrel KS8721 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# SMSC LAN8700
-# Include support for SMSC LAN8700 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-};
-
-# <
-# <
-# ISO C library internationalization functions
-# doc: ref/libc.html
-# This package provides internationalization functions specified by the
-# ISO C standard - ISO/IEC 9899:1990. These include locale-related
-# functionality and <ctype.h> functionality.
-#
-cdl_package CYGPKG_LIBC_I18N {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Supported locales
-# These options determine which locales other than the "C" locale
-# are supported and hence contribute to the size of the executable.
-#
-cdl_component CYGPKG_LIBC_I18N_LOCALES {
-    # There is no associated value.
-};
-
-# >
-# Support for multiple locales required
-#
-cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-    #     CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-};
-
-# C-SJIS locale support
-# This option controls if the "C-SJIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese SJIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-JIS locale support
-# This option controls if the "C-JIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese JIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-EUCJP locale support
-# This option controls if the "C-EUCJP" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese EUCJP multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# <
-# Newlib's ctype implementation
-# This option enables the implementation of the ctype functions
-# that comes with newlib. It is table driven and therefore
-# exhibits different performance characteristics. It also offers
-# a limited amount of binary compatibility
-# with newlib so that programs linked against newlib ctype/locale
-# do not need to be recompiled when linked with eCos.
-#
-cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 0
-};
-
-# Per-thread multibyte state
-# This option controls whether the multibyte character
-# handling functions mblen(), mbtowc(), and wctomb(),
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Enabling this option will use three slots
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Size of locale name strings
-# This option controls the maximum size of
-# locale names and is used, among other things
-# to instantiate a static string used
-# as a return value from the
-# setlocale() function. When requesting the
-# current locale settings with LC_ALL, a string
-# must be constructed to contain this data, rather
-# than just returning a constant string. This
-# string data is stored in the static string.
-# This depends on the length of locale names,
-# hence this option. If just the C locale is
-# present, this option can be set as low as 2.
-#
-cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-    #   --> 2
-    # Legal values:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-};
-
-# Inline versions of <ctype.h> functions
-# This option chooses whether the simple character
-# classification and conversion functions (e.g.
-# isupper(), isalpha(), toupper(), etc.)
-# from <ctype.h> are available as inline
-# functions. This may improve performance and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 1
-};
-
-# C library i18n functions 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_LIBC_I18N_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library i18n function tests
-# This option specifies the set of tests for the C library
-# i18n functions.
-#
-cdl_option CYGPKG_LIBC_I18N_TESTS {
-    # Calculated value:  "tests/ctype tests/setlocale tests/i18nmb" 
-    # Flavor: data
-    # Current_value: tests/ctype tests/setlocale tests/i18nmb
-};
-
-# <
-# <
-# ISO C library general utility functions
-# doc: ref/libc.html
-# This package provides general utility functions in <stdlib.h>
-# as specified by the ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Inline versions of <stdlib.h> functions
-# This option chooses whether some of the
-# particularly simple standard utility functions
-# from <stdlib.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_component CYGIMP_LIBC_STDLIB_INLINES {
-    # There is no associated value.
-};
-
-# >
-# abs() / labs()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
-    #   --> 1
-};
-
-# div() / ldiv()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
-    #   --> 1
-};
-
-# atof() / atoi() / atol()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
-    #   --> 1
-};
-
-# <
-# Random number generation
-# These options control the behaviour of the
-# functions rand(), srand() and rand_r()
-#
-cdl_component CYGPKG_LIBC_RAND {
-    # There is no associated value.
-};
-
-# >
-# Per-thread random seed
-# doc: ref/libc-thread-safety.html
-# This option controls whether the pseudo-random
-# number generation functions rand() and srand()
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard rand_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Random number seed
-# This selects the initial random number seed for
-# rand()'s pseudo-random number generator. For
-# strict ISO standard compliance, this should be 1,
-# as per section 7.10.2.2 of the standard.
-#
-cdl_option CYGNUM_LIBC_RAND_SEED {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 0 to 0x7fffffff
-};
-
-# Tracing level
-# Trace verbosity level for debugging the rand(),
-# srand() and rand_r() functions. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# Simplest implementation
-# This provides a very simple implementation of rand()
-# that does not perform well with randomness in the
-# lower significant bits. However it is exceptionally
-# fast. It uses the sample algorithm from the ISO C
-# standard itself.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple implementation #1
-# This provides a very simple implementation of rand()
-# based on the simplest implementation above. However
-# it does try to work around the lack of randomness
-# in the lower significant bits, at the expense of a
-# little speed.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Knuth implementation #1
-# This implements a slightly more complex algorithm
-# published in Donald E. Knuth's Art of Computer
-# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
-# This produces better random numbers than the
-# simplest approach but is slower.
-#
-cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# <
-# Provides strtod()
-# This option allows use of the utility function
-# strtod() (and consequently atof()) to convert
-# from string to double precision floating point
-# numbers. Disabling this option removes the
-# dependency on the math library package.
-#
-cdl_option CYGFUN_LIBC_strtod {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-};
-
-# Provides long long conversion functions
-# Enabling this option will provide support for the strtoll(),
-# strtoull() and atoll() conversion functions, which are
-# the long long variants of the standard versions of these
-# functions. Supporting this requires extra code and compile
-# time.
-#
-cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# bsearch() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# binary search function bsearch(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# qsort() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# quicksort function qsort(). Increase this value
-# to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# C library stdlib 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_LIBC_STDLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_LIBC_STDLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library stdlib tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STDLIB_TESTS {
-    # Calculated value:  "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" 
-    # Flavor: data
-    # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul
-};
-
-# <
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-};
-
-# >
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-};
-
-# 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 (unknown) == 0
-    #   --> 0
-};
-
-# 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 == ROMRAM
-    #   --> 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 {
-    # 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 == current
-    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
-    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #   --> 1
-
-    # 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 == ROMRAM
-    #   --> 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 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_REDBOOT
-    #     Requires:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-};
-
-# 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 32768
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 32768
-    # 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-};
-
-# 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 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
-    # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
-    #     Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1
-    #   --> 1
-
-    # 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
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 == 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
-
-    # The following properties are affected by this value
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 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 CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     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.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Target has virtual vector support
-#
-cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE
-    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    # package CYGPKG_DEVS_ETH_PHY
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-};
-
-# >
-# 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
-    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 0
-
-    # 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 {
-    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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 == ROMRAM
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 1
-
-    # 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
-    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 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 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 1
-};
-
-# 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 1
-
-    # 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 {
-    # 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 
-};
-
-# <
-# Behave as a ROM monitor
-# Enable this option if this program is to be used as a ROM monitor,
-# i.e. applications will be loaded into RAM on the TX53 module, and this
-# ROM monitor may process exceptions or interrupts generated from the
-# application. This enables features such as utilizing a separate
-# interrupt stack when exceptions are generated.
-#
-cdl_option CYGSEM_HAL_ROM_MONITOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-};
-
-# Work with a ROM monitor
-# Support can be enabled for different varieties of ROM monitor.
-# This support changes various eCos semantics such as the encoding
-# of diagnostic output, or the overriding of hardware interrupt
-# vectors.
-# Firstly there is "Generic" support which prevents the HAL
-# from overriding the hardware vectors that it does not use, to
-# instead allow an installed ROM monitor to handle them. This is
-# the most basic support which is likely to be common to most
-# implementations of ROM monitor.
-# "GDB_stubs" provides support when GDB stubs are included in
-# the ROM monitor or boot ROM.
-#
-cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
-    #     ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR 
-};
-
-# <
-# 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
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_DISK_IDE
-    #     ActiveIf:  CYGINT_HAL_PLF_IF_IDE != 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 == 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 == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache tests/intr
-};
-
-# >
-# 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 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" : "") 
-};
-
-# <
-# ARM architecture
-# The ARM architecture HAL package provides generic
-# support for this processor architecture. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM {
-    # 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
-    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
-    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
-    # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     ActiveIf: CYGPKG_HAL_ARM
-};
-
-# >
-# The CPU architecture supports THUMB mode
-#
-cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
-    # 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 CYGHWR_THUMB
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-};
-
-# Enable Thumb instruction set
-# Enable use of the Thumb instruction set.
-#
-cdl_option CYGHWR_THUMB {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # 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 CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-};
-
-# Enable Thumb interworking compiler option
-# This option controls the use of -mthumb-interwork in the
-# compiler flags. It defaults enabled in Thumb or ROM monitor
-# configurations, but can be overridden for reduced memory
-# footprint where interworking is not a requirement.
-#
-cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    #     CYGHWR_THUMB == 0
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# The platform and architecture supports Big Endian operation
-#
-cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
-    # 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 CYGHWR_HAL_ARM_BIGENDIAN
-    #     ActiveIf:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-};
-
-# Use big-endian mode
-# Use the CPU in big-endian mode.
-#
-cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-    #     CYGINT_HAL_ARM_BIGENDIAN == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# The platform uses a processor with an ARM7 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with an ARM9 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a StrongARM core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a XScale core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# ARM CPU family
-# It is possible to optimize code for different
-# ARM CPU families. This option selects which CPU to
-# optimize for on boards that support multiple CPU types.
-#
-cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ARM9
-    # value_source default
-    # Default value:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-    #   --> ARM9
-    # Legal values:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-};
-
-# Provide diagnostic dump for exceptions
-# Print messages about hardware exceptions, including
-# raw exception frame dump and register contents.
-#
-cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
-    # 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
-    #   --> 1
-};
-
-# Process all exceptions with the eCos application
-# Normal RAM-based programs which do not include GDB stubs 
-# defer processing of the illegal instruction exception to GDB.
-# Setting this options allows the program to explicitly handle
-# the illegal instruction exception itself.  Note: this will
-# prevent the use of GDB to debug the application as breakpoints
-# will no longer work.
-#
-cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support GDB thread operations via ICE/Multi-ICE
-# Allow GDB to get thread information via the ICE/Multi-ICE
-# connection.
-#
-cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
-    # 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
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
-    #   --> 0
-};
-
-# Support for 'gprof' callbacks
-# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
-# to acquire the interrupt-context PC and SP, when this option is
-# active.
-#
-cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS == 0
-    #   --> 0
-    # ActiveIf constraint:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Accept exceptions and irq's occurring in user mode
-# For standalone Redboot based programs running in user mode.
-#
-cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Preserve svc spsr before returning to svc mode
-# This option secures exception and breakpoint processing
-# triggered during execution of application specific SWI
-# handlers.
-#
-cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Linker script
-#
-cdl_option CYGBLD_LINKER_SCRIPT {
-    # Calculated value:  "src/arm.ld" 
-    # Flavor: data
-    # Current_value: src/arm.ld
-};
-
-# Implementations of hal_arm_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Freescale SoC architecture
-# This HAL variant package provides generic
-# support for the Freescale SoC. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM_MX53 {
-    # 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
-    # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK
-    #     ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-};
-
-# >
-# Processor clock rate
-# The processor can run at various frequencies.
-# These values are expressed in KHz.  Note that there are
-# several steppings of the rate to run at different
-# maximum frequencies.  Check the specs to make sure that your
-# particular processor can run at the rate you select here.
-#
-cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
-    # This option is not active
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 150000
-    # value_source default
-    # Default value:  CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
-    #                             CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #   --> 150000
-    # Legal values: 150000 200000
-};
-
-# Real-time clock constants
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Calculated value: 1000000000
-    # Flavor: data
-    # Current_value: 1000000000
-};
-
-# Real-time clock denominator
-# This option selects the heartbeat rate for the real-time clock.
-# The rate is specified in ticks per second.  Change this value
-# with caution - too high and your system will become saturated
-# just handling clock interrupts, too low and some operations
-# such as thread scheduling may become sluggish.
-#
-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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_RTC_PERIOD
-    #     Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    # Flavor: data
-    # Current_value: 36864
-};
-
-# <
-# UART1 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART1 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART2 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART2 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART3 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART3 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART4 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART4 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART5 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART5 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Ka-Ro TX53 module
-# This HAL platform package provides generic
-# support for the Ka-Ro electronics TX53 module.
-#
-cdl_package CYGPKG_HAL_ARM_TX53KARO {
-    # 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: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGBLD_BUILD_REDBOOT == 1
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-};
-
-# >
-# Startup type
-# The only startup type allowed is ROMRAM, since this will allow
-# the program to exist in ROM, but be copied to RAM during startup
-# which is required to boot from NAND flash.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ROMRAM
-    # value_source default
-    # Default value: ROMRAM
-    # Legal values:  "ROMRAM" "RAM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     DefaultValue:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "RAM" 
-    # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" 
-    # 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 
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     ActiveIf:  CYG_HAL_STARTUP != "RAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the console port.
-# Note: this should match the value chosen for the GDB port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option selects the baud rate used for the GDB port.
-# Note: this should match the value chosen for the console port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the TX53
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Calculated value: 5
-    # Flavor: data
-    # Current_value: 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-};
-
-# Debug serial port
-# The TX53 provides access to five serial ports. This option
-# chooses which port will be used to connect to a host
-# running GDB.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Console serial port
-# The TX53 provides access to three serial ports. This option
-# chooses which port will be used for console output.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0
-    #   --> 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Ka-Ro electronics TX53 module 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_HAL_ARM_TX53_OPTIONS {
-    # There is no associated value.
-    # Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-};
-
-# >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    user_value 3
-    # value_source user
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
-# SDRAM size
-# This option specifies the SDRAM size of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x20000000
-    # value_source default
-    # Default value: 0x20000000
-    # Legal values:  0x40000000 0x20000000 
-};
-
-# CPU clock
-# This option specifies the CPU clock in MHz of the TX51 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # value_source default
-    # Default value: 1000
-    # Legal values:  800 1000 
-};
-
-# Enable low level debugging with LED
-# This option enables low level debugging by blink codes
-# of the LED on STK5.
-#
-cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  false 
-    #     false (unknown) == 0
-    #   --> 0
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the TX53 HAL. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_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 TX53 HAL. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Show a splash screen from the FIS partition: 'logo'
-# When this option is enabled, RedBoot will look for a flash partition
-# named 'logo' and display the contents of this partition as initial
-# screen on the LCD
-#
-cdl_option CYGHWR_MX53_LCD_LOGO {
-    # ActiveIf constraint:  CYGPKG_DEVS_IMX_IPU 
-    #     CYGPKG_DEVS_IMX_IPU == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 400
-    # value_source default
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
-# <
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  "arm_tx53_romram" 
-    # Flavor: data
-    # Current_value: arm_tx53_romram
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
-};
-
-# <
-# <
-# <
-# <
-# <
-# 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-    # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-};
-
-# >
-# 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
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != 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
-};
-
-# >
-# 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
-};
-
-# 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
-};
-
-# 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
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer on assert fail
-# When an assertion fails the trace buffer will be 
-# printed to the default diagnostic device.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT {
-    # 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
-};
-
-# <
-# Use function names
-# All trace and assert calls within eCos contain a
-# reference to the builtin macro '__PRETTY_FUNCTION__',
-# which evaluates to a string containing
-# the name of the current function.
-# This is useful when reading a trace log.
-# It is possible to suppress the use of the function name
-# 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_FUNCTION_PSEUDOMACRO {
-    # 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
-};
-
-# <
-# Startup options
-# Some packages require a startup routine to be called.
-# This can be carried out by application code, by supplying
-# a routine called cyg_package_start() which calls the
-# appropriate package startup routine(s).
-# Alternatively, this routine can be constructed automatically
-# and configured to call the startup routines of your choice.
-#
-cdl_component CYGPKG_INFRA_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# Start uITRON subsystem
-# Generate a call to initialize the
-# uITRON compatibility subsystem
-# within the system version of cyg_package_start().
-# This enables compatibility with uITRON.
-# You must configure uITRON with the correct tasks before
-# starting the uItron subsystem.
-# If this is disabled, and you want to use uITRON,
-# you must call cyg_uitron_start() from your own
-# cyg_package_start() or cyg_userstart().
-#
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_UITRON
-    #     CYGPKG_UITRON (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: CYGPKG_UITRON
-    #     CYGPKG_UITRON (unknown) == 0
-    #   --> 0
-};
-
-# <
-# Smaller slower memcpy()
-# Enabling this option causes the implementation of
-# the standard memcpy() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memcpy() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Smaller slower memset()
-# Enabling this option causes the implementation of
-# the standard memset() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memset() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide empty C++ delete functions
-# To deal with virtual destructors, where the correct delete()
-# function must be called for the derived class in question, the
-# underlying delete is called when needed, from destructors.  This
-# is regardless of whether the destructor is called by delete itself.
-# So there is a reference to delete() from all destructors.  The
-# default builtin delete() attempts to call free() if there is
-# one defined.  So, if you have destructors, and you have free(),
-# as in malloc() and free(), any destructor counts as a reference
-# to free().  So the dynamic memory allocation code is linked
-# in regardless of whether it gets explicitly called. This
-# increases code and data size needlessly.
-# To defeat this undesirable behaviour, we define empty versions
-# of delete and delete.  But doing this prevents proper use
-# of dynamic memory in C++ programs via C++'s new and delete
-# operators.
-# Therefore, this option is provided
-# for explicitly disabling the provision of these empty functions,
-# so that new and delete can be used, if that is what is required.
-#
-cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Threshold for valid number of delete calls
-# Some users don't know about the empty delete function and then
-# wonder why their C++ classes are leaking memory. If
-# INFRA_DEBUG is enabled we keep a counter for the number of
-# times delete is called. If it goes above this threshold we throw
-# an assertion failure. This should point heavy users of
-# delete in the right direction without upsetting those who want
-# an empty delete function. 
-#
-cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# Provide dummy abort() function
-# This option controls the inclusion of a dummy abort() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to abort(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. It is not expected that this function
-# will ever be called, so its current behaviour is to simply loop.
-#
-cdl_option CYGFUN_INFRA_DUMMY_ABORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-};
-
-# Reset platform at end of test case execution
-# If this option is set then test case programs will reset the platform
-# when they terminate, as opposed to the default which is to just hang
-# in a loop.
-#
-cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide dummy strlen() function
-# This option controls the inclusion of a dummy strlen() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to strlen(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. While it is not expected that this function
-# will ever be called, it is functional but uses the simplest, smallest
-# algorithm. There is a faster version of strlen() in the C library.
-#
-cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-};
-
-# Make all compiler warnings show as errors
-# Enabling this option will cause all compiler warnings to show
-# as errors and bring the library build to a halt. This is used
-# to ensure that the code base is warning free, and thus ensure
-# that newly introduced warnings stand out and get fixed before
-# they show up as weird run-time behavior.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-};
-
-# Make compiler and assembler communicate by pipe
-# Enabling this option will cause the compiler to feed the
-# assembly output the the assembler via a pipe instead of
-# via a temporary file. This normally reduces the build
-# time.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-};
-
-# Infra build options
-# Package specific build options including control over
-# compiler flags used only in building this package.
-#
-cdl_component CYGPKG_INFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Suppressed linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--gc-sections
-    # value_source default
-    # Default value: -Wl,--gc-sections
-};
-
-# Additional linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are added to
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--fatal-warnings
-    # value_source default
-    # Default value: -Wl,--fatal-warnings
-};
-
-# Infra package tests
-#
-cdl_component CYGPKG_INFRA_TESTS {
-    # Calculated value:  "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" 
-    # Flavor: data
-    # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2
-};
-
-# >
-# Number of times a test runs
-# This option controls the number of times tests will execute their
-# basic function.  Not all tests will honor this setting, but those
-# that do will execute the test N times before terminating.  A value
-# less than 0 indicates to run forever.
-#
-cdl_option CYGNUM_TESTS_RUN_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# <
-# Redboot ROM monitor
-# doc: ref/redboot.html
-# This package supports the Redboot [stand-alone debug monitor]
-# using eCos as the underlying board support mechanism.
-#
-cdl_package CYGPKG_REDBOOT {
-    # 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:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_ARM_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # option CYGSEM_IO_ETH_DRIVERS_WARN
-    #     ActiveIf: CYGPKG_REDBOOT
-};
-
-# >
-# Include support for ELF file format
-#
-cdl_component CYGSEM_REDBOOT_ELF {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use the virtual address in the ELF headers
-# The ELF headers contain both a virtual and a physical address
-# for where code/data should be loaded. By default the physical
-# address is used but sometimes it is necassary to use the
-# virtual address because of bugy toolchains
-#
-cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Methods of loading images using redboot
-#
-cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled
-    # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_REDBOOT_LOAD_METHOD
-};
-
-# Build Redboot ROM ELF image
-# This option enables the building of the Redboot ELF image.
-# The image may require further relocation or symbol
-# stripping before being converted to a binary image.
-# This is handled by a rule in the target CDL.
-#
-cdl_component CYGBLD_BUILD_REDBOOT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires: CYGPKG_INFRA
-    #     CYGPKG_INFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_REDBOOT_LOAD_METHOD
-    #     CYGINT_REDBOOT_LOAD_METHOD == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGBLD_BUILD_REDBOOT == 1
-    # option CYGBLD_BUILD_REDBOOT_BIN
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT
-};
-
-# >
-# Include GDB support in RedBoot
-# RedBoot normally includes support for the GDB debugging
-# protocols. This option allows this to be disabled which
-# may yield a substantial savings in terms of code and memory 
-# usage by RedBoot.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-};
-
-# Threads debugging support
-# Enabling this option will include special code in the
-# GDB stubs to support debugging of threaded programs.  In
-# the case of eCos programs, this support allows GDB to
-# have complete access to the eCos threads in the
-# program.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
-    # ActiveIf constraint:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # 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_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-};
-
-# Customized version string
-# Use this option to define a customized version "string" for
-# RedBoot.  Note: this value is only cosmetic, displayed by the
-# "version" command, but is useful for providing site specific
-# information about the RedBoot configuration.
-#
-cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 "Ka-Ro 2010-01-06"
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Enable command line editing
-# If this option is non-zero, RedBoot will remember the
-# last N command lines.  These lines may be reused.
-# Enabling this history will also enable rudimentary
-# editting of the lines themselves.
-#
-cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES
-    #     ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    # option CYGBLD_REDBOOT_CMD_LINE_HISTORY
-    #     Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-};
-
-# Enable command line editing using ANSI arrows, etc
-# If this option is enabled, RedBoot will accept standard ANSI key
-# sequences for cursor movement (along with the emacs style keys).
-#
-cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
-    # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Enable history command and expansion
-# Enabling this option will allow RedBoot to provide a
-# history command to list previous commands. Also enables
-# history expansion via '!'  character similar to bash
-# shell.
-#
-cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-};
-
-# Number of unique RAM segments on platform
-# Change this option to be the number of memory segments which are
-# supported by the platform.  If the value is greater than 1, then
-# a platform specific function must provide information about the
-# additional segments.
-#
-cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include support gzip/zlib decompression
-#
-cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
-    # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB
-    #     CYGPKG_COMPRESS_ZLIB == current
-    #   --> 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
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# >
-# Size of zlib decompression buffer
-# This is the size of the buffer filled with incoming data
-# during load before calls are made to the decompressor
-# function. For ethernet downloads this can be made bigger
-# (at the cost of memory), but for serial downloads on slow
-# processors it may be necessary to reduce the size to
-# avoid serial overruns. zlib appears to bail out if less 
-# than five bytes are available initially so this is the 
-# minimum.
-#
-cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 5 to 256
-};
-
-# Support compression of Flash images
-# This CDL indicates whether flash images can
-# be decompressed from gzip/zlib format into RAM.
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-    # ActiveIf constraint:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #     CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Include GZIP uncompress command
-# Enable this option to include a 'gunzip' command 
-# to uncompress GZIP compressed data.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Turn on CYGPRI_REDBOOT_ZLIB_FLASH
-# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-};
-
-# <
-# Include support for xyzModem downloads
-# doc: ref/download-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
-    # 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 CYGPKG_REDBOOT_CFLAGS_ADD
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_REDBOOT_CFLAGS_ADD {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-    #     CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-inline
-    # value_source default
-    # Default value: -Wno-inline
-};
-
-# Allow the load-command write into Flash.
-# Write images direct to Flash via the load command.
-# We assume anything which is invalid RAM is flash, hence
-# the requires statement
-#
-cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-    #     CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1
-    #   --> 1
-};
-
-# Include MS Windows CE support
-# doc: ref/wince.html
-# This option enables MS Windows CE EShell support
-# and Windows CE .BIN images support
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Include support for MXC USB downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include support for i.MX USB OTG downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include POSIX checksum command
-# doc: ref/cksum-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory fill command
-# doc: ref/mfill-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory compare command
-# doc: ref/mcmp-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory copy command
-# doc: ref/mcopy-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory dump command
-# doc: ref/dump-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include cache command
-# doc: ref/cache-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include exec command
-# doc: ref/exec-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
-    # 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_REDBOOT_ARM_LINUX_EXEC
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-};
-
-# Include I/O Memory commands 'iopeek' and 'iopoke'
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Granularity of timer/ticks
-# This option controls the granularity of the timers.
-# Faster CPUs can afford higher granularity (lower values)
-# which should give higher network performance since the stack
-# is purely polled.
-#
-cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 250
-    # value_source default
-    # Default value: 250
-    # Legal values:  10 25 50 100 250 500 1000 
-};
-
-# Redboot Networking
-# This option includes networking support in RedBoot.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING {
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 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_IO_ETH_DRIVERS_PASS_PACKETS
-    #     DefaultValue:  0 != CYGPKG_REDBOOT_NETWORKING 
-};
-
-# >
-# Print net debug information
-# This option is overriden by the configuration stored 
-# in flash.
-#
-cdl_option CYGDBG_REDBOOT_NET_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support TFTP for download
-# This option enables the use of the TFTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support HTTP for download
-# This option enables the use of the HTTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Default IP address
-# This IP address is the default used by RedBoot if
-# a BOOTP/DHCP server does not respond. The numbers
-# should be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# >
-# Do not try to use BOOTP
-# By default Redboot tries to use BOOTP to get an IP
-# address. If there's no BOOTP server on your network
-# use this option to avoid to wait until the
-# timeout. This option is overriden by the
-# configuration stored in flash.
-#
-cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Default bootp server
-# This IP address is the default server
-# address used by RedBoot if a BOOTP/DHCP
-# server does not respond. The numbers should
-# be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in
-# preference.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# Use DHCP to get IP information
-# Use DHCP protocol to obtain pertinent IP addresses, such 
-# as the client, server, gateway, etc.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
-    # 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 CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-    #     Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-};
-
-# Use a gateway for non-local IP traffic
-# Enabling this option will allow the RedBoot networking
-# stack to use a [single] gateway to reach a non-local
-# IP address.  If disabled, RedBoot will only be able to
-# reach nodes on the same subnet.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-    #     CYGSEM_REDBOOT_NETWORKING_DHCP == 1
-    #   --> 1
-};
-
-# >
-# Default gateway IP address
-# This IP address is the default used by RedBoot
-# if a BOOTP/DHCP server does not respond. The
-# numbers should be separated by *commas*, and
-# not dots. If an IP address is configured into
-# the Flash configuration, that will be used in
-# preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# Default IP address mask
-# This IP address mask is the default used by
-# RedBoot if a BOOTP/DHCP server does not
-# respond. The numbers should be separated by
-# *commas*, and not dots. If an IP address is
-# configured into the Flash configuration, that
-# will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# TCP port to listen for incoming connections
-# RedBoot will 'listen' on this port for incoming TCP 
-# connections. This allows outside connections to be made 
-# to the platform, either for GDB or RedBoot commands.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 9000
-    # value_source default
-    # Default value: 9000
-};
-
-# Number of [network] packet buffers
-# RedBoot may need to buffer network data to support
-# various connections.  This option allows control
-# over the number of such buffered packets, and in
-# turn, controls the amount of memory used by RedBoot
-# (which is not available to user applications).
-# Each packet buffer takes up about 1514 bytes.
-# Note: there is little need to make this larger than
-# the default.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 3 to 8
-};
-
-# DNS support
-# When this option is enabled, RedBoot will be built with
-# support for DNS, allowing use of hostnames on the command
-# line.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NS_DNS
-    #     CYGPKG_NS_DNS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NS_DNS_BUILD
-    #     CYGPKG_NS_DNS_BUILD (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Default DNS IP
-# This option sets the IP of the default DNS. The IP can be
-# changed at runtime as well.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-    # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0.0.0.0
-    # value_source default
-    # Default value: 0.0.0.0
-};
-
-# Timeout in DNS lookup
-# This option sets the timeout used when looking up an
-# address via the DNS. Default is 10 seconds.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Support the use of a domain name
-# This option controls if Redboot supports domain
-# names when performing DNS lookups
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Default DNS domain
-# This option sets the default DNS domain name.
-# This value will be overwritten by the value in
-# flash or a domain returned by DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Get DNS domain from Flash
-# This option enables getting the domain name 
-# from the flash configuration. This can later be 
-# overwritten by a value learnt from DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-    # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use DNS domain from DHCP
-# This option enables the use of the domain name
-# returned by DHCP.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# BOOTP/DHCP DNS domain buffer size
-# This options sets the size of the static
-# buffer used by BOOTP/DHCP to store the DNS
-# domain name. The domain name will not be
-# set if the buffer is too small to hold it.
-#
-cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# <
-# <
-# Default network device driver
-# This is the name of the default network device to use.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"\""
-    # value_source default
-    # Default value: "\"\""
-};
-
-# Initialize only one net device
-# This option tells RedBoot to stop initializing network
-# devices when it finds the first device which is
-# successfully initialized. The default behavior causes
-# all network devices to be initialized.
-#
-cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Let RedBoot use any I/O channel for its console.
-# If this option is enabled then RedBoot will attempt to use all
-# defined serial I/O channels for its console device.  Once input
-# arrives at one of these channels then the console will use only
-# that port.
-#
-cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# Let RedBoot adjust the baud rate of the serial console.
-# If this option is enabled then RedBoot will support commands 
-# to set and query the baud rate on the selected console.
-#
-cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Run a platform specific startup function.
-# If this option is enabled then RedBoot will execute a platform
-# specific startup function before entering into its command line
-# processing.  This allows the platform to perform any special
-# setups before RedBoot actually starts running.  Note: the entire
-# RedBoot environment will already be initialized at this point.
-#
-cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Run a platform specific ESA validation function.
-# If this option is enabled then RedBoot will execute a platform
-# specific function to validate an ethernet ESA.  This would be
-# useful if the address must conform to standards set by the
-# hardware manufacturer, etc.
-#
-cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI
-    #     ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-};
-
-# Maximum command line length
-# This option allows control over how long the CLI command line
-# should be.  This space will be allocated statically
-# rather than from RedBoot's stack.
-#
-cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # The inferred value should not be edited directly.
-    inferred_value 1024
-    # value_source inferred
-    # Default value: 256
-};
-
-# Command processing idle timeout (ms)
-# This option controls the timeout period before the
-# command processing is considered 'idle'.  Making this
-# number smaller will cause idle processing to take place
-# more often, etc.  The default value of 10ms is a reasonable
-# tradeoff between responsiveness and overhead.
-#
-cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Validate RAM addresses during load
-# This option controls whether or not RedBoot will make
-# sure that memory being used by the "load" command is
-# in fact in user RAM.  Leaving the option enabled makes
-# for a safer environment, but this check may not be valid
-# on all platforms, thus the ability to disable it.  
-# ** Disable this only with great care **
-#
-cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
-    # 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 CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-};
-
-# Allow RedBoot to support FLASH programming
-# If this option is enabled then RedBoot will provide commands
-# to manage images in FLASH memory.  These images can be loaded
-# into memory for execution or executed in place.
-#
-cdl_component CYGPKG_REDBOOT_FLASH {
-    # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE
-    #     CYGHWR_IO_FLASH_DEVICE == 1
-    #   --> 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 CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-    # option CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-};
-
-# >
-# Byte order used to store info in flash.
-# This option controls the byte ordering used to store
-# the FIS directory info and flash config info.
-#
-cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NATURAL
-    # value_source default
-    # Default value: NATURAL
-    # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" 
-};
-
-# RedBoot Flash Image System support
-# doc: ref/flash-image-system.html
-# This option enables the Flash Image System commands
-# and support within RedBoot.  If disabled, simple Flash
-# access commands such as "fis write" will still exist.
-# This option would be disabled for targets that need simple
-# FLASH manipulation, but do not have the need or space for
-# complete image management.
-#
-cdl_option CYGOPT_REDBOOT_FIS {
-    # 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_REDBOOT_FIS_CONTENTS
-    #     ActiveIf: CYGOPT_REDBOOT_FIS
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# Max number of chunks of free space to manage
-# If this option is defined then "fis free" will
-# rely on the FIS directory to determine what space is
-# free within the FLASH.  This option controls the
-# maximum number of free segment which can be handled
-# (typically this number is small).  If this option is
-# not enabled, the the archaic behaviour of actually
-# scanning the FLASH for erased sectors (unreliable)
-# will be used to determine what's free and what's
-# not.
-#
-cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 32
-    # value_source default
-    # Default value: 1 32
-};
-
-# Flash Image System default directory contents
-#
-cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
-    # ActiveIf constraint: CYGOPT_REDBOOT_FIS
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Flash block containing the Directory
-# Which block of flash should hold the directory
-# information. Positive numbers are absolute block
-# numbers.  Negative block numbers count backwards
-# from the last block.  eg 2 means block 2, -2
-# means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
-    # Flavor: data
-    # 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 CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# Redundant Flash Image System Directory Support
-# This option enables the use of a redundant FIS
-# directory within RedBoot.  If enabled a flash block
-# will be reserved for a second copy of the fis
-# directory. Doing this allow for power failure safe
-# updates of the directory by the application.
-#
-cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-    #     CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1
-    #   --> 0
-};
-
-# >
-# Flash block containing the backup Directory
-# Which block of flash should hold the redundant
-# directory information. Positive numbers are
-# absolute block numbers. Negative block numbers
-# count backwards from the last block. eg 2 means
-# block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -3
-    # value_source default
-    # Default value: -3
-    # Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-    #     CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0
-    #     CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# <
-# Pseudo-file to describe reserved area
-# If an area of FLASH is reserved, it is informative to
-# have a fis entry describing it.  This option controls
-# creation of such an entry by default in the fis init
-# command.
-#
-cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
-    # This option is not active
-    # ActiveIf constraint:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# File to describe RedBoot boot image
-# Normally a ROM-startup RedBoot image is first in the
-# FLASH, and the system boots using that image.  This
-# option controls creation of an entry describing it in
-# the fis init command.  It might be disabled if a
-# platform has an immutable boot image of its own, where
-# we use a POST-startup RedBoot instead, which performs
-# less board initialization.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
-    # 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 CYGOPT_REDBOOT_FIS_REDBOOT_POST
-    #     DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT
-    # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE
-    #     DefaultValue:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-};
-
-# File to describe RedBoot POST-compatible image
-# This option controls creation of an entry describing a
-# POST-startup RedBoot image in the fis init command.
-# Not all platforms support POST-startup.  A platform
-# might have both for testing purposes, where the
-# eventual user would substitute their own POST code for
-# the initial ROM-startup RedBoot, and then jump to the
-# POST-compatible RedBoot immediately following.
-#
-cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0
-};
-
-# >
-# Offset of POST image from FLASH start
-# This option specifies the offset for a POST image from
-# the start of FLASH.  If unset, then the fis entry
-# describing the POST image will be placed where
-# convenient.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# File to describe RedBoot backup image
-# This option controls creation of an entry describing a
-# backup RedBoot image in the fis init command.
-# Conventionally a RAM-startup RedBoot image is kept
-# under this name for use in updating the ROM-based
-# RedBoot that boots the board.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include ARM SIB ID in FIS
-# If set, this option will cause the last 5 words of
-# the FIS to include the special ID needed for the
-# flash to be recognized as a reserved area for RedBoot
-# by an ARM BootRom monitor.
-#
-cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Size of FIS directory entry
-# The FIS directory is limited to one single flash
-# sector. If your flash has tiny sectors, you may wish
-# to reduce this value in order to get more slots in
-# the FIS directory.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-};
-
-# Number of FIS directory entries
-# The FIS directory normally occupies a single flash
-# sector. Adjusting this value can allow for more than
-# one flash sector to be used, which is useful if your
-# sectors are very small.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Maximum RedBoot image size
-# This option controls the maximum length reserved
-# for the RedBoot boot image in the FIS table.
-# This should be a multiple of the flash's erase
-# block size.
-#
-cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00020000
-    # The inferred value should not be edited directly.
-    inferred_value 0x00040000
-    # value_source inferred
-    # Default value:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0x00020000
-};
-
-# Offset from start of FLASH to RedBoot boot image
-# This option controls where the RedBoot boot image is 
-# located relative to the start of FLASH.
-#
-cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-    # Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # component CYGPKG_HAL_ARM_TX53_OPTIONS
-    #     Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-};
-
-# Size of reserved area at start of FLASH
-# This option reserves an area at the start of
-# FLASH where RedBoot will never interfere; it is
-# expected that this area contains
-# (non-RedBoot-based) POST code or some other boot
-# monitor that executes before RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
-    # Flavor: data
-    # 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 CYGOPT_REDBOOT_FIS_RESERVED_BASE
-    #     ActiveIf:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# Keep all RedBoot FLASH data blocks locked.
-# When this option is enabled, RedBoot will keep configuration
-# data and the FIS directory blocks implicitly locked.  While
-# this is somewhat safer, it does add overhead during updates.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-    #     CYGHWR_IO_FLASH_BLOCK_LOCKING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use CRC checksums on FIS images.
-# When this option is enabled, RedBoot will use CRC checksums
-# when reading and writing flash images.
-#
-cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# ARM FLASH drivers support SIB flash block structure
-# This interface is implemented by a flash driver
-# to indicate that it supports the ARM SIB flash
-# block structure
-#
-cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGPKG_HAL_ARM
-    #     CYGPKG_HAL_ARM == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_FLASH_SIB
-    #     ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-};
-
-# Use ARM SIB flash block structure
-# This option is used to interpret ARM Flash System 
-# information blocks.
-#
-cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Keep RedBoot configuration data in FLASH
-# When this option is enabled, RedBoot will keep configuration
-# data in a separate block of FLASH memory.  This data will
-# include such items as the node IP address or startup scripts.
-#
-cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_IO_FLASH != 0 
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_IP
-    #     ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN
-    #     ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# >
-# Length of configuration data in FLASH
-# This option is used to control the amount of memory and FLASH
-# to be used for configuration options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value: 4096
-};
-
-# Style of media used for persistent data storage
-# Persistent data storage can either be held in 'norma' FLASH
-# or some other device (represented by the 'EEPROM' choice).
-# The different styles utilize different access methods.
-#
-cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value FLASH
-    # value_source default
-    # Default value: FLASH
-    # Legal values:  "FLASH" "EEPROM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK
-    #     DefaultValue:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-};
-
-# Merged config data and FIS directory
-# If this option is set, then the FIS directory and FLASH 
-# configuration database will be stored in the same physical
-# FLASH block.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
-    # ActiveIf constraint:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGOPT_REDBOOT_FIS == 1
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 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
-    # component CYGOPT_REDBOOT_REDUNDANT_FIS
-    #     Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-};
-
-# Which block of flash to use
-# Which block of flash should hold the configuration 
-# information. Positive numbers are absolute block numbers. 
-# Negative block numbers count backwards from the last block.
-# eg 2 means block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -2
-    # value_source default
-    # Default value: -2
-};
-
-# Support simple macros/aliases in FLASH
-# This option is used to allow support for simple text-based
-# macros (aliases).  These aliases are kept in the FLASH
-# configuration data (persistent storage).
-#
-cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Length of strings in FLASH configuration data
-# This option is used to control the amount of memory
-# and FLASH to be used for string configuration
-# options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-};
-
-# Length of configuration script(s) in FLASH
-# This option is used to control the amount of memory and 
-# FLASH to be used for configuration options (persistent 
-# storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 512
-    # The inferred value should not be edited directly.
-    inferred_value 2048
-    # value_source inferred
-    # Default value: 512
-};
-
-# Fallback to read-only FLASH configuration
-# This option will cause the configuration information to
-# revert to the readonly information stored in the FLASH.
-# The option only takes effect after 
-# 1) the config_ok flag has been set to be true,
-# indicating that at one time the copy in RAM was valid;
-# and
-# 2) the information in RAM has been verified to be invalid
-#
-cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 1
-};
-
-# <
-# Allow RedBoot to support fileio
-# If this option is enabled then RedBoot will provide commands
-# to load files from fileio file systems such as JFFS2.
-#
-cdl_component CYGPKG_REDBOOT_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO (unknown) == 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 CYGNUM_REDBOOT_GETC_BUFFER
-    #     DefaultValue:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-};
-
-# >
-# Include an ls command
-# If this option is enabled a simple ls command will be
-# included in redboot so the contents of a directory
-# can be listed
-#
-cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_FILEIO is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Allow RedBoot to support disks
-# If this option is enabled then RedBoot will provide commands
-# to load disk files.
-#
-cdl_component CYGPKG_REDBOOT_DISK {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# >
-# Include Redboot commands for disk access
-#
-cdl_option CYGSEM_REDBOOT_DISK {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-    #     CYGINT_REDBOOT_DISK_DRIVERS == 0
-    #   --> 0
-};
-
-# Hardware drivers for disk-type devices
-#
-cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
-    # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_DISK
-    #     DefaultValue:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-};
-
-# Maximum number of supported disks
-# This option controls the number of disks supported by 
-# RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_MAX_DISKS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# Maximum number of partitions per disk
-# This option controls the maximum number of supported 
-# partitions per disk.
-#
-cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Support IDE disks.
-# When this option is enabled, RedBoot will support IDE disks.
-#
-cdl_component CYGSEM_REDBOOT_DISK_IDE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-    # ActiveIf constraint:  CYGINT_HAL_PLF_IF_IDE != 0 
-    #     CYGINT_HAL_PLF_IF_IDE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Work with VMware virtual disks
-# This option controls the disk driver behavior at 
-# ide-init
-#
-cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_DISK_IDE is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support Linux second extended filesystems.
-# When this option is enabled, RedBoot will support EXT2 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support ISO9660 filesystems.
-# When this option is enabled, RedBoot will support ISO9660 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Boot scripting
-# doc: ref/persistent-state-flash.html
-# This contains options related to RedBoot's boot script
-# functionality.
-#
-cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
-    # There is no associated value.
-};
-
-# >
-# Boot scripting enabled
-# This option controls whether RedBoot boot script
-# functionality is enabled.
-#
-cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
-    # ActiveIf constraint:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-    #     CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Use default RedBoot boot script
-# If enabled, this option will tell RedBoot to use the 
-# value of this option as a default boot script.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 0 0
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# Resolution (in ms) for script timeout value.
-# This option controls the resolution of the script
-# timeout.  The value is specified in milliseconds
-# (ms), thus to have the script timeout be defined in
-# terms of tenths of seconds, use 100.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # The inferred value should not be edited directly.
-    inferred_value 10
-    # value_source inferred
-    # Default value: 1000
-};
-
-# Script default timeout value
-# This option is used to set the default timeout for startup
-# scripts, when they are enabled.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 10
-};
-
-# <
-# Support RTC for time & date functions
-# When this option is enabled, RedBoot will support commands to
-# query and set the real time clock (time and date)
-#
-cdl_option CYGSEM_REDBOOT_RTC {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_IO_WALLCLOCK 
-    #     CYGPKG_IO_WALLCLOCK (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Behave like a ROM monitor
-# Enabling this option will allow RedBoot to provide ROM 
-# monitor-style services to programs which it executes.
-#
-cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# Allow RedBoot to handle GNUPro application 'syscalls'.
-# If this option is enabled then RedBoot will install a
-# syscall handler to support debugging of applications
-# based on GNUPro newlib/bsp.
-#
-cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
-    # 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 CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-    # option CYGPKG_HAL_GDB_FILEIO
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-};
-
-# >
-# Support additional syscalls for 'gprof' profiling
-# Support additional syscalls to support a periodic callback
-# function for histogram-style profiling, and an enquire/set
-# of the tick rate.
-# The application must use the GNUPro newlib facilities
-# to set this up.
-#
-cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-    # ActiveIf constraint:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-    #     CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does the HAL support 'gprof' profiling?
-#
-cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
-    # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF
-    #     ActiveIf:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-};
-
-# Do not raise SIGTRAP when program exits
-# For some (single shot) newlib based programs,
-# exiting and returning a termination status may be
-# the normal expected behavior.
-#
-cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Use a common buffer for Zlib and FIS
-# Use a common memory buffer for both the zlib workspace
-# and FIS directory operations. This can save a substantial
-# amount of RAM, especially when flash sectors are large.
-#
-cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
-    # ActiveIf constraint:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-    #     CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of Zlib/FIS common buffer
-# Size of common buffer to allocate. Must be at least the
-# size of one flash sector.
-#
-cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000C000
-    # value_source default
-    # Default value: 0x0000C000
-    # Legal values: 0x4000 to 0x80000000
-};
-
-# <
-# Buffer size in getc when loading images
-# When loading images a buffer is used between redboot and the
-# underlying storage medium, eg a filesystem, or a socket etc.
-# The size of this buffer can have a big impart on load speed.
-#
-cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-    #     CYGPKG_REDBOOT_FILEIO == 0
-    #   --> 256
-};
-
-# <
-# Redboot for ARM options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Provide the exec command in RedBoot
-# This option contains requirements for booting linux
-# from RedBoot. The component is enabled/disabled from
-# RedBoots CDL.
-#
-cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Enable -x switch for exec command.
-# This option allows bi-endian platforms to launch kernels
-# built for an endianess different than the RedBoot endianess
-#
-cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x70108000
-    # value_source default
-    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 0x70108000
-};
-
-# Default physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image. This option gets set by the 
-# platform CDL.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00008000
-    # The inferred value should not be edited directly.
-    inferred_value 0x70108000
-    # value_source inferred
-    # Default value: 0x00008000
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS
-    #     DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-};
-
-# Base address of linux kernel parameter tags
-# This is the base address of the area of memory used to
-# pass parameters to the Linux kernel. This should be chosen
-# to avoid overlap with the kernel and any ramdisk image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000100
-    # value_source default
-    # Default value: 0x00000100
-};
-
-# <
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Build Redboot ROM binary image
-# This option enables the conversion of the Redboot ELF
-# image to a binary image suitable for ROM programming.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Redboot HAL variant options
-#
-cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 1
-};
-
-# <
-# ISO C and POSIX infrastructure
-# eCos supports implementations of ISO C libraries and POSIX
-# implementations. This package provides infrastructure used by
-# all such implementations.
-#
-cdl_package CYGPKG_ISOINFRA {
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_COMPRESS_ZLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-};
-
-# >
-# Startup and termination
-#
-cdl_component CYGPKG_ISO_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# main() startup implementations
-# Implementations of this interface arrange for a user-supplied
-# main() to be called in an ISO compatible environment.
-#
-cdl_interface CYGINT_ISO_MAIN_STARTUP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-};
-
-# <
-# ctype.h functions
-#
-cdl_component CYGPKG_ISO_CTYPE_H {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of ctype functions
-#
-cdl_interface CYGINT_ISO_CTYPE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_CTYPE 
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_CTYPE
-    #     Requires:  1 >= CYGINT_ISO_CTYPE 
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-};
-
-# Ctype implementation header
-#
-cdl_option CYGBLD_ISO_CTYPE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/i18n/ctype.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-};
-
-# <
-# Error handling
-#
-cdl_component CYGPKG_ISO_ERRNO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of error codes
-#
-cdl_interface CYGINT_ISO_ERRNO_CODES {
-    # Implemented by CYGPKG_ERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO_CODES
-    #     Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-};
-
-# Error codes implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/codes.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_ERROR
-    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-};
-
-# Number of implementations of errno variable
-#
-cdl_interface CYGINT_ISO_ERRNO {
-    # Implemented by CYGPKG_ERROR_ERRNO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO 
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO
-    #     Requires:  1 >= CYGINT_ISO_ERRNO 
-};
-
-# errno variable implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/errno.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_ERROR_ERRNO
-    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-};
-
-# <
-# Locale-related functions
-#
-cdl_component CYGPKG_ISO_LOCALE {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of locale functions
-#
-cdl_interface CYGINT_ISO_LOCALE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_LOCALE 
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_LOCALE
-    #     Requires:  1 >= CYGINT_ISO_LOCALE 
-};
-
-# Locale implementation header
-#
-cdl_option CYGBLD_ISO_LOCALE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard I/O-related functionality
-#
-cdl_component CYGPKG_ISO_STDIO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of stdio file types
-#
-cdl_interface CYGINT_ISO_STDIO_FILETYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-};
-
-# Stdio file types implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-};
-
-# Stdio standard streams implementation header
-# This header file must define stdin, stdout
-# and stderr.
-#
-cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEOPS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-};
-
-# Stdio file operations implementation header
-# This header controls the file system operations on a file
-# such as remove(), rename(), tmpfile(), tmpnam() and associated
-# constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-};
-
-# Stdio file access implementation header
-# This header controls the file access operations
-# such as fclose(), fflush(), fopen(), freopen(), setbuf(),
-# setvbuf(), and associated constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-};
-
-# Stdio formatted I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-};
-
-# Stdio character I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-};
-
-# Stdio direct I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEPOS
-};
-
-# Stdio file positioning implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-};
-
-# Stdio error handling implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS
-    #     Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-};
-
-# POSIX fd-related function implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard general utility functions
-#
-cdl_component CYGPKG_ISO_STDLIB {
-    # There is no associated value.
-};
-
-# >
-# String conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-};
-
-# String conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/atox.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ATOX
-    #     Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-};
-
-# String to FP conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT {
-    # Implemented by CYGFUN_LIBC_strtod, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-};
-
-# String to FP conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Random number generator implementations
-#
-cdl_interface CYGINT_ISO_RAND {
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_RAND 
-    #     CYGINT_ISO_RAND == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_RAND
-    #     Requires:  1 >= CYGINT_ISO_RAND 
-};
-
-# Random number generator implementation header
-#
-cdl_option CYGBLD_ISO_RAND_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Malloc implementations
-#
-cdl_interface CYGINT_ISO_MALLOC {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLOC
-    #     Requires:  1 >= CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-};
-
-# Malloc implementation header
-#
-cdl_option CYGBLD_ISO_MALLOC_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Mallinfo() implementations
-#
-cdl_interface CYGINT_ISO_MALLINFO {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLINFO 
-    #     CYGINT_ISO_MALLINFO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLINFO
-    #     Requires:  1 >= CYGINT_ISO_MALLINFO 
-};
-
-# Mallinfo() implementation header
-#
-cdl_option CYGBLD_ISO_MALLINFO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program exit functionality implementations
-#
-cdl_interface CYGINT_ISO_EXIT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_EXIT
-    #     Requires:  1 >= CYGINT_ISO_EXIT 
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     Requires: !CYGINT_ISO_EXIT
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     DefaultValue:  CYGINT_ISO_EXIT == 0 
-};
-
-# Program exit functionality implementation header
-#
-cdl_option CYGBLD_ISO_EXIT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program environment implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-    #     CYGINT_ISO_STDLIB_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-};
-
-# Program environment implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# system() implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_SYSTEM {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-    #     CYGINT_ISO_STDLIB_SYSTEM == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_SYSTEM
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-};
-
-# system() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# bsearch() implementations
-#
-cdl_interface CYGINT_ISO_BSEARCH {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_BSEARCH 
-    #     CYGINT_ISO_BSEARCH == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSEARCH
-    #     Requires:  1 >= CYGINT_ISO_BSEARCH 
-};
-
-# bsearch() implementation header
-#
-cdl_option CYGBLD_ISO_BSEARCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# qsort() implementations
-#
-cdl_interface CYGINT_ISO_QSORT {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_QSORT 
-    #     CYGINT_ISO_STDLIB_QSORT (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# qsort() implementation header
-#
-cdl_option CYGBLD_ISO_QSORT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# abs()/labs() implementations
-#
-cdl_interface CYGINT_ISO_ABS {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ABS 
-    #     CYGINT_ISO_STDLIB_ABS (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# abs()/labs() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/abs.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ABS
-    #     Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-};
-
-# div()/ldiv() implementations
-#
-cdl_interface CYGINT_ISO_DIV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_DIV 
-    #     CYGINT_ISO_STDLIB_DIV (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# div()/ldiv() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/div.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_DIV
-    #     Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-};
-
-# Header defining the implementation's MB_CUR_MAX
-#
-cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBC_I18N_MB_REQUIRED
-    #     Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-};
-
-# Multibyte character implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-    #     CYGINT_ISO_STDLIB_MULTIBYTE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_MULTIBYTE
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-};
-
-# Multibyte character implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# String functions
-#
-cdl_component CYGPKG_ISO_STRING {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of strerror() function
-#
-cdl_interface CYGINT_ISO_STRERROR {
-    # Implemented by CYGPKG_ERROR_STRERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRERROR 
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRERROR
-    #     Requires:  1 >= CYGINT_ISO_STRERROR 
-};
-
-# strerror() implementation header
-#
-cdl_option CYGBLD_ISO_STRERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/strerror.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_ERROR_STRERROR
-    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-};
-
-# memcpy() implementation header
-#
-cdl_option CYGBLD_ISO_MEMCPY_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# memset() implementation header
-#
-cdl_option CYGBLD_ISO_MEMSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of strtok_r() function
-#
-cdl_interface CYGINT_ISO_STRTOK_R {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRTOK_R 
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRTOK_R
-    #     Requires:  1 >= CYGINT_ISO_STRTOK_R 
-};
-
-# strtok_r() implementation header
-#
-cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of locale-specific string  functions
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-};
-
-# Locale-specific string functions' implementation  header
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of BSD string functions
-#
-cdl_interface CYGINT_ISO_STRING_BSD_FUNCS {
-    # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-};
-
-# BSD string functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/bsdstring.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-};
-
-# Number of implementations of other mem*() functions
-#
-cdl_interface CYGINT_ISO_STRING_MEMFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_MEMFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-};
-
-# Other mem*() functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of other ISO C str*()  functions
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_interface CYGINT_ISO_STRING_STRFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_STRFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     Requires: !CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     DefaultValue:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_NET
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-};
-
-# Other ISO C str*() functions' implementation  header
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# <
-# Clock and time functionality
-#
-cdl_component CYGPKG_ISO_TIME {
-    # There is no associated value.
-};
-
-# >
-# time_t implementation header
-#
-cdl_option CYGBLD_ISO_TIME_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# clock_t implementation header
-#
-cdl_option CYGBLD_ISO_CLOCK_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# struct timeval implementation header
-#
-cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-    #     CYGINT_ISO_POSIX_TIMER_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-};
-
-# POSIX timer types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCK_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-};
-
-# POSIX clock types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-};
-
-# ISO C time types implementation header
-#
-cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-    #     CYGINT_ISO_POSIX_TIMERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMERS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-};
-
-# POSIX timer implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_CLOCK_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-};
-
-# ISO C clock functions' implementation header
-#
-cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of tzset() function
-#
-cdl_interface CYGINT_ISO_TZSET {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_TZSET 
-    #     CYGINT_ISO_TZSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TZSET
-    #     Requires:  1 >= CYGINT_ISO_TZSET 
-};
-
-# tzset() implementation header
-#
-cdl_option CYGBLD_ISO_TZSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Signal functionality
-#
-cdl_component CYGPKG_ISO_SIGNAL {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of signal numbers
-#
-cdl_interface CYGINT_ISO_SIGNAL_NUMBERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-};
-
-# Signal numbering implementation header
-# This header provides the mapping of signal
-# names (e.g. SIGBUS) to numbers.
-#
-cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-};
-
-# Signals implementation header
-#
-cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX real time signals feature test macro
-# This defines the POSIX feature test macro
-# that indicates that the POSIX real time signals
-# are present.
-#
-cdl_interface CYGINT_POSIX_REALTIME_SIGNALS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-    #     CYGINT_POSIX_REALTIME_SIGNALS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_POSIX_REALTIME_SIGNALS
-    #     Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-};
-
-# <
-# Non-local jumps functionality
-#
-cdl_component CYGPKG_ISO_SETJMP {
-    # There is no associated value.
-};
-
-# >
-# setjmp() / longjmp() implementations
-#
-cdl_interface CYGINT_ISO_SETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SETJMP
-    #     Requires:  1 >= CYGINT_ISO_SETJMP 
-};
-
-# setjmp() / longjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-    #     CYGINT_ISO_SIGSETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGSETJMP
-    #     Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-};
-
-# sigsetjmp() / siglongjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Assertions implementation header
-#
-cdl_option CYGBLD_ISO_ASSERT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file control
-# This covers the POSIX file control definitions,
-# normally found in <fcntl.h>
-#
-cdl_component CYGPKG_ISO_POSIX_FCNTL {
-    # There is no associated value.
-};
-
-# >
-# POSIX open flags implementation header
-#
-cdl_option CYGBLD_ISO_OFLAG_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fcntl() implementations
-#
-cdl_interface CYGINT_ISO_FCNTL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_FCNTL
-    #     Requires:  1 >= CYGINT_ISO_FCNTL 
-};
-
-# POSIX fcntl() implementation header
-#
-cdl_option CYGBLD_ISO_FCNTL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file open implementations
-#
-cdl_interface CYGINT_ISO_OPEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_OPEN
-    #     Requires:  1 >= CYGINT_ISO_OPEN 
-};
-
-# POSIX file open implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# <sys/stat.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_STAT_DEFS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX directory reading implementation
-#
-cdl_interface CYGINT_ISO_DIRENT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DIRENT
-    #     Requires:  1 >= CYGINT_ISO_DIRENT 
-};
-
-# <dirent.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_DIRENT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX <sys/types.h> contents
-# This covers the types required by POSIX to be in
-# <sys/types.h>
-#
-cdl_component CYGPKG_ISO_POSIX_TYPES {
-    # There is no associated value.
-};
-
-# >
-# POSIX thread types implementations
-#
-cdl_interface CYGINT_ISO_PTHREADTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREADTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    # interface CYGINT_ISO_PMUTEXTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-};
-
-# POSIX thread types implementation header
-#
-cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# ssize_t implementation header
-#
-cdl_option CYGBLD_ISO_SSIZE_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Filesystem types implementation header
-#
-cdl_option CYGBLD_ISO_FSTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# gid_t, pid_t, uid_t implementation header
-#
-cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Non-POSIX <sys/types.h> contents
-# This covers the extra types required by non-POSIX
-# packages to be in <sys/types.h>. These would normally
-# only be visible if _POSIX_SOURCE is not defined.
-#
-cdl_component CYGPKG_ISO_EXTRA_TYPES {
-    # There is no associated value.
-};
-
-# >
-# BSD compatible types
-#
-cdl_interface CYGINT_ISO_BSDTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_BSDTYPES 
-    #     CYGINT_ISO_BSDTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSDTYPES
-    #     Requires:  1 >= CYGINT_ISO_BSDTYPES 
-};
-
-# BSD types header
-#
-cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Utsname structure
-#
-cdl_component CYGPKG_ISO_UTSNAME {
-    # There is no associated value.
-};
-
-# >
-# Utsname header
-#
-cdl_option CYGBLD_ISO_UTSNAME_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SCHED_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-};
-
-# POSIX scheduler implementation header
-#
-cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX semaphores
-#
-cdl_component CYGPKG_ISO_SEMAPHORES {
-    # There is no associated value.
-};
-
-# >
-# POSIX semaphore implementations
-#
-cdl_interface CYGINT_ISO_SEMAPHORES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SEMAPHORES
-    #     Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-};
-
-# POSIX semaphore implementation header
-#
-cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MQUEUE
-    #     Requires:  1 >= CYGINT_ISO_MQUEUE 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-    # option CYGNUM_ISO_MQUEUE_PRIO_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-};
-
-# Implementation header
-#
-cdl_option CYGBLD_ISO_MQUEUE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Maximum number of open message queues
-#
-cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #   --> 0 0
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 65535
-    # value_source default
-    # Default value: 1 65535
-};
-
-# <
-# POSIX threads
-#
-cdl_component CYGPKG_ISO_PTHREAD {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_IMPL
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-};
-
-# POSIX pthread implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_LIMITS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-};
-
-# POSIX pthread limits implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# LINK_MAX implementation header
-#
-cdl_option CYGBLD_ISO_LINK_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# NAME_MAX implementation header
-#
-cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# PATH_MAX implementation header
-#
-cdl_option CYGBLD_ISO_PATH_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX termios
-#
-cdl_component CYGPKG_ISO_TERMIOS {
-    # There is no associated value.
-};
-
-# >
-# POSIX termios implementations
-#
-cdl_interface CYGINT_ISO_TERMIOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TERMIOS
-    #     Requires:  1 >= CYGINT_ISO_TERMIOS 
-};
-
-# POSIX termios implementation header
-#
-cdl_option CYGBLD_ISO_TERMIOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Dynamic load API
-#
-cdl_component CYGPKG_ISO_DLFCN {
-    # There is no associated value.
-};
-
-# >
-# Dynamic load implementations
-#
-cdl_interface CYGINT_ISO_DLFCN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DLFCN 
-    #     CYGINT_ISO_DLFCN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DLFCN
-    #     Requires:  1 >= CYGINT_ISO_DLFCN 
-};
-
-# Dynamic load implementation header
-#
-cdl_option CYGBLD_ISO_DLFCN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# UNIX standard functions
-#
-cdl_component CYGPKG_ISO_UNISTD {
-    # There is no associated value.
-};
-
-# >
-# POSIX timer operations implementations
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_OPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-    #     CYGINT_ISO_POSIX_TIMER_OPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_OPS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-};
-
-# POSIX timer operations implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX sleep() implementations
-#
-cdl_interface CYGINT_ISO_POSIX_SLEEP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_SLEEP
-    #     Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-};
-
-# POSIX sleep() implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# select()/poll() functions
-#
-cdl_component CYGPKG_ISO_SELECT {
-    # There is no associated value.
-};
-
-# >
-# select() implementations
-#
-cdl_interface CYGINT_ISO_SELECT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SELECT
-    #     Requires:  1 >= CYGINT_ISO_SELECT 
-};
-
-# select() implementation header
-#
-cdl_option CYGBLD_ISO_SELECT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# poll() implementations
-#
-cdl_interface CYGINT_ISO_POLL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POLL 
-    #     CYGINT_ISO_POLL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POLL
-    #     Requires:  1 >= CYGINT_ISO_POLL 
-};
-
-# poll() implementation header
-#
-cdl_option CYGBLD_ISO_POLL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# NetDB utility functions
-#
-cdl_component CYGPKG_ISO_NETDB {
-    # There is no associated value.
-};
-
-# >
-# DNS implementations
-#
-cdl_interface CYGINT_ISO_DNS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_DNS 
-    #     CYGINT_ISO_DNS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DNS
-    #     Requires:  1 >= CYGINT_ISO_DNS 
-};
-
-# DNS implementation header
-#
-cdl_option CYGBLD_ISO_DNS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Protocol network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_PROTO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-    #     CYGINT_ISO_NETDB_PROTO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_PROTO
-    #     Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-};
-
-# Protocol network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Services network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_SERV {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-    #     CYGINT_ISO_NETDB_SERV == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_SERV
-    #     Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-};
-
-# Services network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# 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_ISOINFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the ISO C and POSIX infrastructure package.
-# These flags are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_ISOINFRA_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 ISO C and POSIX infrastructure package.
-# These flags are removed from the set of global flags
-# if present.
-#
-cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# Compute CRCs
-# doc: ref/services-crc.html
-# This package provides support for CRC calculation. Currently 
-# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by 
-# Gary S. Brown, and a 16 bit CRC.
-#
-cdl_package CYGPKG_CRC {
-    # 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_COMPRESS_ZLIB
-    #     Requires: CYGPKG_CRC
-};
-
-# >
-# POSIX CRC tests
-#
-cdl_option CYGPKG_CRC_TESTS {
-    # Calculated value:  "tests/crc_test" 
-    # Flavor: data
-    # Current_value: tests/crc_test
-};
-
-# <
-# Zlib compress and decompress package
-# This package provides support for compression and
-# decompression.
-#
-cdl_package CYGPKG_COMPRESS_ZLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_CRC
-    #     CYGPKG_CRC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB
-    #     ActiveIf: CYGPKG_COMPRESS_ZLIB
-};
-
-# >
-# Override memory allocation routines.
-#
-cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     ActiveIf:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-};
-
-# Should deflate() produce 'gzip' compatible output?
-# If this option is set then the output of calling deflate()
-# will be wrapped up as a 'gzip' compatible file.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does this library need malloc?
-# This pseudo-option will force the memalloc library to be
-# required iff the application does not provide it's own
-# infrastructure.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-    #     CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-};
-
-# Include stdio-like utility functions
-# This option enables the stdio-like zlib utility functions
-# (gzread/gzwrite and friends) provided in gzio.c.
-#
-cdl_option CYGFUN_COMPRESS_ZLIB_GZIO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 
-    #     CYGPKG_LIBC_STDIO_OPEN (unknown) == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 0
-};
-
-# Zlib compress and decompress package 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_COMPRESS_ZLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_COMPRESS_ZLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D__ECOS__ -DNO_ERRNO_H"
-    # value_source default
-    # Default value: "-D__ECOS__ -DNO_ERRNO_H"
-};
-
-# 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_COMPRESS_ZLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wstrict-prototypes
-    # value_source default
-    # Default value: -Wstrict-prototypes
-};
-
-# 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_COMPRESS_ZLIB_LDFLAGS_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# zlib tests
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_TESTS {
-    # Calculated value:  "tests/zlib1.c tests/zlib2.c" 
-    # Flavor: data
-    # Current_value: tests/zlib1.c tests/zlib2.c
-};
-
-# <
-# FLASH device drivers
-# doc: ref/flash.html
-# This option enables drivers for basic I/O services on
-# flash devices.
-#
-cdl_package CYGPKG_IO_FLASH {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_FLASH_CONFIG
-    #     DefaultValue:  CYGPKG_IO_FLASH != 0 
-    # package CYGPKG_DEVS_FLASH_ONMXC
-    #     ActiveIf: CYGPKG_IO_FLASH
-};
-
-# >
-# Hardware FLASH device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE {
-    # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_FLASH
-    #     ActiveIf: CYGHWR_IO_FLASH_DEVICE
-};
-
-# Hardware FLASH device drivers are not in RAM
-# Use of this interface is deprecated.
-# Drivers should make sure that the functions are
-# linked to RAM by putting them in .2ram sections.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-};
-
-# Hardware can support block locking
-# This option will be enabled by devices which can support
-# locking (write-protection) of individual blocks.
-#
-cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL
-    #     ActiveIf:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-};
-
-# Hardware cannot support direct access to FLASH memory
-# This option will be asserted by devices which cannot support
-# direct access to the FLASH memory contents (e.g. EEPROM or NAND
-# devices).  In these cases, the driver must provide an appropriate
-# hardware access function.
-#
-cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-    #     CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    # component CYGHWR_DEVS_FLASH_MMC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_SD
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_NAND
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-};
-
-# Display status messages during flash operations
-# Selecting this option will cause the drivers to print status
-# messages as various flash operations are undertaken.
-#
-cdl_option CYGSEM_IO_FLASH_CHATTER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Verify data programmed to flash
-# Selecting this option will cause verification of data
-# programmed to flash.
-#
-cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_IO_FLASH_READ_INDIRECT
-    #     Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-};
-
-# Platform has flash soft DIP switch write-protect
-# Selecting this option will cause the state of a hardware jumper or
-# dipswitch to be read by software to determine whether the flash is
-# write-protected or not.
-#
-cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instantiate in I/O block device API
-# Provides a block device accessible using the standard I/O
-# API ( cyg_io_read() etc. )
-#
-cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of flash device 1 block device
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
-    # This option is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/flash1\""
-    # value_source default
-    # Default value: "\"/dev/flash1\""
-};
-
-# >
-#
-cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 {
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     CYGINT_IO_FLASH_BLOCK_CFG_1 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-};
-
-# Static configuration
-# This configures the flash device 1 block device
-# with static base and length
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash which this
-# block device corresponds to.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash given over
-# to this block device.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Configuration from FIS
-# This configures the flash device 1 block device
-# from Redboot FIS
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of FIS entry
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"jffs2\""
-    # value_source default
-    # Default value: "\"jffs2\""
-};
-
-# <
-# <
-# <
-# Flash 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_FLASH_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the flash device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_FLASH_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 flash device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Flash device driver tests
-# This option specifies the set of tests for the flash device drivers.
-#
-cdl_component CYGPKG_IO_FLASH_TESTS {
-    # Calculated value:  "tests/flash1" 
-    # Flavor: data
-    # Current_value: tests/flash1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash where tests
-# can be run.  It is important to set this correctly, as an
-# incorrect value could allow the tests to write over critical
-# portions of the FLASH device and possibly render the target
-# board totally non-functional.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash used for testing.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# <
-# Support FLASH memory on Freescale MXC platforms
-#
-cdl_package CYGPKG_DEVS_FLASH_ONMXC {
-    # 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_FLASH
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC platform MMC card support
-# When this option is enabled, it indicates MMC card is
-# supported on the MXC platforms
-#
-cdl_component CYGHWR_DEVS_FLASH_MMC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# >
-# MXC platform MMC card for newer SDHC controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# MXC platform MMC card for older MMC/SD controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_SD {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS 
-    #     CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX31ADS (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:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# <
-# MXC platform NOR flash memory support
-# When this option is enabled, it indicates NOR flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR
-    #     Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# MXC platform NAND flash memory support
-# When this option is enabled, it indicates NAND flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-};
-
-# i.MX platform SPI NOR flash memory support
-# When this option is enabled, it indicates SPI NOR flash is
-# supported on the i.MX platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #   --> 0
-};
-
-# MXC platform ATA support
-# When this option is enabled, it indicates ATA is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_ATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use a flash based Bad Block Table
-#
-cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH {
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# When this option is enabled, the driver will search for a flash
-# based bad block table
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# header file defining the NAND BBT descriptor
-# defines the name of the header file that describes the BBT layout
-#
-cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Number of blocks to reserve for BBT
-# Number of blocks to reserve for BBT
-#
-cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# <
-# MXC platform multi flash memory support
-# When this option is enabled, it indicates multi flashes are
-# supported on the MXC platforms (like NAND and NOR)
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
-    # This option is not active
-    # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# MXC platform NAND flash reset workaround support
-# When this option is enabled, it indicates 0xFFFF is used for
-# the NAND reset command instead of 0xFF.
-#
-cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# Dynamic memory allocation
-# doc: ref/memalloc.html
-# This package provides memory allocator infrastructure required for
-# dynamic memory allocators, including the ISO standard malloc
-# interface. It also contains some sample implementations.
-#
-cdl_package CYGPKG_MEMALLOC {
-    # 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
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     Requires: CYGPKG_MEMALLOC
-};
-
-# >
-# Memory allocator implementations
-# This component contains configuration options related to the 
-# various memory allocators available.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATORS {
-    # There is no associated value.
-};
-
-# >
-# Fixed block allocator
-# This component contains configuration options related to the 
-# fixed block memory allocator.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Simple variable block allocator
-# This component contains configuration options related to the 
-# simple variable block memory allocator. This allocator is not
-# very fast, and in particular does not scale well with large
-# numbers of allocations. It is however very compact in terms of
-# code size and does not have very much overhead per allocation.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are added that allow a thread to wait until memory
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Coalesce memory
-# The variable-block memory allocator can perform coalescing
-# of memory whenever the application code releases memory back
-# to the pool. This coalescing reduces the possibility of
-# memory fragmentation problems, but involves extra code and
-# processor cycles.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE {
-    # 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 CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-};
-
-# <
-# Doug Lea's malloc
-# This component contains configuration options related to the 
-# port of Doug Lea's memory allocator, normally known as
-# dlmalloc. dlmalloc has a reputation for being both fast
-# and space-conserving, as well as resisting fragmentation well.
-# It is a common choice for a general purpose allocator and
-# has been used in both newlib and Linux glibc.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC {
-    # There is no associated value.
-};
-
-# >
-# Debug build
-# Doug Lea's malloc implementation has substantial amounts
-# of internal checking in order to verify the operation
-# and consistency of the allocator. However this imposes
-# substantial overhead on each operation. Therefore this
-# checking may be individually disabled.
-#
-cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGDBG_USE_ASSERTS 
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Support more than one instance
-# Having this option disabled allows important
-# implementation structures to be declared as a single
-# static instance, allowing faster access. However this
-# would fail if there is more than one instance of
-# the dlmalloc allocator class. Therefore this option can
-# be enabled if multiple instances are required. Note: as
-# a special case, if this allocator is used as the
-# implementation of malloc, and it can be determined there
-# is more than one malloc pool, then this option will be
-# silently enabled.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use system memmove() and memset()
-# This may be used to control whether memset() and memmove()
-# are used within the implementation. The alternative is
-# to use some macro equivalents, which some people report
-# are faster in some circumstances.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA 
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# Minimum alignment of allocated blocks
-# This option controls the minimum alignment that the
-# allocated memory blocks are aligned on, specified as
-# 2^N. Note that using large mininum alignments can lead
-# to excessive memory wastage.
-#
-cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 3 to 10
-};
-
-# <
-# Variable block allocator with separate metadata
-# This component contains configuration options related to the 
-# variable block memory allocator with separate metadata.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# Kernel C API support for memory allocation
-# This option must be enabled to provide the extensions required
-# to support integration into the kernel C API.
-#
-cdl_option CYGFUN_MEMALLOC_KAPI {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C (unknown) == 0
-    #   --> 0
-};
-
-# malloc(0) returns NULL
-# This option controls the behavior of malloc(0) ( or calloc with
-# either argument 0 ). It is permitted by the standard to return
-# either a NULL pointer or a unique pointer. Enabling this option
-# forces a NULL pointer to be returned.
-#
-cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Breakpoint site when running out of memory
-# Whenever the system runs out of memory, it invokes this function
-# before either going to sleep waiting for memory to become 
-# available or returning failure.
-#
-cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# malloc() and supporting allocators
-# This component enables support for dynamic memory
-# allocation as supplied by the functions malloc(),
-# free(), calloc() and realloc(). As these
-# functions are often used, but can have quite an
-# overhead, disabling them here can ensure they
-# cannot even be used accidentally when static
-# allocation is preferred. Within this component are
-# various allocators that can be selected for use
-# as the underlying implementation of the dynamic
-# allocation functions.
-#
-cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS {
-    # ActiveIf constraint: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use external heap definition
-# This option allows other components in the
-# system to override the default system
-# provision of heap memory pools. This should
-# be set to a header which provides the equivalent
-# definitions to <pkgconf/heaps.hxx>.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Use external implementation of joining multiple heaps
-# The default implementation of joining multiple heaps
-# is fine for the case where there are multiple disjoint
-# memory regions of the same type. However, in a system
-# there might be e.g. a small amount of internal SRAM and
-# a large amount of external DRAM. The SRAM is faster and
-# the DRAM is slower. An application can implement some 
-# heuristic to choose which pool to allocate from. This
-# heuristic can be highly application specific.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# malloc() allocator implementations
-#
-cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS {
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-    #     CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS
-    #     Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-};
-
-# malloc() implementation instantiation data
-# Memory allocator implementations that are capable of being
-# used underneath malloc() must be instantiated. The code
-# to do this is set in this option. It is only intended to
-# be set by the implementation, not the user.
-#
-cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value <cyg/memalloc/dlmalloc.hxx>
-    # value_source default
-    # Default value: <cyg/memalloc/dlmalloc.hxx>
-
-    # The following properties are affected by this value
-    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-};
-
-# Simple variable block implementation
-# This causes malloc() to use the simple
-# variable block allocator.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 0
-    # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-    #     CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1
-    #   --> 1
-};
-
-# Doug Lea's malloc implementation
-# This causes malloc() to use a version of Doug Lea's
-# malloc (dlmalloc) as the underlying implementation.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 1
-};
-
-# <
-# Size of the fallback dynamic memory pool in bytes
-# If *no* heaps are configured in your memory layout,
-# dynamic memory allocation by
-# malloc() and calloc() must be from a fixed-size,
-# contiguous memory pool (note here that it is the
-# pool that is of a fixed size, but malloc() is still
-# able to allocate variable sized chunks of memory
-# from it). This option is the size
-# of that pool, in bytes. Note that not all of
-# this is available for programs to
-# use - some is needed for internal information
-# about memory regions, and some may be lost to
-# ensure that memory allocation only returns
-# memory aligned on word (or double word)
-# boundaries - a very common architecture
-# constraint.
-#
-cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16384
-    # value_source default
-    # Default value: 16384
-    # Legal values: 32 to 0x7fffffff
-};
-
-# Common memory allocator package 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_MEMALLOC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_MEMALLOC_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_MEMALLOC_TESTS {
-    # Calculated value:  "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" 
-    # Flavor: data
-    # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2
-};
-
-# <
-# <
-# Common error code support
-# This package contains the common list of error and
-# status codes. It is held centrally to allow
-# packages to interchange error codes and status
-# codes in a common way, rather than each package
-# having its own conventions for error/status
-# reporting. The error codes are modelled on the
-# POSIX style naming e.g. EINVAL etc. This package
-# also provides the standard strerror() function to
-# convert error codes to textual representation, as
-# well as an implementation of the errno idiom.
-#
-cdl_package CYGPKG_ERROR {
-    # 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:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
-    #   --> 1
-};
-
-# >
-# errno variable
-# This package controls the behaviour of the
-# errno variable (or more strictly, expression)
-# from <errno.h>.
-#
-cdl_component CYGPKG_ERROR_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
-    #   --> 1
-};
-
-# >
-# Per-thread errno
-# This option controls whether the standard error
-# code reporting variable errno is a per-thread
-# variable, rather than global.
-#
-cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the errno
-# retrieval mechanism in errno.cxx. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strerror function
-# This package controls the presence and behaviour of the
-# strerror() function from <string.h>
-#
-cdl_option CYGPKG_ERROR_STRERROR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
-    #   --> 1
-};
-
-# Error package 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_ERROR_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the error package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_ERROR_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 error package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# I2C driver for FSL MXC-based platforms
-#
-cdl_package CYGPKG_DEVS_MXC_I2C {
-    # 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
-};
-
-# ipu driver for mxc
-#
-cdl_package CYGPKG_DEVS_IMX_IPU {
-    # 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
-    # option CYGHWR_MX53_LCD_LOGO
-    #     ActiveIf:  CYGPKG_DEVS_IMX_IPU 
-};
-
-# >
-# IPU version 3EX support
-# When this option is enabled, it indicates the IPU version
-# is 3EX
-#
-cdl_option CYGHWR_DEVS_IPU_3_EX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-};
-
-# IPU version 3D support
-# When this option is enabled, it indicates the IPU version
-# is 3D
-#
-cdl_option CYGHWR_DEVS_IPU_3_D {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
diff --git a/config/TX53-1x31.ecc b/config/TX53-1x31.ecc
deleted file mode 100644 (file)
index 0d13a54..0000000
+++ /dev/null
@@ -1,10426 +0,0 @@
-# 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    tx53karo ;
-    template    redboot ;
-    package -hardware CYGPKG_HAL_ARM current ;
-    package -hardware CYGPKG_HAL_ARM_MX53 current ;
-    package -hardware CYGPKG_HAL_ARM_TX53KARO current ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_REDBOOT current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_CRC current ;
-    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
-    package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ;
-    package -hardware CYGPKG_DEVS_ETH_FEC current ;
-    package -hardware CYGPKG_COMPRESS_ZLIB current ;
-    package -hardware CYGPKG_IO_FLASH current ;
-    package -hardware CYGPKG_DEVS_FLASH_ONMXC current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_DEVS_ETH_PHY current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_DEVS_MXC_I2C current ;
-    package -hardware CYGPKG_DEVS_IMX_IPU current ;
-};
-
-# ---- conflicts -------------------------------------------------------
-# There are no conflicts.
-
-# ---- contents --------------------------------------------------------
-# >
-# >
-# 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.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
-};
-
-# 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
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
-    #   --> 1
-
-    # 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 "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-    # value_source default
-    # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-};
-
-# 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
-};
-
-# <
-# ISO C library string functions
-# doc: ref/libc.html
-# This package provides string functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STRING {
-    # 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:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Inline versions of <string.h> functions
-# This option chooses whether some of the
-# particularly simple string functions from
-# <string.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_STRING_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Optimize string functions for code size
-# This option tries to reduce string function
-# code size at the expense of execution speed. The
-# same effect can be produced if the code is
-# compiled with the -Os option to the compiler.
-#
-cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide BSD compatibility functions
-# Enabling this option causes various compatibility functions
-# commonly found in the BSD UNIX operating system to be included.
-# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
-# strncasecmp, index, rindex and swab.
-#
-cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-};
-
-# strtok
-# These options control the behaviour of the
-# strtok() and strtok_r() string tokenization
-# functions.
-#
-cdl_component CYGPKG_LIBC_STRING_STRTOK {
-    # There is no associated value.
-};
-
-# >
-# Per-thread strtok()
-# This option controls whether the string function
-# strtok() has its state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard strtok_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the <string.h>
-# functions strtok() and strtok_r(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strdup
-# This option indicates whether strdup() is to be supported.
-#
-cdl_option CYGFUN_LIBC_STRING_STRDUP {
-    # ActiveIf constraint: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# C library string functions 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_LIBC_STRING_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library string function tests
-# This option specifies the set of tests for the C library
-# string functions.
-#
-cdl_option CYGPKG_LIBC_STRING_TESTS {
-    # Calculated value:  "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" 
-    # Flavor: data
-    # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2
-};
-
-# <
-# <
-# Common ethernet support
-# doc: ref/io-eth-drv-generic.html
-# Platform independent ethernet drivers
-#
-cdl_package CYGPKG_IO_ETH_DRIVERS {
-    # 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
-    # component CYGPKG_REDBOOT_NETWORKING
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_ARM_TX53
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_PHY
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-};
-
-# >
-# Network drivers
-#
-cdl_interface CYGHWR_NET_DRIVERS {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-    # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-};
-
-# Driver supports multicast addressing
-# This interface defines whether or not a driver can handle
-# requests for multicast addressing.
-#
-cdl_interface CYGINT_IO_ETH_MULTICAST {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Support printing driver debug information
-# Selecting this option will include code to allow the driver to
-# print lots of information on diagnostic output such as full
-# packet dumps.
-#
-cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Driver debug output verbosity
-# The value of this option indicates the default verbosity
-# level of debugging output. 0 means no debugging output
-# is made by default. Higher values indicate higher verbosity.
-# The verbosity level may also be changed at run time by
-# changing the variable cyg_io_eth_net_debug.
-#
-cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Size of scatter-gather I/O lists
-# A scatter-gather list is used to pass requests to/from
-# the physical device driver.  This list can typically be
-# small, as the data is normally already packed into reasonable
-# chunks.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# Support for standard eCos TCP/IP stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_NET {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Warn when there are no more mbufs
-# Warnings about running out of mbufs are printed to the
-# diagnostic output channel via diag_printf() if this option
-# is enabled.  Mbufs are the network stack's basic dynamic
-# memory objects that hold all packets in transit; running
-# out is bad for performance but not fatal, not a crash.
-# You might want to turn off the warnings to preserve realtime
-# properties of the system even in extremis.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Simulate network failures for testing
-# This package contains a suite of simulated failure modes
-# for the ethernet device layer, including dropping and/or
-# corrupting received packets, dropping packets queued for
-# transmission, and simulating a complete network break.
-# It requires the kernel as a source of time information.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Drop incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Corrupt incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Drop outgoing packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Simulate a line cut from time to time
-# This option causes the system to drop all packets for a
-# short random period (10s of seconds), and then act
-# normally for up to 4 times that long.  This simulates your
-# sysadmin fiddling with plugs in the network switch
-# cupboard.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# Support for stand-alone network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE {
-    # ActiveIf constraint: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Pass packets to an alternate stack
-# Define this to allow packets seen by this layer to be
-# passed on to the previous logical layer, i.e. when
-# stand-alone processing replaces system (eCos) processing.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_REDBOOT_NETWORKING 
-    #     CYGPKG_REDBOOT_NETWORKING == 1
-    #   --> 1
-};
-
-# Number of [network] buffers
-# This option is used to allocate space to buffer incoming network
-# packets.  These buffers are used to hold data until they can be
-# logically processed by higher layers.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 2 to 32
-};
-
-# Show driver warnings
-# Selecting this option will allows the stand-alone ethernet driver
-# to display warnings on the system console when incoming network
-# packets are being discarded due to lack of buffer space.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_WARN {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support for lwIP network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET_LWIP
-    #     CYGPKG_NET_LWIP (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-};
-
-# Interrupt support required
-# This interface is used to indicate to the low
-# level device drivers that interrupt driven operation
-# is required by higher layers.
-#
-cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED {
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Common ethernet support build options
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the common ethernet support package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# Ethernet driver for Ka-Ro electronics TX53 processor module
-#
-cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# FEC ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED
-};
-
-# Ka-Ro TX53 ethernet port driver
-# This option includes the ethernet device driver for the
-# MXC Board port.
-#
-cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-    # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-    #     CYGHWR_DEVS_ETH_PHY_LAN8700 == 1
-    #   --> 1
-};
-
-# >
-# Device name for the ETH0 ethernet driver
-# This option sets the name of the ethernet device.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# OUI part of MAC address
-# This option sets OUI part (manufacturer ID) of the MAC address
-# for validation.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
-    # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ 0x00, 0x0c, 0xc6 }"
-    # value_source default
-    # Default value: "{ 0x00, 0x0c, 0xc6 }"
-};
-
-# <
-# <
-# Driver for fast ethernet controller.
-# Driver for fast ethernet controller.
-#
-cdl_package CYGPKG_DEVS_ETH_FEC {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED
-    #     CYGINT_DEVS_ETH_FEC_REQUIRED == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC FEC ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Cirrus Logic ethernet driver package.
-# These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# MXC FEC MII Gasket for RMII mode
-# This option enables the use of the MII Gasket for
-# RMII mode found in i.MX25 and i.MX53 processors.
-#
-cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK {
-    # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Ethernet transceiver (PHY) support
-# API for ethernet PHY devices
-#
-cdl_package CYGPKG_DEVS_ETH_PHY {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-};
-
-# >
-# Enable driver debugging
-# Enables the diagnostic debug messages on the
-# console device.
-#
-cdl_option CYGDBG_DEVS_ETH_PHY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time period (seconds) to wait for auto-negotiation
-# The length of time to wait for auto-negotiation to complete
-# before giving up and declaring the link dead/missing.
-#
-cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-};
-
-# NSDP83847
-# Include support for National Semiconductor DP83847 DsPHYTER II
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# AMD 79C874
-# Include support for AMD 79C874 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Intel LXT972
-# Include support for Intel LXT972xxx PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1890
-# Include support for ICS 1890 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1892
-# Include support for ICS 1892 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1893
-# Include support for ICS 1893 and 1893AF PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Davicom DM9161A
-# Include support for the Davicom DM9161A PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Micrel KS8721
-# Include support for the Micrel KS8721 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# SMSC LAN8700
-# Include support for SMSC LAN8700 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-};
-
-# <
-# <
-# ISO C library internationalization functions
-# doc: ref/libc.html
-# This package provides internationalization functions specified by the
-# ISO C standard - ISO/IEC 9899:1990. These include locale-related
-# functionality and <ctype.h> functionality.
-#
-cdl_package CYGPKG_LIBC_I18N {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Supported locales
-# These options determine which locales other than the "C" locale
-# are supported and hence contribute to the size of the executable.
-#
-cdl_component CYGPKG_LIBC_I18N_LOCALES {
-    # There is no associated value.
-};
-
-# >
-# Support for multiple locales required
-#
-cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-    #     CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-};
-
-# C-SJIS locale support
-# This option controls if the "C-SJIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese SJIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-JIS locale support
-# This option controls if the "C-JIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese JIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-EUCJP locale support
-# This option controls if the "C-EUCJP" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese EUCJP multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# <
-# Newlib's ctype implementation
-# This option enables the implementation of the ctype functions
-# that comes with newlib. It is table driven and therefore
-# exhibits different performance characteristics. It also offers
-# a limited amount of binary compatibility
-# with newlib so that programs linked against newlib ctype/locale
-# do not need to be recompiled when linked with eCos.
-#
-cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 0
-};
-
-# Per-thread multibyte state
-# This option controls whether the multibyte character
-# handling functions mblen(), mbtowc(), and wctomb(),
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Enabling this option will use three slots
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Size of locale name strings
-# This option controls the maximum size of
-# locale names and is used, among other things
-# to instantiate a static string used
-# as a return value from the
-# setlocale() function. When requesting the
-# current locale settings with LC_ALL, a string
-# must be constructed to contain this data, rather
-# than just returning a constant string. This
-# string data is stored in the static string.
-# This depends on the length of locale names,
-# hence this option. If just the C locale is
-# present, this option can be set as low as 2.
-#
-cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-    #   --> 2
-    # Legal values:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-};
-
-# Inline versions of <ctype.h> functions
-# This option chooses whether the simple character
-# classification and conversion functions (e.g.
-# isupper(), isalpha(), toupper(), etc.)
-# from <ctype.h> are available as inline
-# functions. This may improve performance and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 1
-};
-
-# C library i18n functions 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_LIBC_I18N_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library i18n function tests
-# This option specifies the set of tests for the C library
-# i18n functions.
-#
-cdl_option CYGPKG_LIBC_I18N_TESTS {
-    # Calculated value:  "tests/ctype tests/setlocale tests/i18nmb" 
-    # Flavor: data
-    # Current_value: tests/ctype tests/setlocale tests/i18nmb
-};
-
-# <
-# <
-# ISO C library general utility functions
-# doc: ref/libc.html
-# This package provides general utility functions in <stdlib.h>
-# as specified by the ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Inline versions of <stdlib.h> functions
-# This option chooses whether some of the
-# particularly simple standard utility functions
-# from <stdlib.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_component CYGIMP_LIBC_STDLIB_INLINES {
-    # There is no associated value.
-};
-
-# >
-# abs() / labs()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
-    #   --> 1
-};
-
-# div() / ldiv()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
-    #   --> 1
-};
-
-# atof() / atoi() / atol()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
-    #   --> 1
-};
-
-# <
-# Random number generation
-# These options control the behaviour of the
-# functions rand(), srand() and rand_r()
-#
-cdl_component CYGPKG_LIBC_RAND {
-    # There is no associated value.
-};
-
-# >
-# Per-thread random seed
-# doc: ref/libc-thread-safety.html
-# This option controls whether the pseudo-random
-# number generation functions rand() and srand()
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard rand_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Random number seed
-# This selects the initial random number seed for
-# rand()'s pseudo-random number generator. For
-# strict ISO standard compliance, this should be 1,
-# as per section 7.10.2.2 of the standard.
-#
-cdl_option CYGNUM_LIBC_RAND_SEED {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 0 to 0x7fffffff
-};
-
-# Tracing level
-# Trace verbosity level for debugging the rand(),
-# srand() and rand_r() functions. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# Simplest implementation
-# This provides a very simple implementation of rand()
-# that does not perform well with randomness in the
-# lower significant bits. However it is exceptionally
-# fast. It uses the sample algorithm from the ISO C
-# standard itself.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple implementation #1
-# This provides a very simple implementation of rand()
-# based on the simplest implementation above. However
-# it does try to work around the lack of randomness
-# in the lower significant bits, at the expense of a
-# little speed.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Knuth implementation #1
-# This implements a slightly more complex algorithm
-# published in Donald E. Knuth's Art of Computer
-# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
-# This produces better random numbers than the
-# simplest approach but is slower.
-#
-cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# <
-# Provides strtod()
-# This option allows use of the utility function
-# strtod() (and consequently atof()) to convert
-# from string to double precision floating point
-# numbers. Disabling this option removes the
-# dependency on the math library package.
-#
-cdl_option CYGFUN_LIBC_strtod {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-};
-
-# Provides long long conversion functions
-# Enabling this option will provide support for the strtoll(),
-# strtoull() and atoll() conversion functions, which are
-# the long long variants of the standard versions of these
-# functions. Supporting this requires extra code and compile
-# time.
-#
-cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# bsearch() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# binary search function bsearch(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# qsort() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# quicksort function qsort(). Increase this value
-# to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# C library stdlib 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_LIBC_STDLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_LIBC_STDLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library stdlib tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STDLIB_TESTS {
-    # Calculated value:  "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" 
-    # Flavor: data
-    # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul
-};
-
-# <
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-};
-
-# >
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-};
-
-# 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 (unknown) == 0
-    #   --> 0
-};
-
-# 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 == ROMRAM
-    #   --> 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 {
-    # 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 == current
-    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
-    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #   --> 1
-
-    # 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 == ROMRAM
-    #   --> 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 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_REDBOOT
-    #     Requires:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-};
-
-# 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 32768
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 32768
-    # 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-};
-
-# 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 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
-    # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
-    #     Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1
-    #   --> 1
-
-    # 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
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 == 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
-
-    # The following properties are affected by this value
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 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 CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     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.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Target has virtual vector support
-#
-cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE
-    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    # package CYGPKG_DEVS_ETH_PHY
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-};
-
-# >
-# 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
-    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 0
-
-    # 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 {
-    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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 == ROMRAM
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 1
-
-    # 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
-    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 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 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 1
-};
-
-# 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 1
-
-    # 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 {
-    # 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 
-};
-
-# <
-# Behave as a ROM monitor
-# Enable this option if this program is to be used as a ROM monitor,
-# i.e. applications will be loaded into RAM on the TX53 module, and this
-# ROM monitor may process exceptions or interrupts generated from the
-# application. This enables features such as utilizing a separate
-# interrupt stack when exceptions are generated.
-#
-cdl_option CYGSEM_HAL_ROM_MONITOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-};
-
-# Work with a ROM monitor
-# Support can be enabled for different varieties of ROM monitor.
-# This support changes various eCos semantics such as the encoding
-# of diagnostic output, or the overriding of hardware interrupt
-# vectors.
-# Firstly there is "Generic" support which prevents the HAL
-# from overriding the hardware vectors that it does not use, to
-# instead allow an installed ROM monitor to handle them. This is
-# the most basic support which is likely to be common to most
-# implementations of ROM monitor.
-# "GDB_stubs" provides support when GDB stubs are included in
-# the ROM monitor or boot ROM.
-#
-cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
-    #     ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR 
-};
-
-# <
-# 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
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_DISK_IDE
-    #     ActiveIf:  CYGINT_HAL_PLF_IF_IDE != 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 == 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 == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache tests/intr
-};
-
-# >
-# 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 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" : "") 
-};
-
-# <
-# ARM architecture
-# The ARM architecture HAL package provides generic
-# support for this processor architecture. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM {
-    # 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
-    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
-    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
-    # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     ActiveIf: CYGPKG_HAL_ARM
-};
-
-# >
-# The CPU architecture supports THUMB mode
-#
-cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
-    # 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 CYGHWR_THUMB
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-};
-
-# Enable Thumb instruction set
-# Enable use of the Thumb instruction set.
-#
-cdl_option CYGHWR_THUMB {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # 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 CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-};
-
-# Enable Thumb interworking compiler option
-# This option controls the use of -mthumb-interwork in the
-# compiler flags. It defaults enabled in Thumb or ROM monitor
-# configurations, but can be overridden for reduced memory
-# footprint where interworking is not a requirement.
-#
-cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    #     CYGHWR_THUMB == 0
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# The platform and architecture supports Big Endian operation
-#
-cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
-    # 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 CYGHWR_HAL_ARM_BIGENDIAN
-    #     ActiveIf:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-};
-
-# Use big-endian mode
-# Use the CPU in big-endian mode.
-#
-cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-    #     CYGINT_HAL_ARM_BIGENDIAN == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# The platform uses a processor with an ARM7 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with an ARM9 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a StrongARM core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a XScale core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# ARM CPU family
-# It is possible to optimize code for different
-# ARM CPU families. This option selects which CPU to
-# optimize for on boards that support multiple CPU types.
-#
-cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ARM9
-    # value_source default
-    # Default value:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-    #   --> ARM9
-    # Legal values:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-};
-
-# Provide diagnostic dump for exceptions
-# Print messages about hardware exceptions, including
-# raw exception frame dump and register contents.
-#
-cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
-    # 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
-    #   --> 1
-};
-
-# Process all exceptions with the eCos application
-# Normal RAM-based programs which do not include GDB stubs 
-# defer processing of the illegal instruction exception to GDB.
-# Setting this options allows the program to explicitly handle
-# the illegal instruction exception itself.  Note: this will
-# prevent the use of GDB to debug the application as breakpoints
-# will no longer work.
-#
-cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support GDB thread operations via ICE/Multi-ICE
-# Allow GDB to get thread information via the ICE/Multi-ICE
-# connection.
-#
-cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
-    # 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
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
-    #   --> 0
-};
-
-# Support for 'gprof' callbacks
-# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
-# to acquire the interrupt-context PC and SP, when this option is
-# active.
-#
-cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS == 0
-    #   --> 0
-    # ActiveIf constraint:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Accept exceptions and irq's occurring in user mode
-# For standalone Redboot based programs running in user mode.
-#
-cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Preserve svc spsr before returning to svc mode
-# This option secures exception and breakpoint processing
-# triggered during execution of application specific SWI
-# handlers.
-#
-cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Linker script
-#
-cdl_option CYGBLD_LINKER_SCRIPT {
-    # Calculated value:  "src/arm.ld" 
-    # Flavor: data
-    # Current_value: src/arm.ld
-};
-
-# Implementations of hal_arm_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Freescale SoC architecture
-# This HAL variant package provides generic
-# support for the Freescale SoC. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM_MX53 {
-    # 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
-    # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK
-    #     ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-};
-
-# >
-# Processor clock rate
-# The processor can run at various frequencies.
-# These values are expressed in KHz.  Note that there are
-# several steppings of the rate to run at different
-# maximum frequencies.  Check the specs to make sure that your
-# particular processor can run at the rate you select here.
-#
-cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
-    # This option is not active
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 150000
-    # value_source default
-    # Default value:  CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
-    #                             CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #   --> 150000
-    # Legal values: 150000 200000
-};
-
-# Real-time clock constants
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Calculated value: 1000000000
-    # Flavor: data
-    # Current_value: 1000000000
-};
-
-# Real-time clock denominator
-# This option selects the heartbeat rate for the real-time clock.
-# The rate is specified in ticks per second.  Change this value
-# with caution - too high and your system will become saturated
-# just handling clock interrupts, too low and some operations
-# such as thread scheduling may become sluggish.
-#
-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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_RTC_PERIOD
-    #     Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    # Flavor: data
-    # Current_value: 36864
-};
-
-# <
-# UART1 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART1 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART2 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART2 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART3 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART3 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART4 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART4 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART5 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART5 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Ka-Ro TX53 module
-# This HAL platform package provides generic
-# support for the Ka-Ro electronics TX53 module.
-#
-cdl_package CYGPKG_HAL_ARM_TX53KARO {
-    # 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: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGBLD_BUILD_REDBOOT == 1
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-};
-
-# >
-# Startup type
-# The only startup type allowed is ROMRAM, since this will allow
-# the program to exist in ROM, but be copied to RAM during startup
-# which is required to boot from NAND flash.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ROMRAM
-    # value_source default
-    # Default value: ROMRAM
-    # Legal values:  "ROMRAM" "RAM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     DefaultValue:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "RAM" 
-    # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" 
-    # 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 
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     ActiveIf:  CYG_HAL_STARTUP != "RAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the console port.
-# Note: this should match the value chosen for the GDB port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option selects the baud rate used for the GDB port.
-# Note: this should match the value chosen for the console port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the TX53
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Calculated value: 5
-    # Flavor: data
-    # Current_value: 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-};
-
-# Debug serial port
-# The TX53 provides access to five serial ports. This option
-# chooses which port will be used to connect to a host
-# running GDB.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Console serial port
-# The TX53 provides access to three serial ports. This option
-# chooses which port will be used for console output.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0
-    #   --> 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Ka-Ro electronics TX53 module 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_HAL_ARM_TX53_OPTIONS {
-    # There is no associated value.
-    # Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-};
-
-# >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    user_value 3
-    # value_source user
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
-# SDRAM size
-# This option specifies the SDRAM size of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
-    # Flavor: data
-    user_value 0x40000000
-    # value_source user
-    # Default value: 0x20000000
-    # Legal values:  0x40000000 0x20000000 
-};
-
-# CPU clock
-# This option specifies the CPU clock in MHz of the TX51 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # value_source default
-    # Default value: 1000
-    # Legal values:  800 1000 
-};
-
-# Enable low level debugging with LED
-# This option enables low level debugging by blink codes
-# of the LED on STK5.
-#
-cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  false 
-    #     false (unknown) == 0
-    #   --> 0
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the TX53 HAL. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_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 TX53 HAL. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Show a splash screen from the FIS partition: 'logo'
-# When this option is enabled, RedBoot will look for a flash partition
-# named 'logo' and display the contents of this partition as initial
-# screen on the LCD
-#
-cdl_option CYGHWR_MX53_LCD_LOGO {
-    # ActiveIf constraint:  CYGPKG_DEVS_IMX_IPU 
-    #     CYGPKG_DEVS_IMX_IPU == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 400
-    # value_source default
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
-# <
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  "arm_tx53_romram" 
-    # Flavor: data
-    # Current_value: arm_tx53_romram
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
-};
-
-# <
-# <
-# <
-# <
-# <
-# 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-    # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-};
-
-# >
-# 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
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != 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
-};
-
-# >
-# 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
-};
-
-# 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
-};
-
-# 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
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer on assert fail
-# When an assertion fails the trace buffer will be 
-# printed to the default diagnostic device.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT {
-    # 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
-};
-
-# <
-# Use function names
-# All trace and assert calls within eCos contain a
-# reference to the builtin macro '__PRETTY_FUNCTION__',
-# which evaluates to a string containing
-# the name of the current function.
-# This is useful when reading a trace log.
-# It is possible to suppress the use of the function name
-# 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_FUNCTION_PSEUDOMACRO {
-    # 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
-};
-
-# <
-# Startup options
-# Some packages require a startup routine to be called.
-# This can be carried out by application code, by supplying
-# a routine called cyg_package_start() which calls the
-# appropriate package startup routine(s).
-# Alternatively, this routine can be constructed automatically
-# and configured to call the startup routines of your choice.
-#
-cdl_component CYGPKG_INFRA_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# Start uITRON subsystem
-# Generate a call to initialize the
-# uITRON compatibility subsystem
-# within the system version of cyg_package_start().
-# This enables compatibility with uITRON.
-# You must configure uITRON with the correct tasks before
-# starting the uItron subsystem.
-# If this is disabled, and you want to use uITRON,
-# you must call cyg_uitron_start() from your own
-# cyg_package_start() or cyg_userstart().
-#
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_UITRON
-    #     CYGPKG_UITRON (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: CYGPKG_UITRON
-    #     CYGPKG_UITRON (unknown) == 0
-    #   --> 0
-};
-
-# <
-# Smaller slower memcpy()
-# Enabling this option causes the implementation of
-# the standard memcpy() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memcpy() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Smaller slower memset()
-# Enabling this option causes the implementation of
-# the standard memset() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memset() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide empty C++ delete functions
-# To deal with virtual destructors, where the correct delete()
-# function must be called for the derived class in question, the
-# underlying delete is called when needed, from destructors.  This
-# is regardless of whether the destructor is called by delete itself.
-# So there is a reference to delete() from all destructors.  The
-# default builtin delete() attempts to call free() if there is
-# one defined.  So, if you have destructors, and you have free(),
-# as in malloc() and free(), any destructor counts as a reference
-# to free().  So the dynamic memory allocation code is linked
-# in regardless of whether it gets explicitly called. This
-# increases code and data size needlessly.
-# To defeat this undesirable behaviour, we define empty versions
-# of delete and delete.  But doing this prevents proper use
-# of dynamic memory in C++ programs via C++'s new and delete
-# operators.
-# Therefore, this option is provided
-# for explicitly disabling the provision of these empty functions,
-# so that new and delete can be used, if that is what is required.
-#
-cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Threshold for valid number of delete calls
-# Some users don't know about the empty delete function and then
-# wonder why their C++ classes are leaking memory. If
-# INFRA_DEBUG is enabled we keep a counter for the number of
-# times delete is called. If it goes above this threshold we throw
-# an assertion failure. This should point heavy users of
-# delete in the right direction without upsetting those who want
-# an empty delete function. 
-#
-cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# Provide dummy abort() function
-# This option controls the inclusion of a dummy abort() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to abort(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. It is not expected that this function
-# will ever be called, so its current behaviour is to simply loop.
-#
-cdl_option CYGFUN_INFRA_DUMMY_ABORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-};
-
-# Reset platform at end of test case execution
-# If this option is set then test case programs will reset the platform
-# when they terminate, as opposed to the default which is to just hang
-# in a loop.
-#
-cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide dummy strlen() function
-# This option controls the inclusion of a dummy strlen() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to strlen(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. While it is not expected that this function
-# will ever be called, it is functional but uses the simplest, smallest
-# algorithm. There is a faster version of strlen() in the C library.
-#
-cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-};
-
-# Make all compiler warnings show as errors
-# Enabling this option will cause all compiler warnings to show
-# as errors and bring the library build to a halt. This is used
-# to ensure that the code base is warning free, and thus ensure
-# that newly introduced warnings stand out and get fixed before
-# they show up as weird run-time behavior.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-};
-
-# Make compiler and assembler communicate by pipe
-# Enabling this option will cause the compiler to feed the
-# assembly output the the assembler via a pipe instead of
-# via a temporary file. This normally reduces the build
-# time.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-};
-
-# Infra build options
-# Package specific build options including control over
-# compiler flags used only in building this package.
-#
-cdl_component CYGPKG_INFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Suppressed linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--gc-sections
-    # value_source default
-    # Default value: -Wl,--gc-sections
-};
-
-# Additional linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are added to
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--fatal-warnings
-    # value_source default
-    # Default value: -Wl,--fatal-warnings
-};
-
-# Infra package tests
-#
-cdl_component CYGPKG_INFRA_TESTS {
-    # Calculated value:  "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" 
-    # Flavor: data
-    # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2
-};
-
-# >
-# Number of times a test runs
-# This option controls the number of times tests will execute their
-# basic function.  Not all tests will honor this setting, but those
-# that do will execute the test N times before terminating.  A value
-# less than 0 indicates to run forever.
-#
-cdl_option CYGNUM_TESTS_RUN_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# <
-# Redboot ROM monitor
-# doc: ref/redboot.html
-# This package supports the Redboot [stand-alone debug monitor]
-# using eCos as the underlying board support mechanism.
-#
-cdl_package CYGPKG_REDBOOT {
-    # 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:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_ARM_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # option CYGSEM_IO_ETH_DRIVERS_WARN
-    #     ActiveIf: CYGPKG_REDBOOT
-};
-
-# >
-# Include support for ELF file format
-#
-cdl_component CYGSEM_REDBOOT_ELF {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use the virtual address in the ELF headers
-# The ELF headers contain both a virtual and a physical address
-# for where code/data should be loaded. By default the physical
-# address is used but sometimes it is necassary to use the
-# virtual address because of bugy toolchains
-#
-cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Methods of loading images using redboot
-#
-cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled
-    # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_REDBOOT_LOAD_METHOD
-};
-
-# Build Redboot ROM ELF image
-# This option enables the building of the Redboot ELF image.
-# The image may require further relocation or symbol
-# stripping before being converted to a binary image.
-# This is handled by a rule in the target CDL.
-#
-cdl_component CYGBLD_BUILD_REDBOOT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires: CYGPKG_INFRA
-    #     CYGPKG_INFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_REDBOOT_LOAD_METHOD
-    #     CYGINT_REDBOOT_LOAD_METHOD == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGBLD_BUILD_REDBOOT == 1
-    # option CYGBLD_BUILD_REDBOOT_BIN
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT
-};
-
-# >
-# Include GDB support in RedBoot
-# RedBoot normally includes support for the GDB debugging
-# protocols. This option allows this to be disabled which
-# may yield a substantial savings in terms of code and memory 
-# usage by RedBoot.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-};
-
-# Threads debugging support
-# Enabling this option will include special code in the
-# GDB stubs to support debugging of threaded programs.  In
-# the case of eCos programs, this support allows GDB to
-# have complete access to the eCos threads in the
-# program.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
-    # ActiveIf constraint:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # 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_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-};
-
-# Customized version string
-# Use this option to define a customized version "string" for
-# RedBoot.  Note: this value is only cosmetic, displayed by the
-# "version" command, but is useful for providing site specific
-# information about the RedBoot configuration.
-#
-cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 "Ka-Ro 2010-01-06"
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Enable command line editing
-# If this option is non-zero, RedBoot will remember the
-# last N command lines.  These lines may be reused.
-# Enabling this history will also enable rudimentary
-# editting of the lines themselves.
-#
-cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES
-    #     ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    # option CYGBLD_REDBOOT_CMD_LINE_HISTORY
-    #     Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-};
-
-# Enable command line editing using ANSI arrows, etc
-# If this option is enabled, RedBoot will accept standard ANSI key
-# sequences for cursor movement (along with the emacs style keys).
-#
-cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
-    # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Enable history command and expansion
-# Enabling this option will allow RedBoot to provide a
-# history command to list previous commands. Also enables
-# history expansion via '!'  character similar to bash
-# shell.
-#
-cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-};
-
-# Number of unique RAM segments on platform
-# Change this option to be the number of memory segments which are
-# supported by the platform.  If the value is greater than 1, then
-# a platform specific function must provide information about the
-# additional segments.
-#
-cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include support gzip/zlib decompression
-#
-cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
-    # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB
-    #     CYGPKG_COMPRESS_ZLIB == current
-    #   --> 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
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# >
-# Size of zlib decompression buffer
-# This is the size of the buffer filled with incoming data
-# during load before calls are made to the decompressor
-# function. For ethernet downloads this can be made bigger
-# (at the cost of memory), but for serial downloads on slow
-# processors it may be necessary to reduce the size to
-# avoid serial overruns. zlib appears to bail out if less 
-# than five bytes are available initially so this is the 
-# minimum.
-#
-cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 5 to 256
-};
-
-# Support compression of Flash images
-# This CDL indicates whether flash images can
-# be decompressed from gzip/zlib format into RAM.
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-    # ActiveIf constraint:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #     CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Include GZIP uncompress command
-# Enable this option to include a 'gunzip' command 
-# to uncompress GZIP compressed data.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Turn on CYGPRI_REDBOOT_ZLIB_FLASH
-# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-};
-
-# <
-# Include support for xyzModem downloads
-# doc: ref/download-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
-    # 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 CYGPKG_REDBOOT_CFLAGS_ADD
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_REDBOOT_CFLAGS_ADD {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-    #     CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-inline
-    # value_source default
-    # Default value: -Wno-inline
-};
-
-# Allow the load-command write into Flash.
-# Write images direct to Flash via the load command.
-# We assume anything which is invalid RAM is flash, hence
-# the requires statement
-#
-cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-    #     CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1
-    #   --> 1
-};
-
-# Include MS Windows CE support
-# doc: ref/wince.html
-# This option enables MS Windows CE EShell support
-# and Windows CE .BIN images support
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Include support for MXC USB downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include support for i.MX USB OTG downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include POSIX checksum command
-# doc: ref/cksum-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory fill command
-# doc: ref/mfill-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory compare command
-# doc: ref/mcmp-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory copy command
-# doc: ref/mcopy-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory dump command
-# doc: ref/dump-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include cache command
-# doc: ref/cache-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include exec command
-# doc: ref/exec-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
-    # 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_REDBOOT_ARM_LINUX_EXEC
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-};
-
-# Include I/O Memory commands 'iopeek' and 'iopoke'
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Granularity of timer/ticks
-# This option controls the granularity of the timers.
-# Faster CPUs can afford higher granularity (lower values)
-# which should give higher network performance since the stack
-# is purely polled.
-#
-cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 250
-    # value_source default
-    # Default value: 250
-    # Legal values:  10 25 50 100 250 500 1000 
-};
-
-# Redboot Networking
-# This option includes networking support in RedBoot.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING {
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 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_IO_ETH_DRIVERS_PASS_PACKETS
-    #     DefaultValue:  0 != CYGPKG_REDBOOT_NETWORKING 
-};
-
-# >
-# Print net debug information
-# This option is overriden by the configuration stored 
-# in flash.
-#
-cdl_option CYGDBG_REDBOOT_NET_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support TFTP for download
-# This option enables the use of the TFTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support HTTP for download
-# This option enables the use of the HTTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Default IP address
-# This IP address is the default used by RedBoot if
-# a BOOTP/DHCP server does not respond. The numbers
-# should be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# >
-# Do not try to use BOOTP
-# By default Redboot tries to use BOOTP to get an IP
-# address. If there's no BOOTP server on your network
-# use this option to avoid to wait until the
-# timeout. This option is overriden by the
-# configuration stored in flash.
-#
-cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Default bootp server
-# This IP address is the default server
-# address used by RedBoot if a BOOTP/DHCP
-# server does not respond. The numbers should
-# be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in
-# preference.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# Use DHCP to get IP information
-# Use DHCP protocol to obtain pertinent IP addresses, such 
-# as the client, server, gateway, etc.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
-    # 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 CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-    #     Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-};
-
-# Use a gateway for non-local IP traffic
-# Enabling this option will allow the RedBoot networking
-# stack to use a [single] gateway to reach a non-local
-# IP address.  If disabled, RedBoot will only be able to
-# reach nodes on the same subnet.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-    #     CYGSEM_REDBOOT_NETWORKING_DHCP == 1
-    #   --> 1
-};
-
-# >
-# Default gateway IP address
-# This IP address is the default used by RedBoot
-# if a BOOTP/DHCP server does not respond. The
-# numbers should be separated by *commas*, and
-# not dots. If an IP address is configured into
-# the Flash configuration, that will be used in
-# preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# Default IP address mask
-# This IP address mask is the default used by
-# RedBoot if a BOOTP/DHCP server does not
-# respond. The numbers should be separated by
-# *commas*, and not dots. If an IP address is
-# configured into the Flash configuration, that
-# will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# TCP port to listen for incoming connections
-# RedBoot will 'listen' on this port for incoming TCP 
-# connections. This allows outside connections to be made 
-# to the platform, either for GDB or RedBoot commands.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 9000
-    # value_source default
-    # Default value: 9000
-};
-
-# Number of [network] packet buffers
-# RedBoot may need to buffer network data to support
-# various connections.  This option allows control
-# over the number of such buffered packets, and in
-# turn, controls the amount of memory used by RedBoot
-# (which is not available to user applications).
-# Each packet buffer takes up about 1514 bytes.
-# Note: there is little need to make this larger than
-# the default.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 3 to 8
-};
-
-# DNS support
-# When this option is enabled, RedBoot will be built with
-# support for DNS, allowing use of hostnames on the command
-# line.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NS_DNS
-    #     CYGPKG_NS_DNS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NS_DNS_BUILD
-    #     CYGPKG_NS_DNS_BUILD (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Default DNS IP
-# This option sets the IP of the default DNS. The IP can be
-# changed at runtime as well.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-    # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0.0.0.0
-    # value_source default
-    # Default value: 0.0.0.0
-};
-
-# Timeout in DNS lookup
-# This option sets the timeout used when looking up an
-# address via the DNS. Default is 10 seconds.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Support the use of a domain name
-# This option controls if Redboot supports domain
-# names when performing DNS lookups
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Default DNS domain
-# This option sets the default DNS domain name.
-# This value will be overwritten by the value in
-# flash or a domain returned by DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Get DNS domain from Flash
-# This option enables getting the domain name 
-# from the flash configuration. This can later be 
-# overwritten by a value learnt from DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-    # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use DNS domain from DHCP
-# This option enables the use of the domain name
-# returned by DHCP.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# BOOTP/DHCP DNS domain buffer size
-# This options sets the size of the static
-# buffer used by BOOTP/DHCP to store the DNS
-# domain name. The domain name will not be
-# set if the buffer is too small to hold it.
-#
-cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# <
-# <
-# Default network device driver
-# This is the name of the default network device to use.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"\""
-    # value_source default
-    # Default value: "\"\""
-};
-
-# Initialize only one net device
-# This option tells RedBoot to stop initializing network
-# devices when it finds the first device which is
-# successfully initialized. The default behavior causes
-# all network devices to be initialized.
-#
-cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Let RedBoot use any I/O channel for its console.
-# If this option is enabled then RedBoot will attempt to use all
-# defined serial I/O channels for its console device.  Once input
-# arrives at one of these channels then the console will use only
-# that port.
-#
-cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# Let RedBoot adjust the baud rate of the serial console.
-# If this option is enabled then RedBoot will support commands 
-# to set and query the baud rate on the selected console.
-#
-cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Run a platform specific startup function.
-# If this option is enabled then RedBoot will execute a platform
-# specific startup function before entering into its command line
-# processing.  This allows the platform to perform any special
-# setups before RedBoot actually starts running.  Note: the entire
-# RedBoot environment will already be initialized at this point.
-#
-cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Run a platform specific ESA validation function.
-# If this option is enabled then RedBoot will execute a platform
-# specific function to validate an ethernet ESA.  This would be
-# useful if the address must conform to standards set by the
-# hardware manufacturer, etc.
-#
-cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI
-    #     ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-};
-
-# Maximum command line length
-# This option allows control over how long the CLI command line
-# should be.  This space will be allocated statically
-# rather than from RedBoot's stack.
-#
-cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # The inferred value should not be edited directly.
-    inferred_value 1024
-    # value_source inferred
-    # Default value: 256
-};
-
-# Command processing idle timeout (ms)
-# This option controls the timeout period before the
-# command processing is considered 'idle'.  Making this
-# number smaller will cause idle processing to take place
-# more often, etc.  The default value of 10ms is a reasonable
-# tradeoff between responsiveness and overhead.
-#
-cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Validate RAM addresses during load
-# This option controls whether or not RedBoot will make
-# sure that memory being used by the "load" command is
-# in fact in user RAM.  Leaving the option enabled makes
-# for a safer environment, but this check may not be valid
-# on all platforms, thus the ability to disable it.  
-# ** Disable this only with great care **
-#
-cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
-    # 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 CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-};
-
-# Allow RedBoot to support FLASH programming
-# If this option is enabled then RedBoot will provide commands
-# to manage images in FLASH memory.  These images can be loaded
-# into memory for execution or executed in place.
-#
-cdl_component CYGPKG_REDBOOT_FLASH {
-    # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE
-    #     CYGHWR_IO_FLASH_DEVICE == 1
-    #   --> 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 CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-    # option CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-};
-
-# >
-# Byte order used to store info in flash.
-# This option controls the byte ordering used to store
-# the FIS directory info and flash config info.
-#
-cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NATURAL
-    # value_source default
-    # Default value: NATURAL
-    # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" 
-};
-
-# RedBoot Flash Image System support
-# doc: ref/flash-image-system.html
-# This option enables the Flash Image System commands
-# and support within RedBoot.  If disabled, simple Flash
-# access commands such as "fis write" will still exist.
-# This option would be disabled for targets that need simple
-# FLASH manipulation, but do not have the need or space for
-# complete image management.
-#
-cdl_option CYGOPT_REDBOOT_FIS {
-    # 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_REDBOOT_FIS_CONTENTS
-    #     ActiveIf: CYGOPT_REDBOOT_FIS
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# Max number of chunks of free space to manage
-# If this option is defined then "fis free" will
-# rely on the FIS directory to determine what space is
-# free within the FLASH.  This option controls the
-# maximum number of free segment which can be handled
-# (typically this number is small).  If this option is
-# not enabled, the the archaic behaviour of actually
-# scanning the FLASH for erased sectors (unreliable)
-# will be used to determine what's free and what's
-# not.
-#
-cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 32
-    # value_source default
-    # Default value: 1 32
-};
-
-# Flash Image System default directory contents
-#
-cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
-    # ActiveIf constraint: CYGOPT_REDBOOT_FIS
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Flash block containing the Directory
-# Which block of flash should hold the directory
-# information. Positive numbers are absolute block
-# numbers.  Negative block numbers count backwards
-# from the last block.  eg 2 means block 2, -2
-# means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
-    # Flavor: data
-    # 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 CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# Redundant Flash Image System Directory Support
-# This option enables the use of a redundant FIS
-# directory within RedBoot.  If enabled a flash block
-# will be reserved for a second copy of the fis
-# directory. Doing this allow for power failure safe
-# updates of the directory by the application.
-#
-cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-    #     CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1
-    #   --> 0
-};
-
-# >
-# Flash block containing the backup Directory
-# Which block of flash should hold the redundant
-# directory information. Positive numbers are
-# absolute block numbers. Negative block numbers
-# count backwards from the last block. eg 2 means
-# block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -3
-    # value_source default
-    # Default value: -3
-    # Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-    #     CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0
-    #     CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# <
-# Pseudo-file to describe reserved area
-# If an area of FLASH is reserved, it is informative to
-# have a fis entry describing it.  This option controls
-# creation of such an entry by default in the fis init
-# command.
-#
-cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
-    # This option is not active
-    # ActiveIf constraint:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# File to describe RedBoot boot image
-# Normally a ROM-startup RedBoot image is first in the
-# FLASH, and the system boots using that image.  This
-# option controls creation of an entry describing it in
-# the fis init command.  It might be disabled if a
-# platform has an immutable boot image of its own, where
-# we use a POST-startup RedBoot instead, which performs
-# less board initialization.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
-    # 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 CYGOPT_REDBOOT_FIS_REDBOOT_POST
-    #     DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT
-    # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE
-    #     DefaultValue:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-};
-
-# File to describe RedBoot POST-compatible image
-# This option controls creation of an entry describing a
-# POST-startup RedBoot image in the fis init command.
-# Not all platforms support POST-startup.  A platform
-# might have both for testing purposes, where the
-# eventual user would substitute their own POST code for
-# the initial ROM-startup RedBoot, and then jump to the
-# POST-compatible RedBoot immediately following.
-#
-cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0
-};
-
-# >
-# Offset of POST image from FLASH start
-# This option specifies the offset for a POST image from
-# the start of FLASH.  If unset, then the fis entry
-# describing the POST image will be placed where
-# convenient.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# File to describe RedBoot backup image
-# This option controls creation of an entry describing a
-# backup RedBoot image in the fis init command.
-# Conventionally a RAM-startup RedBoot image is kept
-# under this name for use in updating the ROM-based
-# RedBoot that boots the board.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include ARM SIB ID in FIS
-# If set, this option will cause the last 5 words of
-# the FIS to include the special ID needed for the
-# flash to be recognized as a reserved area for RedBoot
-# by an ARM BootRom monitor.
-#
-cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Size of FIS directory entry
-# The FIS directory is limited to one single flash
-# sector. If your flash has tiny sectors, you may wish
-# to reduce this value in order to get more slots in
-# the FIS directory.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-};
-
-# Number of FIS directory entries
-# The FIS directory normally occupies a single flash
-# sector. Adjusting this value can allow for more than
-# one flash sector to be used, which is useful if your
-# sectors are very small.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Maximum RedBoot image size
-# This option controls the maximum length reserved
-# for the RedBoot boot image in the FIS table.
-# This should be a multiple of the flash's erase
-# block size.
-#
-cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00020000
-    # The inferred value should not be edited directly.
-    inferred_value 0x00040000
-    # value_source inferred
-    # Default value:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0x00020000
-};
-
-# Offset from start of FLASH to RedBoot boot image
-# This option controls where the RedBoot boot image is 
-# located relative to the start of FLASH.
-#
-cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-    # Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # component CYGPKG_HAL_ARM_TX53_OPTIONS
-    #     Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-};
-
-# Size of reserved area at start of FLASH
-# This option reserves an area at the start of
-# FLASH where RedBoot will never interfere; it is
-# expected that this area contains
-# (non-RedBoot-based) POST code or some other boot
-# monitor that executes before RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
-    # Flavor: data
-    # 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 CYGOPT_REDBOOT_FIS_RESERVED_BASE
-    #     ActiveIf:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# Keep all RedBoot FLASH data blocks locked.
-# When this option is enabled, RedBoot will keep configuration
-# data and the FIS directory blocks implicitly locked.  While
-# this is somewhat safer, it does add overhead during updates.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-    #     CYGHWR_IO_FLASH_BLOCK_LOCKING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use CRC checksums on FIS images.
-# When this option is enabled, RedBoot will use CRC checksums
-# when reading and writing flash images.
-#
-cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# ARM FLASH drivers support SIB flash block structure
-# This interface is implemented by a flash driver
-# to indicate that it supports the ARM SIB flash
-# block structure
-#
-cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGPKG_HAL_ARM
-    #     CYGPKG_HAL_ARM == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_FLASH_SIB
-    #     ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-};
-
-# Use ARM SIB flash block structure
-# This option is used to interpret ARM Flash System 
-# information blocks.
-#
-cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Keep RedBoot configuration data in FLASH
-# When this option is enabled, RedBoot will keep configuration
-# data in a separate block of FLASH memory.  This data will
-# include such items as the node IP address or startup scripts.
-#
-cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_IO_FLASH != 0 
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_IP
-    #     ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN
-    #     ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# >
-# Length of configuration data in FLASH
-# This option is used to control the amount of memory and FLASH
-# to be used for configuration options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value: 4096
-};
-
-# Style of media used for persistent data storage
-# Persistent data storage can either be held in 'norma' FLASH
-# or some other device (represented by the 'EEPROM' choice).
-# The different styles utilize different access methods.
-#
-cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value FLASH
-    # value_source default
-    # Default value: FLASH
-    # Legal values:  "FLASH" "EEPROM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK
-    #     DefaultValue:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-};
-
-# Merged config data and FIS directory
-# If this option is set, then the FIS directory and FLASH 
-# configuration database will be stored in the same physical
-# FLASH block.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
-    # ActiveIf constraint:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGOPT_REDBOOT_FIS == 1
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 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
-    # component CYGOPT_REDBOOT_REDUNDANT_FIS
-    #     Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-};
-
-# Which block of flash to use
-# Which block of flash should hold the configuration 
-# information. Positive numbers are absolute block numbers. 
-# Negative block numbers count backwards from the last block.
-# eg 2 means block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -2
-    # value_source default
-    # Default value: -2
-};
-
-# Support simple macros/aliases in FLASH
-# This option is used to allow support for simple text-based
-# macros (aliases).  These aliases are kept in the FLASH
-# configuration data (persistent storage).
-#
-cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Length of strings in FLASH configuration data
-# This option is used to control the amount of memory
-# and FLASH to be used for string configuration
-# options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-};
-
-# Length of configuration script(s) in FLASH
-# This option is used to control the amount of memory and 
-# FLASH to be used for configuration options (persistent 
-# storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 512
-    # The inferred value should not be edited directly.
-    inferred_value 2048
-    # value_source inferred
-    # Default value: 512
-};
-
-# Fallback to read-only FLASH configuration
-# This option will cause the configuration information to
-# revert to the readonly information stored in the FLASH.
-# The option only takes effect after 
-# 1) the config_ok flag has been set to be true,
-# indicating that at one time the copy in RAM was valid;
-# and
-# 2) the information in RAM has been verified to be invalid
-#
-cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 1
-};
-
-# <
-# Allow RedBoot to support fileio
-# If this option is enabled then RedBoot will provide commands
-# to load files from fileio file systems such as JFFS2.
-#
-cdl_component CYGPKG_REDBOOT_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO (unknown) == 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 CYGNUM_REDBOOT_GETC_BUFFER
-    #     DefaultValue:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-};
-
-# >
-# Include an ls command
-# If this option is enabled a simple ls command will be
-# included in redboot so the contents of a directory
-# can be listed
-#
-cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_FILEIO is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Allow RedBoot to support disks
-# If this option is enabled then RedBoot will provide commands
-# to load disk files.
-#
-cdl_component CYGPKG_REDBOOT_DISK {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# >
-# Include Redboot commands for disk access
-#
-cdl_option CYGSEM_REDBOOT_DISK {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-    #     CYGINT_REDBOOT_DISK_DRIVERS == 0
-    #   --> 0
-};
-
-# Hardware drivers for disk-type devices
-#
-cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
-    # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_DISK
-    #     DefaultValue:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-};
-
-# Maximum number of supported disks
-# This option controls the number of disks supported by 
-# RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_MAX_DISKS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# Maximum number of partitions per disk
-# This option controls the maximum number of supported 
-# partitions per disk.
-#
-cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Support IDE disks.
-# When this option is enabled, RedBoot will support IDE disks.
-#
-cdl_component CYGSEM_REDBOOT_DISK_IDE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-    # ActiveIf constraint:  CYGINT_HAL_PLF_IF_IDE != 0 
-    #     CYGINT_HAL_PLF_IF_IDE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Work with VMware virtual disks
-# This option controls the disk driver behavior at 
-# ide-init
-#
-cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_DISK_IDE is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support Linux second extended filesystems.
-# When this option is enabled, RedBoot will support EXT2 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support ISO9660 filesystems.
-# When this option is enabled, RedBoot will support ISO9660 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Boot scripting
-# doc: ref/persistent-state-flash.html
-# This contains options related to RedBoot's boot script
-# functionality.
-#
-cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
-    # There is no associated value.
-};
-
-# >
-# Boot scripting enabled
-# This option controls whether RedBoot boot script
-# functionality is enabled.
-#
-cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
-    # ActiveIf constraint:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-    #     CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Use default RedBoot boot script
-# If enabled, this option will tell RedBoot to use the 
-# value of this option as a default boot script.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 0 0
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# Resolution (in ms) for script timeout value.
-# This option controls the resolution of the script
-# timeout.  The value is specified in milliseconds
-# (ms), thus to have the script timeout be defined in
-# terms of tenths of seconds, use 100.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # The inferred value should not be edited directly.
-    inferred_value 10
-    # value_source inferred
-    # Default value: 1000
-};
-
-# Script default timeout value
-# This option is used to set the default timeout for startup
-# scripts, when they are enabled.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 10
-};
-
-# <
-# Support RTC for time & date functions
-# When this option is enabled, RedBoot will support commands to
-# query and set the real time clock (time and date)
-#
-cdl_option CYGSEM_REDBOOT_RTC {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_IO_WALLCLOCK 
-    #     CYGPKG_IO_WALLCLOCK (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Behave like a ROM monitor
-# Enabling this option will allow RedBoot to provide ROM 
-# monitor-style services to programs which it executes.
-#
-cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# Allow RedBoot to handle GNUPro application 'syscalls'.
-# If this option is enabled then RedBoot will install a
-# syscall handler to support debugging of applications
-# based on GNUPro newlib/bsp.
-#
-cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
-    # 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 CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-    # option CYGPKG_HAL_GDB_FILEIO
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-};
-
-# >
-# Support additional syscalls for 'gprof' profiling
-# Support additional syscalls to support a periodic callback
-# function for histogram-style profiling, and an enquire/set
-# of the tick rate.
-# The application must use the GNUPro newlib facilities
-# to set this up.
-#
-cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-    # ActiveIf constraint:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-    #     CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does the HAL support 'gprof' profiling?
-#
-cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
-    # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF
-    #     ActiveIf:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-};
-
-# Do not raise SIGTRAP when program exits
-# For some (single shot) newlib based programs,
-# exiting and returning a termination status may be
-# the normal expected behavior.
-#
-cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Use a common buffer for Zlib and FIS
-# Use a common memory buffer for both the zlib workspace
-# and FIS directory operations. This can save a substantial
-# amount of RAM, especially when flash sectors are large.
-#
-cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
-    # ActiveIf constraint:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-    #     CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of Zlib/FIS common buffer
-# Size of common buffer to allocate. Must be at least the
-# size of one flash sector.
-#
-cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000C000
-    # value_source default
-    # Default value: 0x0000C000
-    # Legal values: 0x4000 to 0x80000000
-};
-
-# <
-# Buffer size in getc when loading images
-# When loading images a buffer is used between redboot and the
-# underlying storage medium, eg a filesystem, or a socket etc.
-# The size of this buffer can have a big impart on load speed.
-#
-cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-    #     CYGPKG_REDBOOT_FILEIO == 0
-    #   --> 256
-};
-
-# <
-# Redboot for ARM options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Provide the exec command in RedBoot
-# This option contains requirements for booting linux
-# from RedBoot. The component is enabled/disabled from
-# RedBoots CDL.
-#
-cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Enable -x switch for exec command.
-# This option allows bi-endian platforms to launch kernels
-# built for an endianess different than the RedBoot endianess
-#
-cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x70108000
-    # value_source default
-    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 0x70108000
-};
-
-# Default physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image. This option gets set by the 
-# platform CDL.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00008000
-    # The inferred value should not be edited directly.
-    inferred_value 0x70108000
-    # value_source inferred
-    # Default value: 0x00008000
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS
-    #     DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-};
-
-# Base address of linux kernel parameter tags
-# This is the base address of the area of memory used to
-# pass parameters to the Linux kernel. This should be chosen
-# to avoid overlap with the kernel and any ramdisk image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000100
-    # value_source default
-    # Default value: 0x00000100
-};
-
-# <
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Build Redboot ROM binary image
-# This option enables the conversion of the Redboot ELF
-# image to a binary image suitable for ROM programming.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Redboot HAL variant options
-#
-cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 1
-};
-
-# <
-# ISO C and POSIX infrastructure
-# eCos supports implementations of ISO C libraries and POSIX
-# implementations. This package provides infrastructure used by
-# all such implementations.
-#
-cdl_package CYGPKG_ISOINFRA {
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_COMPRESS_ZLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-};
-
-# >
-# Startup and termination
-#
-cdl_component CYGPKG_ISO_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# main() startup implementations
-# Implementations of this interface arrange for a user-supplied
-# main() to be called in an ISO compatible environment.
-#
-cdl_interface CYGINT_ISO_MAIN_STARTUP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-};
-
-# <
-# ctype.h functions
-#
-cdl_component CYGPKG_ISO_CTYPE_H {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of ctype functions
-#
-cdl_interface CYGINT_ISO_CTYPE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_CTYPE 
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_CTYPE
-    #     Requires:  1 >= CYGINT_ISO_CTYPE 
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-};
-
-# Ctype implementation header
-#
-cdl_option CYGBLD_ISO_CTYPE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/i18n/ctype.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-};
-
-# <
-# Error handling
-#
-cdl_component CYGPKG_ISO_ERRNO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of error codes
-#
-cdl_interface CYGINT_ISO_ERRNO_CODES {
-    # Implemented by CYGPKG_ERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO_CODES
-    #     Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-};
-
-# Error codes implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/codes.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_ERROR
-    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-};
-
-# Number of implementations of errno variable
-#
-cdl_interface CYGINT_ISO_ERRNO {
-    # Implemented by CYGPKG_ERROR_ERRNO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO 
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO
-    #     Requires:  1 >= CYGINT_ISO_ERRNO 
-};
-
-# errno variable implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/errno.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_ERROR_ERRNO
-    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-};
-
-# <
-# Locale-related functions
-#
-cdl_component CYGPKG_ISO_LOCALE {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of locale functions
-#
-cdl_interface CYGINT_ISO_LOCALE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_LOCALE 
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_LOCALE
-    #     Requires:  1 >= CYGINT_ISO_LOCALE 
-};
-
-# Locale implementation header
-#
-cdl_option CYGBLD_ISO_LOCALE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard I/O-related functionality
-#
-cdl_component CYGPKG_ISO_STDIO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of stdio file types
-#
-cdl_interface CYGINT_ISO_STDIO_FILETYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-};
-
-# Stdio file types implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-};
-
-# Stdio standard streams implementation header
-# This header file must define stdin, stdout
-# and stderr.
-#
-cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEOPS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-};
-
-# Stdio file operations implementation header
-# This header controls the file system operations on a file
-# such as remove(), rename(), tmpfile(), tmpnam() and associated
-# constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-};
-
-# Stdio file access implementation header
-# This header controls the file access operations
-# such as fclose(), fflush(), fopen(), freopen(), setbuf(),
-# setvbuf(), and associated constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-};
-
-# Stdio formatted I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-};
-
-# Stdio character I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-};
-
-# Stdio direct I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEPOS
-};
-
-# Stdio file positioning implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-};
-
-# Stdio error handling implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS
-    #     Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-};
-
-# POSIX fd-related function implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard general utility functions
-#
-cdl_component CYGPKG_ISO_STDLIB {
-    # There is no associated value.
-};
-
-# >
-# String conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-};
-
-# String conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/atox.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ATOX
-    #     Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-};
-
-# String to FP conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT {
-    # Implemented by CYGFUN_LIBC_strtod, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-};
-
-# String to FP conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Random number generator implementations
-#
-cdl_interface CYGINT_ISO_RAND {
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_RAND 
-    #     CYGINT_ISO_RAND == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_RAND
-    #     Requires:  1 >= CYGINT_ISO_RAND 
-};
-
-# Random number generator implementation header
-#
-cdl_option CYGBLD_ISO_RAND_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Malloc implementations
-#
-cdl_interface CYGINT_ISO_MALLOC {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLOC
-    #     Requires:  1 >= CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-};
-
-# Malloc implementation header
-#
-cdl_option CYGBLD_ISO_MALLOC_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Mallinfo() implementations
-#
-cdl_interface CYGINT_ISO_MALLINFO {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLINFO 
-    #     CYGINT_ISO_MALLINFO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLINFO
-    #     Requires:  1 >= CYGINT_ISO_MALLINFO 
-};
-
-# Mallinfo() implementation header
-#
-cdl_option CYGBLD_ISO_MALLINFO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program exit functionality implementations
-#
-cdl_interface CYGINT_ISO_EXIT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_EXIT
-    #     Requires:  1 >= CYGINT_ISO_EXIT 
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     Requires: !CYGINT_ISO_EXIT
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     DefaultValue:  CYGINT_ISO_EXIT == 0 
-};
-
-# Program exit functionality implementation header
-#
-cdl_option CYGBLD_ISO_EXIT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program environment implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-    #     CYGINT_ISO_STDLIB_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-};
-
-# Program environment implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# system() implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_SYSTEM {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-    #     CYGINT_ISO_STDLIB_SYSTEM == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_SYSTEM
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-};
-
-# system() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# bsearch() implementations
-#
-cdl_interface CYGINT_ISO_BSEARCH {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_BSEARCH 
-    #     CYGINT_ISO_BSEARCH == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSEARCH
-    #     Requires:  1 >= CYGINT_ISO_BSEARCH 
-};
-
-# bsearch() implementation header
-#
-cdl_option CYGBLD_ISO_BSEARCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# qsort() implementations
-#
-cdl_interface CYGINT_ISO_QSORT {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_QSORT 
-    #     CYGINT_ISO_STDLIB_QSORT (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# qsort() implementation header
-#
-cdl_option CYGBLD_ISO_QSORT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# abs()/labs() implementations
-#
-cdl_interface CYGINT_ISO_ABS {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ABS 
-    #     CYGINT_ISO_STDLIB_ABS (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# abs()/labs() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/abs.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ABS
-    #     Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-};
-
-# div()/ldiv() implementations
-#
-cdl_interface CYGINT_ISO_DIV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_DIV 
-    #     CYGINT_ISO_STDLIB_DIV (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# div()/ldiv() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/div.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_DIV
-    #     Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-};
-
-# Header defining the implementation's MB_CUR_MAX
-#
-cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBC_I18N_MB_REQUIRED
-    #     Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-};
-
-# Multibyte character implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-    #     CYGINT_ISO_STDLIB_MULTIBYTE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_MULTIBYTE
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-};
-
-# Multibyte character implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# String functions
-#
-cdl_component CYGPKG_ISO_STRING {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of strerror() function
-#
-cdl_interface CYGINT_ISO_STRERROR {
-    # Implemented by CYGPKG_ERROR_STRERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRERROR 
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRERROR
-    #     Requires:  1 >= CYGINT_ISO_STRERROR 
-};
-
-# strerror() implementation header
-#
-cdl_option CYGBLD_ISO_STRERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/strerror.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_ERROR_STRERROR
-    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-};
-
-# memcpy() implementation header
-#
-cdl_option CYGBLD_ISO_MEMCPY_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# memset() implementation header
-#
-cdl_option CYGBLD_ISO_MEMSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of strtok_r() function
-#
-cdl_interface CYGINT_ISO_STRTOK_R {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRTOK_R 
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRTOK_R
-    #     Requires:  1 >= CYGINT_ISO_STRTOK_R 
-};
-
-# strtok_r() implementation header
-#
-cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of locale-specific string  functions
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-};
-
-# Locale-specific string functions' implementation  header
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of BSD string functions
-#
-cdl_interface CYGINT_ISO_STRING_BSD_FUNCS {
-    # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-};
-
-# BSD string functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/bsdstring.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-};
-
-# Number of implementations of other mem*() functions
-#
-cdl_interface CYGINT_ISO_STRING_MEMFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_MEMFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-};
-
-# Other mem*() functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of other ISO C str*()  functions
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_interface CYGINT_ISO_STRING_STRFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_STRFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     Requires: !CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     DefaultValue:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_NET
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-};
-
-# Other ISO C str*() functions' implementation  header
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# <
-# Clock and time functionality
-#
-cdl_component CYGPKG_ISO_TIME {
-    # There is no associated value.
-};
-
-# >
-# time_t implementation header
-#
-cdl_option CYGBLD_ISO_TIME_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# clock_t implementation header
-#
-cdl_option CYGBLD_ISO_CLOCK_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# struct timeval implementation header
-#
-cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-    #     CYGINT_ISO_POSIX_TIMER_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-};
-
-# POSIX timer types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCK_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-};
-
-# POSIX clock types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-};
-
-# ISO C time types implementation header
-#
-cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-    #     CYGINT_ISO_POSIX_TIMERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMERS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-};
-
-# POSIX timer implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_CLOCK_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-};
-
-# ISO C clock functions' implementation header
-#
-cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of tzset() function
-#
-cdl_interface CYGINT_ISO_TZSET {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_TZSET 
-    #     CYGINT_ISO_TZSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TZSET
-    #     Requires:  1 >= CYGINT_ISO_TZSET 
-};
-
-# tzset() implementation header
-#
-cdl_option CYGBLD_ISO_TZSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Signal functionality
-#
-cdl_component CYGPKG_ISO_SIGNAL {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of signal numbers
-#
-cdl_interface CYGINT_ISO_SIGNAL_NUMBERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-};
-
-# Signal numbering implementation header
-# This header provides the mapping of signal
-# names (e.g. SIGBUS) to numbers.
-#
-cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-};
-
-# Signals implementation header
-#
-cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX real time signals feature test macro
-# This defines the POSIX feature test macro
-# that indicates that the POSIX real time signals
-# are present.
-#
-cdl_interface CYGINT_POSIX_REALTIME_SIGNALS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-    #     CYGINT_POSIX_REALTIME_SIGNALS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_POSIX_REALTIME_SIGNALS
-    #     Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-};
-
-# <
-# Non-local jumps functionality
-#
-cdl_component CYGPKG_ISO_SETJMP {
-    # There is no associated value.
-};
-
-# >
-# setjmp() / longjmp() implementations
-#
-cdl_interface CYGINT_ISO_SETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SETJMP
-    #     Requires:  1 >= CYGINT_ISO_SETJMP 
-};
-
-# setjmp() / longjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-    #     CYGINT_ISO_SIGSETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGSETJMP
-    #     Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-};
-
-# sigsetjmp() / siglongjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Assertions implementation header
-#
-cdl_option CYGBLD_ISO_ASSERT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file control
-# This covers the POSIX file control definitions,
-# normally found in <fcntl.h>
-#
-cdl_component CYGPKG_ISO_POSIX_FCNTL {
-    # There is no associated value.
-};
-
-# >
-# POSIX open flags implementation header
-#
-cdl_option CYGBLD_ISO_OFLAG_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fcntl() implementations
-#
-cdl_interface CYGINT_ISO_FCNTL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_FCNTL
-    #     Requires:  1 >= CYGINT_ISO_FCNTL 
-};
-
-# POSIX fcntl() implementation header
-#
-cdl_option CYGBLD_ISO_FCNTL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file open implementations
-#
-cdl_interface CYGINT_ISO_OPEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_OPEN
-    #     Requires:  1 >= CYGINT_ISO_OPEN 
-};
-
-# POSIX file open implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# <sys/stat.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_STAT_DEFS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX directory reading implementation
-#
-cdl_interface CYGINT_ISO_DIRENT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DIRENT
-    #     Requires:  1 >= CYGINT_ISO_DIRENT 
-};
-
-# <dirent.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_DIRENT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX <sys/types.h> contents
-# This covers the types required by POSIX to be in
-# <sys/types.h>
-#
-cdl_component CYGPKG_ISO_POSIX_TYPES {
-    # There is no associated value.
-};
-
-# >
-# POSIX thread types implementations
-#
-cdl_interface CYGINT_ISO_PTHREADTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREADTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    # interface CYGINT_ISO_PMUTEXTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-};
-
-# POSIX thread types implementation header
-#
-cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# ssize_t implementation header
-#
-cdl_option CYGBLD_ISO_SSIZE_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Filesystem types implementation header
-#
-cdl_option CYGBLD_ISO_FSTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# gid_t, pid_t, uid_t implementation header
-#
-cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Non-POSIX <sys/types.h> contents
-# This covers the extra types required by non-POSIX
-# packages to be in <sys/types.h>. These would normally
-# only be visible if _POSIX_SOURCE is not defined.
-#
-cdl_component CYGPKG_ISO_EXTRA_TYPES {
-    # There is no associated value.
-};
-
-# >
-# BSD compatible types
-#
-cdl_interface CYGINT_ISO_BSDTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_BSDTYPES 
-    #     CYGINT_ISO_BSDTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSDTYPES
-    #     Requires:  1 >= CYGINT_ISO_BSDTYPES 
-};
-
-# BSD types header
-#
-cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Utsname structure
-#
-cdl_component CYGPKG_ISO_UTSNAME {
-    # There is no associated value.
-};
-
-# >
-# Utsname header
-#
-cdl_option CYGBLD_ISO_UTSNAME_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SCHED_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-};
-
-# POSIX scheduler implementation header
-#
-cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX semaphores
-#
-cdl_component CYGPKG_ISO_SEMAPHORES {
-    # There is no associated value.
-};
-
-# >
-# POSIX semaphore implementations
-#
-cdl_interface CYGINT_ISO_SEMAPHORES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SEMAPHORES
-    #     Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-};
-
-# POSIX semaphore implementation header
-#
-cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MQUEUE
-    #     Requires:  1 >= CYGINT_ISO_MQUEUE 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-    # option CYGNUM_ISO_MQUEUE_PRIO_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-};
-
-# Implementation header
-#
-cdl_option CYGBLD_ISO_MQUEUE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Maximum number of open message queues
-#
-cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #   --> 0 0
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 65535
-    # value_source default
-    # Default value: 1 65535
-};
-
-# <
-# POSIX threads
-#
-cdl_component CYGPKG_ISO_PTHREAD {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_IMPL
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-};
-
-# POSIX pthread implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_LIMITS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-};
-
-# POSIX pthread limits implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# LINK_MAX implementation header
-#
-cdl_option CYGBLD_ISO_LINK_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# NAME_MAX implementation header
-#
-cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# PATH_MAX implementation header
-#
-cdl_option CYGBLD_ISO_PATH_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX termios
-#
-cdl_component CYGPKG_ISO_TERMIOS {
-    # There is no associated value.
-};
-
-# >
-# POSIX termios implementations
-#
-cdl_interface CYGINT_ISO_TERMIOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TERMIOS
-    #     Requires:  1 >= CYGINT_ISO_TERMIOS 
-};
-
-# POSIX termios implementation header
-#
-cdl_option CYGBLD_ISO_TERMIOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Dynamic load API
-#
-cdl_component CYGPKG_ISO_DLFCN {
-    # There is no associated value.
-};
-
-# >
-# Dynamic load implementations
-#
-cdl_interface CYGINT_ISO_DLFCN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DLFCN 
-    #     CYGINT_ISO_DLFCN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DLFCN
-    #     Requires:  1 >= CYGINT_ISO_DLFCN 
-};
-
-# Dynamic load implementation header
-#
-cdl_option CYGBLD_ISO_DLFCN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# UNIX standard functions
-#
-cdl_component CYGPKG_ISO_UNISTD {
-    # There is no associated value.
-};
-
-# >
-# POSIX timer operations implementations
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_OPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-    #     CYGINT_ISO_POSIX_TIMER_OPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_OPS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-};
-
-# POSIX timer operations implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX sleep() implementations
-#
-cdl_interface CYGINT_ISO_POSIX_SLEEP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_SLEEP
-    #     Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-};
-
-# POSIX sleep() implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# select()/poll() functions
-#
-cdl_component CYGPKG_ISO_SELECT {
-    # There is no associated value.
-};
-
-# >
-# select() implementations
-#
-cdl_interface CYGINT_ISO_SELECT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SELECT
-    #     Requires:  1 >= CYGINT_ISO_SELECT 
-};
-
-# select() implementation header
-#
-cdl_option CYGBLD_ISO_SELECT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# poll() implementations
-#
-cdl_interface CYGINT_ISO_POLL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POLL 
-    #     CYGINT_ISO_POLL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POLL
-    #     Requires:  1 >= CYGINT_ISO_POLL 
-};
-
-# poll() implementation header
-#
-cdl_option CYGBLD_ISO_POLL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# NetDB utility functions
-#
-cdl_component CYGPKG_ISO_NETDB {
-    # There is no associated value.
-};
-
-# >
-# DNS implementations
-#
-cdl_interface CYGINT_ISO_DNS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_DNS 
-    #     CYGINT_ISO_DNS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DNS
-    #     Requires:  1 >= CYGINT_ISO_DNS 
-};
-
-# DNS implementation header
-#
-cdl_option CYGBLD_ISO_DNS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Protocol network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_PROTO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-    #     CYGINT_ISO_NETDB_PROTO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_PROTO
-    #     Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-};
-
-# Protocol network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Services network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_SERV {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-    #     CYGINT_ISO_NETDB_SERV == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_SERV
-    #     Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-};
-
-# Services network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# 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_ISOINFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the ISO C and POSIX infrastructure package.
-# These flags are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_ISOINFRA_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 ISO C and POSIX infrastructure package.
-# These flags are removed from the set of global flags
-# if present.
-#
-cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# Compute CRCs
-# doc: ref/services-crc.html
-# This package provides support for CRC calculation. Currently 
-# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by 
-# Gary S. Brown, and a 16 bit CRC.
-#
-cdl_package CYGPKG_CRC {
-    # 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_COMPRESS_ZLIB
-    #     Requires: CYGPKG_CRC
-};
-
-# >
-# POSIX CRC tests
-#
-cdl_option CYGPKG_CRC_TESTS {
-    # Calculated value:  "tests/crc_test" 
-    # Flavor: data
-    # Current_value: tests/crc_test
-};
-
-# <
-# Zlib compress and decompress package
-# This package provides support for compression and
-# decompression.
-#
-cdl_package CYGPKG_COMPRESS_ZLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_CRC
-    #     CYGPKG_CRC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB
-    #     ActiveIf: CYGPKG_COMPRESS_ZLIB
-};
-
-# >
-# Override memory allocation routines.
-#
-cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     ActiveIf:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-};
-
-# Should deflate() produce 'gzip' compatible output?
-# If this option is set then the output of calling deflate()
-# will be wrapped up as a 'gzip' compatible file.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does this library need malloc?
-# This pseudo-option will force the memalloc library to be
-# required iff the application does not provide it's own
-# infrastructure.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-    #     CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-};
-
-# Include stdio-like utility functions
-# This option enables the stdio-like zlib utility functions
-# (gzread/gzwrite and friends) provided in gzio.c.
-#
-cdl_option CYGFUN_COMPRESS_ZLIB_GZIO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 
-    #     CYGPKG_LIBC_STDIO_OPEN (unknown) == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 0
-};
-
-# Zlib compress and decompress package 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_COMPRESS_ZLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_COMPRESS_ZLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D__ECOS__ -DNO_ERRNO_H"
-    # value_source default
-    # Default value: "-D__ECOS__ -DNO_ERRNO_H"
-};
-
-# 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_COMPRESS_ZLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wstrict-prototypes
-    # value_source default
-    # Default value: -Wstrict-prototypes
-};
-
-# 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_COMPRESS_ZLIB_LDFLAGS_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# zlib tests
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_TESTS {
-    # Calculated value:  "tests/zlib1.c tests/zlib2.c" 
-    # Flavor: data
-    # Current_value: tests/zlib1.c tests/zlib2.c
-};
-
-# <
-# FLASH device drivers
-# doc: ref/flash.html
-# This option enables drivers for basic I/O services on
-# flash devices.
-#
-cdl_package CYGPKG_IO_FLASH {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_FLASH_CONFIG
-    #     DefaultValue:  CYGPKG_IO_FLASH != 0 
-    # package CYGPKG_DEVS_FLASH_ONMXC
-    #     ActiveIf: CYGPKG_IO_FLASH
-};
-
-# >
-# Hardware FLASH device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE {
-    # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_FLASH
-    #     ActiveIf: CYGHWR_IO_FLASH_DEVICE
-};
-
-# Hardware FLASH device drivers are not in RAM
-# Use of this interface is deprecated.
-# Drivers should make sure that the functions are
-# linked to RAM by putting them in .2ram sections.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-};
-
-# Hardware can support block locking
-# This option will be enabled by devices which can support
-# locking (write-protection) of individual blocks.
-#
-cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL
-    #     ActiveIf:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-};
-
-# Hardware cannot support direct access to FLASH memory
-# This option will be asserted by devices which cannot support
-# direct access to the FLASH memory contents (e.g. EEPROM or NAND
-# devices).  In these cases, the driver must provide an appropriate
-# hardware access function.
-#
-cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-    #     CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    # component CYGHWR_DEVS_FLASH_MMC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_SD
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_NAND
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-};
-
-# Display status messages during flash operations
-# Selecting this option will cause the drivers to print status
-# messages as various flash operations are undertaken.
-#
-cdl_option CYGSEM_IO_FLASH_CHATTER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Verify data programmed to flash
-# Selecting this option will cause verification of data
-# programmed to flash.
-#
-cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_IO_FLASH_READ_INDIRECT
-    #     Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-};
-
-# Platform has flash soft DIP switch write-protect
-# Selecting this option will cause the state of a hardware jumper or
-# dipswitch to be read by software to determine whether the flash is
-# write-protected or not.
-#
-cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instantiate in I/O block device API
-# Provides a block device accessible using the standard I/O
-# API ( cyg_io_read() etc. )
-#
-cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of flash device 1 block device
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
-    # This option is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/flash1\""
-    # value_source default
-    # Default value: "\"/dev/flash1\""
-};
-
-# >
-#
-cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 {
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     CYGINT_IO_FLASH_BLOCK_CFG_1 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-};
-
-# Static configuration
-# This configures the flash device 1 block device
-# with static base and length
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash which this
-# block device corresponds to.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash given over
-# to this block device.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Configuration from FIS
-# This configures the flash device 1 block device
-# from Redboot FIS
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of FIS entry
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"jffs2\""
-    # value_source default
-    # Default value: "\"jffs2\""
-};
-
-# <
-# <
-# <
-# Flash 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_FLASH_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the flash device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_FLASH_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 flash device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Flash device driver tests
-# This option specifies the set of tests for the flash device drivers.
-#
-cdl_component CYGPKG_IO_FLASH_TESTS {
-    # Calculated value:  "tests/flash1" 
-    # Flavor: data
-    # Current_value: tests/flash1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash where tests
-# can be run.  It is important to set this correctly, as an
-# incorrect value could allow the tests to write over critical
-# portions of the FLASH device and possibly render the target
-# board totally non-functional.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash used for testing.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# <
-# Support FLASH memory on Freescale MXC platforms
-#
-cdl_package CYGPKG_DEVS_FLASH_ONMXC {
-    # 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_FLASH
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC platform MMC card support
-# When this option is enabled, it indicates MMC card is
-# supported on the MXC platforms
-#
-cdl_component CYGHWR_DEVS_FLASH_MMC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# >
-# MXC platform MMC card for newer SDHC controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# MXC platform MMC card for older MMC/SD controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_SD {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS 
-    #     CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX31ADS (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:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# <
-# MXC platform NOR flash memory support
-# When this option is enabled, it indicates NOR flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR
-    #     Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# MXC platform NAND flash memory support
-# When this option is enabled, it indicates NAND flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-};
-
-# i.MX platform SPI NOR flash memory support
-# When this option is enabled, it indicates SPI NOR flash is
-# supported on the i.MX platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #   --> 0
-};
-
-# MXC platform ATA support
-# When this option is enabled, it indicates ATA is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_ATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use a flash based Bad Block Table
-#
-cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH {
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# When this option is enabled, the driver will search for a flash
-# based bad block table
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# header file defining the NAND BBT descriptor
-# defines the name of the header file that describes the BBT layout
-#
-cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Number of blocks to reserve for BBT
-# Number of blocks to reserve for BBT
-#
-cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# <
-# MXC platform multi flash memory support
-# When this option is enabled, it indicates multi flashes are
-# supported on the MXC platforms (like NAND and NOR)
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
-    # This option is not active
-    # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# MXC platform NAND flash reset workaround support
-# When this option is enabled, it indicates 0xFFFF is used for
-# the NAND reset command instead of 0xFF.
-#
-cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# Dynamic memory allocation
-# doc: ref/memalloc.html
-# This package provides memory allocator infrastructure required for
-# dynamic memory allocators, including the ISO standard malloc
-# interface. It also contains some sample implementations.
-#
-cdl_package CYGPKG_MEMALLOC {
-    # 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
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     Requires: CYGPKG_MEMALLOC
-};
-
-# >
-# Memory allocator implementations
-# This component contains configuration options related to the 
-# various memory allocators available.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATORS {
-    # There is no associated value.
-};
-
-# >
-# Fixed block allocator
-# This component contains configuration options related to the 
-# fixed block memory allocator.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Simple variable block allocator
-# This component contains configuration options related to the 
-# simple variable block memory allocator. This allocator is not
-# very fast, and in particular does not scale well with large
-# numbers of allocations. It is however very compact in terms of
-# code size and does not have very much overhead per allocation.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are added that allow a thread to wait until memory
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Coalesce memory
-# The variable-block memory allocator can perform coalescing
-# of memory whenever the application code releases memory back
-# to the pool. This coalescing reduces the possibility of
-# memory fragmentation problems, but involves extra code and
-# processor cycles.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE {
-    # 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 CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-};
-
-# <
-# Doug Lea's malloc
-# This component contains configuration options related to the 
-# port of Doug Lea's memory allocator, normally known as
-# dlmalloc. dlmalloc has a reputation for being both fast
-# and space-conserving, as well as resisting fragmentation well.
-# It is a common choice for a general purpose allocator and
-# has been used in both newlib and Linux glibc.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC {
-    # There is no associated value.
-};
-
-# >
-# Debug build
-# Doug Lea's malloc implementation has substantial amounts
-# of internal checking in order to verify the operation
-# and consistency of the allocator. However this imposes
-# substantial overhead on each operation. Therefore this
-# checking may be individually disabled.
-#
-cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGDBG_USE_ASSERTS 
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Support more than one instance
-# Having this option disabled allows important
-# implementation structures to be declared as a single
-# static instance, allowing faster access. However this
-# would fail if there is more than one instance of
-# the dlmalloc allocator class. Therefore this option can
-# be enabled if multiple instances are required. Note: as
-# a special case, if this allocator is used as the
-# implementation of malloc, and it can be determined there
-# is more than one malloc pool, then this option will be
-# silently enabled.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use system memmove() and memset()
-# This may be used to control whether memset() and memmove()
-# are used within the implementation. The alternative is
-# to use some macro equivalents, which some people report
-# are faster in some circumstances.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA 
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# Minimum alignment of allocated blocks
-# This option controls the minimum alignment that the
-# allocated memory blocks are aligned on, specified as
-# 2^N. Note that using large mininum alignments can lead
-# to excessive memory wastage.
-#
-cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 3 to 10
-};
-
-# <
-# Variable block allocator with separate metadata
-# This component contains configuration options related to the 
-# variable block memory allocator with separate metadata.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# Kernel C API support for memory allocation
-# This option must be enabled to provide the extensions required
-# to support integration into the kernel C API.
-#
-cdl_option CYGFUN_MEMALLOC_KAPI {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C (unknown) == 0
-    #   --> 0
-};
-
-# malloc(0) returns NULL
-# This option controls the behavior of malloc(0) ( or calloc with
-# either argument 0 ). It is permitted by the standard to return
-# either a NULL pointer or a unique pointer. Enabling this option
-# forces a NULL pointer to be returned.
-#
-cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Breakpoint site when running out of memory
-# Whenever the system runs out of memory, it invokes this function
-# before either going to sleep waiting for memory to become 
-# available or returning failure.
-#
-cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# malloc() and supporting allocators
-# This component enables support for dynamic memory
-# allocation as supplied by the functions malloc(),
-# free(), calloc() and realloc(). As these
-# functions are often used, but can have quite an
-# overhead, disabling them here can ensure they
-# cannot even be used accidentally when static
-# allocation is preferred. Within this component are
-# various allocators that can be selected for use
-# as the underlying implementation of the dynamic
-# allocation functions.
-#
-cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS {
-    # ActiveIf constraint: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use external heap definition
-# This option allows other components in the
-# system to override the default system
-# provision of heap memory pools. This should
-# be set to a header which provides the equivalent
-# definitions to <pkgconf/heaps.hxx>.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Use external implementation of joining multiple heaps
-# The default implementation of joining multiple heaps
-# is fine for the case where there are multiple disjoint
-# memory regions of the same type. However, in a system
-# there might be e.g. a small amount of internal SRAM and
-# a large amount of external DRAM. The SRAM is faster and
-# the DRAM is slower. An application can implement some 
-# heuristic to choose which pool to allocate from. This
-# heuristic can be highly application specific.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# malloc() allocator implementations
-#
-cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS {
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-    #     CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS
-    #     Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-};
-
-# malloc() implementation instantiation data
-# Memory allocator implementations that are capable of being
-# used underneath malloc() must be instantiated. The code
-# to do this is set in this option. It is only intended to
-# be set by the implementation, not the user.
-#
-cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value <cyg/memalloc/dlmalloc.hxx>
-    # value_source default
-    # Default value: <cyg/memalloc/dlmalloc.hxx>
-
-    # The following properties are affected by this value
-    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-};
-
-# Simple variable block implementation
-# This causes malloc() to use the simple
-# variable block allocator.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 0
-    # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-    #     CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1
-    #   --> 1
-};
-
-# Doug Lea's malloc implementation
-# This causes malloc() to use a version of Doug Lea's
-# malloc (dlmalloc) as the underlying implementation.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 1
-};
-
-# <
-# Size of the fallback dynamic memory pool in bytes
-# If *no* heaps are configured in your memory layout,
-# dynamic memory allocation by
-# malloc() and calloc() must be from a fixed-size,
-# contiguous memory pool (note here that it is the
-# pool that is of a fixed size, but malloc() is still
-# able to allocate variable sized chunks of memory
-# from it). This option is the size
-# of that pool, in bytes. Note that not all of
-# this is available for programs to
-# use - some is needed for internal information
-# about memory regions, and some may be lost to
-# ensure that memory allocation only returns
-# memory aligned on word (or double word)
-# boundaries - a very common architecture
-# constraint.
-#
-cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16384
-    # value_source default
-    # Default value: 16384
-    # Legal values: 32 to 0x7fffffff
-};
-
-# Common memory allocator package 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_MEMALLOC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_MEMALLOC_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_MEMALLOC_TESTS {
-    # Calculated value:  "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" 
-    # Flavor: data
-    # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2
-};
-
-# <
-# <
-# Common error code support
-# This package contains the common list of error and
-# status codes. It is held centrally to allow
-# packages to interchange error codes and status
-# codes in a common way, rather than each package
-# having its own conventions for error/status
-# reporting. The error codes are modelled on the
-# POSIX style naming e.g. EINVAL etc. This package
-# also provides the standard strerror() function to
-# convert error codes to textual representation, as
-# well as an implementation of the errno idiom.
-#
-cdl_package CYGPKG_ERROR {
-    # 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:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
-    #   --> 1
-};
-
-# >
-# errno variable
-# This package controls the behaviour of the
-# errno variable (or more strictly, expression)
-# from <errno.h>.
-#
-cdl_component CYGPKG_ERROR_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
-    #   --> 1
-};
-
-# >
-# Per-thread errno
-# This option controls whether the standard error
-# code reporting variable errno is a per-thread
-# variable, rather than global.
-#
-cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the errno
-# retrieval mechanism in errno.cxx. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strerror function
-# This package controls the presence and behaviour of the
-# strerror() function from <string.h>
-#
-cdl_option CYGPKG_ERROR_STRERROR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
-    #   --> 1
-};
-
-# Error package 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_ERROR_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the error package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_ERROR_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 error package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# I2C driver for FSL MXC-based platforms
-#
-cdl_package CYGPKG_DEVS_MXC_I2C {
-    # 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
-};
-
-# ipu driver for mxc
-#
-cdl_package CYGPKG_DEVS_IMX_IPU {
-    # 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
-    # option CYGHWR_MX53_LCD_LOGO
-    #     ActiveIf:  CYGPKG_DEVS_IMX_IPU 
-};
-
-# >
-# IPU version 3EX support
-# When this option is enabled, it indicates the IPU version
-# is 3EX
-#
-cdl_option CYGHWR_DEVS_IPU_3_EX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-};
-
-# IPU version 3D support
-# When this option is enabled, it indicates the IPU version
-# is 3D
-#
-cdl_option CYGHWR_DEVS_IPU_3_D {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
diff --git a/config/TX53-8020.ecc b/config/TX53-8020.ecc
deleted file mode 100644 (file)
index caa80f5..0000000
+++ /dev/null
@@ -1,10426 +0,0 @@
-# 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    tx53karo ;
-    template    redboot ;
-    package -hardware CYGPKG_HAL_ARM current ;
-    package -hardware CYGPKG_HAL_ARM_MX53 current ;
-    package -hardware CYGPKG_HAL_ARM_TX53KARO current ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_REDBOOT current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_CRC current ;
-    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
-    package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ;
-    package -hardware CYGPKG_DEVS_ETH_FEC current ;
-    package -hardware CYGPKG_COMPRESS_ZLIB current ;
-    package -hardware CYGPKG_IO_FLASH current ;
-    package -hardware CYGPKG_DEVS_FLASH_ONMXC current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_DEVS_ETH_PHY current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_DEVS_MXC_I2C current ;
-    package -hardware CYGPKG_DEVS_IMX_IPU current ;
-};
-
-# ---- conflicts -------------------------------------------------------
-# There are no conflicts.
-
-# ---- contents --------------------------------------------------------
-# >
-# >
-# 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.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
-};
-
-# 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
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
-    #   --> 1
-
-    # 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 "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-    # value_source default
-    # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-};
-
-# 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
-};
-
-# <
-# ISO C library string functions
-# doc: ref/libc.html
-# This package provides string functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STRING {
-    # 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:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Inline versions of <string.h> functions
-# This option chooses whether some of the
-# particularly simple string functions from
-# <string.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_STRING_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Optimize string functions for code size
-# This option tries to reduce string function
-# code size at the expense of execution speed. The
-# same effect can be produced if the code is
-# compiled with the -Os option to the compiler.
-#
-cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide BSD compatibility functions
-# Enabling this option causes various compatibility functions
-# commonly found in the BSD UNIX operating system to be included.
-# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
-# strncasecmp, index, rindex and swab.
-#
-cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-};
-
-# strtok
-# These options control the behaviour of the
-# strtok() and strtok_r() string tokenization
-# functions.
-#
-cdl_component CYGPKG_LIBC_STRING_STRTOK {
-    # There is no associated value.
-};
-
-# >
-# Per-thread strtok()
-# This option controls whether the string function
-# strtok() has its state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard strtok_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the <string.h>
-# functions strtok() and strtok_r(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strdup
-# This option indicates whether strdup() is to be supported.
-#
-cdl_option CYGFUN_LIBC_STRING_STRDUP {
-    # ActiveIf constraint: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# C library string functions 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_LIBC_STRING_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library string function tests
-# This option specifies the set of tests for the C library
-# string functions.
-#
-cdl_option CYGPKG_LIBC_STRING_TESTS {
-    # Calculated value:  "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" 
-    # Flavor: data
-    # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2
-};
-
-# <
-# <
-# Common ethernet support
-# doc: ref/io-eth-drv-generic.html
-# Platform independent ethernet drivers
-#
-cdl_package CYGPKG_IO_ETH_DRIVERS {
-    # 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
-    # component CYGPKG_REDBOOT_NETWORKING
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_ARM_TX53
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_PHY
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-};
-
-# >
-# Network drivers
-#
-cdl_interface CYGHWR_NET_DRIVERS {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-    # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-};
-
-# Driver supports multicast addressing
-# This interface defines whether or not a driver can handle
-# requests for multicast addressing.
-#
-cdl_interface CYGINT_IO_ETH_MULTICAST {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Support printing driver debug information
-# Selecting this option will include code to allow the driver to
-# print lots of information on diagnostic output such as full
-# packet dumps.
-#
-cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Driver debug output verbosity
-# The value of this option indicates the default verbosity
-# level of debugging output. 0 means no debugging output
-# is made by default. Higher values indicate higher verbosity.
-# The verbosity level may also be changed at run time by
-# changing the variable cyg_io_eth_net_debug.
-#
-cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Size of scatter-gather I/O lists
-# A scatter-gather list is used to pass requests to/from
-# the physical device driver.  This list can typically be
-# small, as the data is normally already packed into reasonable
-# chunks.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# Support for standard eCos TCP/IP stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_NET {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Warn when there are no more mbufs
-# Warnings about running out of mbufs are printed to the
-# diagnostic output channel via diag_printf() if this option
-# is enabled.  Mbufs are the network stack's basic dynamic
-# memory objects that hold all packets in transit; running
-# out is bad for performance but not fatal, not a crash.
-# You might want to turn off the warnings to preserve realtime
-# properties of the system even in extremis.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Simulate network failures for testing
-# This package contains a suite of simulated failure modes
-# for the ethernet device layer, including dropping and/or
-# corrupting received packets, dropping packets queued for
-# transmission, and simulating a complete network break.
-# It requires the kernel as a source of time information.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Drop incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Corrupt incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Drop outgoing packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Simulate a line cut from time to time
-# This option causes the system to drop all packets for a
-# short random period (10s of seconds), and then act
-# normally for up to 4 times that long.  This simulates your
-# sysadmin fiddling with plugs in the network switch
-# cupboard.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# Support for stand-alone network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE {
-    # ActiveIf constraint: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Pass packets to an alternate stack
-# Define this to allow packets seen by this layer to be
-# passed on to the previous logical layer, i.e. when
-# stand-alone processing replaces system (eCos) processing.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_REDBOOT_NETWORKING 
-    #     CYGPKG_REDBOOT_NETWORKING == 1
-    #   --> 1
-};
-
-# Number of [network] buffers
-# This option is used to allocate space to buffer incoming network
-# packets.  These buffers are used to hold data until they can be
-# logically processed by higher layers.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 2 to 32
-};
-
-# Show driver warnings
-# Selecting this option will allows the stand-alone ethernet driver
-# to display warnings on the system console when incoming network
-# packets are being discarded due to lack of buffer space.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_WARN {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support for lwIP network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET_LWIP
-    #     CYGPKG_NET_LWIP (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-};
-
-# Interrupt support required
-# This interface is used to indicate to the low
-# level device drivers that interrupt driven operation
-# is required by higher layers.
-#
-cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED {
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Common ethernet support build options
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the common ethernet support package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# Ethernet driver for Ka-Ro electronics TX53 processor module
-#
-cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# FEC ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED
-};
-
-# Ka-Ro TX53 ethernet port driver
-# This option includes the ethernet device driver for the
-# MXC Board port.
-#
-cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-    # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-    #     CYGHWR_DEVS_ETH_PHY_LAN8700 == 1
-    #   --> 1
-};
-
-# >
-# Device name for the ETH0 ethernet driver
-# This option sets the name of the ethernet device.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# OUI part of MAC address
-# This option sets OUI part (manufacturer ID) of the MAC address
-# for validation.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
-    # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ 0x00, 0x0c, 0xc6 }"
-    # value_source default
-    # Default value: "{ 0x00, 0x0c, 0xc6 }"
-};
-
-# <
-# <
-# Driver for fast ethernet controller.
-# Driver for fast ethernet controller.
-#
-cdl_package CYGPKG_DEVS_ETH_FEC {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED
-    #     CYGINT_DEVS_ETH_FEC_REQUIRED == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC FEC ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Cirrus Logic ethernet driver package.
-# These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# MXC FEC MII Gasket for RMII mode
-# This option enables the use of the MII Gasket for
-# RMII mode found in i.MX25 and i.MX53 processors.
-#
-cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK {
-    # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Ethernet transceiver (PHY) support
-# API for ethernet PHY devices
-#
-cdl_package CYGPKG_DEVS_ETH_PHY {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-};
-
-# >
-# Enable driver debugging
-# Enables the diagnostic debug messages on the
-# console device.
-#
-cdl_option CYGDBG_DEVS_ETH_PHY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time period (seconds) to wait for auto-negotiation
-# The length of time to wait for auto-negotiation to complete
-# before giving up and declaring the link dead/missing.
-#
-cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-};
-
-# NSDP83847
-# Include support for National Semiconductor DP83847 DsPHYTER II
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# AMD 79C874
-# Include support for AMD 79C874 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Intel LXT972
-# Include support for Intel LXT972xxx PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1890
-# Include support for ICS 1890 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1892
-# Include support for ICS 1892 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1893
-# Include support for ICS 1893 and 1893AF PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Davicom DM9161A
-# Include support for the Davicom DM9161A PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Micrel KS8721
-# Include support for the Micrel KS8721 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# SMSC LAN8700
-# Include support for SMSC LAN8700 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-};
-
-# <
-# <
-# ISO C library internationalization functions
-# doc: ref/libc.html
-# This package provides internationalization functions specified by the
-# ISO C standard - ISO/IEC 9899:1990. These include locale-related
-# functionality and <ctype.h> functionality.
-#
-cdl_package CYGPKG_LIBC_I18N {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Supported locales
-# These options determine which locales other than the "C" locale
-# are supported and hence contribute to the size of the executable.
-#
-cdl_component CYGPKG_LIBC_I18N_LOCALES {
-    # There is no associated value.
-};
-
-# >
-# Support for multiple locales required
-#
-cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-    #     CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-};
-
-# C-SJIS locale support
-# This option controls if the "C-SJIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese SJIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-JIS locale support
-# This option controls if the "C-JIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese JIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-EUCJP locale support
-# This option controls if the "C-EUCJP" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese EUCJP multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# <
-# Newlib's ctype implementation
-# This option enables the implementation of the ctype functions
-# that comes with newlib. It is table driven and therefore
-# exhibits different performance characteristics. It also offers
-# a limited amount of binary compatibility
-# with newlib so that programs linked against newlib ctype/locale
-# do not need to be recompiled when linked with eCos.
-#
-cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 0
-};
-
-# Per-thread multibyte state
-# This option controls whether the multibyte character
-# handling functions mblen(), mbtowc(), and wctomb(),
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Enabling this option will use three slots
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Size of locale name strings
-# This option controls the maximum size of
-# locale names and is used, among other things
-# to instantiate a static string used
-# as a return value from the
-# setlocale() function. When requesting the
-# current locale settings with LC_ALL, a string
-# must be constructed to contain this data, rather
-# than just returning a constant string. This
-# string data is stored in the static string.
-# This depends on the length of locale names,
-# hence this option. If just the C locale is
-# present, this option can be set as low as 2.
-#
-cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-    #   --> 2
-    # Legal values:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-};
-
-# Inline versions of <ctype.h> functions
-# This option chooses whether the simple character
-# classification and conversion functions (e.g.
-# isupper(), isalpha(), toupper(), etc.)
-# from <ctype.h> are available as inline
-# functions. This may improve performance and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 1
-};
-
-# C library i18n functions 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_LIBC_I18N_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library i18n function tests
-# This option specifies the set of tests for the C library
-# i18n functions.
-#
-cdl_option CYGPKG_LIBC_I18N_TESTS {
-    # Calculated value:  "tests/ctype tests/setlocale tests/i18nmb" 
-    # Flavor: data
-    # Current_value: tests/ctype tests/setlocale tests/i18nmb
-};
-
-# <
-# <
-# ISO C library general utility functions
-# doc: ref/libc.html
-# This package provides general utility functions in <stdlib.h>
-# as specified by the ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Inline versions of <stdlib.h> functions
-# This option chooses whether some of the
-# particularly simple standard utility functions
-# from <stdlib.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_component CYGIMP_LIBC_STDLIB_INLINES {
-    # There is no associated value.
-};
-
-# >
-# abs() / labs()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
-    #   --> 1
-};
-
-# div() / ldiv()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
-    #   --> 1
-};
-
-# atof() / atoi() / atol()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
-    #   --> 1
-};
-
-# <
-# Random number generation
-# These options control the behaviour of the
-# functions rand(), srand() and rand_r()
-#
-cdl_component CYGPKG_LIBC_RAND {
-    # There is no associated value.
-};
-
-# >
-# Per-thread random seed
-# doc: ref/libc-thread-safety.html
-# This option controls whether the pseudo-random
-# number generation functions rand() and srand()
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard rand_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Random number seed
-# This selects the initial random number seed for
-# rand()'s pseudo-random number generator. For
-# strict ISO standard compliance, this should be 1,
-# as per section 7.10.2.2 of the standard.
-#
-cdl_option CYGNUM_LIBC_RAND_SEED {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 0 to 0x7fffffff
-};
-
-# Tracing level
-# Trace verbosity level for debugging the rand(),
-# srand() and rand_r() functions. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# Simplest implementation
-# This provides a very simple implementation of rand()
-# that does not perform well with randomness in the
-# lower significant bits. However it is exceptionally
-# fast. It uses the sample algorithm from the ISO C
-# standard itself.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple implementation #1
-# This provides a very simple implementation of rand()
-# based on the simplest implementation above. However
-# it does try to work around the lack of randomness
-# in the lower significant bits, at the expense of a
-# little speed.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Knuth implementation #1
-# This implements a slightly more complex algorithm
-# published in Donald E. Knuth's Art of Computer
-# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
-# This produces better random numbers than the
-# simplest approach but is slower.
-#
-cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# <
-# Provides strtod()
-# This option allows use of the utility function
-# strtod() (and consequently atof()) to convert
-# from string to double precision floating point
-# numbers. Disabling this option removes the
-# dependency on the math library package.
-#
-cdl_option CYGFUN_LIBC_strtod {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-};
-
-# Provides long long conversion functions
-# Enabling this option will provide support for the strtoll(),
-# strtoull() and atoll() conversion functions, which are
-# the long long variants of the standard versions of these
-# functions. Supporting this requires extra code and compile
-# time.
-#
-cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# bsearch() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# binary search function bsearch(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# qsort() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# quicksort function qsort(). Increase this value
-# to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# C library stdlib 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_LIBC_STDLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_LIBC_STDLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library stdlib tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STDLIB_TESTS {
-    # Calculated value:  "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" 
-    # Flavor: data
-    # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul
-};
-
-# <
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-};
-
-# >
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-};
-
-# 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 (unknown) == 0
-    #   --> 0
-};
-
-# 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 == ROMRAM
-    #   --> 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 {
-    # 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 == current
-    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
-    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #   --> 1
-
-    # 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 == ROMRAM
-    #   --> 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 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_REDBOOT
-    #     Requires:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-};
-
-# 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 32768
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 32768
-    # 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-};
-
-# 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 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
-    # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
-    #     Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1
-    #   --> 1
-
-    # 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
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 == 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
-
-    # The following properties are affected by this value
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 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 CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     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.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Target has virtual vector support
-#
-cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE
-    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    # package CYGPKG_DEVS_ETH_PHY
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-};
-
-# >
-# 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
-    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 0
-
-    # 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 {
-    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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 == ROMRAM
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 1
-
-    # 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
-    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 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 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 1
-};
-
-# 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 1
-
-    # 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 {
-    # 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 
-};
-
-# <
-# Behave as a ROM monitor
-# Enable this option if this program is to be used as a ROM monitor,
-# i.e. applications will be loaded into RAM on the TX53 module, and this
-# ROM monitor may process exceptions or interrupts generated from the
-# application. This enables features such as utilizing a separate
-# interrupt stack when exceptions are generated.
-#
-cdl_option CYGSEM_HAL_ROM_MONITOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-};
-
-# Work with a ROM monitor
-# Support can be enabled for different varieties of ROM monitor.
-# This support changes various eCos semantics such as the encoding
-# of diagnostic output, or the overriding of hardware interrupt
-# vectors.
-# Firstly there is "Generic" support which prevents the HAL
-# from overriding the hardware vectors that it does not use, to
-# instead allow an installed ROM monitor to handle them. This is
-# the most basic support which is likely to be common to most
-# implementations of ROM monitor.
-# "GDB_stubs" provides support when GDB stubs are included in
-# the ROM monitor or boot ROM.
-#
-cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
-    #     ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR 
-};
-
-# <
-# 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
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_DISK_IDE
-    #     ActiveIf:  CYGINT_HAL_PLF_IF_IDE != 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 == 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 == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache tests/intr
-};
-
-# >
-# 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 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" : "") 
-};
-
-# <
-# ARM architecture
-# The ARM architecture HAL package provides generic
-# support for this processor architecture. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM {
-    # 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
-    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
-    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
-    # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     ActiveIf: CYGPKG_HAL_ARM
-};
-
-# >
-# The CPU architecture supports THUMB mode
-#
-cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
-    # 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 CYGHWR_THUMB
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-};
-
-# Enable Thumb instruction set
-# Enable use of the Thumb instruction set.
-#
-cdl_option CYGHWR_THUMB {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # 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 CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-};
-
-# Enable Thumb interworking compiler option
-# This option controls the use of -mthumb-interwork in the
-# compiler flags. It defaults enabled in Thumb or ROM monitor
-# configurations, but can be overridden for reduced memory
-# footprint where interworking is not a requirement.
-#
-cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    #     CYGHWR_THUMB == 0
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# The platform and architecture supports Big Endian operation
-#
-cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
-    # 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 CYGHWR_HAL_ARM_BIGENDIAN
-    #     ActiveIf:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-};
-
-# Use big-endian mode
-# Use the CPU in big-endian mode.
-#
-cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-    #     CYGINT_HAL_ARM_BIGENDIAN == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# The platform uses a processor with an ARM7 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with an ARM9 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a StrongARM core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a XScale core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# ARM CPU family
-# It is possible to optimize code for different
-# ARM CPU families. This option selects which CPU to
-# optimize for on boards that support multiple CPU types.
-#
-cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ARM9
-    # value_source default
-    # Default value:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-    #   --> ARM9
-    # Legal values:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-};
-
-# Provide diagnostic dump for exceptions
-# Print messages about hardware exceptions, including
-# raw exception frame dump and register contents.
-#
-cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
-    # 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
-    #   --> 1
-};
-
-# Process all exceptions with the eCos application
-# Normal RAM-based programs which do not include GDB stubs 
-# defer processing of the illegal instruction exception to GDB.
-# Setting this options allows the program to explicitly handle
-# the illegal instruction exception itself.  Note: this will
-# prevent the use of GDB to debug the application as breakpoints
-# will no longer work.
-#
-cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support GDB thread operations via ICE/Multi-ICE
-# Allow GDB to get thread information via the ICE/Multi-ICE
-# connection.
-#
-cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
-    # 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
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
-    #   --> 0
-};
-
-# Support for 'gprof' callbacks
-# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
-# to acquire the interrupt-context PC and SP, when this option is
-# active.
-#
-cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS == 0
-    #   --> 0
-    # ActiveIf constraint:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Accept exceptions and irq's occurring in user mode
-# For standalone Redboot based programs running in user mode.
-#
-cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Preserve svc spsr before returning to svc mode
-# This option secures exception and breakpoint processing
-# triggered during execution of application specific SWI
-# handlers.
-#
-cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Linker script
-#
-cdl_option CYGBLD_LINKER_SCRIPT {
-    # Calculated value:  "src/arm.ld" 
-    # Flavor: data
-    # Current_value: src/arm.ld
-};
-
-# Implementations of hal_arm_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Freescale SoC architecture
-# This HAL variant package provides generic
-# support for the Freescale SoC. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM_MX53 {
-    # 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
-    # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK
-    #     ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-};
-
-# >
-# Processor clock rate
-# The processor can run at various frequencies.
-# These values are expressed in KHz.  Note that there are
-# several steppings of the rate to run at different
-# maximum frequencies.  Check the specs to make sure that your
-# particular processor can run at the rate you select here.
-#
-cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
-    # This option is not active
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 150000
-    # value_source default
-    # Default value:  CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
-    #                             CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #   --> 150000
-    # Legal values: 150000 200000
-};
-
-# Real-time clock constants
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Calculated value: 1000000000
-    # Flavor: data
-    # Current_value: 1000000000
-};
-
-# Real-time clock denominator
-# This option selects the heartbeat rate for the real-time clock.
-# The rate is specified in ticks per second.  Change this value
-# with caution - too high and your system will become saturated
-# just handling clock interrupts, too low and some operations
-# such as thread scheduling may become sluggish.
-#
-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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_RTC_PERIOD
-    #     Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    # Flavor: data
-    # Current_value: 36864
-};
-
-# <
-# UART1 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART1 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART2 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART2 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART3 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART3 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART4 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART4 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART5 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART5 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Ka-Ro TX53 module
-# This HAL platform package provides generic
-# support for the Ka-Ro electronics TX53 module.
-#
-cdl_package CYGPKG_HAL_ARM_TX53KARO {
-    # 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: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGBLD_BUILD_REDBOOT == 1
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-};
-
-# >
-# Startup type
-# The only startup type allowed is ROMRAM, since this will allow
-# the program to exist in ROM, but be copied to RAM during startup
-# which is required to boot from NAND flash.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ROMRAM
-    # value_source default
-    # Default value: ROMRAM
-    # Legal values:  "ROMRAM" "RAM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     DefaultValue:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "RAM" 
-    # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" 
-    # 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 
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     ActiveIf:  CYG_HAL_STARTUP != "RAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the console port.
-# Note: this should match the value chosen for the GDB port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option selects the baud rate used for the GDB port.
-# Note: this should match the value chosen for the console port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the TX53
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Calculated value: 5
-    # Flavor: data
-    # Current_value: 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-};
-
-# Debug serial port
-# The TX53 provides access to five serial ports. This option
-# chooses which port will be used to connect to a host
-# running GDB.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Console serial port
-# The TX53 provides access to three serial ports. This option
-# chooses which port will be used for console output.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0
-    #   --> 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Ka-Ro electronics TX53 module 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_HAL_ARM_TX53_OPTIONS {
-    # There is no associated value.
-    # Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-};
-
-# >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
-# SDRAM size
-# This option specifies the SDRAM size of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x20000000
-    # value_source default
-    # Default value: 0x20000000
-    # Legal values:  0x40000000 0x20000000 
-};
-
-# CPU clock
-# This option specifies the CPU clock in MHz of the TX51 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
-    # Flavor: data
-    user_value 800
-    # value_source user
-    # Default value: 1000
-    # Legal values:  800 1000 
-};
-
-# Enable low level debugging with LED
-# This option enables low level debugging by blink codes
-# of the LED on STK5.
-#
-cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  false 
-    #     false (unknown) == 0
-    #   --> 0
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the TX53 HAL. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_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 TX53 HAL. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Show a splash screen from the FIS partition: 'logo'
-# When this option is enabled, RedBoot will look for a flash partition
-# named 'logo' and display the contents of this partition as initial
-# screen on the LCD
-#
-cdl_option CYGHWR_MX53_LCD_LOGO {
-    # ActiveIf constraint:  CYGPKG_DEVS_IMX_IPU 
-    #     CYGPKG_DEVS_IMX_IPU == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # Flavor: data
-    user_value 333
-    # value_source user
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
-# <
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  "arm_tx53_romram" 
-    # Flavor: data
-    # Current_value: arm_tx53_romram
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
-};
-
-# <
-# <
-# <
-# <
-# <
-# 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-    # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-};
-
-# >
-# 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
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != 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
-};
-
-# >
-# 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
-};
-
-# 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
-};
-
-# 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
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer on assert fail
-# When an assertion fails the trace buffer will be 
-# printed to the default diagnostic device.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT {
-    # 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
-};
-
-# <
-# Use function names
-# All trace and assert calls within eCos contain a
-# reference to the builtin macro '__PRETTY_FUNCTION__',
-# which evaluates to a string containing
-# the name of the current function.
-# This is useful when reading a trace log.
-# It is possible to suppress the use of the function name
-# 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_FUNCTION_PSEUDOMACRO {
-    # 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
-};
-
-# <
-# Startup options
-# Some packages require a startup routine to be called.
-# This can be carried out by application code, by supplying
-# a routine called cyg_package_start() which calls the
-# appropriate package startup routine(s).
-# Alternatively, this routine can be constructed automatically
-# and configured to call the startup routines of your choice.
-#
-cdl_component CYGPKG_INFRA_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# Start uITRON subsystem
-# Generate a call to initialize the
-# uITRON compatibility subsystem
-# within the system version of cyg_package_start().
-# This enables compatibility with uITRON.
-# You must configure uITRON with the correct tasks before
-# starting the uItron subsystem.
-# If this is disabled, and you want to use uITRON,
-# you must call cyg_uitron_start() from your own
-# cyg_package_start() or cyg_userstart().
-#
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_UITRON
-    #     CYGPKG_UITRON (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: CYGPKG_UITRON
-    #     CYGPKG_UITRON (unknown) == 0
-    #   --> 0
-};
-
-# <
-# Smaller slower memcpy()
-# Enabling this option causes the implementation of
-# the standard memcpy() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memcpy() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Smaller slower memset()
-# Enabling this option causes the implementation of
-# the standard memset() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memset() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide empty C++ delete functions
-# To deal with virtual destructors, where the correct delete()
-# function must be called for the derived class in question, the
-# underlying delete is called when needed, from destructors.  This
-# is regardless of whether the destructor is called by delete itself.
-# So there is a reference to delete() from all destructors.  The
-# default builtin delete() attempts to call free() if there is
-# one defined.  So, if you have destructors, and you have free(),
-# as in malloc() and free(), any destructor counts as a reference
-# to free().  So the dynamic memory allocation code is linked
-# in regardless of whether it gets explicitly called. This
-# increases code and data size needlessly.
-# To defeat this undesirable behaviour, we define empty versions
-# of delete and delete.  But doing this prevents proper use
-# of dynamic memory in C++ programs via C++'s new and delete
-# operators.
-# Therefore, this option is provided
-# for explicitly disabling the provision of these empty functions,
-# so that new and delete can be used, if that is what is required.
-#
-cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Threshold for valid number of delete calls
-# Some users don't know about the empty delete function and then
-# wonder why their C++ classes are leaking memory. If
-# INFRA_DEBUG is enabled we keep a counter for the number of
-# times delete is called. If it goes above this threshold we throw
-# an assertion failure. This should point heavy users of
-# delete in the right direction without upsetting those who want
-# an empty delete function. 
-#
-cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# Provide dummy abort() function
-# This option controls the inclusion of a dummy abort() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to abort(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. It is not expected that this function
-# will ever be called, so its current behaviour is to simply loop.
-#
-cdl_option CYGFUN_INFRA_DUMMY_ABORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-};
-
-# Reset platform at end of test case execution
-# If this option is set then test case programs will reset the platform
-# when they terminate, as opposed to the default which is to just hang
-# in a loop.
-#
-cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide dummy strlen() function
-# This option controls the inclusion of a dummy strlen() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to strlen(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. While it is not expected that this function
-# will ever be called, it is functional but uses the simplest, smallest
-# algorithm. There is a faster version of strlen() in the C library.
-#
-cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-};
-
-# Make all compiler warnings show as errors
-# Enabling this option will cause all compiler warnings to show
-# as errors and bring the library build to a halt. This is used
-# to ensure that the code base is warning free, and thus ensure
-# that newly introduced warnings stand out and get fixed before
-# they show up as weird run-time behavior.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-};
-
-# Make compiler and assembler communicate by pipe
-# Enabling this option will cause the compiler to feed the
-# assembly output the the assembler via a pipe instead of
-# via a temporary file. This normally reduces the build
-# time.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-};
-
-# Infra build options
-# Package specific build options including control over
-# compiler flags used only in building this package.
-#
-cdl_component CYGPKG_INFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Suppressed linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--gc-sections
-    # value_source default
-    # Default value: -Wl,--gc-sections
-};
-
-# Additional linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are added to
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--fatal-warnings
-    # value_source default
-    # Default value: -Wl,--fatal-warnings
-};
-
-# Infra package tests
-#
-cdl_component CYGPKG_INFRA_TESTS {
-    # Calculated value:  "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" 
-    # Flavor: data
-    # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2
-};
-
-# >
-# Number of times a test runs
-# This option controls the number of times tests will execute their
-# basic function.  Not all tests will honor this setting, but those
-# that do will execute the test N times before terminating.  A value
-# less than 0 indicates to run forever.
-#
-cdl_option CYGNUM_TESTS_RUN_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# <
-# Redboot ROM monitor
-# doc: ref/redboot.html
-# This package supports the Redboot [stand-alone debug monitor]
-# using eCos as the underlying board support mechanism.
-#
-cdl_package CYGPKG_REDBOOT {
-    # 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:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_ARM_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # option CYGSEM_IO_ETH_DRIVERS_WARN
-    #     ActiveIf: CYGPKG_REDBOOT
-};
-
-# >
-# Include support for ELF file format
-#
-cdl_component CYGSEM_REDBOOT_ELF {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use the virtual address in the ELF headers
-# The ELF headers contain both a virtual and a physical address
-# for where code/data should be loaded. By default the physical
-# address is used but sometimes it is necassary to use the
-# virtual address because of bugy toolchains
-#
-cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Methods of loading images using redboot
-#
-cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled
-    # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_REDBOOT_LOAD_METHOD
-};
-
-# Build Redboot ROM ELF image
-# This option enables the building of the Redboot ELF image.
-# The image may require further relocation or symbol
-# stripping before being converted to a binary image.
-# This is handled by a rule in the target CDL.
-#
-cdl_component CYGBLD_BUILD_REDBOOT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires: CYGPKG_INFRA
-    #     CYGPKG_INFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_REDBOOT_LOAD_METHOD
-    #     CYGINT_REDBOOT_LOAD_METHOD == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGBLD_BUILD_REDBOOT == 1
-    # option CYGBLD_BUILD_REDBOOT_BIN
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT
-};
-
-# >
-# Include GDB support in RedBoot
-# RedBoot normally includes support for the GDB debugging
-# protocols. This option allows this to be disabled which
-# may yield a substantial savings in terms of code and memory 
-# usage by RedBoot.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-};
-
-# Threads debugging support
-# Enabling this option will include special code in the
-# GDB stubs to support debugging of threaded programs.  In
-# the case of eCos programs, this support allows GDB to
-# have complete access to the eCos threads in the
-# program.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
-    # ActiveIf constraint:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # 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_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-};
-
-# Customized version string
-# Use this option to define a customized version "string" for
-# RedBoot.  Note: this value is only cosmetic, displayed by the
-# "version" command, but is useful for providing site specific
-# information about the RedBoot configuration.
-#
-cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 "Ka-Ro 2010-01-06"
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Enable command line editing
-# If this option is non-zero, RedBoot will remember the
-# last N command lines.  These lines may be reused.
-# Enabling this history will also enable rudimentary
-# editting of the lines themselves.
-#
-cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES
-    #     ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    # option CYGBLD_REDBOOT_CMD_LINE_HISTORY
-    #     Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-};
-
-# Enable command line editing using ANSI arrows, etc
-# If this option is enabled, RedBoot will accept standard ANSI key
-# sequences for cursor movement (along with the emacs style keys).
-#
-cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
-    # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Enable history command and expansion
-# Enabling this option will allow RedBoot to provide a
-# history command to list previous commands. Also enables
-# history expansion via '!'  character similar to bash
-# shell.
-#
-cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-};
-
-# Number of unique RAM segments on platform
-# Change this option to be the number of memory segments which are
-# supported by the platform.  If the value is greater than 1, then
-# a platform specific function must provide information about the
-# additional segments.
-#
-cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include support gzip/zlib decompression
-#
-cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
-    # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB
-    #     CYGPKG_COMPRESS_ZLIB == current
-    #   --> 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
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# >
-# Size of zlib decompression buffer
-# This is the size of the buffer filled with incoming data
-# during load before calls are made to the decompressor
-# function. For ethernet downloads this can be made bigger
-# (at the cost of memory), but for serial downloads on slow
-# processors it may be necessary to reduce the size to
-# avoid serial overruns. zlib appears to bail out if less 
-# than five bytes are available initially so this is the 
-# minimum.
-#
-cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 5 to 256
-};
-
-# Support compression of Flash images
-# This CDL indicates whether flash images can
-# be decompressed from gzip/zlib format into RAM.
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-    # ActiveIf constraint:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #     CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Include GZIP uncompress command
-# Enable this option to include a 'gunzip' command 
-# to uncompress GZIP compressed data.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Turn on CYGPRI_REDBOOT_ZLIB_FLASH
-# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-};
-
-# <
-# Include support for xyzModem downloads
-# doc: ref/download-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
-    # 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 CYGPKG_REDBOOT_CFLAGS_ADD
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_REDBOOT_CFLAGS_ADD {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-    #     CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-inline
-    # value_source default
-    # Default value: -Wno-inline
-};
-
-# Allow the load-command write into Flash.
-# Write images direct to Flash via the load command.
-# We assume anything which is invalid RAM is flash, hence
-# the requires statement
-#
-cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-    #     CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1
-    #   --> 1
-};
-
-# Include MS Windows CE support
-# doc: ref/wince.html
-# This option enables MS Windows CE EShell support
-# and Windows CE .BIN images support
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Include support for MXC USB downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include support for i.MX USB OTG downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include POSIX checksum command
-# doc: ref/cksum-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory fill command
-# doc: ref/mfill-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory compare command
-# doc: ref/mcmp-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory copy command
-# doc: ref/mcopy-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory dump command
-# doc: ref/dump-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include cache command
-# doc: ref/cache-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include exec command
-# doc: ref/exec-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
-    # 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_REDBOOT_ARM_LINUX_EXEC
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-};
-
-# Include I/O Memory commands 'iopeek' and 'iopoke'
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Granularity of timer/ticks
-# This option controls the granularity of the timers.
-# Faster CPUs can afford higher granularity (lower values)
-# which should give higher network performance since the stack
-# is purely polled.
-#
-cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 250
-    # value_source default
-    # Default value: 250
-    # Legal values:  10 25 50 100 250 500 1000 
-};
-
-# Redboot Networking
-# This option includes networking support in RedBoot.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING {
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 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_IO_ETH_DRIVERS_PASS_PACKETS
-    #     DefaultValue:  0 != CYGPKG_REDBOOT_NETWORKING 
-};
-
-# >
-# Print net debug information
-# This option is overriden by the configuration stored 
-# in flash.
-#
-cdl_option CYGDBG_REDBOOT_NET_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support TFTP for download
-# This option enables the use of the TFTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support HTTP for download
-# This option enables the use of the HTTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Default IP address
-# This IP address is the default used by RedBoot if
-# a BOOTP/DHCP server does not respond. The numbers
-# should be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# >
-# Do not try to use BOOTP
-# By default Redboot tries to use BOOTP to get an IP
-# address. If there's no BOOTP server on your network
-# use this option to avoid to wait until the
-# timeout. This option is overriden by the
-# configuration stored in flash.
-#
-cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Default bootp server
-# This IP address is the default server
-# address used by RedBoot if a BOOTP/DHCP
-# server does not respond. The numbers should
-# be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in
-# preference.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# Use DHCP to get IP information
-# Use DHCP protocol to obtain pertinent IP addresses, such 
-# as the client, server, gateway, etc.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
-    # 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 CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-    #     Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-};
-
-# Use a gateway for non-local IP traffic
-# Enabling this option will allow the RedBoot networking
-# stack to use a [single] gateway to reach a non-local
-# IP address.  If disabled, RedBoot will only be able to
-# reach nodes on the same subnet.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-    #     CYGSEM_REDBOOT_NETWORKING_DHCP == 1
-    #   --> 1
-};
-
-# >
-# Default gateway IP address
-# This IP address is the default used by RedBoot
-# if a BOOTP/DHCP server does not respond. The
-# numbers should be separated by *commas*, and
-# not dots. If an IP address is configured into
-# the Flash configuration, that will be used in
-# preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# Default IP address mask
-# This IP address mask is the default used by
-# RedBoot if a BOOTP/DHCP server does not
-# respond. The numbers should be separated by
-# *commas*, and not dots. If an IP address is
-# configured into the Flash configuration, that
-# will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# TCP port to listen for incoming connections
-# RedBoot will 'listen' on this port for incoming TCP 
-# connections. This allows outside connections to be made 
-# to the platform, either for GDB or RedBoot commands.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 9000
-    # value_source default
-    # Default value: 9000
-};
-
-# Number of [network] packet buffers
-# RedBoot may need to buffer network data to support
-# various connections.  This option allows control
-# over the number of such buffered packets, and in
-# turn, controls the amount of memory used by RedBoot
-# (which is not available to user applications).
-# Each packet buffer takes up about 1514 bytes.
-# Note: there is little need to make this larger than
-# the default.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 3 to 8
-};
-
-# DNS support
-# When this option is enabled, RedBoot will be built with
-# support for DNS, allowing use of hostnames on the command
-# line.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NS_DNS
-    #     CYGPKG_NS_DNS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NS_DNS_BUILD
-    #     CYGPKG_NS_DNS_BUILD (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Default DNS IP
-# This option sets the IP of the default DNS. The IP can be
-# changed at runtime as well.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-    # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0.0.0.0
-    # value_source default
-    # Default value: 0.0.0.0
-};
-
-# Timeout in DNS lookup
-# This option sets the timeout used when looking up an
-# address via the DNS. Default is 10 seconds.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Support the use of a domain name
-# This option controls if Redboot supports domain
-# names when performing DNS lookups
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Default DNS domain
-# This option sets the default DNS domain name.
-# This value will be overwritten by the value in
-# flash or a domain returned by DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Get DNS domain from Flash
-# This option enables getting the domain name 
-# from the flash configuration. This can later be 
-# overwritten by a value learnt from DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-    # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use DNS domain from DHCP
-# This option enables the use of the domain name
-# returned by DHCP.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# BOOTP/DHCP DNS domain buffer size
-# This options sets the size of the static
-# buffer used by BOOTP/DHCP to store the DNS
-# domain name. The domain name will not be
-# set if the buffer is too small to hold it.
-#
-cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# <
-# <
-# Default network device driver
-# This is the name of the default network device to use.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"\""
-    # value_source default
-    # Default value: "\"\""
-};
-
-# Initialize only one net device
-# This option tells RedBoot to stop initializing network
-# devices when it finds the first device which is
-# successfully initialized. The default behavior causes
-# all network devices to be initialized.
-#
-cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Let RedBoot use any I/O channel for its console.
-# If this option is enabled then RedBoot will attempt to use all
-# defined serial I/O channels for its console device.  Once input
-# arrives at one of these channels then the console will use only
-# that port.
-#
-cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# Let RedBoot adjust the baud rate of the serial console.
-# If this option is enabled then RedBoot will support commands 
-# to set and query the baud rate on the selected console.
-#
-cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Run a platform specific startup function.
-# If this option is enabled then RedBoot will execute a platform
-# specific startup function before entering into its command line
-# processing.  This allows the platform to perform any special
-# setups before RedBoot actually starts running.  Note: the entire
-# RedBoot environment will already be initialized at this point.
-#
-cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Run a platform specific ESA validation function.
-# If this option is enabled then RedBoot will execute a platform
-# specific function to validate an ethernet ESA.  This would be
-# useful if the address must conform to standards set by the
-# hardware manufacturer, etc.
-#
-cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI
-    #     ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-};
-
-# Maximum command line length
-# This option allows control over how long the CLI command line
-# should be.  This space will be allocated statically
-# rather than from RedBoot's stack.
-#
-cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # The inferred value should not be edited directly.
-    inferred_value 1024
-    # value_source inferred
-    # Default value: 256
-};
-
-# Command processing idle timeout (ms)
-# This option controls the timeout period before the
-# command processing is considered 'idle'.  Making this
-# number smaller will cause idle processing to take place
-# more often, etc.  The default value of 10ms is a reasonable
-# tradeoff between responsiveness and overhead.
-#
-cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Validate RAM addresses during load
-# This option controls whether or not RedBoot will make
-# sure that memory being used by the "load" command is
-# in fact in user RAM.  Leaving the option enabled makes
-# for a safer environment, but this check may not be valid
-# on all platforms, thus the ability to disable it.  
-# ** Disable this only with great care **
-#
-cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
-    # 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 CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-};
-
-# Allow RedBoot to support FLASH programming
-# If this option is enabled then RedBoot will provide commands
-# to manage images in FLASH memory.  These images can be loaded
-# into memory for execution or executed in place.
-#
-cdl_component CYGPKG_REDBOOT_FLASH {
-    # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE
-    #     CYGHWR_IO_FLASH_DEVICE == 1
-    #   --> 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 CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-    # option CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-};
-
-# >
-# Byte order used to store info in flash.
-# This option controls the byte ordering used to store
-# the FIS directory info and flash config info.
-#
-cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NATURAL
-    # value_source default
-    # Default value: NATURAL
-    # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" 
-};
-
-# RedBoot Flash Image System support
-# doc: ref/flash-image-system.html
-# This option enables the Flash Image System commands
-# and support within RedBoot.  If disabled, simple Flash
-# access commands such as "fis write" will still exist.
-# This option would be disabled for targets that need simple
-# FLASH manipulation, but do not have the need or space for
-# complete image management.
-#
-cdl_option CYGOPT_REDBOOT_FIS {
-    # 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_REDBOOT_FIS_CONTENTS
-    #     ActiveIf: CYGOPT_REDBOOT_FIS
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# Max number of chunks of free space to manage
-# If this option is defined then "fis free" will
-# rely on the FIS directory to determine what space is
-# free within the FLASH.  This option controls the
-# maximum number of free segment which can be handled
-# (typically this number is small).  If this option is
-# not enabled, the the archaic behaviour of actually
-# scanning the FLASH for erased sectors (unreliable)
-# will be used to determine what's free and what's
-# not.
-#
-cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 32
-    # value_source default
-    # Default value: 1 32
-};
-
-# Flash Image System default directory contents
-#
-cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
-    # ActiveIf constraint: CYGOPT_REDBOOT_FIS
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Flash block containing the Directory
-# Which block of flash should hold the directory
-# information. Positive numbers are absolute block
-# numbers.  Negative block numbers count backwards
-# from the last block.  eg 2 means block 2, -2
-# means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
-    # Flavor: data
-    # 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 CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# Redundant Flash Image System Directory Support
-# This option enables the use of a redundant FIS
-# directory within RedBoot.  If enabled a flash block
-# will be reserved for a second copy of the fis
-# directory. Doing this allow for power failure safe
-# updates of the directory by the application.
-#
-cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-    #     CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1
-    #   --> 0
-};
-
-# >
-# Flash block containing the backup Directory
-# Which block of flash should hold the redundant
-# directory information. Positive numbers are
-# absolute block numbers. Negative block numbers
-# count backwards from the last block. eg 2 means
-# block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -3
-    # value_source default
-    # Default value: -3
-    # Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-    #     CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0
-    #     CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# <
-# Pseudo-file to describe reserved area
-# If an area of FLASH is reserved, it is informative to
-# have a fis entry describing it.  This option controls
-# creation of such an entry by default in the fis init
-# command.
-#
-cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
-    # This option is not active
-    # ActiveIf constraint:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# File to describe RedBoot boot image
-# Normally a ROM-startup RedBoot image is first in the
-# FLASH, and the system boots using that image.  This
-# option controls creation of an entry describing it in
-# the fis init command.  It might be disabled if a
-# platform has an immutable boot image of its own, where
-# we use a POST-startup RedBoot instead, which performs
-# less board initialization.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
-    # 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 CYGOPT_REDBOOT_FIS_REDBOOT_POST
-    #     DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT
-    # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE
-    #     DefaultValue:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-};
-
-# File to describe RedBoot POST-compatible image
-# This option controls creation of an entry describing a
-# POST-startup RedBoot image in the fis init command.
-# Not all platforms support POST-startup.  A platform
-# might have both for testing purposes, where the
-# eventual user would substitute their own POST code for
-# the initial ROM-startup RedBoot, and then jump to the
-# POST-compatible RedBoot immediately following.
-#
-cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0
-};
-
-# >
-# Offset of POST image from FLASH start
-# This option specifies the offset for a POST image from
-# the start of FLASH.  If unset, then the fis entry
-# describing the POST image will be placed where
-# convenient.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# File to describe RedBoot backup image
-# This option controls creation of an entry describing a
-# backup RedBoot image in the fis init command.
-# Conventionally a RAM-startup RedBoot image is kept
-# under this name for use in updating the ROM-based
-# RedBoot that boots the board.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include ARM SIB ID in FIS
-# If set, this option will cause the last 5 words of
-# the FIS to include the special ID needed for the
-# flash to be recognized as a reserved area for RedBoot
-# by an ARM BootRom monitor.
-#
-cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Size of FIS directory entry
-# The FIS directory is limited to one single flash
-# sector. If your flash has tiny sectors, you may wish
-# to reduce this value in order to get more slots in
-# the FIS directory.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-};
-
-# Number of FIS directory entries
-# The FIS directory normally occupies a single flash
-# sector. Adjusting this value can allow for more than
-# one flash sector to be used, which is useful if your
-# sectors are very small.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Maximum RedBoot image size
-# This option controls the maximum length reserved
-# for the RedBoot boot image in the FIS table.
-# This should be a multiple of the flash's erase
-# block size.
-#
-cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00020000
-    # The inferred value should not be edited directly.
-    inferred_value 0x00040000
-    # value_source inferred
-    # Default value:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0x00020000
-};
-
-# Offset from start of FLASH to RedBoot boot image
-# This option controls where the RedBoot boot image is 
-# located relative to the start of FLASH.
-#
-cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-    # Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # component CYGPKG_HAL_ARM_TX53_OPTIONS
-    #     Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-};
-
-# Size of reserved area at start of FLASH
-# This option reserves an area at the start of
-# FLASH where RedBoot will never interfere; it is
-# expected that this area contains
-# (non-RedBoot-based) POST code or some other boot
-# monitor that executes before RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
-    # Flavor: data
-    # 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 CYGOPT_REDBOOT_FIS_RESERVED_BASE
-    #     ActiveIf:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# Keep all RedBoot FLASH data blocks locked.
-# When this option is enabled, RedBoot will keep configuration
-# data and the FIS directory blocks implicitly locked.  While
-# this is somewhat safer, it does add overhead during updates.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-    #     CYGHWR_IO_FLASH_BLOCK_LOCKING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use CRC checksums on FIS images.
-# When this option is enabled, RedBoot will use CRC checksums
-# when reading and writing flash images.
-#
-cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# ARM FLASH drivers support SIB flash block structure
-# This interface is implemented by a flash driver
-# to indicate that it supports the ARM SIB flash
-# block structure
-#
-cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGPKG_HAL_ARM
-    #     CYGPKG_HAL_ARM == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_FLASH_SIB
-    #     ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-};
-
-# Use ARM SIB flash block structure
-# This option is used to interpret ARM Flash System 
-# information blocks.
-#
-cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Keep RedBoot configuration data in FLASH
-# When this option is enabled, RedBoot will keep configuration
-# data in a separate block of FLASH memory.  This data will
-# include such items as the node IP address or startup scripts.
-#
-cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_IO_FLASH != 0 
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_IP
-    #     ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN
-    #     ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# >
-# Length of configuration data in FLASH
-# This option is used to control the amount of memory and FLASH
-# to be used for configuration options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value: 4096
-};
-
-# Style of media used for persistent data storage
-# Persistent data storage can either be held in 'norma' FLASH
-# or some other device (represented by the 'EEPROM' choice).
-# The different styles utilize different access methods.
-#
-cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value FLASH
-    # value_source default
-    # Default value: FLASH
-    # Legal values:  "FLASH" "EEPROM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK
-    #     DefaultValue:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-};
-
-# Merged config data and FIS directory
-# If this option is set, then the FIS directory and FLASH 
-# configuration database will be stored in the same physical
-# FLASH block.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
-    # ActiveIf constraint:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGOPT_REDBOOT_FIS == 1
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 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
-    # component CYGOPT_REDBOOT_REDUNDANT_FIS
-    #     Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-};
-
-# Which block of flash to use
-# Which block of flash should hold the configuration 
-# information. Positive numbers are absolute block numbers. 
-# Negative block numbers count backwards from the last block.
-# eg 2 means block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -2
-    # value_source default
-    # Default value: -2
-};
-
-# Support simple macros/aliases in FLASH
-# This option is used to allow support for simple text-based
-# macros (aliases).  These aliases are kept in the FLASH
-# configuration data (persistent storage).
-#
-cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Length of strings in FLASH configuration data
-# This option is used to control the amount of memory
-# and FLASH to be used for string configuration
-# options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-};
-
-# Length of configuration script(s) in FLASH
-# This option is used to control the amount of memory and 
-# FLASH to be used for configuration options (persistent 
-# storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 512
-    # The inferred value should not be edited directly.
-    inferred_value 2048
-    # value_source inferred
-    # Default value: 512
-};
-
-# Fallback to read-only FLASH configuration
-# This option will cause the configuration information to
-# revert to the readonly information stored in the FLASH.
-# The option only takes effect after 
-# 1) the config_ok flag has been set to be true,
-# indicating that at one time the copy in RAM was valid;
-# and
-# 2) the information in RAM has been verified to be invalid
-#
-cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 1
-};
-
-# <
-# Allow RedBoot to support fileio
-# If this option is enabled then RedBoot will provide commands
-# to load files from fileio file systems such as JFFS2.
-#
-cdl_component CYGPKG_REDBOOT_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO (unknown) == 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 CYGNUM_REDBOOT_GETC_BUFFER
-    #     DefaultValue:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-};
-
-# >
-# Include an ls command
-# If this option is enabled a simple ls command will be
-# included in redboot so the contents of a directory
-# can be listed
-#
-cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_FILEIO is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Allow RedBoot to support disks
-# If this option is enabled then RedBoot will provide commands
-# to load disk files.
-#
-cdl_component CYGPKG_REDBOOT_DISK {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# >
-# Include Redboot commands for disk access
-#
-cdl_option CYGSEM_REDBOOT_DISK {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-    #     CYGINT_REDBOOT_DISK_DRIVERS == 0
-    #   --> 0
-};
-
-# Hardware drivers for disk-type devices
-#
-cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
-    # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_DISK
-    #     DefaultValue:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-};
-
-# Maximum number of supported disks
-# This option controls the number of disks supported by 
-# RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_MAX_DISKS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# Maximum number of partitions per disk
-# This option controls the maximum number of supported 
-# partitions per disk.
-#
-cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Support IDE disks.
-# When this option is enabled, RedBoot will support IDE disks.
-#
-cdl_component CYGSEM_REDBOOT_DISK_IDE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-    # ActiveIf constraint:  CYGINT_HAL_PLF_IF_IDE != 0 
-    #     CYGINT_HAL_PLF_IF_IDE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Work with VMware virtual disks
-# This option controls the disk driver behavior at 
-# ide-init
-#
-cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_DISK_IDE is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support Linux second extended filesystems.
-# When this option is enabled, RedBoot will support EXT2 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support ISO9660 filesystems.
-# When this option is enabled, RedBoot will support ISO9660 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Boot scripting
-# doc: ref/persistent-state-flash.html
-# This contains options related to RedBoot's boot script
-# functionality.
-#
-cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
-    # There is no associated value.
-};
-
-# >
-# Boot scripting enabled
-# This option controls whether RedBoot boot script
-# functionality is enabled.
-#
-cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
-    # ActiveIf constraint:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-    #     CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Use default RedBoot boot script
-# If enabled, this option will tell RedBoot to use the 
-# value of this option as a default boot script.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 0 0
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# Resolution (in ms) for script timeout value.
-# This option controls the resolution of the script
-# timeout.  The value is specified in milliseconds
-# (ms), thus to have the script timeout be defined in
-# terms of tenths of seconds, use 100.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # The inferred value should not be edited directly.
-    inferred_value 10
-    # value_source inferred
-    # Default value: 1000
-};
-
-# Script default timeout value
-# This option is used to set the default timeout for startup
-# scripts, when they are enabled.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 10
-};
-
-# <
-# Support RTC for time & date functions
-# When this option is enabled, RedBoot will support commands to
-# query and set the real time clock (time and date)
-#
-cdl_option CYGSEM_REDBOOT_RTC {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_IO_WALLCLOCK 
-    #     CYGPKG_IO_WALLCLOCK (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Behave like a ROM monitor
-# Enabling this option will allow RedBoot to provide ROM 
-# monitor-style services to programs which it executes.
-#
-cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# Allow RedBoot to handle GNUPro application 'syscalls'.
-# If this option is enabled then RedBoot will install a
-# syscall handler to support debugging of applications
-# based on GNUPro newlib/bsp.
-#
-cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
-    # 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 CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-    # option CYGPKG_HAL_GDB_FILEIO
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-};
-
-# >
-# Support additional syscalls for 'gprof' profiling
-# Support additional syscalls to support a periodic callback
-# function for histogram-style profiling, and an enquire/set
-# of the tick rate.
-# The application must use the GNUPro newlib facilities
-# to set this up.
-#
-cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-    # ActiveIf constraint:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-    #     CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does the HAL support 'gprof' profiling?
-#
-cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
-    # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF
-    #     ActiveIf:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-};
-
-# Do not raise SIGTRAP when program exits
-# For some (single shot) newlib based programs,
-# exiting and returning a termination status may be
-# the normal expected behavior.
-#
-cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Use a common buffer for Zlib and FIS
-# Use a common memory buffer for both the zlib workspace
-# and FIS directory operations. This can save a substantial
-# amount of RAM, especially when flash sectors are large.
-#
-cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
-    # ActiveIf constraint:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-    #     CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of Zlib/FIS common buffer
-# Size of common buffer to allocate. Must be at least the
-# size of one flash sector.
-#
-cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000C000
-    # value_source default
-    # Default value: 0x0000C000
-    # Legal values: 0x4000 to 0x80000000
-};
-
-# <
-# Buffer size in getc when loading images
-# When loading images a buffer is used between redboot and the
-# underlying storage medium, eg a filesystem, or a socket etc.
-# The size of this buffer can have a big impart on load speed.
-#
-cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-    #     CYGPKG_REDBOOT_FILEIO == 0
-    #   --> 256
-};
-
-# <
-# Redboot for ARM options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Provide the exec command in RedBoot
-# This option contains requirements for booting linux
-# from RedBoot. The component is enabled/disabled from
-# RedBoots CDL.
-#
-cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Enable -x switch for exec command.
-# This option allows bi-endian platforms to launch kernels
-# built for an endianess different than the RedBoot endianess
-#
-cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x70108000
-    # value_source default
-    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 0x70108000
-};
-
-# Default physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image. This option gets set by the 
-# platform CDL.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00008000
-    # The inferred value should not be edited directly.
-    inferred_value 0x70108000
-    # value_source inferred
-    # Default value: 0x00008000
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS
-    #     DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-};
-
-# Base address of linux kernel parameter tags
-# This is the base address of the area of memory used to
-# pass parameters to the Linux kernel. This should be chosen
-# to avoid overlap with the kernel and any ramdisk image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000100
-    # value_source default
-    # Default value: 0x00000100
-};
-
-# <
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Build Redboot ROM binary image
-# This option enables the conversion of the Redboot ELF
-# image to a binary image suitable for ROM programming.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Redboot HAL variant options
-#
-cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 1
-};
-
-# <
-# ISO C and POSIX infrastructure
-# eCos supports implementations of ISO C libraries and POSIX
-# implementations. This package provides infrastructure used by
-# all such implementations.
-#
-cdl_package CYGPKG_ISOINFRA {
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_COMPRESS_ZLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-};
-
-# >
-# Startup and termination
-#
-cdl_component CYGPKG_ISO_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# main() startup implementations
-# Implementations of this interface arrange for a user-supplied
-# main() to be called in an ISO compatible environment.
-#
-cdl_interface CYGINT_ISO_MAIN_STARTUP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-};
-
-# <
-# ctype.h functions
-#
-cdl_component CYGPKG_ISO_CTYPE_H {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of ctype functions
-#
-cdl_interface CYGINT_ISO_CTYPE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_CTYPE 
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_CTYPE
-    #     Requires:  1 >= CYGINT_ISO_CTYPE 
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-};
-
-# Ctype implementation header
-#
-cdl_option CYGBLD_ISO_CTYPE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/i18n/ctype.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-};
-
-# <
-# Error handling
-#
-cdl_component CYGPKG_ISO_ERRNO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of error codes
-#
-cdl_interface CYGINT_ISO_ERRNO_CODES {
-    # Implemented by CYGPKG_ERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO_CODES
-    #     Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-};
-
-# Error codes implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/codes.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_ERROR
-    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-};
-
-# Number of implementations of errno variable
-#
-cdl_interface CYGINT_ISO_ERRNO {
-    # Implemented by CYGPKG_ERROR_ERRNO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO 
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO
-    #     Requires:  1 >= CYGINT_ISO_ERRNO 
-};
-
-# errno variable implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/errno.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_ERROR_ERRNO
-    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-};
-
-# <
-# Locale-related functions
-#
-cdl_component CYGPKG_ISO_LOCALE {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of locale functions
-#
-cdl_interface CYGINT_ISO_LOCALE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_LOCALE 
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_LOCALE
-    #     Requires:  1 >= CYGINT_ISO_LOCALE 
-};
-
-# Locale implementation header
-#
-cdl_option CYGBLD_ISO_LOCALE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard I/O-related functionality
-#
-cdl_component CYGPKG_ISO_STDIO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of stdio file types
-#
-cdl_interface CYGINT_ISO_STDIO_FILETYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-};
-
-# Stdio file types implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-};
-
-# Stdio standard streams implementation header
-# This header file must define stdin, stdout
-# and stderr.
-#
-cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEOPS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-};
-
-# Stdio file operations implementation header
-# This header controls the file system operations on a file
-# such as remove(), rename(), tmpfile(), tmpnam() and associated
-# constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-};
-
-# Stdio file access implementation header
-# This header controls the file access operations
-# such as fclose(), fflush(), fopen(), freopen(), setbuf(),
-# setvbuf(), and associated constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-};
-
-# Stdio formatted I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-};
-
-# Stdio character I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-};
-
-# Stdio direct I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEPOS
-};
-
-# Stdio file positioning implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-};
-
-# Stdio error handling implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS
-    #     Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-};
-
-# POSIX fd-related function implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard general utility functions
-#
-cdl_component CYGPKG_ISO_STDLIB {
-    # There is no associated value.
-};
-
-# >
-# String conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-};
-
-# String conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/atox.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ATOX
-    #     Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-};
-
-# String to FP conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT {
-    # Implemented by CYGFUN_LIBC_strtod, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-};
-
-# String to FP conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Random number generator implementations
-#
-cdl_interface CYGINT_ISO_RAND {
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_RAND 
-    #     CYGINT_ISO_RAND == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_RAND
-    #     Requires:  1 >= CYGINT_ISO_RAND 
-};
-
-# Random number generator implementation header
-#
-cdl_option CYGBLD_ISO_RAND_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Malloc implementations
-#
-cdl_interface CYGINT_ISO_MALLOC {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLOC
-    #     Requires:  1 >= CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-};
-
-# Malloc implementation header
-#
-cdl_option CYGBLD_ISO_MALLOC_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Mallinfo() implementations
-#
-cdl_interface CYGINT_ISO_MALLINFO {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLINFO 
-    #     CYGINT_ISO_MALLINFO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLINFO
-    #     Requires:  1 >= CYGINT_ISO_MALLINFO 
-};
-
-# Mallinfo() implementation header
-#
-cdl_option CYGBLD_ISO_MALLINFO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program exit functionality implementations
-#
-cdl_interface CYGINT_ISO_EXIT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_EXIT
-    #     Requires:  1 >= CYGINT_ISO_EXIT 
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     Requires: !CYGINT_ISO_EXIT
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     DefaultValue:  CYGINT_ISO_EXIT == 0 
-};
-
-# Program exit functionality implementation header
-#
-cdl_option CYGBLD_ISO_EXIT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program environment implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-    #     CYGINT_ISO_STDLIB_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-};
-
-# Program environment implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# system() implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_SYSTEM {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-    #     CYGINT_ISO_STDLIB_SYSTEM == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_SYSTEM
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-};
-
-# system() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# bsearch() implementations
-#
-cdl_interface CYGINT_ISO_BSEARCH {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_BSEARCH 
-    #     CYGINT_ISO_BSEARCH == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSEARCH
-    #     Requires:  1 >= CYGINT_ISO_BSEARCH 
-};
-
-# bsearch() implementation header
-#
-cdl_option CYGBLD_ISO_BSEARCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# qsort() implementations
-#
-cdl_interface CYGINT_ISO_QSORT {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_QSORT 
-    #     CYGINT_ISO_STDLIB_QSORT (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# qsort() implementation header
-#
-cdl_option CYGBLD_ISO_QSORT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# abs()/labs() implementations
-#
-cdl_interface CYGINT_ISO_ABS {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ABS 
-    #     CYGINT_ISO_STDLIB_ABS (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# abs()/labs() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/abs.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ABS
-    #     Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-};
-
-# div()/ldiv() implementations
-#
-cdl_interface CYGINT_ISO_DIV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_DIV 
-    #     CYGINT_ISO_STDLIB_DIV (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# div()/ldiv() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/div.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_DIV
-    #     Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-};
-
-# Header defining the implementation's MB_CUR_MAX
-#
-cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBC_I18N_MB_REQUIRED
-    #     Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-};
-
-# Multibyte character implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-    #     CYGINT_ISO_STDLIB_MULTIBYTE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_MULTIBYTE
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-};
-
-# Multibyte character implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# String functions
-#
-cdl_component CYGPKG_ISO_STRING {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of strerror() function
-#
-cdl_interface CYGINT_ISO_STRERROR {
-    # Implemented by CYGPKG_ERROR_STRERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRERROR 
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRERROR
-    #     Requires:  1 >= CYGINT_ISO_STRERROR 
-};
-
-# strerror() implementation header
-#
-cdl_option CYGBLD_ISO_STRERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/strerror.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_ERROR_STRERROR
-    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-};
-
-# memcpy() implementation header
-#
-cdl_option CYGBLD_ISO_MEMCPY_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# memset() implementation header
-#
-cdl_option CYGBLD_ISO_MEMSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of strtok_r() function
-#
-cdl_interface CYGINT_ISO_STRTOK_R {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRTOK_R 
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRTOK_R
-    #     Requires:  1 >= CYGINT_ISO_STRTOK_R 
-};
-
-# strtok_r() implementation header
-#
-cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of locale-specific string  functions
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-};
-
-# Locale-specific string functions' implementation  header
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of BSD string functions
-#
-cdl_interface CYGINT_ISO_STRING_BSD_FUNCS {
-    # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-};
-
-# BSD string functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/bsdstring.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-};
-
-# Number of implementations of other mem*() functions
-#
-cdl_interface CYGINT_ISO_STRING_MEMFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_MEMFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-};
-
-# Other mem*() functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of other ISO C str*()  functions
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_interface CYGINT_ISO_STRING_STRFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_STRFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     Requires: !CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     DefaultValue:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_NET
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-};
-
-# Other ISO C str*() functions' implementation  header
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# <
-# Clock and time functionality
-#
-cdl_component CYGPKG_ISO_TIME {
-    # There is no associated value.
-};
-
-# >
-# time_t implementation header
-#
-cdl_option CYGBLD_ISO_TIME_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# clock_t implementation header
-#
-cdl_option CYGBLD_ISO_CLOCK_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# struct timeval implementation header
-#
-cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-    #     CYGINT_ISO_POSIX_TIMER_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-};
-
-# POSIX timer types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCK_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-};
-
-# POSIX clock types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-};
-
-# ISO C time types implementation header
-#
-cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-    #     CYGINT_ISO_POSIX_TIMERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMERS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-};
-
-# POSIX timer implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_CLOCK_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-};
-
-# ISO C clock functions' implementation header
-#
-cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of tzset() function
-#
-cdl_interface CYGINT_ISO_TZSET {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_TZSET 
-    #     CYGINT_ISO_TZSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TZSET
-    #     Requires:  1 >= CYGINT_ISO_TZSET 
-};
-
-# tzset() implementation header
-#
-cdl_option CYGBLD_ISO_TZSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Signal functionality
-#
-cdl_component CYGPKG_ISO_SIGNAL {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of signal numbers
-#
-cdl_interface CYGINT_ISO_SIGNAL_NUMBERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-};
-
-# Signal numbering implementation header
-# This header provides the mapping of signal
-# names (e.g. SIGBUS) to numbers.
-#
-cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-};
-
-# Signals implementation header
-#
-cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX real time signals feature test macro
-# This defines the POSIX feature test macro
-# that indicates that the POSIX real time signals
-# are present.
-#
-cdl_interface CYGINT_POSIX_REALTIME_SIGNALS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-    #     CYGINT_POSIX_REALTIME_SIGNALS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_POSIX_REALTIME_SIGNALS
-    #     Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-};
-
-# <
-# Non-local jumps functionality
-#
-cdl_component CYGPKG_ISO_SETJMP {
-    # There is no associated value.
-};
-
-# >
-# setjmp() / longjmp() implementations
-#
-cdl_interface CYGINT_ISO_SETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SETJMP
-    #     Requires:  1 >= CYGINT_ISO_SETJMP 
-};
-
-# setjmp() / longjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-    #     CYGINT_ISO_SIGSETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGSETJMP
-    #     Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-};
-
-# sigsetjmp() / siglongjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Assertions implementation header
-#
-cdl_option CYGBLD_ISO_ASSERT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file control
-# This covers the POSIX file control definitions,
-# normally found in <fcntl.h>
-#
-cdl_component CYGPKG_ISO_POSIX_FCNTL {
-    # There is no associated value.
-};
-
-# >
-# POSIX open flags implementation header
-#
-cdl_option CYGBLD_ISO_OFLAG_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fcntl() implementations
-#
-cdl_interface CYGINT_ISO_FCNTL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_FCNTL
-    #     Requires:  1 >= CYGINT_ISO_FCNTL 
-};
-
-# POSIX fcntl() implementation header
-#
-cdl_option CYGBLD_ISO_FCNTL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file open implementations
-#
-cdl_interface CYGINT_ISO_OPEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_OPEN
-    #     Requires:  1 >= CYGINT_ISO_OPEN 
-};
-
-# POSIX file open implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# <sys/stat.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_STAT_DEFS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX directory reading implementation
-#
-cdl_interface CYGINT_ISO_DIRENT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DIRENT
-    #     Requires:  1 >= CYGINT_ISO_DIRENT 
-};
-
-# <dirent.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_DIRENT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX <sys/types.h> contents
-# This covers the types required by POSIX to be in
-# <sys/types.h>
-#
-cdl_component CYGPKG_ISO_POSIX_TYPES {
-    # There is no associated value.
-};
-
-# >
-# POSIX thread types implementations
-#
-cdl_interface CYGINT_ISO_PTHREADTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREADTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    # interface CYGINT_ISO_PMUTEXTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-};
-
-# POSIX thread types implementation header
-#
-cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# ssize_t implementation header
-#
-cdl_option CYGBLD_ISO_SSIZE_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Filesystem types implementation header
-#
-cdl_option CYGBLD_ISO_FSTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# gid_t, pid_t, uid_t implementation header
-#
-cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Non-POSIX <sys/types.h> contents
-# This covers the extra types required by non-POSIX
-# packages to be in <sys/types.h>. These would normally
-# only be visible if _POSIX_SOURCE is not defined.
-#
-cdl_component CYGPKG_ISO_EXTRA_TYPES {
-    # There is no associated value.
-};
-
-# >
-# BSD compatible types
-#
-cdl_interface CYGINT_ISO_BSDTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_BSDTYPES 
-    #     CYGINT_ISO_BSDTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSDTYPES
-    #     Requires:  1 >= CYGINT_ISO_BSDTYPES 
-};
-
-# BSD types header
-#
-cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Utsname structure
-#
-cdl_component CYGPKG_ISO_UTSNAME {
-    # There is no associated value.
-};
-
-# >
-# Utsname header
-#
-cdl_option CYGBLD_ISO_UTSNAME_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SCHED_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-};
-
-# POSIX scheduler implementation header
-#
-cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX semaphores
-#
-cdl_component CYGPKG_ISO_SEMAPHORES {
-    # There is no associated value.
-};
-
-# >
-# POSIX semaphore implementations
-#
-cdl_interface CYGINT_ISO_SEMAPHORES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SEMAPHORES
-    #     Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-};
-
-# POSIX semaphore implementation header
-#
-cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MQUEUE
-    #     Requires:  1 >= CYGINT_ISO_MQUEUE 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-    # option CYGNUM_ISO_MQUEUE_PRIO_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-};
-
-# Implementation header
-#
-cdl_option CYGBLD_ISO_MQUEUE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Maximum number of open message queues
-#
-cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #   --> 0 0
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 65535
-    # value_source default
-    # Default value: 1 65535
-};
-
-# <
-# POSIX threads
-#
-cdl_component CYGPKG_ISO_PTHREAD {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_IMPL
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-};
-
-# POSIX pthread implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_LIMITS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-};
-
-# POSIX pthread limits implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# LINK_MAX implementation header
-#
-cdl_option CYGBLD_ISO_LINK_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# NAME_MAX implementation header
-#
-cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# PATH_MAX implementation header
-#
-cdl_option CYGBLD_ISO_PATH_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX termios
-#
-cdl_component CYGPKG_ISO_TERMIOS {
-    # There is no associated value.
-};
-
-# >
-# POSIX termios implementations
-#
-cdl_interface CYGINT_ISO_TERMIOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TERMIOS
-    #     Requires:  1 >= CYGINT_ISO_TERMIOS 
-};
-
-# POSIX termios implementation header
-#
-cdl_option CYGBLD_ISO_TERMIOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Dynamic load API
-#
-cdl_component CYGPKG_ISO_DLFCN {
-    # There is no associated value.
-};
-
-# >
-# Dynamic load implementations
-#
-cdl_interface CYGINT_ISO_DLFCN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DLFCN 
-    #     CYGINT_ISO_DLFCN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DLFCN
-    #     Requires:  1 >= CYGINT_ISO_DLFCN 
-};
-
-# Dynamic load implementation header
-#
-cdl_option CYGBLD_ISO_DLFCN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# UNIX standard functions
-#
-cdl_component CYGPKG_ISO_UNISTD {
-    # There is no associated value.
-};
-
-# >
-# POSIX timer operations implementations
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_OPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-    #     CYGINT_ISO_POSIX_TIMER_OPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_OPS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-};
-
-# POSIX timer operations implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX sleep() implementations
-#
-cdl_interface CYGINT_ISO_POSIX_SLEEP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_SLEEP
-    #     Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-};
-
-# POSIX sleep() implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# select()/poll() functions
-#
-cdl_component CYGPKG_ISO_SELECT {
-    # There is no associated value.
-};
-
-# >
-# select() implementations
-#
-cdl_interface CYGINT_ISO_SELECT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SELECT
-    #     Requires:  1 >= CYGINT_ISO_SELECT 
-};
-
-# select() implementation header
-#
-cdl_option CYGBLD_ISO_SELECT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# poll() implementations
-#
-cdl_interface CYGINT_ISO_POLL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POLL 
-    #     CYGINT_ISO_POLL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POLL
-    #     Requires:  1 >= CYGINT_ISO_POLL 
-};
-
-# poll() implementation header
-#
-cdl_option CYGBLD_ISO_POLL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# NetDB utility functions
-#
-cdl_component CYGPKG_ISO_NETDB {
-    # There is no associated value.
-};
-
-# >
-# DNS implementations
-#
-cdl_interface CYGINT_ISO_DNS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_DNS 
-    #     CYGINT_ISO_DNS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DNS
-    #     Requires:  1 >= CYGINT_ISO_DNS 
-};
-
-# DNS implementation header
-#
-cdl_option CYGBLD_ISO_DNS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Protocol network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_PROTO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-    #     CYGINT_ISO_NETDB_PROTO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_PROTO
-    #     Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-};
-
-# Protocol network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Services network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_SERV {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-    #     CYGINT_ISO_NETDB_SERV == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_SERV
-    #     Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-};
-
-# Services network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# 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_ISOINFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the ISO C and POSIX infrastructure package.
-# These flags are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_ISOINFRA_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 ISO C and POSIX infrastructure package.
-# These flags are removed from the set of global flags
-# if present.
-#
-cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# Compute CRCs
-# doc: ref/services-crc.html
-# This package provides support for CRC calculation. Currently 
-# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by 
-# Gary S. Brown, and a 16 bit CRC.
-#
-cdl_package CYGPKG_CRC {
-    # 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_COMPRESS_ZLIB
-    #     Requires: CYGPKG_CRC
-};
-
-# >
-# POSIX CRC tests
-#
-cdl_option CYGPKG_CRC_TESTS {
-    # Calculated value:  "tests/crc_test" 
-    # Flavor: data
-    # Current_value: tests/crc_test
-};
-
-# <
-# Zlib compress and decompress package
-# This package provides support for compression and
-# decompression.
-#
-cdl_package CYGPKG_COMPRESS_ZLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_CRC
-    #     CYGPKG_CRC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB
-    #     ActiveIf: CYGPKG_COMPRESS_ZLIB
-};
-
-# >
-# Override memory allocation routines.
-#
-cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     ActiveIf:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-};
-
-# Should deflate() produce 'gzip' compatible output?
-# If this option is set then the output of calling deflate()
-# will be wrapped up as a 'gzip' compatible file.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does this library need malloc?
-# This pseudo-option will force the memalloc library to be
-# required iff the application does not provide it's own
-# infrastructure.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-    #     CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-};
-
-# Include stdio-like utility functions
-# This option enables the stdio-like zlib utility functions
-# (gzread/gzwrite and friends) provided in gzio.c.
-#
-cdl_option CYGFUN_COMPRESS_ZLIB_GZIO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 
-    #     CYGPKG_LIBC_STDIO_OPEN (unknown) == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 0
-};
-
-# Zlib compress and decompress package 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_COMPRESS_ZLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_COMPRESS_ZLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D__ECOS__ -DNO_ERRNO_H"
-    # value_source default
-    # Default value: "-D__ECOS__ -DNO_ERRNO_H"
-};
-
-# 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_COMPRESS_ZLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wstrict-prototypes
-    # value_source default
-    # Default value: -Wstrict-prototypes
-};
-
-# 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_COMPRESS_ZLIB_LDFLAGS_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# zlib tests
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_TESTS {
-    # Calculated value:  "tests/zlib1.c tests/zlib2.c" 
-    # Flavor: data
-    # Current_value: tests/zlib1.c tests/zlib2.c
-};
-
-# <
-# FLASH device drivers
-# doc: ref/flash.html
-# This option enables drivers for basic I/O services on
-# flash devices.
-#
-cdl_package CYGPKG_IO_FLASH {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_FLASH_CONFIG
-    #     DefaultValue:  CYGPKG_IO_FLASH != 0 
-    # package CYGPKG_DEVS_FLASH_ONMXC
-    #     ActiveIf: CYGPKG_IO_FLASH
-};
-
-# >
-# Hardware FLASH device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE {
-    # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_FLASH
-    #     ActiveIf: CYGHWR_IO_FLASH_DEVICE
-};
-
-# Hardware FLASH device drivers are not in RAM
-# Use of this interface is deprecated.
-# Drivers should make sure that the functions are
-# linked to RAM by putting them in .2ram sections.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-};
-
-# Hardware can support block locking
-# This option will be enabled by devices which can support
-# locking (write-protection) of individual blocks.
-#
-cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL
-    #     ActiveIf:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-};
-
-# Hardware cannot support direct access to FLASH memory
-# This option will be asserted by devices which cannot support
-# direct access to the FLASH memory contents (e.g. EEPROM or NAND
-# devices).  In these cases, the driver must provide an appropriate
-# hardware access function.
-#
-cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-    #     CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    # component CYGHWR_DEVS_FLASH_MMC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_SD
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_NAND
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-};
-
-# Display status messages during flash operations
-# Selecting this option will cause the drivers to print status
-# messages as various flash operations are undertaken.
-#
-cdl_option CYGSEM_IO_FLASH_CHATTER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Verify data programmed to flash
-# Selecting this option will cause verification of data
-# programmed to flash.
-#
-cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_IO_FLASH_READ_INDIRECT
-    #     Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-};
-
-# Platform has flash soft DIP switch write-protect
-# Selecting this option will cause the state of a hardware jumper or
-# dipswitch to be read by software to determine whether the flash is
-# write-protected or not.
-#
-cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instantiate in I/O block device API
-# Provides a block device accessible using the standard I/O
-# API ( cyg_io_read() etc. )
-#
-cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of flash device 1 block device
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
-    # This option is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/flash1\""
-    # value_source default
-    # Default value: "\"/dev/flash1\""
-};
-
-# >
-#
-cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 {
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     CYGINT_IO_FLASH_BLOCK_CFG_1 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-};
-
-# Static configuration
-# This configures the flash device 1 block device
-# with static base and length
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash which this
-# block device corresponds to.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash given over
-# to this block device.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Configuration from FIS
-# This configures the flash device 1 block device
-# from Redboot FIS
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of FIS entry
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"jffs2\""
-    # value_source default
-    # Default value: "\"jffs2\""
-};
-
-# <
-# <
-# <
-# Flash 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_FLASH_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the flash device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_FLASH_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 flash device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Flash device driver tests
-# This option specifies the set of tests for the flash device drivers.
-#
-cdl_component CYGPKG_IO_FLASH_TESTS {
-    # Calculated value:  "tests/flash1" 
-    # Flavor: data
-    # Current_value: tests/flash1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash where tests
-# can be run.  It is important to set this correctly, as an
-# incorrect value could allow the tests to write over critical
-# portions of the FLASH device and possibly render the target
-# board totally non-functional.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash used for testing.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# <
-# Support FLASH memory on Freescale MXC platforms
-#
-cdl_package CYGPKG_DEVS_FLASH_ONMXC {
-    # 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_FLASH
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC platform MMC card support
-# When this option is enabled, it indicates MMC card is
-# supported on the MXC platforms
-#
-cdl_component CYGHWR_DEVS_FLASH_MMC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# >
-# MXC platform MMC card for newer SDHC controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# MXC platform MMC card for older MMC/SD controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_SD {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS 
-    #     CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX31ADS (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:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# <
-# MXC platform NOR flash memory support
-# When this option is enabled, it indicates NOR flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR
-    #     Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# MXC platform NAND flash memory support
-# When this option is enabled, it indicates NAND flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-};
-
-# i.MX platform SPI NOR flash memory support
-# When this option is enabled, it indicates SPI NOR flash is
-# supported on the i.MX platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #   --> 0
-};
-
-# MXC platform ATA support
-# When this option is enabled, it indicates ATA is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_ATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use a flash based Bad Block Table
-#
-cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH {
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# When this option is enabled, the driver will search for a flash
-# based bad block table
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# header file defining the NAND BBT descriptor
-# defines the name of the header file that describes the BBT layout
-#
-cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Number of blocks to reserve for BBT
-# Number of blocks to reserve for BBT
-#
-cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# <
-# MXC platform multi flash memory support
-# When this option is enabled, it indicates multi flashes are
-# supported on the MXC platforms (like NAND and NOR)
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
-    # This option is not active
-    # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# MXC platform NAND flash reset workaround support
-# When this option is enabled, it indicates 0xFFFF is used for
-# the NAND reset command instead of 0xFF.
-#
-cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# Dynamic memory allocation
-# doc: ref/memalloc.html
-# This package provides memory allocator infrastructure required for
-# dynamic memory allocators, including the ISO standard malloc
-# interface. It also contains some sample implementations.
-#
-cdl_package CYGPKG_MEMALLOC {
-    # 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
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     Requires: CYGPKG_MEMALLOC
-};
-
-# >
-# Memory allocator implementations
-# This component contains configuration options related to the 
-# various memory allocators available.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATORS {
-    # There is no associated value.
-};
-
-# >
-# Fixed block allocator
-# This component contains configuration options related to the 
-# fixed block memory allocator.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Simple variable block allocator
-# This component contains configuration options related to the 
-# simple variable block memory allocator. This allocator is not
-# very fast, and in particular does not scale well with large
-# numbers of allocations. It is however very compact in terms of
-# code size and does not have very much overhead per allocation.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are added that allow a thread to wait until memory
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Coalesce memory
-# The variable-block memory allocator can perform coalescing
-# of memory whenever the application code releases memory back
-# to the pool. This coalescing reduces the possibility of
-# memory fragmentation problems, but involves extra code and
-# processor cycles.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE {
-    # 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 CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-};
-
-# <
-# Doug Lea's malloc
-# This component contains configuration options related to the 
-# port of Doug Lea's memory allocator, normally known as
-# dlmalloc. dlmalloc has a reputation for being both fast
-# and space-conserving, as well as resisting fragmentation well.
-# It is a common choice for a general purpose allocator and
-# has been used in both newlib and Linux glibc.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC {
-    # There is no associated value.
-};
-
-# >
-# Debug build
-# Doug Lea's malloc implementation has substantial amounts
-# of internal checking in order to verify the operation
-# and consistency of the allocator. However this imposes
-# substantial overhead on each operation. Therefore this
-# checking may be individually disabled.
-#
-cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGDBG_USE_ASSERTS 
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Support more than one instance
-# Having this option disabled allows important
-# implementation structures to be declared as a single
-# static instance, allowing faster access. However this
-# would fail if there is more than one instance of
-# the dlmalloc allocator class. Therefore this option can
-# be enabled if multiple instances are required. Note: as
-# a special case, if this allocator is used as the
-# implementation of malloc, and it can be determined there
-# is more than one malloc pool, then this option will be
-# silently enabled.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use system memmove() and memset()
-# This may be used to control whether memset() and memmove()
-# are used within the implementation. The alternative is
-# to use some macro equivalents, which some people report
-# are faster in some circumstances.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA 
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# Minimum alignment of allocated blocks
-# This option controls the minimum alignment that the
-# allocated memory blocks are aligned on, specified as
-# 2^N. Note that using large mininum alignments can lead
-# to excessive memory wastage.
-#
-cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 3 to 10
-};
-
-# <
-# Variable block allocator with separate metadata
-# This component contains configuration options related to the 
-# variable block memory allocator with separate metadata.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# Kernel C API support for memory allocation
-# This option must be enabled to provide the extensions required
-# to support integration into the kernel C API.
-#
-cdl_option CYGFUN_MEMALLOC_KAPI {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C (unknown) == 0
-    #   --> 0
-};
-
-# malloc(0) returns NULL
-# This option controls the behavior of malloc(0) ( or calloc with
-# either argument 0 ). It is permitted by the standard to return
-# either a NULL pointer or a unique pointer. Enabling this option
-# forces a NULL pointer to be returned.
-#
-cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Breakpoint site when running out of memory
-# Whenever the system runs out of memory, it invokes this function
-# before either going to sleep waiting for memory to become 
-# available or returning failure.
-#
-cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# malloc() and supporting allocators
-# This component enables support for dynamic memory
-# allocation as supplied by the functions malloc(),
-# free(), calloc() and realloc(). As these
-# functions are often used, but can have quite an
-# overhead, disabling them here can ensure they
-# cannot even be used accidentally when static
-# allocation is preferred. Within this component are
-# various allocators that can be selected for use
-# as the underlying implementation of the dynamic
-# allocation functions.
-#
-cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS {
-    # ActiveIf constraint: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use external heap definition
-# This option allows other components in the
-# system to override the default system
-# provision of heap memory pools. This should
-# be set to a header which provides the equivalent
-# definitions to <pkgconf/heaps.hxx>.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Use external implementation of joining multiple heaps
-# The default implementation of joining multiple heaps
-# is fine for the case where there are multiple disjoint
-# memory regions of the same type. However, in a system
-# there might be e.g. a small amount of internal SRAM and
-# a large amount of external DRAM. The SRAM is faster and
-# the DRAM is slower. An application can implement some 
-# heuristic to choose which pool to allocate from. This
-# heuristic can be highly application specific.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# malloc() allocator implementations
-#
-cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS {
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-    #     CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS
-    #     Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-};
-
-# malloc() implementation instantiation data
-# Memory allocator implementations that are capable of being
-# used underneath malloc() must be instantiated. The code
-# to do this is set in this option. It is only intended to
-# be set by the implementation, not the user.
-#
-cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value <cyg/memalloc/dlmalloc.hxx>
-    # value_source default
-    # Default value: <cyg/memalloc/dlmalloc.hxx>
-
-    # The following properties are affected by this value
-    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-};
-
-# Simple variable block implementation
-# This causes malloc() to use the simple
-# variable block allocator.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 0
-    # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-    #     CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1
-    #   --> 1
-};
-
-# Doug Lea's malloc implementation
-# This causes malloc() to use a version of Doug Lea's
-# malloc (dlmalloc) as the underlying implementation.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 1
-};
-
-# <
-# Size of the fallback dynamic memory pool in bytes
-# If *no* heaps are configured in your memory layout,
-# dynamic memory allocation by
-# malloc() and calloc() must be from a fixed-size,
-# contiguous memory pool (note here that it is the
-# pool that is of a fixed size, but malloc() is still
-# able to allocate variable sized chunks of memory
-# from it). This option is the size
-# of that pool, in bytes. Note that not all of
-# this is available for programs to
-# use - some is needed for internal information
-# about memory regions, and some may be lost to
-# ensure that memory allocation only returns
-# memory aligned on word (or double word)
-# boundaries - a very common architecture
-# constraint.
-#
-cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16384
-    # value_source default
-    # Default value: 16384
-    # Legal values: 32 to 0x7fffffff
-};
-
-# Common memory allocator package 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_MEMALLOC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_MEMALLOC_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_MEMALLOC_TESTS {
-    # Calculated value:  "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" 
-    # Flavor: data
-    # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2
-};
-
-# <
-# <
-# Common error code support
-# This package contains the common list of error and
-# status codes. It is held centrally to allow
-# packages to interchange error codes and status
-# codes in a common way, rather than each package
-# having its own conventions for error/status
-# reporting. The error codes are modelled on the
-# POSIX style naming e.g. EINVAL etc. This package
-# also provides the standard strerror() function to
-# convert error codes to textual representation, as
-# well as an implementation of the errno idiom.
-#
-cdl_package CYGPKG_ERROR {
-    # 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:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
-    #   --> 1
-};
-
-# >
-# errno variable
-# This package controls the behaviour of the
-# errno variable (or more strictly, expression)
-# from <errno.h>.
-#
-cdl_component CYGPKG_ERROR_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
-    #   --> 1
-};
-
-# >
-# Per-thread errno
-# This option controls whether the standard error
-# code reporting variable errno is a per-thread
-# variable, rather than global.
-#
-cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the errno
-# retrieval mechanism in errno.cxx. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strerror function
-# This package controls the presence and behaviour of the
-# strerror() function from <string.h>
-#
-cdl_option CYGPKG_ERROR_STRERROR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
-    #   --> 1
-};
-
-# Error package 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_ERROR_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the error package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_ERROR_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 error package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# I2C driver for FSL MXC-based platforms
-#
-cdl_package CYGPKG_DEVS_MXC_I2C {
-    # 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
-};
-
-# ipu driver for mxc
-#
-cdl_package CYGPKG_DEVS_IMX_IPU {
-    # 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
-    # option CYGHWR_MX53_LCD_LOGO
-    #     ActiveIf:  CYGPKG_DEVS_IMX_IPU 
-};
-
-# >
-# IPU version 3EX support
-# When this option is enabled, it indicates the IPU version
-# is 3EX
-#
-cdl_option CYGHWR_DEVS_IPU_3_EX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-};
-
-# IPU version 3D support
-# When this option is enabled, it indicates the IPU version
-# is 3D
-#
-cdl_option CYGHWR_DEVS_IPU_3_D {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
diff --git a/config/TX53-8x30.ecc b/config/TX53-8x30.ecc
deleted file mode 100644 (file)
index 9cc3561..0000000
+++ /dev/null
@@ -1,10426 +0,0 @@
-# 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    tx53karo ;
-    template    redboot ;
-    package -hardware CYGPKG_HAL_ARM current ;
-    package -hardware CYGPKG_HAL_ARM_MX53 current ;
-    package -hardware CYGPKG_HAL_ARM_TX53KARO current ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_REDBOOT current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_CRC current ;
-    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
-    package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ;
-    package -hardware CYGPKG_DEVS_ETH_FEC current ;
-    package -hardware CYGPKG_COMPRESS_ZLIB current ;
-    package -hardware CYGPKG_IO_FLASH current ;
-    package -hardware CYGPKG_DEVS_FLASH_ONMXC current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_DEVS_ETH_PHY current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_DEVS_MXC_I2C current ;
-    package -hardware CYGPKG_DEVS_IMX_IPU current ;
-};
-
-# ---- conflicts -------------------------------------------------------
-# There are no conflicts.
-
-# ---- contents --------------------------------------------------------
-# >
-# >
-# 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.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
-};
-
-# 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
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
-    #   --> 1
-
-    # 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 "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-    # value_source default
-    # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-};
-
-# 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
-};
-
-# <
-# ISO C library string functions
-# doc: ref/libc.html
-# This package provides string functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STRING {
-    # 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:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Inline versions of <string.h> functions
-# This option chooses whether some of the
-# particularly simple string functions from
-# <string.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_STRING_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Optimize string functions for code size
-# This option tries to reduce string function
-# code size at the expense of execution speed. The
-# same effect can be produced if the code is
-# compiled with the -Os option to the compiler.
-#
-cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide BSD compatibility functions
-# Enabling this option causes various compatibility functions
-# commonly found in the BSD UNIX operating system to be included.
-# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
-# strncasecmp, index, rindex and swab.
-#
-cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-};
-
-# strtok
-# These options control the behaviour of the
-# strtok() and strtok_r() string tokenization
-# functions.
-#
-cdl_component CYGPKG_LIBC_STRING_STRTOK {
-    # There is no associated value.
-};
-
-# >
-# Per-thread strtok()
-# This option controls whether the string function
-# strtok() has its state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard strtok_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the <string.h>
-# functions strtok() and strtok_r(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strdup
-# This option indicates whether strdup() is to be supported.
-#
-cdl_option CYGFUN_LIBC_STRING_STRDUP {
-    # ActiveIf constraint: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# C library string functions 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_LIBC_STRING_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library string function tests
-# This option specifies the set of tests for the C library
-# string functions.
-#
-cdl_option CYGPKG_LIBC_STRING_TESTS {
-    # Calculated value:  "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" 
-    # Flavor: data
-    # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2
-};
-
-# <
-# <
-# Common ethernet support
-# doc: ref/io-eth-drv-generic.html
-# Platform independent ethernet drivers
-#
-cdl_package CYGPKG_IO_ETH_DRIVERS {
-    # 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
-    # component CYGPKG_REDBOOT_NETWORKING
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_ARM_TX53
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_PHY
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-};
-
-# >
-# Network drivers
-#
-cdl_interface CYGHWR_NET_DRIVERS {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-    # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-};
-
-# Driver supports multicast addressing
-# This interface defines whether or not a driver can handle
-# requests for multicast addressing.
-#
-cdl_interface CYGINT_IO_ETH_MULTICAST {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Support printing driver debug information
-# Selecting this option will include code to allow the driver to
-# print lots of information on diagnostic output such as full
-# packet dumps.
-#
-cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Driver debug output verbosity
-# The value of this option indicates the default verbosity
-# level of debugging output. 0 means no debugging output
-# is made by default. Higher values indicate higher verbosity.
-# The verbosity level may also be changed at run time by
-# changing the variable cyg_io_eth_net_debug.
-#
-cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Size of scatter-gather I/O lists
-# A scatter-gather list is used to pass requests to/from
-# the physical device driver.  This list can typically be
-# small, as the data is normally already packed into reasonable
-# chunks.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# Support for standard eCos TCP/IP stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_NET {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Warn when there are no more mbufs
-# Warnings about running out of mbufs are printed to the
-# diagnostic output channel via diag_printf() if this option
-# is enabled.  Mbufs are the network stack's basic dynamic
-# memory objects that hold all packets in transit; running
-# out is bad for performance but not fatal, not a crash.
-# You might want to turn off the warnings to preserve realtime
-# properties of the system even in extremis.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Simulate network failures for testing
-# This package contains a suite of simulated failure modes
-# for the ethernet device layer, including dropping and/or
-# corrupting received packets, dropping packets queued for
-# transmission, and simulating a complete network break.
-# It requires the kernel as a source of time information.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Drop incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Corrupt incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Drop outgoing packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Simulate a line cut from time to time
-# This option causes the system to drop all packets for a
-# short random period (10s of seconds), and then act
-# normally for up to 4 times that long.  This simulates your
-# sysadmin fiddling with plugs in the network switch
-# cupboard.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# Support for stand-alone network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE {
-    # ActiveIf constraint: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Pass packets to an alternate stack
-# Define this to allow packets seen by this layer to be
-# passed on to the previous logical layer, i.e. when
-# stand-alone processing replaces system (eCos) processing.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_REDBOOT_NETWORKING 
-    #     CYGPKG_REDBOOT_NETWORKING == 1
-    #   --> 1
-};
-
-# Number of [network] buffers
-# This option is used to allocate space to buffer incoming network
-# packets.  These buffers are used to hold data until they can be
-# logically processed by higher layers.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 2 to 32
-};
-
-# Show driver warnings
-# Selecting this option will allows the stand-alone ethernet driver
-# to display warnings on the system console when incoming network
-# packets are being discarded due to lack of buffer space.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_WARN {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support for lwIP network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET_LWIP
-    #     CYGPKG_NET_LWIP (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-};
-
-# Interrupt support required
-# This interface is used to indicate to the low
-# level device drivers that interrupt driven operation
-# is required by higher layers.
-#
-cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED {
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Common ethernet support build options
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the common ethernet support package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# Ethernet driver for Ka-Ro electronics TX53 processor module
-#
-cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# FEC ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED
-};
-
-# Ka-Ro TX53 ethernet port driver
-# This option includes the ethernet device driver for the
-# MXC Board port.
-#
-cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-    # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-    #     CYGHWR_DEVS_ETH_PHY_LAN8700 == 1
-    #   --> 1
-};
-
-# >
-# Device name for the ETH0 ethernet driver
-# This option sets the name of the ethernet device.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# OUI part of MAC address
-# This option sets OUI part (manufacturer ID) of the MAC address
-# for validation.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
-    # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ 0x00, 0x0c, 0xc6 }"
-    # value_source default
-    # Default value: "{ 0x00, 0x0c, 0xc6 }"
-};
-
-# <
-# <
-# Driver for fast ethernet controller.
-# Driver for fast ethernet controller.
-#
-cdl_package CYGPKG_DEVS_ETH_FEC {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED
-    #     CYGINT_DEVS_ETH_FEC_REQUIRED == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC FEC ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Cirrus Logic ethernet driver package.
-# These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# MXC FEC MII Gasket for RMII mode
-# This option enables the use of the MII Gasket for
-# RMII mode found in i.MX25 and i.MX53 processors.
-#
-cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK {
-    # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Ethernet transceiver (PHY) support
-# API for ethernet PHY devices
-#
-cdl_package CYGPKG_DEVS_ETH_PHY {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-};
-
-# >
-# Enable driver debugging
-# Enables the diagnostic debug messages on the
-# console device.
-#
-cdl_option CYGDBG_DEVS_ETH_PHY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time period (seconds) to wait for auto-negotiation
-# The length of time to wait for auto-negotiation to complete
-# before giving up and declaring the link dead/missing.
-#
-cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-};
-
-# NSDP83847
-# Include support for National Semiconductor DP83847 DsPHYTER II
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# AMD 79C874
-# Include support for AMD 79C874 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Intel LXT972
-# Include support for Intel LXT972xxx PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1890
-# Include support for ICS 1890 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1892
-# Include support for ICS 1892 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1893
-# Include support for ICS 1893 and 1893AF PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Davicom DM9161A
-# Include support for the Davicom DM9161A PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Micrel KS8721
-# Include support for the Micrel KS8721 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# SMSC LAN8700
-# Include support for SMSC LAN8700 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-};
-
-# <
-# <
-# ISO C library internationalization functions
-# doc: ref/libc.html
-# This package provides internationalization functions specified by the
-# ISO C standard - ISO/IEC 9899:1990. These include locale-related
-# functionality and <ctype.h> functionality.
-#
-cdl_package CYGPKG_LIBC_I18N {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Supported locales
-# These options determine which locales other than the "C" locale
-# are supported and hence contribute to the size of the executable.
-#
-cdl_component CYGPKG_LIBC_I18N_LOCALES {
-    # There is no associated value.
-};
-
-# >
-# Support for multiple locales required
-#
-cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-    #     CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-};
-
-# C-SJIS locale support
-# This option controls if the "C-SJIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese SJIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-JIS locale support
-# This option controls if the "C-JIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese JIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-EUCJP locale support
-# This option controls if the "C-EUCJP" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese EUCJP multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# <
-# Newlib's ctype implementation
-# This option enables the implementation of the ctype functions
-# that comes with newlib. It is table driven and therefore
-# exhibits different performance characteristics. It also offers
-# a limited amount of binary compatibility
-# with newlib so that programs linked against newlib ctype/locale
-# do not need to be recompiled when linked with eCos.
-#
-cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 0
-};
-
-# Per-thread multibyte state
-# This option controls whether the multibyte character
-# handling functions mblen(), mbtowc(), and wctomb(),
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Enabling this option will use three slots
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Size of locale name strings
-# This option controls the maximum size of
-# locale names and is used, among other things
-# to instantiate a static string used
-# as a return value from the
-# setlocale() function. When requesting the
-# current locale settings with LC_ALL, a string
-# must be constructed to contain this data, rather
-# than just returning a constant string. This
-# string data is stored in the static string.
-# This depends on the length of locale names,
-# hence this option. If just the C locale is
-# present, this option can be set as low as 2.
-#
-cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-    #   --> 2
-    # Legal values:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-};
-
-# Inline versions of <ctype.h> functions
-# This option chooses whether the simple character
-# classification and conversion functions (e.g.
-# isupper(), isalpha(), toupper(), etc.)
-# from <ctype.h> are available as inline
-# functions. This may improve performance and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 1
-};
-
-# C library i18n functions 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_LIBC_I18N_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library i18n function tests
-# This option specifies the set of tests for the C library
-# i18n functions.
-#
-cdl_option CYGPKG_LIBC_I18N_TESTS {
-    # Calculated value:  "tests/ctype tests/setlocale tests/i18nmb" 
-    # Flavor: data
-    # Current_value: tests/ctype tests/setlocale tests/i18nmb
-};
-
-# <
-# <
-# ISO C library general utility functions
-# doc: ref/libc.html
-# This package provides general utility functions in <stdlib.h>
-# as specified by the ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Inline versions of <stdlib.h> functions
-# This option chooses whether some of the
-# particularly simple standard utility functions
-# from <stdlib.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_component CYGIMP_LIBC_STDLIB_INLINES {
-    # There is no associated value.
-};
-
-# >
-# abs() / labs()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
-    #   --> 1
-};
-
-# div() / ldiv()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
-    #   --> 1
-};
-
-# atof() / atoi() / atol()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
-    #   --> 1
-};
-
-# <
-# Random number generation
-# These options control the behaviour of the
-# functions rand(), srand() and rand_r()
-#
-cdl_component CYGPKG_LIBC_RAND {
-    # There is no associated value.
-};
-
-# >
-# Per-thread random seed
-# doc: ref/libc-thread-safety.html
-# This option controls whether the pseudo-random
-# number generation functions rand() and srand()
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard rand_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Random number seed
-# This selects the initial random number seed for
-# rand()'s pseudo-random number generator. For
-# strict ISO standard compliance, this should be 1,
-# as per section 7.10.2.2 of the standard.
-#
-cdl_option CYGNUM_LIBC_RAND_SEED {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 0 to 0x7fffffff
-};
-
-# Tracing level
-# Trace verbosity level for debugging the rand(),
-# srand() and rand_r() functions. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# Simplest implementation
-# This provides a very simple implementation of rand()
-# that does not perform well with randomness in the
-# lower significant bits. However it is exceptionally
-# fast. It uses the sample algorithm from the ISO C
-# standard itself.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple implementation #1
-# This provides a very simple implementation of rand()
-# based on the simplest implementation above. However
-# it does try to work around the lack of randomness
-# in the lower significant bits, at the expense of a
-# little speed.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Knuth implementation #1
-# This implements a slightly more complex algorithm
-# published in Donald E. Knuth's Art of Computer
-# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
-# This produces better random numbers than the
-# simplest approach but is slower.
-#
-cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# <
-# Provides strtod()
-# This option allows use of the utility function
-# strtod() (and consequently atof()) to convert
-# from string to double precision floating point
-# numbers. Disabling this option removes the
-# dependency on the math library package.
-#
-cdl_option CYGFUN_LIBC_strtod {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-};
-
-# Provides long long conversion functions
-# Enabling this option will provide support for the strtoll(),
-# strtoull() and atoll() conversion functions, which are
-# the long long variants of the standard versions of these
-# functions. Supporting this requires extra code and compile
-# time.
-#
-cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# bsearch() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# binary search function bsearch(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# qsort() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# quicksort function qsort(). Increase this value
-# to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# C library stdlib 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_LIBC_STDLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_LIBC_STDLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library stdlib tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STDLIB_TESTS {
-    # Calculated value:  "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" 
-    # Flavor: data
-    # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul
-};
-
-# <
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-};
-
-# >
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-};
-
-# 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 (unknown) == 0
-    #   --> 0
-};
-
-# 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 == ROMRAM
-    #   --> 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 {
-    # 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 == current
-    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
-    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #   --> 1
-
-    # 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 == ROMRAM
-    #   --> 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 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_REDBOOT
-    #     Requires:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-};
-
-# 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 32768
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 32768
-    # 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-};
-
-# 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 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
-    # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
-    #     Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1
-    #   --> 1
-
-    # 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
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 == 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
-
-    # The following properties are affected by this value
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 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 CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     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.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Target has virtual vector support
-#
-cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE
-    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    # package CYGPKG_DEVS_ETH_PHY
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-};
-
-# >
-# 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
-    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 0
-
-    # 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 {
-    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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 == ROMRAM
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 1
-
-    # 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
-    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 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 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 1
-};
-
-# 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 1
-
-    # 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 {
-    # 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 
-};
-
-# <
-# Behave as a ROM monitor
-# Enable this option if this program is to be used as a ROM monitor,
-# i.e. applications will be loaded into RAM on the TX53 module, and this
-# ROM monitor may process exceptions or interrupts generated from the
-# application. This enables features such as utilizing a separate
-# interrupt stack when exceptions are generated.
-#
-cdl_option CYGSEM_HAL_ROM_MONITOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-};
-
-# Work with a ROM monitor
-# Support can be enabled for different varieties of ROM monitor.
-# This support changes various eCos semantics such as the encoding
-# of diagnostic output, or the overriding of hardware interrupt
-# vectors.
-# Firstly there is "Generic" support which prevents the HAL
-# from overriding the hardware vectors that it does not use, to
-# instead allow an installed ROM monitor to handle them. This is
-# the most basic support which is likely to be common to most
-# implementations of ROM monitor.
-# "GDB_stubs" provides support when GDB stubs are included in
-# the ROM monitor or boot ROM.
-#
-cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
-    #     ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR 
-};
-
-# <
-# 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
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_DISK_IDE
-    #     ActiveIf:  CYGINT_HAL_PLF_IF_IDE != 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 == 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 == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache tests/intr
-};
-
-# >
-# 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 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" : "") 
-};
-
-# <
-# ARM architecture
-# The ARM architecture HAL package provides generic
-# support for this processor architecture. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM {
-    # 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
-    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
-    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
-    # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     ActiveIf: CYGPKG_HAL_ARM
-};
-
-# >
-# The CPU architecture supports THUMB mode
-#
-cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
-    # 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 CYGHWR_THUMB
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-};
-
-# Enable Thumb instruction set
-# Enable use of the Thumb instruction set.
-#
-cdl_option CYGHWR_THUMB {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # 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 CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-};
-
-# Enable Thumb interworking compiler option
-# This option controls the use of -mthumb-interwork in the
-# compiler flags. It defaults enabled in Thumb or ROM monitor
-# configurations, but can be overridden for reduced memory
-# footprint where interworking is not a requirement.
-#
-cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    #     CYGHWR_THUMB == 0
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# The platform and architecture supports Big Endian operation
-#
-cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
-    # 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 CYGHWR_HAL_ARM_BIGENDIAN
-    #     ActiveIf:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-};
-
-# Use big-endian mode
-# Use the CPU in big-endian mode.
-#
-cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-    #     CYGINT_HAL_ARM_BIGENDIAN == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# The platform uses a processor with an ARM7 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with an ARM9 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a StrongARM core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a XScale core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# ARM CPU family
-# It is possible to optimize code for different
-# ARM CPU families. This option selects which CPU to
-# optimize for on boards that support multiple CPU types.
-#
-cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ARM9
-    # value_source default
-    # Default value:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-    #   --> ARM9
-    # Legal values:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-};
-
-# Provide diagnostic dump for exceptions
-# Print messages about hardware exceptions, including
-# raw exception frame dump and register contents.
-#
-cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
-    # 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
-    #   --> 1
-};
-
-# Process all exceptions with the eCos application
-# Normal RAM-based programs which do not include GDB stubs 
-# defer processing of the illegal instruction exception to GDB.
-# Setting this options allows the program to explicitly handle
-# the illegal instruction exception itself.  Note: this will
-# prevent the use of GDB to debug the application as breakpoints
-# will no longer work.
-#
-cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support GDB thread operations via ICE/Multi-ICE
-# Allow GDB to get thread information via the ICE/Multi-ICE
-# connection.
-#
-cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
-    # 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
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
-    #   --> 0
-};
-
-# Support for 'gprof' callbacks
-# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
-# to acquire the interrupt-context PC and SP, when this option is
-# active.
-#
-cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS == 0
-    #   --> 0
-    # ActiveIf constraint:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Accept exceptions and irq's occurring in user mode
-# For standalone Redboot based programs running in user mode.
-#
-cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Preserve svc spsr before returning to svc mode
-# This option secures exception and breakpoint processing
-# triggered during execution of application specific SWI
-# handlers.
-#
-cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Linker script
-#
-cdl_option CYGBLD_LINKER_SCRIPT {
-    # Calculated value:  "src/arm.ld" 
-    # Flavor: data
-    # Current_value: src/arm.ld
-};
-
-# Implementations of hal_arm_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Freescale SoC architecture
-# This HAL variant package provides generic
-# support for the Freescale SoC. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM_MX53 {
-    # 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
-    # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK
-    #     ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-};
-
-# >
-# Processor clock rate
-# The processor can run at various frequencies.
-# These values are expressed in KHz.  Note that there are
-# several steppings of the rate to run at different
-# maximum frequencies.  Check the specs to make sure that your
-# particular processor can run at the rate you select here.
-#
-cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
-    # This option is not active
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 150000
-    # value_source default
-    # Default value:  CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
-    #                             CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #   --> 150000
-    # Legal values: 150000 200000
-};
-
-# Real-time clock constants
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Calculated value: 1000000000
-    # Flavor: data
-    # Current_value: 1000000000
-};
-
-# Real-time clock denominator
-# This option selects the heartbeat rate for the real-time clock.
-# The rate is specified in ticks per second.  Change this value
-# with caution - too high and your system will become saturated
-# just handling clock interrupts, too low and some operations
-# such as thread scheduling may become sluggish.
-#
-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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_RTC_PERIOD
-    #     Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    # Flavor: data
-    # Current_value: 36864
-};
-
-# <
-# UART1 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART1 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART2 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART2 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART3 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART3 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART4 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART4 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART5 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART5 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Ka-Ro TX53 module
-# This HAL platform package provides generic
-# support for the Ka-Ro electronics TX53 module.
-#
-cdl_package CYGPKG_HAL_ARM_TX53KARO {
-    # 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: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGBLD_BUILD_REDBOOT == 1
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-};
-
-# >
-# Startup type
-# The only startup type allowed is ROMRAM, since this will allow
-# the program to exist in ROM, but be copied to RAM during startup
-# which is required to boot from NAND flash.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ROMRAM
-    # value_source default
-    # Default value: ROMRAM
-    # Legal values:  "ROMRAM" "RAM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     DefaultValue:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "RAM" 
-    # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" 
-    # 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 
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     ActiveIf:  CYG_HAL_STARTUP != "RAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the console port.
-# Note: this should match the value chosen for the GDB port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option selects the baud rate used for the GDB port.
-# Note: this should match the value chosen for the console port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the TX53
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Calculated value: 5
-    # Flavor: data
-    # Current_value: 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-};
-
-# Debug serial port
-# The TX53 provides access to five serial ports. This option
-# chooses which port will be used to connect to a host
-# running GDB.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Console serial port
-# The TX53 provides access to three serial ports. This option
-# chooses which port will be used for console output.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0
-    #   --> 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Ka-Ro electronics TX53 module 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_HAL_ARM_TX53_OPTIONS {
-    # There is no associated value.
-    # Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-};
-
-# >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    user_value 3
-    # value_source user
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
-# SDRAM size
-# This option specifies the SDRAM size of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x20000000
-    # value_source default
-    # Default value: 0x20000000
-    # Legal values:  0x40000000 0x20000000 
-};
-
-# CPU clock
-# This option specifies the CPU clock in MHz of the TX51 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
-    # Flavor: data
-    user_value 800
-    # value_source user
-    # Default value: 1000
-    # Legal values:  800 1000 
-};
-
-# Enable low level debugging with LED
-# This option enables low level debugging by blink codes
-# of the LED on STK5.
-#
-cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  false 
-    #     false (unknown) == 0
-    #   --> 0
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the TX53 HAL. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_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 TX53 HAL. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Show a splash screen from the FIS partition: 'logo'
-# When this option is enabled, RedBoot will look for a flash partition
-# named 'logo' and display the contents of this partition as initial
-# screen on the LCD
-#
-cdl_option CYGHWR_MX53_LCD_LOGO {
-    # ActiveIf constraint:  CYGPKG_DEVS_IMX_IPU 
-    #     CYGPKG_DEVS_IMX_IPU == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 400
-    # value_source default
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
-# <
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  "arm_tx53_romram" 
-    # Flavor: data
-    # Current_value: arm_tx53_romram
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
-};
-
-# <
-# <
-# <
-# <
-# <
-# 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-    # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-};
-
-# >
-# 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
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != 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
-};
-
-# >
-# 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
-};
-
-# 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
-};
-
-# 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
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer on assert fail
-# When an assertion fails the trace buffer will be 
-# printed to the default diagnostic device.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT {
-    # 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
-};
-
-# <
-# Use function names
-# All trace and assert calls within eCos contain a
-# reference to the builtin macro '__PRETTY_FUNCTION__',
-# which evaluates to a string containing
-# the name of the current function.
-# This is useful when reading a trace log.
-# It is possible to suppress the use of the function name
-# 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_FUNCTION_PSEUDOMACRO {
-    # 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
-};
-
-# <
-# Startup options
-# Some packages require a startup routine to be called.
-# This can be carried out by application code, by supplying
-# a routine called cyg_package_start() which calls the
-# appropriate package startup routine(s).
-# Alternatively, this routine can be constructed automatically
-# and configured to call the startup routines of your choice.
-#
-cdl_component CYGPKG_INFRA_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# Start uITRON subsystem
-# Generate a call to initialize the
-# uITRON compatibility subsystem
-# within the system version of cyg_package_start().
-# This enables compatibility with uITRON.
-# You must configure uITRON with the correct tasks before
-# starting the uItron subsystem.
-# If this is disabled, and you want to use uITRON,
-# you must call cyg_uitron_start() from your own
-# cyg_package_start() or cyg_userstart().
-#
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_UITRON
-    #     CYGPKG_UITRON (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: CYGPKG_UITRON
-    #     CYGPKG_UITRON (unknown) == 0
-    #   --> 0
-};
-
-# <
-# Smaller slower memcpy()
-# Enabling this option causes the implementation of
-# the standard memcpy() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memcpy() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Smaller slower memset()
-# Enabling this option causes the implementation of
-# the standard memset() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memset() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide empty C++ delete functions
-# To deal with virtual destructors, where the correct delete()
-# function must be called for the derived class in question, the
-# underlying delete is called when needed, from destructors.  This
-# is regardless of whether the destructor is called by delete itself.
-# So there is a reference to delete() from all destructors.  The
-# default builtin delete() attempts to call free() if there is
-# one defined.  So, if you have destructors, and you have free(),
-# as in malloc() and free(), any destructor counts as a reference
-# to free().  So the dynamic memory allocation code is linked
-# in regardless of whether it gets explicitly called. This
-# increases code and data size needlessly.
-# To defeat this undesirable behaviour, we define empty versions
-# of delete and delete.  But doing this prevents proper use
-# of dynamic memory in C++ programs via C++'s new and delete
-# operators.
-# Therefore, this option is provided
-# for explicitly disabling the provision of these empty functions,
-# so that new and delete can be used, if that is what is required.
-#
-cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Threshold for valid number of delete calls
-# Some users don't know about the empty delete function and then
-# wonder why their C++ classes are leaking memory. If
-# INFRA_DEBUG is enabled we keep a counter for the number of
-# times delete is called. If it goes above this threshold we throw
-# an assertion failure. This should point heavy users of
-# delete in the right direction without upsetting those who want
-# an empty delete function. 
-#
-cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# Provide dummy abort() function
-# This option controls the inclusion of a dummy abort() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to abort(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. It is not expected that this function
-# will ever be called, so its current behaviour is to simply loop.
-#
-cdl_option CYGFUN_INFRA_DUMMY_ABORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-};
-
-# Reset platform at end of test case execution
-# If this option is set then test case programs will reset the platform
-# when they terminate, as opposed to the default which is to just hang
-# in a loop.
-#
-cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide dummy strlen() function
-# This option controls the inclusion of a dummy strlen() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to strlen(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. While it is not expected that this function
-# will ever be called, it is functional but uses the simplest, smallest
-# algorithm. There is a faster version of strlen() in the C library.
-#
-cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-};
-
-# Make all compiler warnings show as errors
-# Enabling this option will cause all compiler warnings to show
-# as errors and bring the library build to a halt. This is used
-# to ensure that the code base is warning free, and thus ensure
-# that newly introduced warnings stand out and get fixed before
-# they show up as weird run-time behavior.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-};
-
-# Make compiler and assembler communicate by pipe
-# Enabling this option will cause the compiler to feed the
-# assembly output the the assembler via a pipe instead of
-# via a temporary file. This normally reduces the build
-# time.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-};
-
-# Infra build options
-# Package specific build options including control over
-# compiler flags used only in building this package.
-#
-cdl_component CYGPKG_INFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Suppressed linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--gc-sections
-    # value_source default
-    # Default value: -Wl,--gc-sections
-};
-
-# Additional linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are added to
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--fatal-warnings
-    # value_source default
-    # Default value: -Wl,--fatal-warnings
-};
-
-# Infra package tests
-#
-cdl_component CYGPKG_INFRA_TESTS {
-    # Calculated value:  "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" 
-    # Flavor: data
-    # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2
-};
-
-# >
-# Number of times a test runs
-# This option controls the number of times tests will execute their
-# basic function.  Not all tests will honor this setting, but those
-# that do will execute the test N times before terminating.  A value
-# less than 0 indicates to run forever.
-#
-cdl_option CYGNUM_TESTS_RUN_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# <
-# Redboot ROM monitor
-# doc: ref/redboot.html
-# This package supports the Redboot [stand-alone debug monitor]
-# using eCos as the underlying board support mechanism.
-#
-cdl_package CYGPKG_REDBOOT {
-    # 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:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_ARM_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # option CYGSEM_IO_ETH_DRIVERS_WARN
-    #     ActiveIf: CYGPKG_REDBOOT
-};
-
-# >
-# Include support for ELF file format
-#
-cdl_component CYGSEM_REDBOOT_ELF {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use the virtual address in the ELF headers
-# The ELF headers contain both a virtual and a physical address
-# for where code/data should be loaded. By default the physical
-# address is used but sometimes it is necassary to use the
-# virtual address because of bugy toolchains
-#
-cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Methods of loading images using redboot
-#
-cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled
-    # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_REDBOOT_LOAD_METHOD
-};
-
-# Build Redboot ROM ELF image
-# This option enables the building of the Redboot ELF image.
-# The image may require further relocation or symbol
-# stripping before being converted to a binary image.
-# This is handled by a rule in the target CDL.
-#
-cdl_component CYGBLD_BUILD_REDBOOT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires: CYGPKG_INFRA
-    #     CYGPKG_INFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_REDBOOT_LOAD_METHOD
-    #     CYGINT_REDBOOT_LOAD_METHOD == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGBLD_BUILD_REDBOOT == 1
-    # option CYGBLD_BUILD_REDBOOT_BIN
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT
-};
-
-# >
-# Include GDB support in RedBoot
-# RedBoot normally includes support for the GDB debugging
-# protocols. This option allows this to be disabled which
-# may yield a substantial savings in terms of code and memory 
-# usage by RedBoot.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-};
-
-# Threads debugging support
-# Enabling this option will include special code in the
-# GDB stubs to support debugging of threaded programs.  In
-# the case of eCos programs, this support allows GDB to
-# have complete access to the eCos threads in the
-# program.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
-    # ActiveIf constraint:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # 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_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-};
-
-# Customized version string
-# Use this option to define a customized version "string" for
-# RedBoot.  Note: this value is only cosmetic, displayed by the
-# "version" command, but is useful for providing site specific
-# information about the RedBoot configuration.
-#
-cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 "Ka-Ro 2010-01-06"
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Enable command line editing
-# If this option is non-zero, RedBoot will remember the
-# last N command lines.  These lines may be reused.
-# Enabling this history will also enable rudimentary
-# editting of the lines themselves.
-#
-cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES
-    #     ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    # option CYGBLD_REDBOOT_CMD_LINE_HISTORY
-    #     Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-};
-
-# Enable command line editing using ANSI arrows, etc
-# If this option is enabled, RedBoot will accept standard ANSI key
-# sequences for cursor movement (along with the emacs style keys).
-#
-cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
-    # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Enable history command and expansion
-# Enabling this option will allow RedBoot to provide a
-# history command to list previous commands. Also enables
-# history expansion via '!'  character similar to bash
-# shell.
-#
-cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-};
-
-# Number of unique RAM segments on platform
-# Change this option to be the number of memory segments which are
-# supported by the platform.  If the value is greater than 1, then
-# a platform specific function must provide information about the
-# additional segments.
-#
-cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include support gzip/zlib decompression
-#
-cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
-    # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB
-    #     CYGPKG_COMPRESS_ZLIB == current
-    #   --> 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
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# >
-# Size of zlib decompression buffer
-# This is the size of the buffer filled with incoming data
-# during load before calls are made to the decompressor
-# function. For ethernet downloads this can be made bigger
-# (at the cost of memory), but for serial downloads on slow
-# processors it may be necessary to reduce the size to
-# avoid serial overruns. zlib appears to bail out if less 
-# than five bytes are available initially so this is the 
-# minimum.
-#
-cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 5 to 256
-};
-
-# Support compression of Flash images
-# This CDL indicates whether flash images can
-# be decompressed from gzip/zlib format into RAM.
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-    # ActiveIf constraint:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #     CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Include GZIP uncompress command
-# Enable this option to include a 'gunzip' command 
-# to uncompress GZIP compressed data.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Turn on CYGPRI_REDBOOT_ZLIB_FLASH
-# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-};
-
-# <
-# Include support for xyzModem downloads
-# doc: ref/download-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
-    # 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 CYGPKG_REDBOOT_CFLAGS_ADD
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_REDBOOT_CFLAGS_ADD {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-    #     CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-inline
-    # value_source default
-    # Default value: -Wno-inline
-};
-
-# Allow the load-command write into Flash.
-# Write images direct to Flash via the load command.
-# We assume anything which is invalid RAM is flash, hence
-# the requires statement
-#
-cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-    #     CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1
-    #   --> 1
-};
-
-# Include MS Windows CE support
-# doc: ref/wince.html
-# This option enables MS Windows CE EShell support
-# and Windows CE .BIN images support
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Include support for MXC USB downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include support for i.MX USB OTG downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include POSIX checksum command
-# doc: ref/cksum-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory fill command
-# doc: ref/mfill-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory compare command
-# doc: ref/mcmp-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory copy command
-# doc: ref/mcopy-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory dump command
-# doc: ref/dump-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include cache command
-# doc: ref/cache-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include exec command
-# doc: ref/exec-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
-    # 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_REDBOOT_ARM_LINUX_EXEC
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-};
-
-# Include I/O Memory commands 'iopeek' and 'iopoke'
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Granularity of timer/ticks
-# This option controls the granularity of the timers.
-# Faster CPUs can afford higher granularity (lower values)
-# which should give higher network performance since the stack
-# is purely polled.
-#
-cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 250
-    # value_source default
-    # Default value: 250
-    # Legal values:  10 25 50 100 250 500 1000 
-};
-
-# Redboot Networking
-# This option includes networking support in RedBoot.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING {
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 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_IO_ETH_DRIVERS_PASS_PACKETS
-    #     DefaultValue:  0 != CYGPKG_REDBOOT_NETWORKING 
-};
-
-# >
-# Print net debug information
-# This option is overriden by the configuration stored 
-# in flash.
-#
-cdl_option CYGDBG_REDBOOT_NET_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support TFTP for download
-# This option enables the use of the TFTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support HTTP for download
-# This option enables the use of the HTTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Default IP address
-# This IP address is the default used by RedBoot if
-# a BOOTP/DHCP server does not respond. The numbers
-# should be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# >
-# Do not try to use BOOTP
-# By default Redboot tries to use BOOTP to get an IP
-# address. If there's no BOOTP server on your network
-# use this option to avoid to wait until the
-# timeout. This option is overriden by the
-# configuration stored in flash.
-#
-cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Default bootp server
-# This IP address is the default server
-# address used by RedBoot if a BOOTP/DHCP
-# server does not respond. The numbers should
-# be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in
-# preference.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# Use DHCP to get IP information
-# Use DHCP protocol to obtain pertinent IP addresses, such 
-# as the client, server, gateway, etc.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
-    # 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 CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-    #     Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-};
-
-# Use a gateway for non-local IP traffic
-# Enabling this option will allow the RedBoot networking
-# stack to use a [single] gateway to reach a non-local
-# IP address.  If disabled, RedBoot will only be able to
-# reach nodes on the same subnet.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-    #     CYGSEM_REDBOOT_NETWORKING_DHCP == 1
-    #   --> 1
-};
-
-# >
-# Default gateway IP address
-# This IP address is the default used by RedBoot
-# if a BOOTP/DHCP server does not respond. The
-# numbers should be separated by *commas*, and
-# not dots. If an IP address is configured into
-# the Flash configuration, that will be used in
-# preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# Default IP address mask
-# This IP address mask is the default used by
-# RedBoot if a BOOTP/DHCP server does not
-# respond. The numbers should be separated by
-# *commas*, and not dots. If an IP address is
-# configured into the Flash configuration, that
-# will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# TCP port to listen for incoming connections
-# RedBoot will 'listen' on this port for incoming TCP 
-# connections. This allows outside connections to be made 
-# to the platform, either for GDB or RedBoot commands.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 9000
-    # value_source default
-    # Default value: 9000
-};
-
-# Number of [network] packet buffers
-# RedBoot may need to buffer network data to support
-# various connections.  This option allows control
-# over the number of such buffered packets, and in
-# turn, controls the amount of memory used by RedBoot
-# (which is not available to user applications).
-# Each packet buffer takes up about 1514 bytes.
-# Note: there is little need to make this larger than
-# the default.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 3 to 8
-};
-
-# DNS support
-# When this option is enabled, RedBoot will be built with
-# support for DNS, allowing use of hostnames on the command
-# line.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NS_DNS
-    #     CYGPKG_NS_DNS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NS_DNS_BUILD
-    #     CYGPKG_NS_DNS_BUILD (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Default DNS IP
-# This option sets the IP of the default DNS. The IP can be
-# changed at runtime as well.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-    # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0.0.0.0
-    # value_source default
-    # Default value: 0.0.0.0
-};
-
-# Timeout in DNS lookup
-# This option sets the timeout used when looking up an
-# address via the DNS. Default is 10 seconds.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Support the use of a domain name
-# This option controls if Redboot supports domain
-# names when performing DNS lookups
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Default DNS domain
-# This option sets the default DNS domain name.
-# This value will be overwritten by the value in
-# flash or a domain returned by DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Get DNS domain from Flash
-# This option enables getting the domain name 
-# from the flash configuration. This can later be 
-# overwritten by a value learnt from DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-    # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use DNS domain from DHCP
-# This option enables the use of the domain name
-# returned by DHCP.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# BOOTP/DHCP DNS domain buffer size
-# This options sets the size of the static
-# buffer used by BOOTP/DHCP to store the DNS
-# domain name. The domain name will not be
-# set if the buffer is too small to hold it.
-#
-cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# <
-# <
-# Default network device driver
-# This is the name of the default network device to use.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"\""
-    # value_source default
-    # Default value: "\"\""
-};
-
-# Initialize only one net device
-# This option tells RedBoot to stop initializing network
-# devices when it finds the first device which is
-# successfully initialized. The default behavior causes
-# all network devices to be initialized.
-#
-cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Let RedBoot use any I/O channel for its console.
-# If this option is enabled then RedBoot will attempt to use all
-# defined serial I/O channels for its console device.  Once input
-# arrives at one of these channels then the console will use only
-# that port.
-#
-cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# Let RedBoot adjust the baud rate of the serial console.
-# If this option is enabled then RedBoot will support commands 
-# to set and query the baud rate on the selected console.
-#
-cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Run a platform specific startup function.
-# If this option is enabled then RedBoot will execute a platform
-# specific startup function before entering into its command line
-# processing.  This allows the platform to perform any special
-# setups before RedBoot actually starts running.  Note: the entire
-# RedBoot environment will already be initialized at this point.
-#
-cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Run a platform specific ESA validation function.
-# If this option is enabled then RedBoot will execute a platform
-# specific function to validate an ethernet ESA.  This would be
-# useful if the address must conform to standards set by the
-# hardware manufacturer, etc.
-#
-cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI
-    #     ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-};
-
-# Maximum command line length
-# This option allows control over how long the CLI command line
-# should be.  This space will be allocated statically
-# rather than from RedBoot's stack.
-#
-cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # The inferred value should not be edited directly.
-    inferred_value 1024
-    # value_source inferred
-    # Default value: 256
-};
-
-# Command processing idle timeout (ms)
-# This option controls the timeout period before the
-# command processing is considered 'idle'.  Making this
-# number smaller will cause idle processing to take place
-# more often, etc.  The default value of 10ms is a reasonable
-# tradeoff between responsiveness and overhead.
-#
-cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Validate RAM addresses during load
-# This option controls whether or not RedBoot will make
-# sure that memory being used by the "load" command is
-# in fact in user RAM.  Leaving the option enabled makes
-# for a safer environment, but this check may not be valid
-# on all platforms, thus the ability to disable it.  
-# ** Disable this only with great care **
-#
-cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
-    # 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 CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-};
-
-# Allow RedBoot to support FLASH programming
-# If this option is enabled then RedBoot will provide commands
-# to manage images in FLASH memory.  These images can be loaded
-# into memory for execution or executed in place.
-#
-cdl_component CYGPKG_REDBOOT_FLASH {
-    # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE
-    #     CYGHWR_IO_FLASH_DEVICE == 1
-    #   --> 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 CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-    # option CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-};
-
-# >
-# Byte order used to store info in flash.
-# This option controls the byte ordering used to store
-# the FIS directory info and flash config info.
-#
-cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NATURAL
-    # value_source default
-    # Default value: NATURAL
-    # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" 
-};
-
-# RedBoot Flash Image System support
-# doc: ref/flash-image-system.html
-# This option enables the Flash Image System commands
-# and support within RedBoot.  If disabled, simple Flash
-# access commands such as "fis write" will still exist.
-# This option would be disabled for targets that need simple
-# FLASH manipulation, but do not have the need or space for
-# complete image management.
-#
-cdl_option CYGOPT_REDBOOT_FIS {
-    # 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_REDBOOT_FIS_CONTENTS
-    #     ActiveIf: CYGOPT_REDBOOT_FIS
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# Max number of chunks of free space to manage
-# If this option is defined then "fis free" will
-# rely on the FIS directory to determine what space is
-# free within the FLASH.  This option controls the
-# maximum number of free segment which can be handled
-# (typically this number is small).  If this option is
-# not enabled, the the archaic behaviour of actually
-# scanning the FLASH for erased sectors (unreliable)
-# will be used to determine what's free and what's
-# not.
-#
-cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 32
-    # value_source default
-    # Default value: 1 32
-};
-
-# Flash Image System default directory contents
-#
-cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
-    # ActiveIf constraint: CYGOPT_REDBOOT_FIS
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Flash block containing the Directory
-# Which block of flash should hold the directory
-# information. Positive numbers are absolute block
-# numbers.  Negative block numbers count backwards
-# from the last block.  eg 2 means block 2, -2
-# means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
-    # Flavor: data
-    # 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 CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# Redundant Flash Image System Directory Support
-# This option enables the use of a redundant FIS
-# directory within RedBoot.  If enabled a flash block
-# will be reserved for a second copy of the fis
-# directory. Doing this allow for power failure safe
-# updates of the directory by the application.
-#
-cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-    #     CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1
-    #   --> 0
-};
-
-# >
-# Flash block containing the backup Directory
-# Which block of flash should hold the redundant
-# directory information. Positive numbers are
-# absolute block numbers. Negative block numbers
-# count backwards from the last block. eg 2 means
-# block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -3
-    # value_source default
-    # Default value: -3
-    # Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-    #     CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0
-    #     CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# <
-# Pseudo-file to describe reserved area
-# If an area of FLASH is reserved, it is informative to
-# have a fis entry describing it.  This option controls
-# creation of such an entry by default in the fis init
-# command.
-#
-cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
-    # This option is not active
-    # ActiveIf constraint:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# File to describe RedBoot boot image
-# Normally a ROM-startup RedBoot image is first in the
-# FLASH, and the system boots using that image.  This
-# option controls creation of an entry describing it in
-# the fis init command.  It might be disabled if a
-# platform has an immutable boot image of its own, where
-# we use a POST-startup RedBoot instead, which performs
-# less board initialization.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
-    # 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 CYGOPT_REDBOOT_FIS_REDBOOT_POST
-    #     DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT
-    # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE
-    #     DefaultValue:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-};
-
-# File to describe RedBoot POST-compatible image
-# This option controls creation of an entry describing a
-# POST-startup RedBoot image in the fis init command.
-# Not all platforms support POST-startup.  A platform
-# might have both for testing purposes, where the
-# eventual user would substitute their own POST code for
-# the initial ROM-startup RedBoot, and then jump to the
-# POST-compatible RedBoot immediately following.
-#
-cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0
-};
-
-# >
-# Offset of POST image from FLASH start
-# This option specifies the offset for a POST image from
-# the start of FLASH.  If unset, then the fis entry
-# describing the POST image will be placed where
-# convenient.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# File to describe RedBoot backup image
-# This option controls creation of an entry describing a
-# backup RedBoot image in the fis init command.
-# Conventionally a RAM-startup RedBoot image is kept
-# under this name for use in updating the ROM-based
-# RedBoot that boots the board.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include ARM SIB ID in FIS
-# If set, this option will cause the last 5 words of
-# the FIS to include the special ID needed for the
-# flash to be recognized as a reserved area for RedBoot
-# by an ARM BootRom monitor.
-#
-cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Size of FIS directory entry
-# The FIS directory is limited to one single flash
-# sector. If your flash has tiny sectors, you may wish
-# to reduce this value in order to get more slots in
-# the FIS directory.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-};
-
-# Number of FIS directory entries
-# The FIS directory normally occupies a single flash
-# sector. Adjusting this value can allow for more than
-# one flash sector to be used, which is useful if your
-# sectors are very small.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Maximum RedBoot image size
-# This option controls the maximum length reserved
-# for the RedBoot boot image in the FIS table.
-# This should be a multiple of the flash's erase
-# block size.
-#
-cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00020000
-    # The inferred value should not be edited directly.
-    inferred_value 0x00040000
-    # value_source inferred
-    # Default value:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0x00020000
-};
-
-# Offset from start of FLASH to RedBoot boot image
-# This option controls where the RedBoot boot image is 
-# located relative to the start of FLASH.
-#
-cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-    # Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # component CYGPKG_HAL_ARM_TX53_OPTIONS
-    #     Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-};
-
-# Size of reserved area at start of FLASH
-# This option reserves an area at the start of
-# FLASH where RedBoot will never interfere; it is
-# expected that this area contains
-# (non-RedBoot-based) POST code or some other boot
-# monitor that executes before RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
-    # Flavor: data
-    # 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 CYGOPT_REDBOOT_FIS_RESERVED_BASE
-    #     ActiveIf:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# Keep all RedBoot FLASH data blocks locked.
-# When this option is enabled, RedBoot will keep configuration
-# data and the FIS directory blocks implicitly locked.  While
-# this is somewhat safer, it does add overhead during updates.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-    #     CYGHWR_IO_FLASH_BLOCK_LOCKING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use CRC checksums on FIS images.
-# When this option is enabled, RedBoot will use CRC checksums
-# when reading and writing flash images.
-#
-cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# ARM FLASH drivers support SIB flash block structure
-# This interface is implemented by a flash driver
-# to indicate that it supports the ARM SIB flash
-# block structure
-#
-cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGPKG_HAL_ARM
-    #     CYGPKG_HAL_ARM == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_FLASH_SIB
-    #     ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-};
-
-# Use ARM SIB flash block structure
-# This option is used to interpret ARM Flash System 
-# information blocks.
-#
-cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Keep RedBoot configuration data in FLASH
-# When this option is enabled, RedBoot will keep configuration
-# data in a separate block of FLASH memory.  This data will
-# include such items as the node IP address or startup scripts.
-#
-cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_IO_FLASH != 0 
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_IP
-    #     ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN
-    #     ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# >
-# Length of configuration data in FLASH
-# This option is used to control the amount of memory and FLASH
-# to be used for configuration options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value: 4096
-};
-
-# Style of media used for persistent data storage
-# Persistent data storage can either be held in 'norma' FLASH
-# or some other device (represented by the 'EEPROM' choice).
-# The different styles utilize different access methods.
-#
-cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value FLASH
-    # value_source default
-    # Default value: FLASH
-    # Legal values:  "FLASH" "EEPROM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK
-    #     DefaultValue:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-};
-
-# Merged config data and FIS directory
-# If this option is set, then the FIS directory and FLASH 
-# configuration database will be stored in the same physical
-# FLASH block.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
-    # ActiveIf constraint:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGOPT_REDBOOT_FIS == 1
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 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
-    # component CYGOPT_REDBOOT_REDUNDANT_FIS
-    #     Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-};
-
-# Which block of flash to use
-# Which block of flash should hold the configuration 
-# information. Positive numbers are absolute block numbers. 
-# Negative block numbers count backwards from the last block.
-# eg 2 means block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -2
-    # value_source default
-    # Default value: -2
-};
-
-# Support simple macros/aliases in FLASH
-# This option is used to allow support for simple text-based
-# macros (aliases).  These aliases are kept in the FLASH
-# configuration data (persistent storage).
-#
-cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Length of strings in FLASH configuration data
-# This option is used to control the amount of memory
-# and FLASH to be used for string configuration
-# options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-};
-
-# Length of configuration script(s) in FLASH
-# This option is used to control the amount of memory and 
-# FLASH to be used for configuration options (persistent 
-# storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 512
-    # The inferred value should not be edited directly.
-    inferred_value 2048
-    # value_source inferred
-    # Default value: 512
-};
-
-# Fallback to read-only FLASH configuration
-# This option will cause the configuration information to
-# revert to the readonly information stored in the FLASH.
-# The option only takes effect after 
-# 1) the config_ok flag has been set to be true,
-# indicating that at one time the copy in RAM was valid;
-# and
-# 2) the information in RAM has been verified to be invalid
-#
-cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 1
-};
-
-# <
-# Allow RedBoot to support fileio
-# If this option is enabled then RedBoot will provide commands
-# to load files from fileio file systems such as JFFS2.
-#
-cdl_component CYGPKG_REDBOOT_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO (unknown) == 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 CYGNUM_REDBOOT_GETC_BUFFER
-    #     DefaultValue:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-};
-
-# >
-# Include an ls command
-# If this option is enabled a simple ls command will be
-# included in redboot so the contents of a directory
-# can be listed
-#
-cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_FILEIO is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Allow RedBoot to support disks
-# If this option is enabled then RedBoot will provide commands
-# to load disk files.
-#
-cdl_component CYGPKG_REDBOOT_DISK {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# >
-# Include Redboot commands for disk access
-#
-cdl_option CYGSEM_REDBOOT_DISK {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-    #     CYGINT_REDBOOT_DISK_DRIVERS == 0
-    #   --> 0
-};
-
-# Hardware drivers for disk-type devices
-#
-cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
-    # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_DISK
-    #     DefaultValue:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-};
-
-# Maximum number of supported disks
-# This option controls the number of disks supported by 
-# RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_MAX_DISKS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# Maximum number of partitions per disk
-# This option controls the maximum number of supported 
-# partitions per disk.
-#
-cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Support IDE disks.
-# When this option is enabled, RedBoot will support IDE disks.
-#
-cdl_component CYGSEM_REDBOOT_DISK_IDE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-    # ActiveIf constraint:  CYGINT_HAL_PLF_IF_IDE != 0 
-    #     CYGINT_HAL_PLF_IF_IDE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Work with VMware virtual disks
-# This option controls the disk driver behavior at 
-# ide-init
-#
-cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_DISK_IDE is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support Linux second extended filesystems.
-# When this option is enabled, RedBoot will support EXT2 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support ISO9660 filesystems.
-# When this option is enabled, RedBoot will support ISO9660 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Boot scripting
-# doc: ref/persistent-state-flash.html
-# This contains options related to RedBoot's boot script
-# functionality.
-#
-cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
-    # There is no associated value.
-};
-
-# >
-# Boot scripting enabled
-# This option controls whether RedBoot boot script
-# functionality is enabled.
-#
-cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
-    # ActiveIf constraint:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-    #     CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Use default RedBoot boot script
-# If enabled, this option will tell RedBoot to use the 
-# value of this option as a default boot script.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 0 0
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# Resolution (in ms) for script timeout value.
-# This option controls the resolution of the script
-# timeout.  The value is specified in milliseconds
-# (ms), thus to have the script timeout be defined in
-# terms of tenths of seconds, use 100.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # The inferred value should not be edited directly.
-    inferred_value 10
-    # value_source inferred
-    # Default value: 1000
-};
-
-# Script default timeout value
-# This option is used to set the default timeout for startup
-# scripts, when they are enabled.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 10
-};
-
-# <
-# Support RTC for time & date functions
-# When this option is enabled, RedBoot will support commands to
-# query and set the real time clock (time and date)
-#
-cdl_option CYGSEM_REDBOOT_RTC {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_IO_WALLCLOCK 
-    #     CYGPKG_IO_WALLCLOCK (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Behave like a ROM monitor
-# Enabling this option will allow RedBoot to provide ROM 
-# monitor-style services to programs which it executes.
-#
-cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# Allow RedBoot to handle GNUPro application 'syscalls'.
-# If this option is enabled then RedBoot will install a
-# syscall handler to support debugging of applications
-# based on GNUPro newlib/bsp.
-#
-cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
-    # 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 CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-    # option CYGPKG_HAL_GDB_FILEIO
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-};
-
-# >
-# Support additional syscalls for 'gprof' profiling
-# Support additional syscalls to support a periodic callback
-# function for histogram-style profiling, and an enquire/set
-# of the tick rate.
-# The application must use the GNUPro newlib facilities
-# to set this up.
-#
-cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-    # ActiveIf constraint:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-    #     CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does the HAL support 'gprof' profiling?
-#
-cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
-    # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF
-    #     ActiveIf:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-};
-
-# Do not raise SIGTRAP when program exits
-# For some (single shot) newlib based programs,
-# exiting and returning a termination status may be
-# the normal expected behavior.
-#
-cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Use a common buffer for Zlib and FIS
-# Use a common memory buffer for both the zlib workspace
-# and FIS directory operations. This can save a substantial
-# amount of RAM, especially when flash sectors are large.
-#
-cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
-    # ActiveIf constraint:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-    #     CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of Zlib/FIS common buffer
-# Size of common buffer to allocate. Must be at least the
-# size of one flash sector.
-#
-cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000C000
-    # value_source default
-    # Default value: 0x0000C000
-    # Legal values: 0x4000 to 0x80000000
-};
-
-# <
-# Buffer size in getc when loading images
-# When loading images a buffer is used between redboot and the
-# underlying storage medium, eg a filesystem, or a socket etc.
-# The size of this buffer can have a big impart on load speed.
-#
-cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-    #     CYGPKG_REDBOOT_FILEIO == 0
-    #   --> 256
-};
-
-# <
-# Redboot for ARM options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Provide the exec command in RedBoot
-# This option contains requirements for booting linux
-# from RedBoot. The component is enabled/disabled from
-# RedBoots CDL.
-#
-cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Enable -x switch for exec command.
-# This option allows bi-endian platforms to launch kernels
-# built for an endianess different than the RedBoot endianess
-#
-cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x70108000
-    # value_source default
-    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 0x70108000
-};
-
-# Default physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image. This option gets set by the 
-# platform CDL.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00008000
-    # The inferred value should not be edited directly.
-    inferred_value 0x70108000
-    # value_source inferred
-    # Default value: 0x00008000
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS
-    #     DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-};
-
-# Base address of linux kernel parameter tags
-# This is the base address of the area of memory used to
-# pass parameters to the Linux kernel. This should be chosen
-# to avoid overlap with the kernel and any ramdisk image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000100
-    # value_source default
-    # Default value: 0x00000100
-};
-
-# <
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Build Redboot ROM binary image
-# This option enables the conversion of the Redboot ELF
-# image to a binary image suitable for ROM programming.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Redboot HAL variant options
-#
-cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 1
-};
-
-# <
-# ISO C and POSIX infrastructure
-# eCos supports implementations of ISO C libraries and POSIX
-# implementations. This package provides infrastructure used by
-# all such implementations.
-#
-cdl_package CYGPKG_ISOINFRA {
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_COMPRESS_ZLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-};
-
-# >
-# Startup and termination
-#
-cdl_component CYGPKG_ISO_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# main() startup implementations
-# Implementations of this interface arrange for a user-supplied
-# main() to be called in an ISO compatible environment.
-#
-cdl_interface CYGINT_ISO_MAIN_STARTUP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-};
-
-# <
-# ctype.h functions
-#
-cdl_component CYGPKG_ISO_CTYPE_H {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of ctype functions
-#
-cdl_interface CYGINT_ISO_CTYPE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_CTYPE 
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_CTYPE
-    #     Requires:  1 >= CYGINT_ISO_CTYPE 
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-};
-
-# Ctype implementation header
-#
-cdl_option CYGBLD_ISO_CTYPE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/i18n/ctype.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-};
-
-# <
-# Error handling
-#
-cdl_component CYGPKG_ISO_ERRNO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of error codes
-#
-cdl_interface CYGINT_ISO_ERRNO_CODES {
-    # Implemented by CYGPKG_ERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO_CODES
-    #     Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-};
-
-# Error codes implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/codes.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_ERROR
-    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-};
-
-# Number of implementations of errno variable
-#
-cdl_interface CYGINT_ISO_ERRNO {
-    # Implemented by CYGPKG_ERROR_ERRNO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO 
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO
-    #     Requires:  1 >= CYGINT_ISO_ERRNO 
-};
-
-# errno variable implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/errno.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_ERROR_ERRNO
-    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-};
-
-# <
-# Locale-related functions
-#
-cdl_component CYGPKG_ISO_LOCALE {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of locale functions
-#
-cdl_interface CYGINT_ISO_LOCALE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_LOCALE 
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_LOCALE
-    #     Requires:  1 >= CYGINT_ISO_LOCALE 
-};
-
-# Locale implementation header
-#
-cdl_option CYGBLD_ISO_LOCALE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard I/O-related functionality
-#
-cdl_component CYGPKG_ISO_STDIO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of stdio file types
-#
-cdl_interface CYGINT_ISO_STDIO_FILETYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-};
-
-# Stdio file types implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-};
-
-# Stdio standard streams implementation header
-# This header file must define stdin, stdout
-# and stderr.
-#
-cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEOPS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-};
-
-# Stdio file operations implementation header
-# This header controls the file system operations on a file
-# such as remove(), rename(), tmpfile(), tmpnam() and associated
-# constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-};
-
-# Stdio file access implementation header
-# This header controls the file access operations
-# such as fclose(), fflush(), fopen(), freopen(), setbuf(),
-# setvbuf(), and associated constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-};
-
-# Stdio formatted I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-};
-
-# Stdio character I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-};
-
-# Stdio direct I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEPOS
-};
-
-# Stdio file positioning implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-};
-
-# Stdio error handling implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS
-    #     Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-};
-
-# POSIX fd-related function implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard general utility functions
-#
-cdl_component CYGPKG_ISO_STDLIB {
-    # There is no associated value.
-};
-
-# >
-# String conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-};
-
-# String conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/atox.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ATOX
-    #     Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-};
-
-# String to FP conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT {
-    # Implemented by CYGFUN_LIBC_strtod, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-};
-
-# String to FP conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Random number generator implementations
-#
-cdl_interface CYGINT_ISO_RAND {
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_RAND 
-    #     CYGINT_ISO_RAND == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_RAND
-    #     Requires:  1 >= CYGINT_ISO_RAND 
-};
-
-# Random number generator implementation header
-#
-cdl_option CYGBLD_ISO_RAND_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Malloc implementations
-#
-cdl_interface CYGINT_ISO_MALLOC {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLOC
-    #     Requires:  1 >= CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-};
-
-# Malloc implementation header
-#
-cdl_option CYGBLD_ISO_MALLOC_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Mallinfo() implementations
-#
-cdl_interface CYGINT_ISO_MALLINFO {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLINFO 
-    #     CYGINT_ISO_MALLINFO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLINFO
-    #     Requires:  1 >= CYGINT_ISO_MALLINFO 
-};
-
-# Mallinfo() implementation header
-#
-cdl_option CYGBLD_ISO_MALLINFO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program exit functionality implementations
-#
-cdl_interface CYGINT_ISO_EXIT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_EXIT
-    #     Requires:  1 >= CYGINT_ISO_EXIT 
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     Requires: !CYGINT_ISO_EXIT
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     DefaultValue:  CYGINT_ISO_EXIT == 0 
-};
-
-# Program exit functionality implementation header
-#
-cdl_option CYGBLD_ISO_EXIT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program environment implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-    #     CYGINT_ISO_STDLIB_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-};
-
-# Program environment implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# system() implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_SYSTEM {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-    #     CYGINT_ISO_STDLIB_SYSTEM == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_SYSTEM
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-};
-
-# system() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# bsearch() implementations
-#
-cdl_interface CYGINT_ISO_BSEARCH {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_BSEARCH 
-    #     CYGINT_ISO_BSEARCH == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSEARCH
-    #     Requires:  1 >= CYGINT_ISO_BSEARCH 
-};
-
-# bsearch() implementation header
-#
-cdl_option CYGBLD_ISO_BSEARCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# qsort() implementations
-#
-cdl_interface CYGINT_ISO_QSORT {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_QSORT 
-    #     CYGINT_ISO_STDLIB_QSORT (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# qsort() implementation header
-#
-cdl_option CYGBLD_ISO_QSORT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# abs()/labs() implementations
-#
-cdl_interface CYGINT_ISO_ABS {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ABS 
-    #     CYGINT_ISO_STDLIB_ABS (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# abs()/labs() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/abs.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ABS
-    #     Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-};
-
-# div()/ldiv() implementations
-#
-cdl_interface CYGINT_ISO_DIV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_DIV 
-    #     CYGINT_ISO_STDLIB_DIV (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# div()/ldiv() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/div.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_DIV
-    #     Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-};
-
-# Header defining the implementation's MB_CUR_MAX
-#
-cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBC_I18N_MB_REQUIRED
-    #     Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-};
-
-# Multibyte character implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-    #     CYGINT_ISO_STDLIB_MULTIBYTE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_MULTIBYTE
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-};
-
-# Multibyte character implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# String functions
-#
-cdl_component CYGPKG_ISO_STRING {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of strerror() function
-#
-cdl_interface CYGINT_ISO_STRERROR {
-    # Implemented by CYGPKG_ERROR_STRERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRERROR 
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRERROR
-    #     Requires:  1 >= CYGINT_ISO_STRERROR 
-};
-
-# strerror() implementation header
-#
-cdl_option CYGBLD_ISO_STRERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/strerror.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_ERROR_STRERROR
-    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-};
-
-# memcpy() implementation header
-#
-cdl_option CYGBLD_ISO_MEMCPY_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# memset() implementation header
-#
-cdl_option CYGBLD_ISO_MEMSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of strtok_r() function
-#
-cdl_interface CYGINT_ISO_STRTOK_R {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRTOK_R 
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRTOK_R
-    #     Requires:  1 >= CYGINT_ISO_STRTOK_R 
-};
-
-# strtok_r() implementation header
-#
-cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of locale-specific string  functions
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-};
-
-# Locale-specific string functions' implementation  header
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of BSD string functions
-#
-cdl_interface CYGINT_ISO_STRING_BSD_FUNCS {
-    # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-};
-
-# BSD string functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/bsdstring.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-};
-
-# Number of implementations of other mem*() functions
-#
-cdl_interface CYGINT_ISO_STRING_MEMFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_MEMFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-};
-
-# Other mem*() functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of other ISO C str*()  functions
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_interface CYGINT_ISO_STRING_STRFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_STRFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     Requires: !CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     DefaultValue:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_NET
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-};
-
-# Other ISO C str*() functions' implementation  header
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# <
-# Clock and time functionality
-#
-cdl_component CYGPKG_ISO_TIME {
-    # There is no associated value.
-};
-
-# >
-# time_t implementation header
-#
-cdl_option CYGBLD_ISO_TIME_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# clock_t implementation header
-#
-cdl_option CYGBLD_ISO_CLOCK_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# struct timeval implementation header
-#
-cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-    #     CYGINT_ISO_POSIX_TIMER_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-};
-
-# POSIX timer types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCK_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-};
-
-# POSIX clock types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-};
-
-# ISO C time types implementation header
-#
-cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-    #     CYGINT_ISO_POSIX_TIMERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMERS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-};
-
-# POSIX timer implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_CLOCK_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-};
-
-# ISO C clock functions' implementation header
-#
-cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of tzset() function
-#
-cdl_interface CYGINT_ISO_TZSET {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_TZSET 
-    #     CYGINT_ISO_TZSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TZSET
-    #     Requires:  1 >= CYGINT_ISO_TZSET 
-};
-
-# tzset() implementation header
-#
-cdl_option CYGBLD_ISO_TZSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Signal functionality
-#
-cdl_component CYGPKG_ISO_SIGNAL {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of signal numbers
-#
-cdl_interface CYGINT_ISO_SIGNAL_NUMBERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-};
-
-# Signal numbering implementation header
-# This header provides the mapping of signal
-# names (e.g. SIGBUS) to numbers.
-#
-cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-};
-
-# Signals implementation header
-#
-cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX real time signals feature test macro
-# This defines the POSIX feature test macro
-# that indicates that the POSIX real time signals
-# are present.
-#
-cdl_interface CYGINT_POSIX_REALTIME_SIGNALS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-    #     CYGINT_POSIX_REALTIME_SIGNALS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_POSIX_REALTIME_SIGNALS
-    #     Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-};
-
-# <
-# Non-local jumps functionality
-#
-cdl_component CYGPKG_ISO_SETJMP {
-    # There is no associated value.
-};
-
-# >
-# setjmp() / longjmp() implementations
-#
-cdl_interface CYGINT_ISO_SETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SETJMP
-    #     Requires:  1 >= CYGINT_ISO_SETJMP 
-};
-
-# setjmp() / longjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-    #     CYGINT_ISO_SIGSETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGSETJMP
-    #     Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-};
-
-# sigsetjmp() / siglongjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Assertions implementation header
-#
-cdl_option CYGBLD_ISO_ASSERT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file control
-# This covers the POSIX file control definitions,
-# normally found in <fcntl.h>
-#
-cdl_component CYGPKG_ISO_POSIX_FCNTL {
-    # There is no associated value.
-};
-
-# >
-# POSIX open flags implementation header
-#
-cdl_option CYGBLD_ISO_OFLAG_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fcntl() implementations
-#
-cdl_interface CYGINT_ISO_FCNTL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_FCNTL
-    #     Requires:  1 >= CYGINT_ISO_FCNTL 
-};
-
-# POSIX fcntl() implementation header
-#
-cdl_option CYGBLD_ISO_FCNTL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file open implementations
-#
-cdl_interface CYGINT_ISO_OPEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_OPEN
-    #     Requires:  1 >= CYGINT_ISO_OPEN 
-};
-
-# POSIX file open implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# <sys/stat.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_STAT_DEFS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX directory reading implementation
-#
-cdl_interface CYGINT_ISO_DIRENT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DIRENT
-    #     Requires:  1 >= CYGINT_ISO_DIRENT 
-};
-
-# <dirent.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_DIRENT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX <sys/types.h> contents
-# This covers the types required by POSIX to be in
-# <sys/types.h>
-#
-cdl_component CYGPKG_ISO_POSIX_TYPES {
-    # There is no associated value.
-};
-
-# >
-# POSIX thread types implementations
-#
-cdl_interface CYGINT_ISO_PTHREADTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREADTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    # interface CYGINT_ISO_PMUTEXTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-};
-
-# POSIX thread types implementation header
-#
-cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# ssize_t implementation header
-#
-cdl_option CYGBLD_ISO_SSIZE_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Filesystem types implementation header
-#
-cdl_option CYGBLD_ISO_FSTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# gid_t, pid_t, uid_t implementation header
-#
-cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Non-POSIX <sys/types.h> contents
-# This covers the extra types required by non-POSIX
-# packages to be in <sys/types.h>. These would normally
-# only be visible if _POSIX_SOURCE is not defined.
-#
-cdl_component CYGPKG_ISO_EXTRA_TYPES {
-    # There is no associated value.
-};
-
-# >
-# BSD compatible types
-#
-cdl_interface CYGINT_ISO_BSDTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_BSDTYPES 
-    #     CYGINT_ISO_BSDTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSDTYPES
-    #     Requires:  1 >= CYGINT_ISO_BSDTYPES 
-};
-
-# BSD types header
-#
-cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Utsname structure
-#
-cdl_component CYGPKG_ISO_UTSNAME {
-    # There is no associated value.
-};
-
-# >
-# Utsname header
-#
-cdl_option CYGBLD_ISO_UTSNAME_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SCHED_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-};
-
-# POSIX scheduler implementation header
-#
-cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX semaphores
-#
-cdl_component CYGPKG_ISO_SEMAPHORES {
-    # There is no associated value.
-};
-
-# >
-# POSIX semaphore implementations
-#
-cdl_interface CYGINT_ISO_SEMAPHORES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SEMAPHORES
-    #     Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-};
-
-# POSIX semaphore implementation header
-#
-cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MQUEUE
-    #     Requires:  1 >= CYGINT_ISO_MQUEUE 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-    # option CYGNUM_ISO_MQUEUE_PRIO_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-};
-
-# Implementation header
-#
-cdl_option CYGBLD_ISO_MQUEUE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Maximum number of open message queues
-#
-cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #   --> 0 0
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 65535
-    # value_source default
-    # Default value: 1 65535
-};
-
-# <
-# POSIX threads
-#
-cdl_component CYGPKG_ISO_PTHREAD {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_IMPL
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-};
-
-# POSIX pthread implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_LIMITS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-};
-
-# POSIX pthread limits implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# LINK_MAX implementation header
-#
-cdl_option CYGBLD_ISO_LINK_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# NAME_MAX implementation header
-#
-cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# PATH_MAX implementation header
-#
-cdl_option CYGBLD_ISO_PATH_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX termios
-#
-cdl_component CYGPKG_ISO_TERMIOS {
-    # There is no associated value.
-};
-
-# >
-# POSIX termios implementations
-#
-cdl_interface CYGINT_ISO_TERMIOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TERMIOS
-    #     Requires:  1 >= CYGINT_ISO_TERMIOS 
-};
-
-# POSIX termios implementation header
-#
-cdl_option CYGBLD_ISO_TERMIOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Dynamic load API
-#
-cdl_component CYGPKG_ISO_DLFCN {
-    # There is no associated value.
-};
-
-# >
-# Dynamic load implementations
-#
-cdl_interface CYGINT_ISO_DLFCN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DLFCN 
-    #     CYGINT_ISO_DLFCN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DLFCN
-    #     Requires:  1 >= CYGINT_ISO_DLFCN 
-};
-
-# Dynamic load implementation header
-#
-cdl_option CYGBLD_ISO_DLFCN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# UNIX standard functions
-#
-cdl_component CYGPKG_ISO_UNISTD {
-    # There is no associated value.
-};
-
-# >
-# POSIX timer operations implementations
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_OPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-    #     CYGINT_ISO_POSIX_TIMER_OPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_OPS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-};
-
-# POSIX timer operations implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX sleep() implementations
-#
-cdl_interface CYGINT_ISO_POSIX_SLEEP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_SLEEP
-    #     Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-};
-
-# POSIX sleep() implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# select()/poll() functions
-#
-cdl_component CYGPKG_ISO_SELECT {
-    # There is no associated value.
-};
-
-# >
-# select() implementations
-#
-cdl_interface CYGINT_ISO_SELECT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SELECT
-    #     Requires:  1 >= CYGINT_ISO_SELECT 
-};
-
-# select() implementation header
-#
-cdl_option CYGBLD_ISO_SELECT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# poll() implementations
-#
-cdl_interface CYGINT_ISO_POLL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POLL 
-    #     CYGINT_ISO_POLL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POLL
-    #     Requires:  1 >= CYGINT_ISO_POLL 
-};
-
-# poll() implementation header
-#
-cdl_option CYGBLD_ISO_POLL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# NetDB utility functions
-#
-cdl_component CYGPKG_ISO_NETDB {
-    # There is no associated value.
-};
-
-# >
-# DNS implementations
-#
-cdl_interface CYGINT_ISO_DNS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_DNS 
-    #     CYGINT_ISO_DNS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DNS
-    #     Requires:  1 >= CYGINT_ISO_DNS 
-};
-
-# DNS implementation header
-#
-cdl_option CYGBLD_ISO_DNS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Protocol network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_PROTO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-    #     CYGINT_ISO_NETDB_PROTO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_PROTO
-    #     Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-};
-
-# Protocol network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Services network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_SERV {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-    #     CYGINT_ISO_NETDB_SERV == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_SERV
-    #     Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-};
-
-# Services network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# 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_ISOINFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the ISO C and POSIX infrastructure package.
-# These flags are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_ISOINFRA_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 ISO C and POSIX infrastructure package.
-# These flags are removed from the set of global flags
-# if present.
-#
-cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# Compute CRCs
-# doc: ref/services-crc.html
-# This package provides support for CRC calculation. Currently 
-# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by 
-# Gary S. Brown, and a 16 bit CRC.
-#
-cdl_package CYGPKG_CRC {
-    # 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_COMPRESS_ZLIB
-    #     Requires: CYGPKG_CRC
-};
-
-# >
-# POSIX CRC tests
-#
-cdl_option CYGPKG_CRC_TESTS {
-    # Calculated value:  "tests/crc_test" 
-    # Flavor: data
-    # Current_value: tests/crc_test
-};
-
-# <
-# Zlib compress and decompress package
-# This package provides support for compression and
-# decompression.
-#
-cdl_package CYGPKG_COMPRESS_ZLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_CRC
-    #     CYGPKG_CRC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB
-    #     ActiveIf: CYGPKG_COMPRESS_ZLIB
-};
-
-# >
-# Override memory allocation routines.
-#
-cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     ActiveIf:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-};
-
-# Should deflate() produce 'gzip' compatible output?
-# If this option is set then the output of calling deflate()
-# will be wrapped up as a 'gzip' compatible file.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does this library need malloc?
-# This pseudo-option will force the memalloc library to be
-# required iff the application does not provide it's own
-# infrastructure.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-    #     CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-};
-
-# Include stdio-like utility functions
-# This option enables the stdio-like zlib utility functions
-# (gzread/gzwrite and friends) provided in gzio.c.
-#
-cdl_option CYGFUN_COMPRESS_ZLIB_GZIO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 
-    #     CYGPKG_LIBC_STDIO_OPEN (unknown) == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 0
-};
-
-# Zlib compress and decompress package 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_COMPRESS_ZLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_COMPRESS_ZLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D__ECOS__ -DNO_ERRNO_H"
-    # value_source default
-    # Default value: "-D__ECOS__ -DNO_ERRNO_H"
-};
-
-# 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_COMPRESS_ZLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wstrict-prototypes
-    # value_source default
-    # Default value: -Wstrict-prototypes
-};
-
-# 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_COMPRESS_ZLIB_LDFLAGS_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# zlib tests
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_TESTS {
-    # Calculated value:  "tests/zlib1.c tests/zlib2.c" 
-    # Flavor: data
-    # Current_value: tests/zlib1.c tests/zlib2.c
-};
-
-# <
-# FLASH device drivers
-# doc: ref/flash.html
-# This option enables drivers for basic I/O services on
-# flash devices.
-#
-cdl_package CYGPKG_IO_FLASH {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_FLASH_CONFIG
-    #     DefaultValue:  CYGPKG_IO_FLASH != 0 
-    # package CYGPKG_DEVS_FLASH_ONMXC
-    #     ActiveIf: CYGPKG_IO_FLASH
-};
-
-# >
-# Hardware FLASH device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE {
-    # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_FLASH
-    #     ActiveIf: CYGHWR_IO_FLASH_DEVICE
-};
-
-# Hardware FLASH device drivers are not in RAM
-# Use of this interface is deprecated.
-# Drivers should make sure that the functions are
-# linked to RAM by putting them in .2ram sections.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-};
-
-# Hardware can support block locking
-# This option will be enabled by devices which can support
-# locking (write-protection) of individual blocks.
-#
-cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL
-    #     ActiveIf:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-};
-
-# Hardware cannot support direct access to FLASH memory
-# This option will be asserted by devices which cannot support
-# direct access to the FLASH memory contents (e.g. EEPROM or NAND
-# devices).  In these cases, the driver must provide an appropriate
-# hardware access function.
-#
-cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-    #     CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    # component CYGHWR_DEVS_FLASH_MMC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_SD
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_NAND
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-};
-
-# Display status messages during flash operations
-# Selecting this option will cause the drivers to print status
-# messages as various flash operations are undertaken.
-#
-cdl_option CYGSEM_IO_FLASH_CHATTER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Verify data programmed to flash
-# Selecting this option will cause verification of data
-# programmed to flash.
-#
-cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_IO_FLASH_READ_INDIRECT
-    #     Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-};
-
-# Platform has flash soft DIP switch write-protect
-# Selecting this option will cause the state of a hardware jumper or
-# dipswitch to be read by software to determine whether the flash is
-# write-protected or not.
-#
-cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instantiate in I/O block device API
-# Provides a block device accessible using the standard I/O
-# API ( cyg_io_read() etc. )
-#
-cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of flash device 1 block device
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
-    # This option is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/flash1\""
-    # value_source default
-    # Default value: "\"/dev/flash1\""
-};
-
-# >
-#
-cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 {
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     CYGINT_IO_FLASH_BLOCK_CFG_1 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-};
-
-# Static configuration
-# This configures the flash device 1 block device
-# with static base and length
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash which this
-# block device corresponds to.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash given over
-# to this block device.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Configuration from FIS
-# This configures the flash device 1 block device
-# from Redboot FIS
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of FIS entry
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"jffs2\""
-    # value_source default
-    # Default value: "\"jffs2\""
-};
-
-# <
-# <
-# <
-# Flash 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_FLASH_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the flash device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_FLASH_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 flash device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Flash device driver tests
-# This option specifies the set of tests for the flash device drivers.
-#
-cdl_component CYGPKG_IO_FLASH_TESTS {
-    # Calculated value:  "tests/flash1" 
-    # Flavor: data
-    # Current_value: tests/flash1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash where tests
-# can be run.  It is important to set this correctly, as an
-# incorrect value could allow the tests to write over critical
-# portions of the FLASH device and possibly render the target
-# board totally non-functional.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash used for testing.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# <
-# Support FLASH memory on Freescale MXC platforms
-#
-cdl_package CYGPKG_DEVS_FLASH_ONMXC {
-    # 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_FLASH
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC platform MMC card support
-# When this option is enabled, it indicates MMC card is
-# supported on the MXC platforms
-#
-cdl_component CYGHWR_DEVS_FLASH_MMC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# >
-# MXC platform MMC card for newer SDHC controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# MXC platform MMC card for older MMC/SD controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_SD {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS 
-    #     CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX31ADS (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:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# <
-# MXC platform NOR flash memory support
-# When this option is enabled, it indicates NOR flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR
-    #     Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# MXC platform NAND flash memory support
-# When this option is enabled, it indicates NAND flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-};
-
-# i.MX platform SPI NOR flash memory support
-# When this option is enabled, it indicates SPI NOR flash is
-# supported on the i.MX platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #   --> 0
-};
-
-# MXC platform ATA support
-# When this option is enabled, it indicates ATA is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_ATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use a flash based Bad Block Table
-#
-cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH {
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# When this option is enabled, the driver will search for a flash
-# based bad block table
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# header file defining the NAND BBT descriptor
-# defines the name of the header file that describes the BBT layout
-#
-cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Number of blocks to reserve for BBT
-# Number of blocks to reserve for BBT
-#
-cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# <
-# MXC platform multi flash memory support
-# When this option is enabled, it indicates multi flashes are
-# supported on the MXC platforms (like NAND and NOR)
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
-    # This option is not active
-    # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# MXC platform NAND flash reset workaround support
-# When this option is enabled, it indicates 0xFFFF is used for
-# the NAND reset command instead of 0xFF.
-#
-cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# Dynamic memory allocation
-# doc: ref/memalloc.html
-# This package provides memory allocator infrastructure required for
-# dynamic memory allocators, including the ISO standard malloc
-# interface. It also contains some sample implementations.
-#
-cdl_package CYGPKG_MEMALLOC {
-    # 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
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     Requires: CYGPKG_MEMALLOC
-};
-
-# >
-# Memory allocator implementations
-# This component contains configuration options related to the 
-# various memory allocators available.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATORS {
-    # There is no associated value.
-};
-
-# >
-# Fixed block allocator
-# This component contains configuration options related to the 
-# fixed block memory allocator.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Simple variable block allocator
-# This component contains configuration options related to the 
-# simple variable block memory allocator. This allocator is not
-# very fast, and in particular does not scale well with large
-# numbers of allocations. It is however very compact in terms of
-# code size and does not have very much overhead per allocation.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are added that allow a thread to wait until memory
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Coalesce memory
-# The variable-block memory allocator can perform coalescing
-# of memory whenever the application code releases memory back
-# to the pool. This coalescing reduces the possibility of
-# memory fragmentation problems, but involves extra code and
-# processor cycles.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE {
-    # 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 CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-};
-
-# <
-# Doug Lea's malloc
-# This component contains configuration options related to the 
-# port of Doug Lea's memory allocator, normally known as
-# dlmalloc. dlmalloc has a reputation for being both fast
-# and space-conserving, as well as resisting fragmentation well.
-# It is a common choice for a general purpose allocator and
-# has been used in both newlib and Linux glibc.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC {
-    # There is no associated value.
-};
-
-# >
-# Debug build
-# Doug Lea's malloc implementation has substantial amounts
-# of internal checking in order to verify the operation
-# and consistency of the allocator. However this imposes
-# substantial overhead on each operation. Therefore this
-# checking may be individually disabled.
-#
-cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGDBG_USE_ASSERTS 
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Support more than one instance
-# Having this option disabled allows important
-# implementation structures to be declared as a single
-# static instance, allowing faster access. However this
-# would fail if there is more than one instance of
-# the dlmalloc allocator class. Therefore this option can
-# be enabled if multiple instances are required. Note: as
-# a special case, if this allocator is used as the
-# implementation of malloc, and it can be determined there
-# is more than one malloc pool, then this option will be
-# silently enabled.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use system memmove() and memset()
-# This may be used to control whether memset() and memmove()
-# are used within the implementation. The alternative is
-# to use some macro equivalents, which some people report
-# are faster in some circumstances.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA 
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# Minimum alignment of allocated blocks
-# This option controls the minimum alignment that the
-# allocated memory blocks are aligned on, specified as
-# 2^N. Note that using large mininum alignments can lead
-# to excessive memory wastage.
-#
-cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 3 to 10
-};
-
-# <
-# Variable block allocator with separate metadata
-# This component contains configuration options related to the 
-# variable block memory allocator with separate metadata.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# Kernel C API support for memory allocation
-# This option must be enabled to provide the extensions required
-# to support integration into the kernel C API.
-#
-cdl_option CYGFUN_MEMALLOC_KAPI {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C (unknown) == 0
-    #   --> 0
-};
-
-# malloc(0) returns NULL
-# This option controls the behavior of malloc(0) ( or calloc with
-# either argument 0 ). It is permitted by the standard to return
-# either a NULL pointer or a unique pointer. Enabling this option
-# forces a NULL pointer to be returned.
-#
-cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Breakpoint site when running out of memory
-# Whenever the system runs out of memory, it invokes this function
-# before either going to sleep waiting for memory to become 
-# available or returning failure.
-#
-cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# malloc() and supporting allocators
-# This component enables support for dynamic memory
-# allocation as supplied by the functions malloc(),
-# free(), calloc() and realloc(). As these
-# functions are often used, but can have quite an
-# overhead, disabling them here can ensure they
-# cannot even be used accidentally when static
-# allocation is preferred. Within this component are
-# various allocators that can be selected for use
-# as the underlying implementation of the dynamic
-# allocation functions.
-#
-cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS {
-    # ActiveIf constraint: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use external heap definition
-# This option allows other components in the
-# system to override the default system
-# provision of heap memory pools. This should
-# be set to a header which provides the equivalent
-# definitions to <pkgconf/heaps.hxx>.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Use external implementation of joining multiple heaps
-# The default implementation of joining multiple heaps
-# is fine for the case where there are multiple disjoint
-# memory regions of the same type. However, in a system
-# there might be e.g. a small amount of internal SRAM and
-# a large amount of external DRAM. The SRAM is faster and
-# the DRAM is slower. An application can implement some 
-# heuristic to choose which pool to allocate from. This
-# heuristic can be highly application specific.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# malloc() allocator implementations
-#
-cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS {
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-    #     CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS
-    #     Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-};
-
-# malloc() implementation instantiation data
-# Memory allocator implementations that are capable of being
-# used underneath malloc() must be instantiated. The code
-# to do this is set in this option. It is only intended to
-# be set by the implementation, not the user.
-#
-cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value <cyg/memalloc/dlmalloc.hxx>
-    # value_source default
-    # Default value: <cyg/memalloc/dlmalloc.hxx>
-
-    # The following properties are affected by this value
-    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-};
-
-# Simple variable block implementation
-# This causes malloc() to use the simple
-# variable block allocator.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 0
-    # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-    #     CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1
-    #   --> 1
-};
-
-# Doug Lea's malloc implementation
-# This causes malloc() to use a version of Doug Lea's
-# malloc (dlmalloc) as the underlying implementation.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 1
-};
-
-# <
-# Size of the fallback dynamic memory pool in bytes
-# If *no* heaps are configured in your memory layout,
-# dynamic memory allocation by
-# malloc() and calloc() must be from a fixed-size,
-# contiguous memory pool (note here that it is the
-# pool that is of a fixed size, but malloc() is still
-# able to allocate variable sized chunks of memory
-# from it). This option is the size
-# of that pool, in bytes. Note that not all of
-# this is available for programs to
-# use - some is needed for internal information
-# about memory regions, and some may be lost to
-# ensure that memory allocation only returns
-# memory aligned on word (or double word)
-# boundaries - a very common architecture
-# constraint.
-#
-cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16384
-    # value_source default
-    # Default value: 16384
-    # Legal values: 32 to 0x7fffffff
-};
-
-# Common memory allocator package 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_MEMALLOC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_MEMALLOC_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_MEMALLOC_TESTS {
-    # Calculated value:  "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" 
-    # Flavor: data
-    # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2
-};
-
-# <
-# <
-# Common error code support
-# This package contains the common list of error and
-# status codes. It is held centrally to allow
-# packages to interchange error codes and status
-# codes in a common way, rather than each package
-# having its own conventions for error/status
-# reporting. The error codes are modelled on the
-# POSIX style naming e.g. EINVAL etc. This package
-# also provides the standard strerror() function to
-# convert error codes to textual representation, as
-# well as an implementation of the errno idiom.
-#
-cdl_package CYGPKG_ERROR {
-    # 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:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
-    #   --> 1
-};
-
-# >
-# errno variable
-# This package controls the behaviour of the
-# errno variable (or more strictly, expression)
-# from <errno.h>.
-#
-cdl_component CYGPKG_ERROR_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
-    #   --> 1
-};
-
-# >
-# Per-thread errno
-# This option controls whether the standard error
-# code reporting variable errno is a per-thread
-# variable, rather than global.
-#
-cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the errno
-# retrieval mechanism in errno.cxx. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strerror function
-# This package controls the presence and behaviour of the
-# strerror() function from <string.h>
-#
-cdl_option CYGPKG_ERROR_STRERROR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
-    #   --> 1
-};
-
-# Error package 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_ERROR_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the error package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_ERROR_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 error package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# I2C driver for FSL MXC-based platforms
-#
-cdl_package CYGPKG_DEVS_MXC_I2C {
-    # 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
-};
-
-# ipu driver for mxc
-#
-cdl_package CYGPKG_DEVS_IMX_IPU {
-    # 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
-    # option CYGHWR_MX53_LCD_LOGO
-    #     ActiveIf:  CYGPKG_DEVS_IMX_IPU 
-};
-
-# >
-# IPU version 3EX support
-# When this option is enabled, it indicates the IPU version
-# is 3EX
-#
-cdl_option CYGHWR_DEVS_IPU_3_EX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-};
-
-# IPU version 3D support
-# When this option is enabled, it indicates the IPU version
-# is 3D
-#
-cdl_option CYGHWR_DEVS_IPU_3_D {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
diff --git a/config/TX53-8x31.ecc b/config/TX53-8x31.ecc
deleted file mode 100644 (file)
index 7b83ce5..0000000
+++ /dev/null
@@ -1,10425 +0,0 @@
-# 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    tx53karo ;
-    template    redboot ;
-    package -hardware CYGPKG_HAL_ARM current ;
-    package -hardware CYGPKG_HAL_ARM_MX53 current ;
-    package -hardware CYGPKG_HAL_ARM_TX53KARO current ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_REDBOOT current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_CRC current ;
-    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
-    package -hardware CYGPKG_DEVS_ETH_ARM_TX53 current ;
-    package -hardware CYGPKG_DEVS_ETH_FEC current ;
-    package -hardware CYGPKG_COMPRESS_ZLIB current ;
-    package -hardware CYGPKG_IO_FLASH current ;
-    package -hardware CYGPKG_DEVS_FLASH_ONMXC current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_DEVS_ETH_PHY current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_DEVS_MXC_I2C current ;
-    package -hardware CYGPKG_DEVS_IMX_IPU current ;
-};
-
-# ---- conflicts -------------------------------------------------------
-# There are no conflicts.
-
-# ---- contents --------------------------------------------------------
-# >
-# >
-# 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.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
-};
-
-# 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
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
-    #   --> 1
-
-    # 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 "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-    # value_source default
-    # Default value: "-Wl,--gc-sections -Wl,-static -O2 -nostdlib"
-};
-
-# 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
-};
-
-# <
-# ISO C library string functions
-# doc: ref/libc.html
-# This package provides string functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STRING {
-    # 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:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_MEMFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRING_STRFUNCS_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-    #     CYGBLD_ISO_STRTOK_R_HEADER == <cyg/libc/string/string.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Inline versions of <string.h> functions
-# This option chooses whether some of the
-# particularly simple string functions from
-# <string.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_STRING_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Optimize string functions for code size
-# This option tries to reduce string function
-# code size at the expense of execution speed. The
-# same effect can be produced if the code is
-# compiled with the -Os option to the compiler.
-#
-cdl_option CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide BSD compatibility functions
-# Enabling this option causes various compatibility functions
-# commonly found in the BSD UNIX operating system to be included.
-# These are functions such as bzero, bcmp, bcopy, bzero, strcasecmp,
-# strncasecmp, index, rindex and swab.
-#
-cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-    #     CYGBLD_ISO_STRING_BSD_FUNCS_HEADER == <cyg/libc/string/bsdstring.h>
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-};
-
-# strtok
-# These options control the behaviour of the
-# strtok() and strtok_r() string tokenization
-# functions.
-#
-cdl_component CYGPKG_LIBC_STRING_STRTOK {
-    # There is no associated value.
-};
-
-# >
-# Per-thread strtok()
-# This option controls whether the string function
-# strtok() has its state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard strtok_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the <string.h>
-# functions strtok() and strtok_r(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_STRING_STRTOK_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strdup
-# This option indicates whether strdup() is to be supported.
-#
-cdl_option CYGFUN_LIBC_STRING_STRDUP {
-    # ActiveIf constraint: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# C library string functions 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_LIBC_STRING_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STRING_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library string function tests
-# This option specifies the set of tests for the C library
-# string functions.
-#
-cdl_option CYGPKG_LIBC_STRING_TESTS {
-    # Calculated value:  "tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2" 
-    # Flavor: data
-    # Current_value: tests/memchr tests/memcmp1 tests/memcmp2 tests/memcpy1 tests/memcpy2 tests/memmove1 tests/memmove2 tests/memset tests/strcat1 tests/strcat2 tests/strchr tests/strcmp1 tests/strcmp2 tests/strcoll1 tests/strcoll2 tests/strcpy1 tests/strcpy2 tests/strcspn tests/strcspn tests/strlen tests/strncat1 tests/strncat2 tests/strncpy1 tests/strncpy2 tests/strpbrk tests/strrchr tests/strspn tests/strstr tests/strtok tests/strxfrm1 tests/strxfrm2
-};
-
-# <
-# <
-# Common ethernet support
-# doc: ref/io-eth-drv-generic.html
-# Platform independent ethernet drivers
-#
-cdl_package CYGPKG_IO_ETH_DRIVERS {
-    # 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
-    # component CYGPKG_REDBOOT_NETWORKING
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_ARM_TX53
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-    # package CYGPKG_DEVS_ETH_PHY
-    #     ActiveIf: CYGPKG_IO_ETH_DRIVERS
-};
-
-# >
-# Network drivers
-#
-cdl_interface CYGHWR_NET_DRIVERS {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-    # option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE
-    #     ActiveIf:  CYGHWR_NET_DRIVERS > 1 
-};
-
-# Driver supports multicast addressing
-# This interface defines whether or not a driver can handle
-# requests for multicast addressing.
-#
-cdl_interface CYGINT_IO_ETH_MULTICAST {
-    # Implemented by CYGPKG_DEVS_ETH_FEC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Support printing driver debug information
-# Selecting this option will include code to allow the driver to
-# print lots of information on diagnostic output such as full
-# packet dumps.
-#
-cdl_component CYGDBG_IO_ETH_DRIVERS_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Driver debug output verbosity
-# The value of this option indicates the default verbosity
-# level of debugging output. 0 means no debugging output
-# is made by default. Higher values indicate higher verbosity.
-# The verbosity level may also be changed at run time by
-# changing the variable cyg_io_eth_net_debug.
-#
-cdl_option CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Size of scatter-gather I/O lists
-# A scatter-gather list is used to pass requests to/from
-# the physical device driver.  This list can typically be
-# small, as the data is normally already packed into reasonable
-# chunks.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# Support for standard eCos TCP/IP stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_NET {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Warn when there are no more mbufs
-# Warnings about running out of mbufs are printed to the
-# diagnostic output channel via diag_printf() if this option
-# is enabled.  Mbufs are the network stack's basic dynamic
-# memory objects that hold all packets in transit; running
-# out is bad for performance but not fatal, not a crash.
-# You might want to turn off the warnings to preserve realtime
-# properties of the system even in extremis.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_WARN_NO_MBUFS {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Simulate network failures for testing
-# This package contains a suite of simulated failure modes
-# for the ethernet device layer, including dropping and/or
-# corrupting received packets, dropping packets queued for
-# transmission, and simulating a complete network break.
-# It requires the kernel as a source of time information.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_NET is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Drop incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Corrupt incoming packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_CORRUPT_RX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Drop outgoing packets (percentage)
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_DROP_TX {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 10
-    # value_source default
-    # Default value: 1 10
-    # Legal values: 10 50 80
-};
-
-# Simulate a line cut from time to time
-# This option causes the system to drop all packets for a
-# short random period (10s of seconds), and then act
-# normally for up to 4 times that long.  This simulates your
-# sysadmin fiddling with plugs in the network switch
-# cupboard.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_SIMULATE_LINE_CUT {
-    # This option is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is not active
-    # The parent CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# Support for stand-alone network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE {
-    # ActiveIf constraint: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Pass packets to an alternate stack
-# Define this to allow packets seen by this layer to be
-# passed on to the previous logical layer, i.e. when
-# stand-alone processing replaces system (eCos) processing.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_REDBOOT_NETWORKING 
-    #     CYGPKG_REDBOOT_NETWORKING == 1
-    #   --> 1
-};
-
-# Number of [network] buffers
-# This option is used to allocate space to buffer incoming network
-# packets.  These buffers are used to hold data until they can be
-# logically processed by higher layers.
-#
-cdl_option CYGNUM_IO_ETH_DRIVERS_NUM_PKT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 2 to 32
-};
-
-# Show driver warnings
-# Selecting this option will allows the stand-alone ethernet driver
-# to display warnings on the system console when incoming network
-# packets are being discarded due to lack of buffer space.
-#
-cdl_option CYGSEM_IO_ETH_DRIVERS_WARN {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support for lwIP network stack.
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_LWIP {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET_LWIP
-    #     CYGPKG_NET_LWIP (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 1
-};
-
-# Interrupt support required
-# This interface is used to indicate to the low
-# level device drivers that interrupt driven operation
-# is required by higher layers.
-#
-cdl_interface CYGINT_IO_ETH_INT_SUPPORT_REQUIRED {
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_NET, inactive, enabled
-    # Implemented by CYGPKG_IO_ETH_DRIVERS_LWIP, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Common ethernet support build options
-#
-cdl_component CYGPKG_IO_ETH_DRIVERS_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the common ethernet support package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_ETH_DRIVERS_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# Ethernet driver for Ka-Ro electronics TX53 processor module
-#
-cdl_package CYGPKG_DEVS_ETH_ARM_TX53 {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# FEC ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_FEC_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_FEC
-    #     ActiveIf: CYGINT_DEVS_ETH_FEC_REQUIRED
-};
-
-# Ka-Ro TX53 ethernet port driver
-# This option includes the ethernet device driver for the
-# MXC Board port.
-#
-cdl_component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-    # Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-    #     CYGHWR_DEVS_ETH_PHY_LAN8700 == 1
-    #   --> 1
-};
-
-# >
-# Device name for the ETH0 ethernet driver
-# This option sets the name of the ethernet device.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_MXCBOARD_ETH0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# OUI part of MAC address
-# This option sets OUI part (manufacturer ID) of the MAC address
-# for validation.
-#
-cdl_option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI {
-    # ActiveIf constraint: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    #     CYGSEM_REDBOOT_PLF_ESA_VALIDATE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ 0x00, 0x0c, 0xc6 }"
-    # value_source default
-    # Default value: "{ 0x00, 0x0c, 0xc6 }"
-};
-
-# <
-# <
-# Driver for fast ethernet controller.
-# Driver for fast ethernet controller.
-#
-cdl_package CYGPKG_DEVS_ETH_FEC {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_DEVS_ETH_FEC_REQUIRED
-    #     CYGINT_DEVS_ETH_FEC_REQUIRED == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC FEC ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_FEC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Cirrus Logic ethernet driver package.
-# These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_FEC_CFLAGS_ADD {
-    # 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"
-};
-
-# <
-# MXC FEC MII Gasket for RMII mode
-# This option enables the use of the MII Gasket for
-# RMII mode found in i.MX25 and i.MX53 processors.
-#
-cdl_option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK {
-    # ActiveIf constraint: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Ethernet transceiver (PHY) support
-# API for ethernet PHY devices
-#
-cdl_package CYGPKG_DEVS_ETH_PHY {
-    # 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_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-};
-
-# >
-# Enable driver debugging
-# Enables the diagnostic debug messages on the
-# console device.
-#
-cdl_option CYGDBG_DEVS_ETH_PHY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time period (seconds) to wait for auto-negotiation
-# The length of time to wait for auto-negotiation to complete
-# before giving up and declaring the link dead/missing.
-#
-cdl_option CYGINT_DEVS_ETH_PHY_AUTO_NEGOTIATION_TIME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-};
-
-# NSDP83847
-# Include support for National Semiconductor DP83847 DsPHYTER II
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DP83847 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# AMD 79C874
-# Include support for AMD 79C874 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_AM79C874 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Intel LXT972
-# Include support for Intel LXT972xxx PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_INLXT972 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1890
-# Include support for ICS 1890 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1890 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1892
-# Include support for ICS 1892 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1892 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# ICS 1893
-# Include support for ICS 1893 and 1893AF PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_ICS1893 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Davicom DM9161A
-# Include support for the Davicom DM9161A PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_DM9161A {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Micrel KS8721
-# Include support for the Micrel KS8721 PHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_KS8721 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# SMSC LAN8700
-# Include support for SMSC LAN8700 NetPHY
-#
-cdl_option CYGHWR_DEVS_ETH_PHY_LAN8700 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGHWR_DEVS_ETH_PHY_LAN8700
-};
-
-# <
-# <
-# ISO C library internationalization functions
-# doc: ref/libc.html
-# This package provides internationalization functions specified by the
-# ISO C standard - ISO/IEC 9899:1990. These include locale-related
-# functionality and <ctype.h> functionality.
-#
-cdl_package CYGPKG_LIBC_I18N {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Supported locales
-# These options determine which locales other than the "C" locale
-# are supported and hence contribute to the size of the executable.
-#
-cdl_component CYGPKG_LIBC_I18N_LOCALES {
-    # There is no associated value.
-};
-
-# >
-# Support for multiple locales required
-#
-cdl_interface CYGINT_LIBC_I18N_MB_REQUIRED {
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_SJIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_JIS, active, disabled
-    # Implemented by CYGFUN_LIBC_I18N_LOCALE_C_EUCJP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-    #     CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-};
-
-# C-SJIS locale support
-# This option controls if the "C-SJIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese SJIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_SJIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-JIS locale support
-# This option controls if the "C-JIS" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese JIS multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_JIS {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# C-EUCJP locale support
-# This option controls if the "C-EUCJP" locale will be
-# supported by setlocale().  The locale is a hybrid locale
-# that is mostly the "C" locale with Japanese EUCJP multibyte
-# support added.
-#
-cdl_option CYGFUN_LIBC_I18N_LOCALE_C_EUCJP {
-    # 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 CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     LegalValues:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    # option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE
-    #     DefaultValue:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-};
-
-# <
-# Newlib's ctype implementation
-# This option enables the implementation of the ctype functions
-# that comes with newlib. It is table driven and therefore
-# exhibits different performance characteristics. It also offers
-# a limited amount of binary compatibility
-# with newlib so that programs linked against newlib ctype/locale
-# do not need to be recompiled when linked with eCos.
-#
-cdl_option CYGPKG_LIBC_I18N_NEWLIB_CTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 0
-};
-
-# Per-thread multibyte state
-# This option controls whether the multibyte character
-# handling functions mblen(), mbtowc(), and wctomb(),
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Enabling this option will use three slots
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_I18N_PER_THREAD_MB {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Size of locale name strings
-# This option controls the maximum size of
-# locale names and is used, among other things
-# to instantiate a static string used
-# as a return value from the
-# setlocale() function. When requesting the
-# current locale settings with LC_ALL, a string
-# must be constructed to contain this data, rather
-# than just returning a constant string. This
-# string data is stored in the static string.
-# This depends on the length of locale names,
-# hence this option. If just the C locale is
-# present, this option can be set as low as 2.
-#
-cdl_option CYGNUM_LIBC_I18N_MAX_LOCALE_NAME_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2)))  
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-    #   --> 2
-    # Legal values:  (CYGFUN_LIBC_I18N_LOCALE_C_EUCJP ? 8 :  (CYGFUN_LIBC_I18N_LOCALE_C_SJIS ? 7 :   (CYGFUN_LIBC_I18N_LOCALE_C_JIS ? 6 : 2))) to 0x7fffffff 
-    #     CYGFUN_LIBC_I18N_LOCALE_C_EUCJP == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_SJIS == 0
-    #     CYGFUN_LIBC_I18N_LOCALE_C_JIS == 0
-};
-
-# Inline versions of <ctype.h> functions
-# This option chooses whether the simple character
-# classification and conversion functions (e.g.
-# isupper(), isalpha(), toupper(), etc.)
-# from <ctype.h> are available as inline
-# functions. This may improve performance and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_option CYGIMP_LIBC_I18N_CTYPE_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-    #     CYGBLD_ISO_CTYPE_HEADER == <cyg/libc/i18n/ctype.inl>
-    #   --> 1
-};
-
-# C library i18n functions 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_LIBC_I18N_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_I18N_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library i18n function tests
-# This option specifies the set of tests for the C library
-# i18n functions.
-#
-cdl_option CYGPKG_LIBC_I18N_TESTS {
-    # Calculated value:  "tests/ctype tests/setlocale tests/i18nmb" 
-    # Flavor: data
-    # Current_value: tests/ctype tests/setlocale tests/i18nmb
-};
-
-# <
-# <
-# ISO C library general utility functions
-# doc: ref/libc.html
-# This package provides general utility functions in <stdlib.h>
-# as specified by the ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-};
-
-# >
-# Inline versions of <stdlib.h> functions
-# This option chooses whether some of the
-# particularly simple standard utility functions
-# from <stdlib.h> are available as inline
-# functions. This may improve performance, and as
-# the functions are small, may even improve code
-# size.
-#
-cdl_component CYGIMP_LIBC_STDLIB_INLINES {
-    # There is no associated value.
-};
-
-# >
-# abs() / labs()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ABS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-    #     CYGBLD_ISO_STDLIB_ABS_HEADER == <cyg/libc/stdlib/abs.inl>
-    #   --> 1
-};
-
-# div() / ldiv()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_DIV {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-    #     CYGBLD_ISO_STDLIB_DIV_HEADER == <cyg/libc/stdlib/div.inl>
-    #   --> 1
-};
-
-# atof() / atoi() / atol()
-#
-cdl_option CYGIMP_LIBC_STDLIB_INLINE_ATOX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-    #     CYGBLD_ISO_STDLIB_STRCONV_HEADER == <cyg/libc/stdlib/atox.inl>
-    #   --> 1
-};
-
-# <
-# Random number generation
-# These options control the behaviour of the
-# functions rand(), srand() and rand_r()
-#
-cdl_component CYGPKG_LIBC_RAND {
-    # There is no associated value.
-};
-
-# >
-# Per-thread random seed
-# doc: ref/libc-thread-safety.html
-# This option controls whether the pseudo-random
-# number generation functions rand() and srand()
-# have their state recorded on a per-thread
-# basis rather than global. If this option is
-# disabled, some per-thread space can be saved.
-# Note there is also a POSIX-standard rand_r()
-# function to achieve a similar effect with user
-# support. Enabling this option will use one slot
-# of kernel per-thread data. You should ensure you
-# have enough slots configured for all your
-# per-thread data.
-#
-cdl_option CYGSEM_LIBC_PER_THREAD_RAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Random number seed
-# This selects the initial random number seed for
-# rand()'s pseudo-random number generator. For
-# strict ISO standard compliance, this should be 1,
-# as per section 7.10.2.2 of the standard.
-#
-cdl_option CYGNUM_LIBC_RAND_SEED {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 0 to 0x7fffffff
-};
-
-# Tracing level
-# Trace verbosity level for debugging the rand(),
-# srand() and rand_r() functions. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_RAND_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# Simplest implementation
-# This provides a very simple implementation of rand()
-# that does not perform well with randomness in the
-# lower significant bits. However it is exceptionally
-# fast. It uses the sample algorithm from the ISO C
-# standard itself.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLEST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple implementation #1
-# This provides a very simple implementation of rand()
-# based on the simplest implementation above. However
-# it does try to work around the lack of randomness
-# in the lower significant bits, at the expense of a
-# little speed.
-#
-cdl_option CYGIMP_LIBC_RAND_SIMPLE1 {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Knuth implementation #1
-# This implements a slightly more complex algorithm
-# published in Donald E. Knuth's Art of Computer
-# Programming Vol.2 section 3.6 (p.185 in the 3rd ed.).
-# This produces better random numbers than the
-# simplest approach but is slower.
-#
-cdl_option CYGIMP_LIBC_RAND_KNUTH1 {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# <
-# Provides strtod()
-# This option allows use of the utility function
-# strtod() (and consequently atof()) to convert
-# from string to double precision floating point
-# numbers. Disabling this option removes the
-# dependency on the math library package.
-#
-cdl_option CYGFUN_LIBC_strtod {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM (unknown) == 0
-    #   --> 0
-};
-
-# Provides long long conversion functions
-# Enabling this option will provide support for the strtoll(),
-# strtoull() and atoll() conversion functions, which are
-# the long long variants of the standard versions of these
-# functions. Supporting this requires extra code and compile
-# time.
-#
-cdl_option CYGFUN_LIBC_STDLIB_CONV_LONGLONG {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# bsearch() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# binary search function bsearch(). Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_BSEARCH_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# qsort() tracing level
-# Trace verbosity level for debugging the <stdlib.h>
-# quicksort function qsort(). Increase this value
-# to get additional trace output.
-#
-cdl_option CYGNUM_LIBC_QSORT_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# C library stdlib 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_LIBC_STDLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_LIBC_STDLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# C library stdlib tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STDLIB_TESTS {
-    # Calculated value:  "tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul" 
-    # Flavor: data
-    # Current_value: tests/abs tests/atoi tests/atol tests/bsearch tests/div tests/getenv tests/labs tests/ldiv tests/qsort tests/rand1 tests/rand2 tests/rand3 tests/rand4 tests/srand tests/strtol tests/strtoul
-};
-
-# <
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-};
-
-# >
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# 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 0
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS (unknown) == 0
-    #   --> 0
-};
-
-# 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 (unknown) == 0
-    #   --> 0
-};
-
-# 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 == ROMRAM
-    #   --> 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 {
-    # 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 == current
-    #     CYGPKG_HAL_POWERPC_MPC8xx (unknown) == 0
-    #     CYGPKG_HAL_V85X_V850 (unknown) == 0
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #   --> 1
-
-    # 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 == ROMRAM
-    #   --> 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 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_REDBOOT
-    #     Requires:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-};
-
-# 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 32768
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 32768
-    # 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-};
-
-# 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
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     ActiveIf: CYGINT_HAL_DEBUG_GDB_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-    # Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 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
-    # option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS
-    #     Requires: !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    #     CYGINT_HAL_DEBUG_GDB_STUBS_BREAK == 1
-    #   --> 1
-
-    # 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
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # option CYGBLD_BUILD_REDBOOT_WITH_GDB
-    #     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 == 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
-
-    # The following properties are affected by this value
-    # option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 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 CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     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.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Target has virtual vector support
-#
-cdl_interface CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE
-    #     ActiveIf: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-};
-
-# 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 {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    # package CYGPKG_DEVS_ETH_PHY
-    #     Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-};
-
-# >
-# 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
-    # ActiveIf constraint: CYGSEM_HAL_USE_ROM_MONITOR
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 0
-
-    # 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 {
-    # Calculated value:  CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     ActiveIf: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-};
-
-# 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 {
-    # 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 == ROMRAM
-    #     CYGSEM_HAL_USE_ROM_MONITOR == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA == 1
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS == 1
-    #   --> 1
-
-    # 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
-    # ActiveIf constraint: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 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 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE == 1
-    #   --> 1
-};
-
-# 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT == 0
-    #   --> 1
-
-    # 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 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # 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 == 1
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 1
-
-    # 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 {
-    # 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 
-};
-
-# <
-# Behave as a ROM monitor
-# Enable this option if this program is to be used as a ROM monitor,
-# i.e. applications will be loaded into RAM on the TX53 module, and this
-# ROM monitor may process exceptions or interrupts generated from the
-# application. This enables features such as utilizing a separate
-# interrupt stack when exceptions are generated.
-#
-cdl_option CYGSEM_HAL_ROM_MONITOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-};
-
-# Work with a ROM monitor
-# Support can be enabled for different varieties of ROM monitor.
-# This support changes various eCos semantics such as the encoding
-# of diagnostic output, or the overriding of hardware interrupt
-# vectors.
-# Firstly there is "Generic" support which prevents the HAL
-# from overriding the hardware vectors that it does not use, to
-# instead allow an installed ROM monitor to handle them. This is
-# the most basic support which is likely to be common to most
-# implementations of ROM monitor.
-# "GDB_stubs" provides support when GDB stubs are included in
-# the ROM monitor or boot ROM.
-#
-cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_USE_ROM_MONITOR || CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS 
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE
-    #     ActiveIf: CYGSEM_HAL_USE_ROM_MONITOR
-    # option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
-    #     DefaultValue:  CYG_HAL_STARTUP != "RAM" || !CYGSEM_HAL_USE_ROM_MONITOR 
-};
-
-# <
-# 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
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_DISK_IDE
-    #     ActiveIf:  CYGINT_HAL_PLF_IF_IDE != 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 == 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 == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache tests/intr
-};
-
-# >
-# 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 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" : "") 
-};
-
-# <
-# ARM architecture
-# The ARM architecture HAL package provides generic
-# support for this processor architecture. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM {
-    # 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
-    # component CYGDBG_HAL_DIAG_TO_DEBUG_CHAN
-    #     ActiveIf:  CYGPKG_HAL_ARM || CYGPKG_HAL_POWERPC_MPC8xx  || CYGPKG_HAL_V85X_V850 || CYGSEM_HAL_VIRTUAL_VECTOR_DIAG 
-    # interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     ActiveIf: CYGPKG_HAL_ARM
-};
-
-# >
-# The CPU architecture supports THUMB mode
-#
-cdl_interface CYGINT_HAL_ARM_THUMB_ARCH {
-    # 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 CYGHWR_THUMB
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     ActiveIf:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-};
-
-# Enable Thumb instruction set
-# Enable use of the Thumb instruction set.
-#
-cdl_option CYGHWR_THUMB {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # 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 CYGBLD_ARM_ENABLE_THUMB_INTERWORK
-    #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-};
-
-# Enable Thumb interworking compiler option
-# This option controls the use of -mthumb-interwork in the
-# compiler flags. It defaults enabled in Thumb or ROM monitor
-# configurations, but can be overridden for reduced memory
-# footprint where interworking is not a requirement.
-#
-cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_THUMB_ARCH != 0 
-    #     CYGINT_HAL_ARM_THUMB_ARCH == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
-    #     CYGHWR_THUMB == 0
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# The platform and architecture supports Big Endian operation
-#
-cdl_interface CYGINT_HAL_ARM_BIGENDIAN {
-    # 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 CYGHWR_HAL_ARM_BIGENDIAN
-    #     ActiveIf:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-};
-
-# Use big-endian mode
-# Use the CPU in big-endian mode.
-#
-cdl_option CYGHWR_HAL_ARM_BIGENDIAN {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_HAL_ARM_BIGENDIAN != 0 
-    #     CYGINT_HAL_ARM_BIGENDIAN == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# The platform uses a processor with an ARM7 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with an ARM9 core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_ARM9 {
-    # Implemented by CYGPKG_HAL_ARM_MX53, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a StrongARM core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_STRONGARM {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# The platform uses a processor with a XScale core
-#
-cdl_interface CYGINT_HAL_ARM_ARCH_XSCALE {
-    # 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 CYGHWR_HAL_ARM_CPU_FAMILY
-    #     LegalValues:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    # option CYGHWR_HAL_ARM_CPU_FAMILY
-    #     DefaultValue:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-};
-
-# ARM CPU family
-# It is possible to optimize code for different
-# ARM CPU families. This option selects which CPU to
-# optimize for on boards that support multiple CPU types.
-#
-cdl_option CYGHWR_HAL_ARM_CPU_FAMILY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ARM9
-    # value_source default
-    # Default value:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : 
-    #                              (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : 
-    #                              (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : 
-    #                              (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" :
-    #                              "unknown" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-    #   --> ARM9
-    # Legal values:  (CYGINT_HAL_ARM_ARCH_ARM7 != 0) ? "ARM7" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_ARM9 != 0) ? "ARM9" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_STRONGARM != 0) ? "StrongARM" : ""
-    #                             (CYGINT_HAL_ARM_ARCH_XSCALE != 0) ? "XScale" : ""
-    #                             "" 
-    #     CYGINT_HAL_ARM_ARCH_ARM7 == 0
-    #     CYGINT_HAL_ARM_ARCH_ARM9 == 1
-    #     CYGINT_HAL_ARM_ARCH_STRONGARM == 0
-    #     CYGINT_HAL_ARM_ARCH_XSCALE == 0
-};
-
-# Provide diagnostic dump for exceptions
-# Print messages about hardware exceptions, including
-# raw exception frame dump and register contents.
-#
-cdl_option CYGHWR_HAL_ARM_DUMP_EXCEPTIONS {
-    # 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
-    #   --> 1
-};
-
-# Process all exceptions with the eCos application
-# Normal RAM-based programs which do not include GDB stubs 
-# defer processing of the illegal instruction exception to GDB.
-# Setting this options allows the program to explicitly handle
-# the illegal instruction exception itself.  Note: this will
-# prevent the use of GDB to debug the application as breakpoints
-# will no longer work.
-#
-cdl_option CYGIMP_HAL_PROCESS_ALL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support GDB thread operations via ICE/Multi-ICE
-# Allow GDB to get thread information via the ICE/Multi-ICE
-# connection.
-#
-cdl_option CYGHWR_HAL_ARM_ICE_THREAD_SUPPORT {
-    # 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
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (unknown) == 0
-    #   --> 0
-};
-
-# Support for 'gprof' callbacks
-# The ARM HAL provides the macro for 'gprof' callbacks from RedBoot
-# to acquire the interrupt-context PC and SP, when this option is
-# active.
-#
-cdl_option CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS == 0
-    #   --> 0
-    # ActiveIf constraint:  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT || CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT 
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Accept exceptions and irq's occurring in user mode
-# For standalone Redboot based programs running in user mode.
-#
-cdl_option CYGOPT_HAL_ARM_WITH_USER_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Preserve svc spsr before returning to svc mode
-# This option secures exception and breakpoint processing
-# triggered during execution of application specific SWI
-# handlers.
-#
-cdl_option CYGOPT_HAL_ARM_PRESERVE_SVC_SPSR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Linker script
-#
-cdl_option CYGBLD_LINKER_SCRIPT {
-    # Calculated value:  "src/arm.ld" 
-    # Flavor: data
-    # Current_value: src/arm.ld
-};
-
-# Implementations of hal_arm_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_ARM_MEM_REAL_REGION_TOP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Freescale SoC architecture
-# This HAL variant package provides generic
-# support for the Freescale SoC. It is also
-# necessary to select a specific target platform HAL
-# package.
-#
-cdl_package CYGPKG_HAL_ARM_MX53 {
-    # 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
-    # option CYGOPT_HAL_ARM_MXC_FEC_MIIGSK
-    #     ActiveIf: CYGPKG_HAL_ARM_MX25 || CYGPKG_HAL_ARM_MX53
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     ActiveIf:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-};
-
-# >
-# Processor clock rate
-# The processor can run at various frequencies.
-# These values are expressed in KHz.  Note that there are
-# several steppings of the rate to run at different
-# maximum frequencies.  Check the specs to make sure that your
-# particular processor can run at the rate you select here.
-#
-cdl_option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK {
-    # This option is not active
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 150000
-    # value_source default
-    # Default value:  CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT ?
-    #                             CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT : 150000
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #     CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK_OVERRIDE_DEFAULT (unknown) == 0
-    #   --> 150000
-    # Legal values: 150000 200000
-};
-
-# Real-time clock constants
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Calculated value: 1000000000
-    # Flavor: data
-    # Current_value: 1000000000
-};
-
-# Real-time clock denominator
-# This option selects the heartbeat rate for the real-time clock.
-# The rate is specified in ticks per second.  Change this value
-# with caution - too high and your system will become saturated
-# just handling clock interrupts, too low and some operations
-# such as thread scheduling may become sluggish.
-#
-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
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_RTC_PERIOD
-    #     Calculated: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Calculated value: (3686400/CYGNUM_HAL_RTC_DENOMINATOR)
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    # Flavor: data
-    # Current_value: 36864
-};
-
-# <
-# UART1 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART1 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART2 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART2 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART3 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART3 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART4 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART4 {
-    # Implemented by CYGPKG_HAL_ARM_TX53KARO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# UART5 available as diagnostic/debug channel
-# The chip has multiple serial channels which may be
-# used for different things on different platforms.  This
-# interface allows a platform to indicate that the specified
-# serial port can be used as a diagnostic and/or debug channel.
-#
-cdl_interface CYGHWR_HAL_ARM_SOC_UART5 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Ka-Ro TX53 module
-# This HAL platform package provides generic
-# support for the Ka-Ro electronics TX53 module.
-#
-cdl_package CYGPKG_HAL_ARM_TX53KARO {
-    # 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: CYGINT_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGBLD_BUILD_REDBOOT == 1
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-};
-
-# >
-# Startup type
-# The only startup type allowed is ROMRAM, since this will allow
-# the program to exist in ROM, but be copied to RAM during startup
-# which is required to boot from NAND flash.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ROMRAM
-    # value_source default
-    # Default value: ROMRAM
-    # Legal values:  "ROMRAM" "RAM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     DefaultValue:  CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 
-    # option CYGSEM_HAL_USE_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "RAM" 
-    # option CYGHWR_HAL_ARM_SOC_PROCESSOR_CLOCK
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" 
-    # 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 
-    # option CYGBLD_BUILD_REDBOOT_WITH_THREADS
-    #     ActiveIf:  CYG_HAL_STARTUP != "RAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    # option CYGPRI_REDBOOT_ROM_MONITOR
-    #     ActiveIf:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the console port.
-# Note: this should match the value chosen for the GDB port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option selects the baud rate used for the GDB port.
-# Note: this should match the value chosen for the console port if the
-# console and GDB port are the same.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 115200
-    # value_source default
-    # Default value: 115200
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the TX53
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Calculated value: 5
-    # Flavor: data
-    # Current_value: 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     LegalValues: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-};
-
-# Debug serial port
-# The TX53 provides access to five serial ports. This option
-# chooses which port will be used to connect to a host
-# running GDB.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Console serial port
-# The TX53 provides access to three serial ports. This option
-# chooses which port will be used for console output.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # ActiveIf constraint: CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE
-    #     CYGPRI_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_CONFIGURABLE == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT == 0
-    #   --> 0
-    # Legal values: 0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-    #     CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS == 5
-};
-
-# Ka-Ro electronics TX53 module 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_HAL_ARM_TX53_OPTIONS {
-    # There is no associated value.
-    # Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-};
-
-# >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    user_value 3
-    # value_source user
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
-# SDRAM size
-# This option specifies the SDRAM size of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
-    # Flavor: data
-    user_value 0x40000000
-    # value_source user
-    # Default value: 0x20000000
-    # Legal values:  0x40000000 0x20000000 
-};
-
-# CPU clock
-# This option specifies the CPU clock in MHz of the TX51 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
-    # Flavor: data
-    user_value 800
-    # value_source user
-    # Default value: 1000
-    # Legal values:  800 1000 
-};
-
-# Enable low level debugging with LED
-# This option enables low level debugging by blink codes
-# of the LED on STK5.
-#
-cdl_option CYGOPT_HAL_ARM_TX53_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  false 
-    #     false (unknown) == 0
-    #   --> 0
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the TX53 HAL. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_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 TX53 HAL. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_HAL_ARM_TX53_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Show a splash screen from the FIS partition: 'logo'
-# When this option is enabled, RedBoot will look for a flash partition
-# named 'logo' and display the contents of this partition as initial
-# screen on the LCD
-#
-cdl_option CYGHWR_MX53_LCD_LOGO {
-    # ActiveIf constraint:  CYGPKG_DEVS_IMX_IPU 
-    #     CYGPKG_DEVS_IMX_IPU == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 400
-    # value_source default
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
-# <
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  "arm_tx53_romram" 
-    # Flavor: data
-    # Current_value: arm_tx53_romram
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.ldi>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  "<pkgconf/mlt_arm_tx53_romram.h>" 
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_arm_tx53_romram.h>
-};
-
-# <
-# <
-# <
-# <
-# <
-# 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     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
-    # option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-};
-
-# >
-# 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
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != 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
-};
-
-# >
-# 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
-};
-
-# 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
-};
-
-# 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
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer on assert fail
-# When an assertion fails the trace buffer will be 
-# printed to the default diagnostic device.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT {
-    # 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
-};
-
-# <
-# Use function names
-# All trace and assert calls within eCos contain a
-# reference to the builtin macro '__PRETTY_FUNCTION__',
-# which evaluates to a string containing
-# the name of the current function.
-# This is useful when reading a trace log.
-# It is possible to suppress the use of the function name
-# 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_FUNCTION_PSEUDOMACRO {
-    # 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
-};
-
-# <
-# Startup options
-# Some packages require a startup routine to be called.
-# This can be carried out by application code, by supplying
-# a routine called cyg_package_start() which calls the
-# appropriate package startup routine(s).
-# Alternatively, this routine can be constructed automatically
-# and configured to call the startup routines of your choice.
-#
-cdl_component CYGPKG_INFRA_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# Start uITRON subsystem
-# Generate a call to initialize the
-# uITRON compatibility subsystem
-# within the system version of cyg_package_start().
-# This enables compatibility with uITRON.
-# You must configure uITRON with the correct tasks before
-# starting the uItron subsystem.
-# If this is disabled, and you want to use uITRON,
-# you must call cyg_uitron_start() from your own
-# cyg_package_start() or cyg_userstart().
-#
-cdl_option CYGSEM_START_UITRON_COMPATIBILITY {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_UITRON
-    #     CYGPKG_UITRON (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: CYGPKG_UITRON
-    #     CYGPKG_UITRON (unknown) == 0
-    #   --> 0
-};
-
-# <
-# Smaller slower memcpy()
-# Enabling this option causes the implementation of
-# the standard memcpy() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memcpy() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Smaller slower memset()
-# Enabling this option causes the implementation of
-# the standard memset() routine to reduce code
-# size at the expense of execution speed. This
-# option is automatically enabled with the use of
-# the -Os option to the compiler. Also note that
-# the compiler will try to use its own builtin
-# version of memset() if possible, ignoring the
-# implementation in this package, unless given
-# the -fno-builtin compiler option.
-#
-cdl_option CYGIMP_INFRA_PREFER_SMALL_TO_FAST_MEMSET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide empty C++ delete functions
-# To deal with virtual destructors, where the correct delete()
-# function must be called for the derived class in question, the
-# underlying delete is called when needed, from destructors.  This
-# is regardless of whether the destructor is called by delete itself.
-# So there is a reference to delete() from all destructors.  The
-# default builtin delete() attempts to call free() if there is
-# one defined.  So, if you have destructors, and you have free(),
-# as in malloc() and free(), any destructor counts as a reference
-# to free().  So the dynamic memory allocation code is linked
-# in regardless of whether it gets explicitly called. This
-# increases code and data size needlessly.
-# To defeat this undesirable behaviour, we define empty versions
-# of delete and delete.  But doing this prevents proper use
-# of dynamic memory in C++ programs via C++'s new and delete
-# operators.
-# Therefore, this option is provided
-# for explicitly disabling the provision of these empty functions,
-# so that new and delete can be used, if that is what is required.
-#
-cdl_option CYGFUN_INFRA_EMPTY_DELETE_FUNCTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Threshold for valid number of delete calls
-# Some users don't know about the empty delete function and then
-# wonder why their C++ classes are leaking memory. If
-# INFRA_DEBUG is enabled we keep a counter for the number of
-# times delete is called. If it goes above this threshold we throw
-# an assertion failure. This should point heavy users of
-# delete in the right direction without upsetting those who want
-# an empty delete function. 
-#
-cdl_option CYGNUM_INFRA_EMPTY_DELETE_THRESHOLD {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# Provide dummy abort() function
-# This option controls the inclusion of a dummy abort() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to abort(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. It is not expected that this function
-# will ever be called, so its current behaviour is to simply loop.
-#
-cdl_option CYGFUN_INFRA_DUMMY_ABORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-};
-
-# Reset platform at end of test case execution
-# If this option is set then test case programs will reset the platform
-# when they terminate, as opposed to the default which is to just hang
-# in a loop.
-#
-cdl_option CYGSEM_INFRA_RESET_ON_TEST_EXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Provide dummy strlen() function
-# This option controls the inclusion of a dummy strlen() function.
-# Parts of the C and C++ compiler runtime systems contain references
-# to strlen(), particulary in the C++ exception handling code. It is
-# not possible to eliminate these references, so this dummy function
-# in included to satisfy them. While it is not expected that this function
-# will ever be called, it is functional but uses the simplest, smallest
-# algorithm. There is a faster version of strlen() in the C library.
-#
-cdl_option CYGFUN_INFRA_DUMMY_STRLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 0
-};
-
-# Make all compiler warnings show as errors
-# Enabling this option will cause all compiler warnings to show
-# as errors and bring the library build to a halt. This is used
-# to ensure that the code base is warning free, and thus ensure
-# that newly introduced warnings stand out and get fixed before
-# they show up as weird run-time behavior.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-};
-
-# Make compiler and assembler communicate by pipe
-# Enabling this option will cause the compiler to feed the
-# assembly output the the assembler via a pipe instead of
-# via a temporary file. This normally reduces the build
-# time.
-#
-cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    #   --> 1
-};
-
-# Infra build options
-# Package specific build options including control over
-# compiler flags used only in building this package.
-#
-cdl_component CYGPKG_INFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Suppressed linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--gc-sections
-    # value_source default
-    # Default value: -Wl,--gc-sections
-};
-
-# Additional linker flags
-# This option modifies the set of linker flags for
-# building the eCos infra package tests. These flags are added to
-# the set of global flags if present.
-#
-cdl_option CYGPKG_INFRA_LDFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wl,--fatal-warnings
-    # value_source default
-    # Default value: -Wl,--fatal-warnings
-};
-
-# Infra package tests
-#
-cdl_component CYGPKG_INFRA_TESTS {
-    # Calculated value:  "tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2" 
-    # Flavor: data
-    # Current_value: tests/cxxsupp tests/diag_sprintf1 tests/diag_sprintf2
-};
-
-# >
-# Number of times a test runs
-# This option controls the number of times tests will execute their
-# basic function.  Not all tests will honor this setting, but those
-# that do will execute the test N times before terminating.  A value
-# less than 0 indicates to run forever.
-#
-cdl_option CYGNUM_TESTS_RUN_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# <
-# Redboot ROM monitor
-# doc: ref/redboot.html
-# This package supports the Redboot [stand-alone debug monitor]
-# using eCos as the underlying board support mechanism.
-#
-cdl_package CYGPKG_REDBOOT {
-    # 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:  CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0 
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_ARM_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     ActiveIf: CYGPKG_REDBOOT
-    # option CYGSEM_IO_ETH_DRIVERS_WARN
-    #     ActiveIf: CYGPKG_REDBOOT
-};
-
-# >
-# Include support for ELF file format
-#
-cdl_component CYGSEM_REDBOOT_ELF {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use the virtual address in the ELF headers
-# The ELF headers contain both a virtual and a physical address
-# for where code/data should be loaded. By default the physical
-# address is used but sometimes it is necassary to use the
-# virtual address because of bugy toolchains
-#
-cdl_option CYGOPT_REDBOOT_ELF_VIRTUAL_ADDRESS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Methods of loading images using redboot
-#
-cdl_interface CYGINT_REDBOOT_LOAD_METHOD {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM, active, enabled
-    # Implemented by CYGPKG_REDBOOT_NETWORKING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_REDBOOT_LOAD_METHOD
-};
-
-# Build Redboot ROM ELF image
-# This option enables the building of the Redboot ELF image.
-# The image may require further relocation or symbol
-# stripping before being converted to a binary image.
-# This is handled by a rule in the target CDL.
-#
-cdl_component CYGBLD_BUILD_REDBOOT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires: CYGPKG_INFRA
-    #     CYGPKG_INFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 0
-    #   --> 1
-    # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_REDBOOT_LOAD_METHOD
-    #     CYGINT_REDBOOT_LOAD_METHOD == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGBLD_BUILD_REDBOOT == 1
-    # option CYGBLD_BUILD_REDBOOT_BIN
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT
-};
-
-# >
-# Include GDB support in RedBoot
-# RedBoot normally includes support for the GDB debugging
-# protocols. This option allows this to be disabled which
-# may yield a substantial savings in terms of code and memory 
-# usage by RedBoot.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GDB {
-    # ActiveIf constraint: CYGINT_HAL_DEBUG_GDB_STUBS
-    #     CYGINT_HAL_DEBUG_GDB_STUBS == 1
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT == 0
-    #   --> 0
-};
-
-# Threads debugging support
-# Enabling this option will include special code in the
-# GDB stubs to support debugging of threaded programs.  In
-# the case of eCos programs, this support allows GDB to
-# have complete access to the eCos threads in the
-# program.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
-    # ActiveIf constraint:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # 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_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-};
-
-# Customized version string
-# Use this option to define a customized version "string" for
-# RedBoot.  Note: this value is only cosmetic, displayed by the
-# "version" command, but is useful for providing site specific
-# information about the RedBoot configuration.
-#
-cdl_option CYGDAT_REDBOOT_CUSTOM_VERSION {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 "Ka-Ro 2010-01-06"
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Enable command line editing
-# If this option is non-zero, RedBoot will remember the
-# last N command lines.  These lines may be reused.
-# Enabling this history will also enable rudimentary
-# editting of the lines themselves.
-#
-cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES
-    #     ActiveIf: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    # option CYGBLD_REDBOOT_CMD_LINE_HISTORY
-    #     Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-};
-
-# Enable command line editing using ANSI arrows, etc
-# If this option is enabled, RedBoot will accept standard ANSI key
-# sequences for cursor movement (along with the emacs style keys).
-#
-cdl_option CYGSEM_REDBOOT_CMD_LINE_ANSI_SEQUENCES {
-    # ActiveIf constraint: CYGNUM_REDBOOT_CMD_LINE_EDITING != 0
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Enable history command and expansion
-# Enabling this option will allow RedBoot to provide a
-# history command to list previous commands. Also enables
-# history expansion via '!'  character similar to bash
-# shell.
-#
-cdl_option CYGBLD_REDBOOT_CMD_LINE_HISTORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGNUM_REDBOOT_CMD_LINE_EDITING > 0 
-    #     CYGNUM_REDBOOT_CMD_LINE_EDITING == 16
-    #   --> 1
-};
-
-# Number of unique RAM segments on platform
-# Change this option to be the number of memory segments which are
-# supported by the platform.  If the value is greater than 1, then
-# a platform specific function must provide information about the
-# additional segments.
-#
-cdl_option CYGBLD_REDBOOT_MAX_MEM_SEGMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include support gzip/zlib decompression
-#
-cdl_component CYGBLD_BUILD_REDBOOT_WITH_ZLIB {
-    # ActiveIf constraint: CYGPKG_COMPRESS_ZLIB
-    #     CYGPKG_COMPRESS_ZLIB == current
-    #   --> 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
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# >
-# Size of zlib decompression buffer
-# This is the size of the buffer filled with incoming data
-# during load before calls are made to the decompressor
-# function. For ethernet downloads this can be made bigger
-# (at the cost of memory), but for serial downloads on slow
-# processors it may be necessary to reduce the size to
-# avoid serial overruns. zlib appears to bail out if less 
-# than five bytes are available initially so this is the 
-# minimum.
-#
-cdl_option CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 5 to 256
-};
-
-# Support compression of Flash images
-# This CDL indicates whether flash images can
-# be decompressed from gzip/zlib format into RAM.
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-    # ActiveIf constraint:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #     CYGPRI_REDBOOT_ZLIB_FLASH_FORCE == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Include GZIP uncompress command
-# Enable this option to include a 'gunzip' command 
-# to uncompress GZIP compressed data.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_GUNZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Turn on CYGPRI_REDBOOT_ZLIB_FLASH
-# Force CYGPRI_REDBOOT_ZLIB_FLASH to be chosen
-#
-cdl_option CYGPRI_REDBOOT_ZLIB_FLASH_FORCE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-};
-
-# <
-# Include support for xyzModem downloads
-# doc: ref/download-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM {
-    # 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 CYGPKG_REDBOOT_CFLAGS_ADD
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-};
-
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos infra package. These flags are used
-# in addition to the set of global flags.
-#
-cdl_option CYGPKG_REDBOOT_CFLAGS_ADD {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM
-    #     CYGBLD_BUILD_REDBOOT_WITH_XYZMODEM == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-inline
-    # value_source default
-    # Default value: -Wno-inline
-};
-
-# Allow the load-command write into Flash.
-# Write images direct to Flash via the load command.
-# We assume anything which is invalid RAM is flash, hence
-# the requires statement
-#
-cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH {
-    # ActiveIf constraint: CYGPKG_REDBOOT_FLASH
-    #     CYGPKG_REDBOOT_FLASH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-    #     CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS == 1
-    #   --> 1
-};
-
-# Include MS Windows CE support
-# doc: ref/wince.html
-# This option enables MS Windows CE EShell support
-# and Windows CE .BIN images support
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_WINCE_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Include support for MXC USB downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MXCUSB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include support for i.MX USB OTG downloads
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IMXOTG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include POSIX checksum command
-# doc: ref/cksum-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory fill command
-# doc: ref/mfill-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MFILL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory compare command
-# doc: ref/mcmp-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory copy command
-# doc: ref/mcopy-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_MCOPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include memory dump command
-# doc: ref/dump-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_DUMP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include cache command
-# doc: ref/cache-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_CACHES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Include exec command
-# doc: ref/exec-command.html
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
-    # 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_REDBOOT_ARM_LINUX_EXEC
-    #     ActiveIf: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-};
-
-# Include I/O Memory commands 'iopeek' and 'iopoke'
-#
-cdl_option CYGBLD_BUILD_REDBOOT_WITH_IOMEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Granularity of timer/ticks
-# This option controls the granularity of the timers.
-# Faster CPUs can afford higher granularity (lower values)
-# which should give higher network performance since the stack
-# is purely polled.
-#
-cdl_option CYGDBG_REDBOOT_TICK_GRANULARITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 250
-    # value_source default
-    # Default value: 250
-    # Legal values:  10 25 50 100 250 500 1000 
-};
-
-# Redboot Networking
-# This option includes networking support in RedBoot.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING {
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS == current
-    #   --> 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_IO_ETH_DRIVERS_PASS_PACKETS
-    #     DefaultValue:  0 != CYGPKG_REDBOOT_NETWORKING 
-};
-
-# >
-# Print net debug information
-# This option is overriden by the configuration stored 
-# in flash.
-#
-cdl_option CYGDBG_REDBOOT_NET_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support TFTP for download
-# This option enables the use of the TFTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_TFTP_DOWNLOAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support HTTP for download
-# This option enables the use of the HTTP protocol for 
-# download
-#
-cdl_option CYGSEM_REDBOOT_NET_HTTP_DOWNLOAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# Default IP address
-# This IP address is the default used by RedBoot if
-# a BOOTP/DHCP server does not respond. The numbers
-# should be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# >
-# Do not try to use BOOTP
-# By default Redboot tries to use BOOTP to get an IP
-# address. If there's no BOOTP server on your network
-# use this option to avoid to wait until the
-# timeout. This option is overriden by the
-# configuration stored in flash.
-#
-cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Default bootp server
-# This IP address is the default server
-# address used by RedBoot if a BOOTP/DHCP
-# server does not respond. The numbers should
-# be separated by *commas*, and not dots. If
-# an IP address is configured into the Flash
-# configuration, that will be used in
-# preference.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
-    # This option is not active
-    # The parent CYGDAT_REDBOOT_DEFAULT_IP_ADDR is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# Use DHCP to get IP information
-# Use DHCP protocol to obtain pertinent IP addresses, such 
-# as the client, server, gateway, etc.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_DHCP {
-    # 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 CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-    #     Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-};
-
-# Use a gateway for non-local IP traffic
-# Enabling this option will allow the RedBoot networking
-# stack to use a [single] gateway to reach a non-local
-# IP address.  If disabled, RedBoot will only be able to
-# reach nodes on the same subnet.
-#
-cdl_component CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_REDBOOT_NETWORKING_DHCP
-    #     CYGSEM_REDBOOT_NETWORKING_DHCP == 1
-    #   --> 1
-};
-
-# >
-# Default gateway IP address
-# This IP address is the default used by RedBoot
-# if a BOOTP/DHCP server does not respond. The
-# numbers should be separated by *commas*, and
-# not dots. If an IP address is configured into
-# the Flash configuration, that will be used in
-# preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# Default IP address mask
-# This IP address mask is the default used by
-# RedBoot if a BOOTP/DHCP server does not
-# respond. The numbers should be separated by
-# *commas*, and not dots. If an IP address is
-# configured into the Flash configuration, that
-# will be used in preference.
-#
-cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0 0
-};
-
-# <
-# TCP port to listen for incoming connections
-# RedBoot will 'listen' on this port for incoming TCP 
-# connections. This allows outside connections to be made 
-# to the platform, either for GDB or RedBoot commands.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_TCP_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 9000
-    # value_source default
-    # Default value: 9000
-};
-
-# Number of [network] packet buffers
-# RedBoot may need to buffer network data to support
-# various connections.  This option allows control
-# over the number of such buffered packets, and in
-# turn, controls the amount of memory used by RedBoot
-# (which is not available to user applications).
-# Each packet buffer takes up about 1514 bytes.
-# Note: there is little need to make this larger than
-# the default.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_MAX_PKTBUF {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 3 to 8
-};
-
-# DNS support
-# When this option is enabled, RedBoot will be built with
-# support for DNS, allowing use of hostnames on the command
-# line.
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NS_DNS
-    #     CYGPKG_NS_DNS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGPKG_NS_DNS_BUILD
-    #     CYGPKG_NS_DNS_BUILD (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Default DNS IP
-# This option sets the IP of the default DNS. The IP can be
-# changed at runtime as well.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_IP {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-    # ActiveIf constraint: !CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0.0.0.0
-    # value_source default
-    # Default value: 0.0.0.0
-};
-
-# Timeout in DNS lookup
-# This option sets the timeout used when looking up an
-# address via the DNS. Default is 10 seconds.
-#
-cdl_option CYGNUM_REDBOOT_NETWORKING_DNS_TIMEOUT {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Support the use of a domain name
-# This option controls if Redboot supports domain
-# names when performing DNS lookups
-#
-cdl_component CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Default DNS domain
-# This option sets the default DNS domain name.
-# This value will be overwritten by the value in
-# flash or a domain returned by DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DEFAULT_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Get DNS domain from Flash
-# This option enables getting the domain name 
-# from the flash configuration. This can later be 
-# overwritten by a value learnt from DHCP
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-    # ActiveIf constraint: CYGSEM_REDBOOT_FLASH_CONFIG
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use DNS domain from DHCP
-# This option enables the use of the domain name
-# returned by DHCP.
-#
-cdl_option CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# BOOTP/DHCP DNS domain buffer size
-# This options sets the size of the static
-# buffer used by BOOTP/DHCP to store the DNS
-# domain name. The domain name will not be
-# set if the buffer is too small to hold it.
-#
-cdl_option CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is not active
-    # The parent CYGPKG_REDBOOT_NETWORKING_DNS_WITH_DOMAIN is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-};
-
-# <
-# <
-# Default network device driver
-# This is the name of the default network device to use.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_NETWORK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"\""
-    # value_source default
-    # Default value: "\"\""
-};
-
-# Initialize only one net device
-# This option tells RedBoot to stop initializing network
-# devices when it finds the first device which is
-# successfully initialized. The default behavior causes
-# all network devices to be initialized.
-#
-cdl_option CYGSEM_REDBOOT_NETWORK_INIT_ONE_DEVICE {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_NET_DRIVERS > 1 
-    #     CYGHWR_NET_DRIVERS == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Let RedBoot use any I/O channel for its console.
-# If this option is enabled then RedBoot will attempt to use all
-# defined serial I/O channels for its console device.  Once input
-# arrives at one of these channels then the console will use only
-# that port.
-#
-cdl_option CYGPKG_REDBOOT_ANY_CONSOLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# Let RedBoot adjust the baud rate of the serial console.
-# If this option is enabled then RedBoot will support commands 
-# to set and query the baud rate on the selected console.
-#
-cdl_option CYGSEM_REDBOOT_VARIABLE_BAUD_RATE {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_COMM_BAUD_SUPPORT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Run a platform specific startup function.
-# If this option is enabled then RedBoot will execute a platform
-# specific startup function before entering into its command line
-# processing.  This allows the platform to perform any special
-# setups before RedBoot actually starts running.  Note: the entire
-# RedBoot environment will already be initialized at this point.
-#
-cdl_option CYGSEM_REDBOOT_PLF_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Run a platform specific ESA validation function.
-# If this option is enabled then RedBoot will execute a platform
-# specific function to validate an ethernet ESA.  This would be
-# useful if the address must conform to standards set by the
-# hardware manufacturer, etc.
-#
-cdl_option CYGSEM_REDBOOT_PLF_ESA_VALIDATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_ETH_ARM_MXCBOARD_ETH0
-    #     Requires: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-    # option CYGDAT_DEVS_ETH_ARM_TX53KARO_OUI
-    #     ActiveIf: CYGSEM_REDBOOT_PLF_ESA_VALIDATE
-};
-
-# Maximum command line length
-# This option allows control over how long the CLI command line
-# should be.  This space will be allocated statically
-# rather than from RedBoot's stack.
-#
-cdl_option CYGPKG_REDBOOT_MAX_CMD_LINE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # The inferred value should not be edited directly.
-    inferred_value 1024
-    # value_source inferred
-    # Default value: 256
-};
-
-# Command processing idle timeout (ms)
-# This option controls the timeout period before the
-# command processing is considered 'idle'.  Making this
-# number smaller will cause idle processing to take place
-# more often, etc.  The default value of 10ms is a reasonable
-# tradeoff between responsiveness and overhead.
-#
-cdl_option CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# Validate RAM addresses during load
-# This option controls whether or not RedBoot will make
-# sure that memory being used by the "load" command is
-# in fact in user RAM.  Leaving the option enabled makes
-# for a safer environment, but this check may not be valid
-# on all platforms, thus the ability to disable it.  
-# ** Disable this only with great care **
-#
-cdl_option CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS {
-    # 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 CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     Requires: CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS
-};
-
-# Allow RedBoot to support FLASH programming
-# If this option is enabled then RedBoot will provide commands
-# to manage images in FLASH memory.  These images can be loaded
-# into memory for execution or executed in place.
-#
-cdl_component CYGPKG_REDBOOT_FLASH {
-    # ActiveIf constraint: CYGHWR_IO_FLASH_DEVICE
-    #     CYGHWR_IO_FLASH_DEVICE == 1
-    #   --> 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 CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-    # option CYGBLD_REDBOOT_LOAD_INTO_FLASH
-    #     ActiveIf: CYGPKG_REDBOOT_FLASH
-};
-
-# >
-# Byte order used to store info in flash.
-# This option controls the byte ordering used to store
-# the FIS directory info and flash config info.
-#
-cdl_option CYGOPT_REDBOOT_FLASH_BYTEORDER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NATURAL
-    # value_source default
-    # Default value: NATURAL
-    # Legal values: "NATURAL" "MSBFIRST" "LSBFIRST" 
-};
-
-# RedBoot Flash Image System support
-# doc: ref/flash-image-system.html
-# This option enables the Flash Image System commands
-# and support within RedBoot.  If disabled, simple Flash
-# access commands such as "fis write" will still exist.
-# This option would be disabled for targets that need simple
-# FLASH manipulation, but do not have the need or space for
-# complete image management.
-#
-cdl_option CYGOPT_REDBOOT_FIS {
-    # 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_REDBOOT_FIS_CONTENTS
-    #     ActiveIf: CYGOPT_REDBOOT_FIS
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER
-    #     ActiveIf:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-};
-
-# Max number of chunks of free space to manage
-# If this option is defined then "fis free" will
-# rely on the FIS directory to determine what space is
-# free within the FLASH.  This option controls the
-# maximum number of free segment which can be handled
-# (typically this number is small).  If this option is
-# not enabled, the the archaic behaviour of actually
-# scanning the FLASH for erased sectors (unreliable)
-# will be used to determine what's free and what's
-# not.
-#
-cdl_option CYGDAT_REDBOOT_FIS_MAX_FREE_CHUNKS {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 32
-    # value_source default
-    # Default value: 1 32
-};
-
-# Flash Image System default directory contents
-#
-cdl_component CYGPKG_REDBOOT_FIS_CONTENTS {
-    # ActiveIf constraint: CYGOPT_REDBOOT_FIS
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Flash block containing the Directory
-# Which block of flash should hold the directory
-# information. Positive numbers are absolute block
-# numbers.  Negative block numbers count backwards
-# from the last block.  eg 2 means block 2, -2
-# means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK {
-    # Flavor: data
-    # 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 CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# Redundant Flash Image System Directory Support
-# This option enables the use of a redundant FIS
-# directory within RedBoot.  If enabled a flash block
-# will be reserved for a second copy of the fis
-# directory. Doing this allow for power failure safe
-# updates of the directory by the application.
-#
-cdl_component CYGOPT_REDBOOT_REDUNDANT_FIS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-    #     CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG == 1
-    #   --> 0
-};
-
-# >
-# Flash block containing the backup Directory
-# Which block of flash should hold the redundant
-# directory information. Positive numbers are
-# absolute block numbers. Negative block numbers
-# count backwards from the last block. eg 2 means
-# block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_REDUNDANT_FIS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -3
-    # value_source default
-    # Default value: -3
-    # Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-    #     CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK == 0
-    #     CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK == -1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDUNDANT_DIRECTORY_BLOCK !=
-    #                                        CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK 
-};
-
-# <
-# Pseudo-file to describe reserved area
-# If an area of FLASH is reserved, it is informative to
-# have a fis entry describing it.  This option controls
-# creation of such an entry by default in the fis init
-# command.
-#
-cdl_option CYGOPT_REDBOOT_FIS_RESERVED_BASE {
-    # This option is not active
-    # ActiveIf constraint:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# File to describe RedBoot boot image
-# Normally a ROM-startup RedBoot image is first in the
-# FLASH, and the system boots using that image.  This
-# option controls creation of an entry describing it in
-# the fis init command.  It might be disabled if a
-# platform has an immutable boot image of its own, where
-# we use a POST-startup RedBoot instead, which performs
-# less board initialization.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT {
-    # 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 CYGOPT_REDBOOT_FIS_REDBOOT_POST
-    #     DefaultValue: !CYGOPT_REDBOOT_FIS_REDBOOT
-    # option CYGBLD_REDBOOT_MIN_IMAGE_SIZE
-    #     DefaultValue:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-};
-
-# File to describe RedBoot POST-compatible image
-# This option controls creation of an entry describing a
-# POST-startup RedBoot image in the fis init command.
-# Not all platforms support POST-startup.  A platform
-# might have both for testing purposes, where the
-# eventual user would substitute their own POST code for
-# the initial ROM-startup RedBoot, and then jump to the
-# POST-compatible RedBoot immediately following.
-#
-cdl_component CYGOPT_REDBOOT_FIS_REDBOOT_POST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: !CYGOPT_REDBOOT_FIS_REDBOOT
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0
-};
-
-# >
-# Offset of POST image from FLASH start
-# This option specifies the offset for a POST image from
-# the start of FLASH.  If unset, then the fis entry
-# describing the POST image will be placed where
-# convenient.
-#
-cdl_option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_REDBOOT_POST is disabled
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# File to describe RedBoot backup image
-# This option controls creation of an entry describing a
-# backup RedBoot image in the fis init command.
-# Conventionally a RAM-startup RedBoot image is kept
-# under this name for use in updating the ROM-based
-# RedBoot that boots the board.
-#
-cdl_option CYGOPT_REDBOOT_FIS_REDBOOT_BACKUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Include ARM SIB ID in FIS
-# If set, this option will cause the last 5 words of
-# the FIS to include the special ID needed for the
-# flash to be recognized as a reserved area for RedBoot
-# by an ARM BootRom monitor.
-#
-cdl_option CYGOPT_REDBOOT_FIS_DIRECTORY_ARM_SIB_ID {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Size of FIS directory entry
-# The FIS directory is limited to one single flash
-# sector. If your flash has tiny sectors, you may wish
-# to reduce this value in order to get more slots in
-# the FIS directory.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-};
-
-# Number of FIS directory entries
-# The FIS directory normally occupies a single flash
-# sector. Adjusting this value can allow for more than
-# one flash sector to be used, which is useful if your
-# sectors are very small.
-#
-cdl_option CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Maximum RedBoot image size
-# This option controls the maximum length reserved
-# for the RedBoot boot image in the FIS table.
-# This should be a multiple of the flash's erase
-# block size.
-#
-cdl_option CYGBLD_REDBOOT_MIN_IMAGE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00020000
-    # The inferred value should not be edited directly.
-    inferred_value 0x00040000
-    # value_source inferred
-    # Default value:  CYGOPT_REDBOOT_FIS_REDBOOT ? 0x20000 : 0 
-    #     CYGOPT_REDBOOT_FIS_REDBOOT == 1
-    #   --> 0x00020000
-};
-
-# Offset from start of FLASH to RedBoot boot image
-# This option controls where the RedBoot boot image is 
-# located relative to the start of FLASH.
-#
-cdl_option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #   --> 0
-    # Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    #     CYGNUM_REDBOOT_FLASH_RESERVED_BASE == 0
-    #     CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FIS_REDBOOT_POST_OFFSET >=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-    # component CYGPKG_HAL_ARM_TX53_OPTIONS
-    #     Requires:  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET == 0 
-};
-
-# Size of reserved area at start of FLASH
-# This option reserves an area at the start of
-# FLASH where RedBoot will never interfere; it is
-# expected that this area contains
-# (non-RedBoot-based) POST code or some other boot
-# monitor that executes before RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_RESERVED_BASE {
-    # Flavor: data
-    # 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 CYGOPT_REDBOOT_FIS_RESERVED_BASE
-    #     ActiveIf:  0 != CYGNUM_REDBOOT_FLASH_RESERVED_BASE 
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     DefaultValue: CYGNUM_REDBOOT_FLASH_RESERVED_BASE
-    # option CYGBLD_REDBOOT_FLASH_BOOT_OFFSET
-    #     Requires:  CYGNUM_REDBOOT_FLASH_RESERVED_BASE <=  CYGBLD_REDBOOT_FLASH_BOOT_OFFSET 
-};
-
-# <
-# Keep all RedBoot FLASH data blocks locked.
-# When this option is enabled, RedBoot will keep configuration
-# data and the FIS directory blocks implicitly locked.  While
-# this is somewhat safer, it does add overhead during updates.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL {
-    # This option is not active
-    # ActiveIf constraint:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-    #     CYGHWR_IO_FLASH_BLOCK_LOCKING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use CRC checksums on FIS images.
-# When this option is enabled, RedBoot will use CRC checksums
-# when reading and writing flash images.
-#
-cdl_option CYGSEM_REDBOOT_FIS_CRC_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# ARM FLASH drivers support SIB flash block structure
-# This interface is implemented by a flash driver
-# to indicate that it supports the ARM SIB flash
-# block structure
-#
-cdl_interface CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGPKG_HAL_ARM
-    #     CYGPKG_HAL_ARM == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_FLASH_SIB
-    #     ActiveIf: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-};
-
-# Use ARM SIB flash block structure
-# This option is used to interpret ARM Flash System 
-# information blocks.
-#
-cdl_option CYGHWR_REDBOOT_ARM_FLASH_SIB {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED
-    #     CYGINT_REDBOOT_ARM_FLASH_SIB_SUPPORTED == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Keep RedBoot configuration data in FLASH
-# When this option is enabled, RedBoot will keep configuration
-# data in a separate block of FLASH memory.  This data will
-# include such items as the node IP address or startup scripts.
-#
-cdl_component CYGSEM_REDBOOT_FLASH_CONFIG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_IO_FLASH != 0 
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_GATEWAY_IP_ADDR
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "0, 0, 0, 0" 
-    # component CYGDAT_REDBOOT_DEFAULT_IP_ADDR_MASK
-    #     DefaultValue: CYGSEM_REDBOOT_FLASH_CONFIG ? 0 :  "255, 255, 255, 0" 
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_IP
-    #     ActiveIf: !CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGPKG_REDBOOT_NETWORKING_DNS_FCONFIG_DOMAIN
-    #     ActiveIf: CYGSEM_REDBOOT_FLASH_CONFIG
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# >
-# Length of configuration data in FLASH
-# This option is used to control the amount of memory and FLASH
-# to be used for configuration options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value: 4096
-};
-
-# Style of media used for persistent data storage
-# Persistent data storage can either be held in 'norma' FLASH
-# or some other device (represented by the 'EEPROM' choice).
-# The different styles utilize different access methods.
-#
-cdl_option CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value FLASH
-    # value_source default
-    # Default value: FLASH
-    # Legal values:  "FLASH" "EEPROM" 
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG
-    #     ActiveIf:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    # option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK
-    #     DefaultValue:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-};
-
-# Merged config data and FIS directory
-# If this option is set, then the FIS directory and FLASH 
-# configuration database will be stored in the same physical
-# FLASH block.
-#
-cdl_option CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG {
-    # ActiveIf constraint:  CYGOPT_REDBOOT_FIS &&  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGOPT_REDBOOT_FIS == 1
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 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
-    # component CYGOPT_REDBOOT_REDUNDANT_FIS
-    #     Requires:  0 == CYGSEM_REDBOOT_FLASH_COMBINED_FIS_AND_CONFIG 
-};
-
-# Which block of flash to use
-# Which block of flash should hold the configuration 
-# information. Positive numbers are absolute block numbers. 
-# Negative block numbers count backwards from the last block.
-# eg 2 means block 2, -2 means the last but one block.
-#
-cdl_option CYGNUM_REDBOOT_FLASH_CONFIG_BLOCK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -2
-    # value_source default
-    # Default value: -2
-};
-
-# Support simple macros/aliases in FLASH
-# This option is used to allow support for simple text-based
-# macros (aliases).  These aliases are kept in the FLASH
-# configuration data (persistent storage).
-#
-cdl_option CYGSEM_REDBOOT_FLASH_ALIASES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Length of strings in FLASH configuration data
-# This option is used to control the amount of memory
-# and FLASH to be used for string configuration
-# options (persistent storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_STRING_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-};
-
-# Length of configuration script(s) in FLASH
-# This option is used to control the amount of memory and 
-# FLASH to be used for configuration options (persistent 
-# storage).
-#
-cdl_option CYGNUM_REDBOOT_FLASH_SCRIPT_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 512
-    # The inferred value should not be edited directly.
-    inferred_value 2048
-    # value_source inferred
-    # Default value: 512
-};
-
-# Fallback to read-only FLASH configuration
-# This option will cause the configuration information to
-# revert to the readonly information stored in the FLASH.
-# The option only takes effect after 
-# 1) the config_ok flag has been set to be true,
-# indicating that at one time the copy in RAM was valid;
-# and
-# 2) the information in RAM has been verified to be invalid
-#
-cdl_option CYGSEM_REDBOOT_FLASH_CONFIG_READONLY_FALLBACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  (CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == "FLASH") 
-    #     CYGHWR_REDBOOT_FLASH_CONFIG_MEDIA == FLASH
-    #   --> 1
-};
-
-# <
-# Allow RedBoot to support fileio
-# If this option is enabled then RedBoot will provide commands
-# to load files from fileio file systems such as JFFS2.
-#
-cdl_component CYGPKG_REDBOOT_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO (unknown) == 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 CYGNUM_REDBOOT_GETC_BUFFER
-    #     DefaultValue:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-};
-
-# >
-# Include an ls command
-# If this option is enabled a simple ls command will be
-# included in redboot so the contents of a directory
-# can be listed
-#
-cdl_option CYGBLD_REDBOOT_FILEIO_WITH_LS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_FILEIO is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Allow RedBoot to support disks
-# If this option is enabled then RedBoot will provide commands
-# to load disk files.
-#
-cdl_component CYGPKG_REDBOOT_DISK {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# >
-# Include Redboot commands for disk access
-#
-cdl_option CYGSEM_REDBOOT_DISK {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-    #     CYGINT_REDBOOT_DISK_DRIVERS == 0
-    #   --> 0
-};
-
-# Hardware drivers for disk-type devices
-#
-cdl_interface CYGINT_REDBOOT_DISK_DRIVERS {
-    # Implemented by CYGSEM_REDBOOT_DISK_IDE, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_DISK
-    #     DefaultValue:  CYGINT_REDBOOT_DISK_DRIVERS != 0 
-};
-
-# Maximum number of supported disks
-# This option controls the number of disks supported by 
-# RedBoot.
-#
-cdl_option CYGNUM_REDBOOT_MAX_DISKS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# Maximum number of partitions per disk
-# This option controls the maximum number of supported 
-# partitions per disk.
-#
-cdl_option CYGNUM_REDBOOT_MAX_PARTITIONS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-};
-
-# Support IDE disks.
-# When this option is enabled, RedBoot will support IDE disks.
-#
-cdl_component CYGSEM_REDBOOT_DISK_IDE {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-    # ActiveIf constraint:  CYGINT_HAL_PLF_IF_IDE != 0 
-    #     CYGINT_HAL_PLF_IF_IDE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Work with VMware virtual disks
-# This option controls the disk driver behavior at 
-# ide-init
-#
-cdl_option CYGSEM_REDBOOT_DISK_IDE_VMWARE {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_DISK_IDE is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Support Linux second extended filesystems.
-# When this option is enabled, RedBoot will support EXT2 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_EXT2FS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support ISO9660 filesystems.
-# When this option is enabled, RedBoot will support ISO9660 
-# filesystems.
-#
-cdl_component CYGSEM_REDBOOT_DISK_ISO9660 {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_DISK is disabled
-
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Boot scripting
-# doc: ref/persistent-state-flash.html
-# This contains options related to RedBoot's boot script
-# functionality.
-#
-cdl_component CYGPKG_REDBOOT_BOOT_SCRIPT {
-    # There is no associated value.
-};
-
-# >
-# Boot scripting enabled
-# This option controls whether RedBoot boot script
-# functionality is enabled.
-#
-cdl_option CYGFUN_REDBOOT_BOOT_SCRIPT {
-    # ActiveIf constraint:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-    #     CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT == 0
-    #     CYGSEM_REDBOOT_FLASH_CONFIG == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Use default RedBoot boot script
-# If enabled, this option will tell RedBoot to use the 
-# value of this option as a default boot script.
-#
-cdl_option CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 0 0
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_REDBOOT_BOOT_SCRIPT
-    #     ActiveIf:  CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT ||  CYGSEM_REDBOOT_FLASH_CONFIG 
-};
-
-# Resolution (in ms) for script timeout value.
-# This option controls the resolution of the script
-# timeout.  The value is specified in milliseconds
-# (ms), thus to have the script timeout be defined in
-# terms of tenths of seconds, use 100.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # The inferred value should not be edited directly.
-    inferred_value 10
-    # value_source inferred
-    # Default value: 1000
-};
-
-# Script default timeout value
-# This option is used to set the default timeout for startup
-# scripts, when they are enabled.
-#
-cdl_option CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 10
-};
-
-# <
-# Support RTC for time & date functions
-# When this option is enabled, RedBoot will support commands to
-# query and set the real time clock (time and date)
-#
-cdl_option CYGSEM_REDBOOT_RTC {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_IO_WALLCLOCK 
-    #     CYGPKG_IO_WALLCLOCK (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Behave like a ROM monitor
-# Enabling this option will allow RedBoot to provide ROM 
-# monitor-style services to programs which it executes.
-#
-cdl_option CYGPRI_REDBOOT_ROM_MONITOR {
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" ||  CYG_HAL_STARTUP == "ROMRAM" 
-    #     CYG_HAL_STARTUP == ROMRAM
-    #     CYG_HAL_STARTUP == ROMRAM
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 1
-    #   --> 1
-};
-
-# Allow RedBoot to handle GNUPro application 'syscalls'.
-# If this option is enabled then RedBoot will install a
-# syscall handler to support debugging of applications
-# based on GNUPro newlib/bsp.
-#
-cdl_component CYGSEM_REDBOOT_BSP_SYSCALLS {
-    # 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 CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-    # option CYGPKG_HAL_GDB_FILEIO
-    #     ActiveIf: CYGSEM_REDBOOT_BSP_SYSCALLS
-};
-
-# >
-# Support additional syscalls for 'gprof' profiling
-# Support additional syscalls to support a periodic callback
-# function for histogram-style profiling, and an enquire/set
-# of the tick rate.
-# The application must use the GNUPro newlib facilities
-# to set this up.
-#
-cdl_option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-    # ActiveIf constraint:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-    #     CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does the HAL support 'gprof' profiling?
-#
-cdl_interface CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT {
-    # Implemented by CYGOPT_HAL_ARM_SYSCALL_GPROF_SUPPORT, inactive, enabled
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_BSP_SYSCALLS_GPROF
-    #     ActiveIf:  0 < CYGINT_REDBOOT_BSP_SYSCALLS_GPROF_SUPPORT 
-};
-
-# Do not raise SIGTRAP when program exits
-# For some (single shot) newlib based programs,
-# exiting and returning a termination status may be
-# the normal expected behavior.
-#
-cdl_option CYGOPT_REDBOOT_BSP_SYSCALLS_EXIT_WITHOUT_TRAP {
-    # This option is not active
-    # The parent CYGSEM_REDBOOT_BSP_SYSCALLS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Use a common buffer for Zlib and FIS
-# Use a common memory buffer for both the zlib workspace
-# and FIS directory operations. This can save a substantial
-# amount of RAM, especially when flash sectors are large.
-#
-cdl_component CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER {
-    # ActiveIf constraint:  CYGBLD_BUILD_REDBOOT_WITH_ZLIB &&  CYGOPT_REDBOOT_FIS 
-    #     CYGBLD_BUILD_REDBOOT_WITH_ZLIB == 1
-    #     CYGOPT_REDBOOT_FIS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of Zlib/FIS common buffer
-# Size of common buffer to allocate. Must be at least the
-# size of one flash sector.
-#
-cdl_option CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000C000
-    # value_source default
-    # Default value: 0x0000C000
-    # Legal values: 0x4000 to 0x80000000
-};
-
-# <
-# Buffer size in getc when loading images
-# When loading images a buffer is used between redboot and the
-# underlying storage medium, eg a filesystem, or a socket etc.
-# The size of this buffer can have a big impart on load speed.
-#
-cdl_option CYGNUM_REDBOOT_GETC_BUFFER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT_FILEIO ? 4096 : 256 
-    #     CYGPKG_REDBOOT_FILEIO == 0
-    #   --> 256
-};
-
-# <
-# Redboot for ARM options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_ARM_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Provide the exec command in RedBoot
-# This option contains requirements for booting linux
-# from RedBoot. The component is enabled/disabled from
-# RedBoots CDL.
-#
-cdl_component CYGPKG_REDBOOT_ARM_LINUX_EXEC {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Enable -x switch for exec command.
-# This option allows bi-endian platforms to launch kernels
-# built for an endianess different than the RedBoot endianess
-#
-cdl_option CYGHWR_REDBOOT_LINUX_EXEC_X_SWITCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x70108000
-    # value_source default
-    # Default value: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 0x70108000
-};
-
-# Default physical base address of linux kernel
-# This is the physical address of the base of the 
-# Linux kernel image. This option gets set by the 
-# platform CDL.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00008000
-    # The inferred value should not be edited directly.
-    inferred_value 0x70108000
-    # value_source inferred
-    # Default value: 0x00008000
-
-    # The following properties are affected by this value
-    # option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS
-    #     DefaultValue: CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT
-    # component CYGPKG_REDBOOT_HAL_TX53_OPTIONS
-    #     Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-};
-
-# Base address of linux kernel parameter tags
-# This is the base address of the area of memory used to
-# pass parameters to the Linux kernel. This should be chosen
-# to avoid overlap with the kernel and any ramdisk image.
-#
-cdl_option CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000100
-    # value_source default
-    # Default value: 0x00000100
-};
-
-# <
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# Build Redboot ROM binary image
-# This option enables the conversion of the Redboot ELF
-# image to a binary image suitable for ROM programming.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN {
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Redboot HAL variant options
-#
-cdl_component CYGPKG_REDBOOT_HAL_TX53_OPTIONS {
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT == current
-    #   --> 1
-
-    # There is no associated value.
-    # Requires:  CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000 
-    #     CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS_DEFAULT == 0x70108000
-    #   --> 1
-};
-
-# <
-# ISO C and POSIX infrastructure
-# eCos supports implementations of ISO C libraries and POSIX
-# implementations. This package provides infrastructure used by
-# all such implementations.
-#
-cdl_package CYGPKG_ISOINFRA {
-    # 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
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_COMPRESS_ZLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-};
-
-# >
-# Startup and termination
-#
-cdl_component CYGPKG_ISO_STARTUP {
-    # There is no associated value.
-};
-
-# >
-# main() startup implementations
-# Implementations of this interface arrange for a user-supplied
-# main() to be called in an ISO compatible environment.
-#
-cdl_interface CYGINT_ISO_MAIN_STARTUP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-};
-
-# <
-# ctype.h functions
-#
-cdl_component CYGPKG_ISO_CTYPE_H {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of ctype functions
-#
-cdl_interface CYGINT_ISO_CTYPE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_CTYPE 
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_CTYPE
-    #     Requires:  1 >= CYGINT_ISO_CTYPE 
-    # package CYGPKG_HAL_ARM_TX53KARO
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-};
-
-# Ctype implementation header
-#
-cdl_option CYGBLD_ISO_CTYPE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/i18n/ctype.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_I18N_NEWLIB_CTYPE
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/newlibctype.h>" 
-    # option CYGIMP_LIBC_I18N_CTYPE_INLINES
-    #     Requires:  CYGBLD_ISO_CTYPE_HEADER ==  "<cyg/libc/i18n/ctype.inl>" 
-};
-
-# <
-# Error handling
-#
-cdl_component CYGPKG_ISO_ERRNO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of error codes
-#
-cdl_interface CYGINT_ISO_ERRNO_CODES {
-    # Implemented by CYGPKG_ERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO_CODES
-    #     Requires:  1 >= CYGINT_ISO_ERRNO_CODES 
-};
-
-# Error codes implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/codes.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_ERROR
-    #     Requires:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-};
-
-# Number of implementations of errno variable
-#
-cdl_interface CYGINT_ISO_ERRNO {
-    # Implemented by CYGPKG_ERROR_ERRNO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ERRNO 
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ERRNO
-    #     Requires:  1 >= CYGINT_ISO_ERRNO 
-};
-
-# errno variable implementation header
-#
-cdl_option CYGBLD_ISO_ERRNO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/errno.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_ERROR_ERRNO
-    #     Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-};
-
-# <
-# Locale-related functions
-#
-cdl_component CYGPKG_ISO_LOCALE {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of locale functions
-#
-cdl_interface CYGINT_ISO_LOCALE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_LOCALE 
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_LOCALE
-    #     Requires:  1 >= CYGINT_ISO_LOCALE 
-};
-
-# Locale implementation header
-#
-cdl_option CYGBLD_ISO_LOCALE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard I/O-related functionality
-#
-cdl_component CYGPKG_ISO_STDIO {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of stdio file types
-#
-cdl_interface CYGINT_ISO_STDIO_FILETYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-};
-
-# Stdio file types implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-};
-
-# Stdio standard streams implementation header
-# This header file must define stdin, stdout
-# and stderr.
-#
-cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEOPS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-};
-
-# Stdio file operations implementation header
-# This header controls the file system operations on a file
-# such as remove(), rename(), tmpfile(), tmpnam() and associated
-# constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEOPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-};
-
-# Stdio file access implementation header
-# This header controls the file access operations
-# such as fclose(), fflush(), fopen(), freopen(), setbuf(),
-# setvbuf(), and associated constants.
-#
-cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-};
-
-# Stdio formatted I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-};
-
-# Stdio character I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-};
-
-# Stdio direct I/O implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STDIO_FILEPOS
-};
-
-# Stdio file positioning implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_FILEPOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-};
-
-# Stdio error handling implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_POSIX_FDFUNCS
-    #     Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-};
-
-# POSIX fd-related function implementation header
-#
-cdl_option CYGBLD_ISO_STDIO_POSIX_FDFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Standard general utility functions
-#
-cdl_component CYGPKG_ISO_STDLIB {
-    # There is no associated value.
-};
-
-# >
-# String conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV 
-};
-
-# String conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/atox.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ATOX
-    #     Requires:  CYGBLD_ISO_STDLIB_STRCONV_HEADER ==  "<cyg/libc/stdlib/atox.inl>" 
-};
-
-# String to FP conversion function implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_STRCONV_FLOAT {
-    # Implemented by CYGFUN_LIBC_strtod, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-};
-
-# String to FP conversion function implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_STRCONV_FLOAT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Random number generator implementations
-#
-cdl_interface CYGINT_ISO_RAND {
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLEST, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_SIMPLE1, active, disabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_RAND 
-    #     CYGINT_ISO_RAND == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_RAND
-    #     Requires:  1 >= CYGINT_ISO_RAND 
-};
-
-# Random number generator implementation header
-#
-cdl_option CYGBLD_ISO_RAND_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Malloc implementations
-#
-cdl_interface CYGINT_ISO_MALLOC {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLOC
-    #     Requires:  1 >= CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-};
-
-# Malloc implementation header
-#
-cdl_option CYGBLD_ISO_MALLOC_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Mallinfo() implementations
-#
-cdl_interface CYGINT_ISO_MALLINFO {
-    # Implemented by CYGPKG_MEMALLOC_MALLOC_ALLOCATORS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MALLINFO 
-    #     CYGINT_ISO_MALLINFO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MALLINFO
-    #     Requires:  1 >= CYGINT_ISO_MALLINFO 
-};
-
-# Mallinfo() implementation header
-#
-cdl_option CYGBLD_ISO_MALLINFO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program exit functionality implementations
-#
-cdl_interface CYGINT_ISO_EXIT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_EXIT
-    #     Requires:  1 >= CYGINT_ISO_EXIT 
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     Requires: !CYGINT_ISO_EXIT
-    # option CYGFUN_INFRA_DUMMY_ABORT
-    #     DefaultValue:  CYGINT_ISO_EXIT == 0 
-};
-
-# Program exit functionality implementation header
-#
-cdl_option CYGBLD_ISO_EXIT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Program environment implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-    #     CYGINT_ISO_STDLIB_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_ENVIRON 
-};
-
-# Program environment implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ENVIRON_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# system() implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_SYSTEM {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-    #     CYGINT_ISO_STDLIB_SYSTEM == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_SYSTEM
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_SYSTEM 
-};
-
-# system() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_SYSTEM_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# bsearch() implementations
-#
-cdl_interface CYGINT_ISO_BSEARCH {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_BSEARCH 
-    #     CYGINT_ISO_BSEARCH == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSEARCH
-    #     Requires:  1 >= CYGINT_ISO_BSEARCH 
-};
-
-# bsearch() implementation header
-#
-cdl_option CYGBLD_ISO_BSEARCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# qsort() implementations
-#
-cdl_interface CYGINT_ISO_QSORT {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_QSORT 
-    #     CYGINT_ISO_STDLIB_QSORT (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# qsort() implementation header
-#
-cdl_option CYGBLD_ISO_QSORT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# abs()/labs() implementations
-#
-cdl_interface CYGINT_ISO_ABS {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_ABS 
-    #     CYGINT_ISO_STDLIB_ABS (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# abs()/labs() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/abs.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_ABS
-    #     Requires:  CYGBLD_ISO_STDLIB_ABS_HEADER ==  "<cyg/libc/stdlib/abs.inl>" 
-};
-
-# div()/ldiv() implementations
-#
-cdl_interface CYGINT_ISO_DIV {
-    # Implemented by CYGPKG_LIBC_STDLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_DIV 
-    #     CYGINT_ISO_STDLIB_DIV (unknown) == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# div()/ldiv() implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdlib/div.inl>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_STDLIB_INLINE_DIV
-    #     Requires:  CYGBLD_ISO_STDLIB_DIV_HEADER ==  "<cyg/libc/stdlib/div.inl>" 
-};
-
-# Header defining the implementation's MB_CUR_MAX
-#
-cdl_option CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBC_I18N_MB_REQUIRED
-    #     Requires:  CYGBLD_ISO_STDLIB_MB_CUR_MAX_HEADER ==  "<cyg/libc/i18n/mb.h>" 
-};
-
-# Multibyte character implementations
-#
-cdl_interface CYGINT_ISO_STDLIB_MULTIBYTE {
-    # Implemented by CYGPKG_LIBC_I18N, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-    #     CYGINT_ISO_STDLIB_MULTIBYTE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_MULTIBYTE
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_MULTIBYTE 
-};
-
-# Multibyte character implementation header
-#
-cdl_option CYGBLD_ISO_STDLIB_MULTIBYTE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# String functions
-#
-cdl_component CYGPKG_ISO_STRING {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of strerror() function
-#
-cdl_interface CYGINT_ISO_STRERROR {
-    # Implemented by CYGPKG_ERROR_STRERROR, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRERROR 
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRERROR
-    #     Requires:  1 >= CYGINT_ISO_STRERROR 
-};
-
-# strerror() implementation header
-#
-cdl_option CYGBLD_ISO_STRERROR_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/error/strerror.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_ERROR_STRERROR
-    #     Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-};
-
-# memcpy() implementation header
-#
-cdl_option CYGBLD_ISO_MEMCPY_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# memset() implementation header
-#
-cdl_option CYGBLD_ISO_MEMSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of strtok_r() function
-#
-cdl_interface CYGINT_ISO_STRTOK_R {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRTOK_R 
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRTOK_R
-    #     Requires:  1 >= CYGINT_ISO_STRTOK_R 
-};
-
-# strtok_r() implementation header
-#
-cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRTOK_R_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of locale-specific string  functions
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_interface CYGINT_ISO_STRING_LOCALE_FUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_LOCALE_FUNCS 
-};
-
-# Locale-specific string functions' implementation  header
-# This covers locale-dependent string functions such as strcoll()
-# and strxfrm().
-#
-cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of BSD string functions
-#
-cdl_interface CYGINT_ISO_STRING_BSD_FUNCS {
-    # Implemented by CYGFUN_LIBC_STRING_BSD_FUNCS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-};
-
-# BSD string functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/bsdstring.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires:  CYGBLD_ISO_STRING_BSD_FUNCS_HEADER ==  "<cyg/libc/string/bsdstring.h>" 
-};
-
-# Number of implementations of other mem*() functions
-#
-cdl_interface CYGINT_ISO_STRING_MEMFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_MEMFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_MEMFUNCS 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_STAND_ALONE
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-};
-
-# Other mem*() functions' implementation header
-#
-cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_MEMFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# Number of implementations of other ISO C str*()  functions
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_interface CYGINT_ISO_STRING_STRFUNCS {
-    # Implemented by CYGPKG_LIBC_STRING, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_STRFUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_STRFUNCS 
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     Requires: !CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_INFRA_DUMMY_STRLEN
-    #     DefaultValue:  CYGINT_ISO_STRING_STRFUNCS == 0 
-    # component CYGBLD_BUILD_REDBOOT
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_IO_ETH_DRIVERS_NET
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # option CYGFUN_COMPRESS_ZLIB_GZIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FLASH
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-};
-
-# Other ISO C str*() functions' implementation  header
-# This covers the other str*() functions defined by ISO C.
-#
-cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/string/string.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STRING
-    #     Requires:  CYGBLD_ISO_STRING_STRFUNCS_HEADER ==  "<cyg/libc/string/string.h>" 
-};
-
-# <
-# Clock and time functionality
-#
-cdl_component CYGPKG_ISO_TIME {
-    # There is no associated value.
-};
-
-# >
-# time_t implementation header
-#
-cdl_option CYGBLD_ISO_TIME_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# clock_t implementation header
-#
-cdl_option CYGBLD_ISO_CLOCK_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# struct timeval implementation header
-#
-cdl_option CYGBLD_ISO_STRUCTTIMEVAL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-    #     CYGINT_ISO_POSIX_TIMER_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_TYPES 
-};
-
-# POSIX timer types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCK_TYPES
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-};
-
-# POSIX clock types implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-};
-
-# ISO C time types implementation header
-#
-cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-    #     CYGINT_ISO_POSIX_TIMERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMERS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMERS 
-};
-
-# POSIX timer implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_CLOCK_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-};
-
-# ISO C clock functions' implementation header
-#
-cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of implementations of tzset() function
-#
-cdl_interface CYGINT_ISO_TZSET {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_TZSET 
-    #     CYGINT_ISO_TZSET == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TZSET
-    #     Requires:  1 >= CYGINT_ISO_TZSET 
-};
-
-# tzset() implementation header
-#
-cdl_option CYGBLD_ISO_TZSET_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Signal functionality
-#
-cdl_component CYGPKG_ISO_SIGNAL {
-    # There is no associated value.
-};
-
-# >
-# Number of implementations of signal numbers
-#
-cdl_interface CYGINT_ISO_SIGNAL_NUMBERS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-};
-
-# Signal numbering implementation header
-# This header provides the mapping of signal
-# names (e.g. SIGBUS) to numbers.
-#
-cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-};
-
-# Signals implementation header
-#
-cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX real time signals feature test macro
-# This defines the POSIX feature test macro
-# that indicates that the POSIX real time signals
-# are present.
-#
-cdl_interface CYGINT_POSIX_REALTIME_SIGNALS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-    #     CYGINT_POSIX_REALTIME_SIGNALS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_POSIX_REALTIME_SIGNALS
-    #     Requires:  1 >= CYGINT_POSIX_REALTIME_SIGNALS 
-};
-
-# <
-# Non-local jumps functionality
-#
-cdl_component CYGPKG_ISO_SETJMP {
-    # There is no associated value.
-};
-
-# >
-# setjmp() / longjmp() implementations
-#
-cdl_interface CYGINT_ISO_SETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SETJMP
-    #     Requires:  1 >= CYGINT_ISO_SETJMP 
-};
-
-# setjmp() / longjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-    #     CYGINT_ISO_SIGSETJMP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGSETJMP
-    #     Requires:  1 >= CYGINT_ISO_SIGSETJMP 
-};
-
-# sigsetjmp() / siglongjmp() implementation header
-#
-cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Assertions implementation header
-#
-cdl_option CYGBLD_ISO_ASSERT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file control
-# This covers the POSIX file control definitions,
-# normally found in <fcntl.h>
-#
-cdl_component CYGPKG_ISO_POSIX_FCNTL {
-    # There is no associated value.
-};
-
-# >
-# POSIX open flags implementation header
-#
-cdl_option CYGBLD_ISO_OFLAG_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX fcntl() implementations
-#
-cdl_interface CYGINT_ISO_FCNTL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_FCNTL
-    #     Requires:  1 >= CYGINT_ISO_FCNTL 
-};
-
-# POSIX fcntl() implementation header
-#
-cdl_option CYGBLD_ISO_FCNTL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX file open implementations
-#
-cdl_interface CYGINT_ISO_OPEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_OPEN
-    #     Requires:  1 >= CYGINT_ISO_OPEN 
-};
-
-# POSIX file open implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# <sys/stat.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_STAT_DEFS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX directory reading implementation
-#
-cdl_interface CYGINT_ISO_DIRENT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DIRENT
-    #     Requires:  1 >= CYGINT_ISO_DIRENT 
-};
-
-# <dirent.h> definitions implementation header
-#
-cdl_option CYGBLD_ISO_DIRENT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX <sys/types.h> contents
-# This covers the types required by POSIX to be in
-# <sys/types.h>
-#
-cdl_component CYGPKG_ISO_POSIX_TYPES {
-    # There is no associated value.
-};
-
-# >
-# POSIX thread types implementations
-#
-cdl_interface CYGINT_ISO_PTHREADTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREADTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    # interface CYGINT_ISO_PMUTEXTYPES
-    #     Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-};
-
-# POSIX thread types implementation header
-#
-cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 0
-    #   --> 1
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# ssize_t implementation header
-#
-cdl_option CYGBLD_ISO_SSIZE_T_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Filesystem types implementation header
-#
-cdl_option CYGBLD_ISO_FSTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# gid_t, pid_t, uid_t implementation header
-#
-cdl_option CYGBLD_ISO_SCHEDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Non-POSIX <sys/types.h> contents
-# This covers the extra types required by non-POSIX
-# packages to be in <sys/types.h>. These would normally
-# only be visible if _POSIX_SOURCE is not defined.
-#
-cdl_component CYGPKG_ISO_EXTRA_TYPES {
-    # There is no associated value.
-};
-
-# >
-# BSD compatible types
-#
-cdl_interface CYGINT_ISO_BSDTYPES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_BSDTYPES 
-    #     CYGINT_ISO_BSDTYPES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_BSDTYPES
-    #     Requires:  1 >= CYGINT_ISO_BSDTYPES 
-};
-
-# BSD types header
-#
-cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Utsname structure
-#
-cdl_component CYGPKG_ISO_UTSNAME {
-    # There is no associated value.
-};
-
-# >
-# Utsname header
-#
-cdl_option CYGBLD_ISO_UTSNAME_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SCHED_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-};
-
-# POSIX scheduler implementation header
-#
-cdl_option CYGBLD_ISO_SCHED_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX semaphores
-#
-cdl_component CYGPKG_ISO_SEMAPHORES {
-    # There is no associated value.
-};
-
-# >
-# POSIX semaphore implementations
-#
-cdl_interface CYGINT_ISO_SEMAPHORES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SEMAPHORES
-    #     Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-};
-
-# POSIX semaphore implementation header
-#
-cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MQUEUE
-    #     Requires:  1 >= CYGINT_ISO_MQUEUE 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-    # option CYGNUM_ISO_MQUEUE_PRIO_MAX
-    #     ActiveIf: CYGINT_ISO_MQUEUE
-};
-
-# Implementation header
-#
-cdl_option CYGBLD_ISO_MQUEUE_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Maximum number of open message queues
-#
-cdl_option CYGNUM_ISO_MQUEUE_OPEN_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX (unknown) == 0
-    #   --> 0 0
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 65535
-    # value_source default
-    # Default value: 1 65535
-};
-
-# <
-# POSIX threads
-#
-cdl_component CYGPKG_ISO_PTHREAD {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_IMPL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_IMPL
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-};
-
-# POSIX pthread implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_LIMITS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-};
-
-# POSIX pthread limits implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# LINK_MAX implementation header
-#
-cdl_option CYGBLD_ISO_LINK_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# NAME_MAX implementation header
-#
-cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# PATH_MAX implementation header
-#
-cdl_option CYGBLD_ISO_PATH_MAX_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# POSIX termios
-#
-cdl_component CYGPKG_ISO_TERMIOS {
-    # There is no associated value.
-};
-
-# >
-# POSIX termios implementations
-#
-cdl_interface CYGINT_ISO_TERMIOS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_TERMIOS
-    #     Requires:  1 >= CYGINT_ISO_TERMIOS 
-};
-
-# POSIX termios implementation header
-#
-cdl_option CYGBLD_ISO_TERMIOS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# Dynamic load API
-#
-cdl_component CYGPKG_ISO_DLFCN {
-    # There is no associated value.
-};
-
-# >
-# Dynamic load implementations
-#
-cdl_interface CYGINT_ISO_DLFCN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires:  1 >= CYGINT_ISO_DLFCN 
-    #     CYGINT_ISO_DLFCN == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DLFCN
-    #     Requires:  1 >= CYGINT_ISO_DLFCN 
-};
-
-# Dynamic load implementation header
-#
-cdl_option CYGBLD_ISO_DLFCN_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# UNIX standard functions
-#
-cdl_component CYGPKG_ISO_UNISTD {
-    # There is no associated value.
-};
-
-# >
-# POSIX timer operations implementations
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_OPS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-    #     CYGINT_ISO_POSIX_TIMER_OPS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_TIMER_OPS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_TIMER_OPS 
-};
-
-# POSIX timer operations implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_TIMER_OPS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# POSIX sleep() implementations
-#
-cdl_interface CYGINT_ISO_POSIX_SLEEP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_SLEEP
-    #     Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-};
-
-# POSIX sleep() implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_SLEEP_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# select()/poll() functions
-#
-cdl_component CYGPKG_ISO_SELECT {
-    # There is no associated value.
-};
-
-# >
-# select() implementations
-#
-cdl_interface CYGINT_ISO_SELECT {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SELECT
-    #     Requires:  1 >= CYGINT_ISO_SELECT 
-};
-
-# select() implementation header
-#
-cdl_option CYGBLD_ISO_SELECT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# poll() implementations
-#
-cdl_interface CYGINT_ISO_POLL {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires:  1 >= CYGINT_ISO_POLL 
-    #     CYGINT_ISO_POLL == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POLL
-    #     Requires:  1 >= CYGINT_ISO_POLL 
-};
-
-# poll() implementation header
-#
-cdl_option CYGBLD_ISO_POLL_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# NetDB utility functions
-#
-cdl_component CYGPKG_ISO_NETDB {
-    # There is no associated value.
-};
-
-# >
-# DNS implementations
-#
-cdl_interface CYGINT_ISO_DNS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_DNS 
-    #     CYGINT_ISO_DNS == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_DNS
-    #     Requires:  1 >= CYGINT_ISO_DNS 
-};
-
-# DNS implementation header
-#
-cdl_option CYGBLD_ISO_DNS_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Protocol network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_PROTO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-    #     CYGINT_ISO_NETDB_PROTO == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_PROTO
-    #     Requires:  1 >= CYGINT_ISO_NETDB_PROTO 
-};
-
-# Protocol network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Services network database implementations
-#
-cdl_interface CYGINT_ISO_NETDB_SERV {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-    # Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-    #     CYGINT_ISO_NETDB_SERV == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_NETDB_SERV
-    #     Requires:  1 >= CYGINT_ISO_NETDB_SERV 
-};
-
-# Services network database implementation header
-#
-cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# <
-# 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_ISOINFRA_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the ISO C and POSIX infrastructure package.
-# These flags are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_ISOINFRA_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 ISO C and POSIX infrastructure package.
-# These flags are removed from the set of global flags
-# if present.
-#
-cdl_option CYGPKG_ISOINFRA_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# Compute CRCs
-# doc: ref/services-crc.html
-# This package provides support for CRC calculation. Currently 
-# this is the POSIX 1003 defined CRC algorithm, a 32 CRC by 
-# Gary S. Brown, and a 16 bit CRC.
-#
-cdl_package CYGPKG_CRC {
-    # 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_COMPRESS_ZLIB
-    #     Requires: CYGPKG_CRC
-};
-
-# >
-# POSIX CRC tests
-#
-cdl_option CYGPKG_CRC_TESTS {
-    # Calculated value:  "tests/crc_test" 
-    # Flavor: data
-    # Current_value: tests/crc_test
-};
-
-# <
-# Zlib compress and decompress package
-# This package provides support for compression and
-# decompression.
-#
-cdl_package CYGPKG_COMPRESS_ZLIB {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_CRC
-    #     CYGPKG_CRC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_BUILD_REDBOOT_WITH_ZLIB
-    #     ActiveIf: CYGPKG_COMPRESS_ZLIB
-};
-
-# >
-# Override memory allocation routines.
-#
-cdl_interface CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC {
-    # Implemented by CYGBLD_BUILD_REDBOOT_WITH_ZLIB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     ActiveIf:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-};
-
-# Should deflate() produce 'gzip' compatible output?
-# If this option is set then the output of calling deflate()
-# will be wrapped up as a 'gzip' compatible file.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_DEFLATE_MAKES_GZIP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Does this library need malloc?
-# This pseudo-option will force the memalloc library to be
-# required iff the application does not provide it's own
-# infrastructure.
-#
-cdl_option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 0 
-    #     CYGINT_COMPRESS_ZLIB_LOCAL_ALLOC == 1
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-};
-
-# Include stdio-like utility functions
-# This option enables the stdio-like zlib utility functions
-# (gzread/gzwrite and friends) provided in gzio.c.
-#
-cdl_option CYGFUN_COMPRESS_ZLIB_GZIO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGPKG_LIBC_STDIO_OPEN ? 1 : 0 
-    #     CYGPKG_LIBC_STDIO_OPEN (unknown) == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 0
-    #   --> 0
-};
-
-# Zlib compress and decompress package 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_COMPRESS_ZLIB_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_COMPRESS_ZLIB_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D__ECOS__ -DNO_ERRNO_H"
-    # value_source default
-    # Default value: "-D__ECOS__ -DNO_ERRNO_H"
-};
-
-# 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_COMPRESS_ZLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wstrict-prototypes
-    # value_source default
-    # Default value: -Wstrict-prototypes
-};
-
-# 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_COMPRESS_ZLIB_LDFLAGS_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_LDFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# zlib tests
-#
-cdl_option CYGPKG_COMPRESS_ZLIB_TESTS {
-    # Calculated value:  "tests/zlib1.c tests/zlib2.c" 
-    # Flavor: data
-    # Current_value: tests/zlib1.c tests/zlib2.c
-};
-
-# <
-# FLASH device drivers
-# doc: ref/flash.html
-# This option enables drivers for basic I/O services on
-# flash devices.
-#
-cdl_package CYGPKG_IO_FLASH {
-    # 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_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_REDBOOT_FLASH_CONFIG
-    #     DefaultValue:  CYGPKG_IO_FLASH != 0 
-    # package CYGPKG_DEVS_FLASH_ONMXC
-    #     ActiveIf: CYGPKG_IO_FLASH
-};
-
-# >
-# Hardware FLASH device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE {
-    # Implemented by CYGPKG_DEVS_FLASH_ONMXC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_REDBOOT_FLASH
-    #     ActiveIf: CYGHWR_IO_FLASH_DEVICE
-};
-
-# Hardware FLASH device drivers are not in RAM
-# Use of this interface is deprecated.
-# Drivers should make sure that the functions are
-# linked to RAM by putting them in .2ram sections.
-#
-cdl_interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-    # Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-    #     Requires: !CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM
-};
-
-# Hardware can support block locking
-# This option will be enabled by devices which can support
-# locking (write-protection) of individual blocks.
-#
-cdl_interface CYGHWR_IO_FLASH_BLOCK_LOCKING {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL
-    #     ActiveIf:  CYGHWR_IO_FLASH_BLOCK_LOCKING != 0 
-};
-
-# Hardware cannot support direct access to FLASH memory
-# This option will be asserted by devices which cannot support
-# direct access to the FLASH memory contents (e.g. EEPROM or NAND
-# devices).  In these cases, the driver must provide an appropriate
-# hardware access function.
-#
-cdl_option CYGSEM_IO_FLASH_READ_INDIRECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-    #     CYGSEM_IO_FLASH_VERIFY_PROGRAM == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_REDBOOT_ZLIB_FLASH
-    #     ActiveIf:  (!CYGSEM_IO_FLASH_READ_INDIRECT) || CYGPRI_REDBOOT_ZLIB_FLASH_FORCE 
-    # component CYGHWR_DEVS_FLASH_MMC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_ESDHC
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MMC_SD
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_NAND
-    #     Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-};
-
-# Display status messages during flash operations
-# Selecting this option will cause the drivers to print status
-# messages as various flash operations are undertaken.
-#
-cdl_option CYGSEM_IO_FLASH_CHATTER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Verify data programmed to flash
-# Selecting this option will cause verification of data
-# programmed to flash.
-#
-cdl_option CYGSEM_IO_FLASH_VERIFY_PROGRAM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_IO_FLASH_READ_INDIRECT
-    #     Requires:  !CYGSEM_IO_FLASH_VERIFY_PROGRAM 
-};
-
-# Platform has flash soft DIP switch write-protect
-# Selecting this option will cause the state of a hardware jumper or
-# dipswitch to be read by software to determine whether the flash is
-# write-protected or not.
-#
-cdl_option CYGSEM_IO_FLASH_SOFT_WRITE_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instantiate in I/O block device API
-# Provides a block device accessible using the standard I/O
-# API ( cyg_io_read() etc. )
-#
-cdl_component CYGPKG_IO_FLASH_BLOCK_DEVICE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of flash device 1 block device
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 {
-    # This option is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is not active
-    # The parent CYGPKG_IO_FLASH_BLOCK_DEVICE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/flash1\""
-    # value_source default
-    # Default value: "\"/dev/flash1\""
-};
-
-# >
-#
-cdl_interface CYGINT_IO_FLASH_BLOCK_CFG_1 {
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1, inactive, enabled
-    # Implemented by CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1, inactive, disabled
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-    # Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     CYGINT_IO_FLASH_BLOCK_CFG_1 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # interface CYGINT_IO_FLASH_BLOCK_CFG_1
-    #     Requires: 1 == CYGINT_IO_FLASH_BLOCK_CFG_1
-};
-
-# Static configuration
-# This configures the flash device 1 block device
-# with static base and length
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash which this
-# block device corresponds to.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_OFFSET_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash given over
-# to this block device.
-#
-cdl_option CYGNUM_IO_FLASH_BLOCK_LENGTH_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_STATIC_1 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Configuration from FIS
-# This configures the flash device 1 block device
-# from Redboot FIS
-#
-cdl_component CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 {
-    # This option is not active
-    # The parent CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Name of FIS entry
-#
-cdl_component CYGDAT_IO_FLASH_BLOCK_FIS_NAME_1 {
-    # This option is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is not active
-    # The parent CYGNUM_IO_FLASH_BLOCK_CFG_FIS_1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"jffs2\""
-    # value_source default
-    # Default value: "\"jffs2\""
-};
-
-# <
-# <
-# <
-# Flash 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_FLASH_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the flash device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_FLASH_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 flash device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FLASH_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Flash device driver tests
-# This option specifies the set of tests for the flash device drivers.
-#
-cdl_component CYGPKG_IO_FLASH_TESTS {
-    # Calculated value:  "tests/flash1" 
-    # Flavor: data
-    # Current_value: tests/flash1
-};
-
-# >
-# Start offset from flash base
-# This gives the offset from the base of flash where tests
-# can be run.  It is important to set this correctly, as an
-# incorrect value could allow the tests to write over critical
-# portions of the FLASH device and possibly render the target
-# board totally non-functional.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# Length
-# This gives the length of the region of flash used for testing.
-#
-cdl_option CYGNUM_IO_FLASH_TEST_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# <
-# Support FLASH memory on Freescale MXC platforms
-#
-cdl_package CYGPKG_DEVS_FLASH_ONMXC {
-    # 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_FLASH
-    #     CYGPKG_IO_FLASH == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# MXC platform MMC card support
-# When this option is enabled, it indicates MMC card is
-# supported on the MXC platforms
-#
-cdl_component CYGHWR_DEVS_FLASH_MMC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# >
-# MXC platform MMC card for newer SDHC controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_ESDHC {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX37 || CYGPKG_HAL_ARM_MX35 || 
-    #                            CYGPKG_HAL_ARM_MX25 ||  CYGPKG_HAL_ARM_MX51 ||  CYGPKG_HAL_ARM_MX53 
-    #     CYGPKG_HAL_ARM_MX37 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX35 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX25 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX51 (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX53 == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# MXC platform MMC card for older MMC/SD controllers
-#
-cdl_option CYGHWR_DEVS_FLASH_MMC_SD {
-    # This option is not active
-    # The parent CYGHWR_DEVS_FLASH_MMC is disabled
-    # ActiveIf constraint:  CYGPKG_HAL_ARM_MX31_3STACK || CYGPKG_HAL_ARM_MX31ADS 
-    #     CYGPKG_HAL_ARM_MX31_3STACK (unknown) == 0
-    #     CYGPKG_HAL_ARM_MX31ADS (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:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-};
-
-# <
-# MXC platform NOR flash memory support
-# When this option is enabled, it indicates NOR flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGHWR_DEVS_FLASH_IMX_SPI_NOR
-    #     Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-};
-
-# MXC platform NAND flash memory support
-# When this option is enabled, it indicates NAND flash is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_NAND {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-    # Requires:  CYGSEM_IO_FLASH_READ_INDIRECT == 1 
-    #     CYGSEM_IO_FLASH_READ_INDIRECT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # option CYGHWR_DEVS_FLASH_MXC_MULTI
-    #     ActiveIf: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    # interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND
-    #     ActiveIf: CYGHWR_DEVS_FLASH_MXC_NAND
-};
-
-# i.MX platform SPI NOR flash memory support
-# When this option is enabled, it indicates SPI NOR flash is
-# supported on the i.MX platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_IMX_SPI_NOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_DEVS_FLASH_MXC_NOR == 1 
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #   --> 0
-};
-
-# MXC platform ATA support
-# When this option is enabled, it indicates ATA is
-# supported on the MXC platforms
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_ATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Use a flash based Bad Block Table
-#
-cdl_component CYGPKG_DEVS_FLASH_NAND_BBT_IN_FLASH {
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# When this option is enabled, the driver will search for a flash
-# based bad block table
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_BBT_IN_FLASH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# header file defining the NAND BBT descriptor
-# defines the name of the header file that describes the BBT layout
-#
-cdl_component CYGHWR_FLASH_NAND_BBT_HEADER {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/io/tx53_nand_bbt.h>
-    # value_source inferred
-    # Default value: 0 0
-};
-
-# Number of blocks to reserve for BBT
-# Number of blocks to reserve for BBT
-#
-cdl_option CYGNUM_FLASH_NAND_BBT_BLOCKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-};
-
-# <
-# MXC platform multi flash memory support
-# When this option is enabled, it indicates multi flashes are
-# supported on the MXC platforms (like NAND and NOR)
-#
-cdl_option CYGHWR_DEVS_FLASH_MXC_MULTI {
-    # This option is not active
-    # ActiveIf constraint: (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MXC_NOR) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NAND && CYGHWR_DEVS_FLASH_MMC) ||
-    #                            (CYGHWR_DEVS_FLASH_MXC_NOR && CYGHWR_DEVS_FLASH_MMC)
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #     CYGHWR_DEVS_FLASH_MXC_NOR == 0
-    #     CYGHWR_DEVS_FLASH_MMC == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-};
-
-# MXC platform NAND flash reset workaround support
-# When this option is enabled, it indicates 0xFFFF is used for
-# the NAND reset command instead of 0xFF.
-#
-cdl_interface CYGHWR_DEVS_FLASH_MXC_NAND_RESET_WORKAROUND {
-    # No options implement this inferface
-    # ActiveIf constraint: CYGHWR_DEVS_FLASH_MXC_NAND
-    #     CYGHWR_DEVS_FLASH_MXC_NAND == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# Dynamic memory allocation
-# doc: ref/memalloc.html
-# This package provides memory allocator infrastructure required for
-# dynamic memory allocators, including the ISO standard malloc
-# interface. It also contains some sample implementations.
-#
-cdl_package CYGPKG_MEMALLOC {
-    # 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
-    # option CYGSEM_COMPRESS_ZLIB_NEEDS_MALLOC
-    #     Requires: CYGPKG_MEMALLOC
-};
-
-# >
-# Memory allocator implementations
-# This component contains configuration options related to the 
-# various memory allocators available.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATORS {
-    # There is no associated value.
-};
-
-# >
-# Fixed block allocator
-# This component contains configuration options related to the 
-# fixed block memory allocator.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_FIXED {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Simple variable block allocator
-# This component contains configuration options related to the 
-# simple variable block memory allocator. This allocator is not
-# very fast, and in particular does not scale well with large
-# numbers of allocations. It is however very compact in terms of
-# code size and does not have very much overhead per allocation.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_VARIABLE {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are added that allow a thread to wait until memory
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Coalesce memory
-# The variable-block memory allocator can perform coalescing
-# of memory whenever the application code releases memory back
-# to the pool. This coalescing reduces the possibility of
-# memory fragmentation problems, but involves extra code and
-# processor cycles.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE {
-    # 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 CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-};
-
-# <
-# Doug Lea's malloc
-# This component contains configuration options related to the 
-# port of Doug Lea's memory allocator, normally known as
-# dlmalloc. dlmalloc has a reputation for being both fast
-# and space-conserving, as well as resisting fragmentation well.
-# It is a common choice for a general purpose allocator and
-# has been used in both newlib and Linux glibc.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_DLMALLOC {
-    # There is no associated value.
-};
-
-# >
-# Debug build
-# Doug Lea's malloc implementation has substantial amounts
-# of internal checking in order to verify the operation
-# and consistency of the allocator. However this imposes
-# substantial overhead on each operation. Therefore this
-# checking may be individually disabled.
-#
-cdl_option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGDBG_USE_ASSERTS 
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Support more than one instance
-# Having this option disabled allows important
-# implementation structures to be declared as a single
-# static instance, allowing faster access. However this
-# would fail if there is more than one instance of
-# the dlmalloc allocator class. Therefore this option can
-# be enabled if multiple instances are required. Note: as
-# a special case, if this allocator is used as the
-# implementation of malloc, and it can be determined there
-# is more than one malloc pool, then this option will be
-# silently enabled.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use system memmove() and memset()
-# This may be used to control whether memset() and memmove()
-# are used within the implementation. The alternative is
-# to use some macro equivalents, which some people report
-# are faster in some circumstances.
-#
-cdl_option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA 
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# Minimum alignment of allocated blocks
-# This option controls the minimum alignment that the
-# allocated memory blocks are aligned on, specified as
-# 2^N. Note that using large mininum alignments can lead
-# to excessive memory wastage.
-#
-cdl_option CYGNUM_MEMALLOC_ALLOCATOR_DLMALLOC_ALIGNMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 3 to 10
-};
-
-# <
-# Variable block allocator with separate metadata
-# This component contains configuration options related to the 
-# variable block memory allocator with separate metadata.
-#
-cdl_component CYGPKG_MEMALLOC_ALLOCATOR_SEPMETA {
-    # There is no associated value.
-};
-
-# >
-# Make thread safe
-# With this option enabled, this allocator will be
-# made thread-safe. Additionally allocation functions
-# are made available that allow a thread to wait
-# until memory is available.
-#
-cdl_option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# <
-# Kernel C API support for memory allocation
-# This option must be enabled to provide the extensions required
-# to support integration into the kernel C API.
-#
-cdl_option CYGFUN_MEMALLOC_KAPI {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C (unknown) == 0
-    #   --> 0
-};
-
-# malloc(0) returns NULL
-# This option controls the behavior of malloc(0) ( or calloc with
-# either argument 0 ). It is permitted by the standard to return
-# either a NULL pointer or a unique pointer. Enabling this option
-# forces a NULL pointer to be returned.
-#
-cdl_option CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Breakpoint site when running out of memory
-# Whenever the system runs out of memory, it invokes this function
-# before either going to sleep waiting for memory to become 
-# available or returning failure.
-#
-cdl_option CYGSEM_MEMALLOC_INVOKE_OUT_OF_MEMORY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# malloc() and supporting allocators
-# This component enables support for dynamic memory
-# allocation as supplied by the functions malloc(),
-# free(), calloc() and realloc(). As these
-# functions are often used, but can have quite an
-# overhead, disabling them here can ensure they
-# cannot even be used accidentally when static
-# allocation is preferred. Within this component are
-# various allocators that can be selected for use
-# as the underlying implementation of the dynamic
-# allocation functions.
-#
-cdl_component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS {
-    # ActiveIf constraint: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use external heap definition
-# This option allows other components in the
-# system to override the default system
-# provision of heap memory pools. This should
-# be set to a header which provides the equivalent
-# definitions to <pkgconf/heaps.hxx>.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Use external implementation of joining multiple heaps
-# The default implementation of joining multiple heaps
-# is fine for the case where there are multiple disjoint
-# memory regions of the same type. However, in a system
-# there might be e.g. a small amount of internal SRAM and
-# a large amount of external DRAM. The SRAM is faster and
-# the DRAM is slower. An application can implement some 
-# heuristic to choose which pool to allocate from. This
-# heuristic can be highly application specific.
-#
-cdl_component CYGBLD_MEMALLOC_MALLOC_EXTERNAL_JOIN_H {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# malloc() allocator implementations
-#
-cdl_interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS {
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE, active, disabled
-    # Implemented by CYGIMP_MEMALLOC_MALLOC_DLMALLOC, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-    #     CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_MEMALLOC_MALLOC_ALLOCATORS
-    #     Requires:  CYGINT_MEMALLOC_MALLOC_ALLOCATORS == 1 
-};
-
-# malloc() implementation instantiation data
-# Memory allocator implementations that are capable of being
-# used underneath malloc() must be instantiated. The code
-# to do this is set in this option. It is only intended to
-# be set by the implementation, not the user.
-#
-cdl_option CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value <cyg/memalloc/dlmalloc.hxx>
-    # value_source default
-    # Default value: <cyg/memalloc/dlmalloc.hxx>
-
-    # The following properties are affected by this value
-    # option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    # option CYGIMP_MEMALLOC_MALLOC_DLMALLOC
-    #     Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-};
-
-# Simple variable block implementation
-# This causes malloc() to use the simple
-# variable block allocator.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_VARIABLE_SIMPLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/memvar.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 0
-    # Requires: CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE
-    #     CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_COALESCE == 1
-    #   --> 1
-};
-
-# Doug Lea's malloc implementation
-# This causes malloc() to use a version of Doug Lea's
-# malloc (dlmalloc) as the underlying implementation.
-#
-cdl_option CYGIMP_MEMALLOC_MALLOC_DLMALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER ==  "<cyg/memalloc/dlmalloc.hxx>" 
-    #     CYGBLD_MEMALLOC_MALLOC_IMPLEMENTATION_HEADER == <cyg/memalloc/dlmalloc.hxx>
-    #   --> 1
-};
-
-# <
-# Size of the fallback dynamic memory pool in bytes
-# If *no* heaps are configured in your memory layout,
-# dynamic memory allocation by
-# malloc() and calloc() must be from a fixed-size,
-# contiguous memory pool (note here that it is the
-# pool that is of a fixed size, but malloc() is still
-# able to allocate variable sized chunks of memory
-# from it). This option is the size
-# of that pool, in bytes. Note that not all of
-# this is available for programs to
-# use - some is needed for internal information
-# about memory regions, and some may be lost to
-# ensure that memory allocation only returns
-# memory aligned on word (or double word)
-# boundaries - a very common architecture
-# constraint.
-#
-cdl_option CYGNUM_MEMALLOC_FALLBACK_MALLOC_POOL_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16384
-    # value_source default
-    # Default value: 16384
-    # Legal values: 32 to 0x7fffffff
-};
-
-# Common memory allocator package 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_MEMALLOC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# 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_MEMALLOC_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-rtti -Woverloaded-virtual"
-    # value_source default
-    # Default value: "-fno-rtti -Woverloaded-virtual"
-};
-
-# 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-pointer-sign
-    # value_source default
-    # Default value: -Wno-pointer-sign
-};
-
-# Tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_MEMALLOC_TESTS {
-    # Calculated value:  "tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2" 
-    # Flavor: data
-    # Current_value: tests/dlmalloc1 tests/dlmalloc2 tests/heaptest tests/kmemfix1 tests/kmemvar1 tests/malloc1 tests/malloc2 tests/malloc3 tests/malloc4 tests/memfix1 tests/memfix2 tests/memvar1 tests/memvar2 tests/realloc tests/sepmeta1 tests/sepmeta2
-};
-
-# <
-# <
-# Common error code support
-# This package contains the common list of error and
-# status codes. It is held centrally to allow
-# packages to interchange error codes and status
-# codes in a common way, rather than each package
-# having its own conventions for error/status
-# reporting. The error codes are modelled on the
-# POSIX style naming e.g. EINVAL etc. This package
-# also provides the standard strerror() function to
-# convert error codes to textual representation, as
-# well as an implementation of the errno idiom.
-#
-cdl_package CYGPKG_ERROR {
-    # 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:  CYGBLD_ISO_ERRNO_CODES_HEADER == "<cyg/error/codes.h>" 
-    #     CYGBLD_ISO_ERRNO_CODES_HEADER == <cyg/error/codes.h>
-    #   --> 1
-};
-
-# >
-# errno variable
-# This package controls the behaviour of the
-# errno variable (or more strictly, expression)
-# from <errno.h>.
-#
-cdl_component CYGPKG_ERROR_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_ERRNO_HEADER == "<cyg/error/errno.h>" 
-    #     CYGBLD_ISO_ERRNO_HEADER == <cyg/error/errno.h>
-    #   --> 1
-};
-
-# >
-# Per-thread errno
-# This option controls whether the standard error
-# code reporting variable errno is a per-thread
-# variable, rather than global.
-#
-cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # The inferred value should not be edited directly.
-    inferred_value 0
-    # value_source inferred
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-};
-
-# Tracing level
-# Trace verbosity level for debugging the errno
-# retrieval mechanism in errno.cxx. Increase this
-# value to get additional trace output.
-#
-cdl_option CYGNUM_ERROR_ERRNO_TRACE_LEVEL {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: 0 to 1
-};
-
-# <
-# strerror function
-# This package controls the presence and behaviour of the
-# strerror() function from <string.h>
-#
-cdl_option CYGPKG_ERROR_STRERROR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_STRERROR_HEADER == "<cyg/error/strerror.h>" 
-    #     CYGBLD_ISO_STRERROR_HEADER == <cyg/error/strerror.h>
-    #   --> 1
-};
-
-# Error package 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_ERROR_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the error package. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_ERROR_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 error package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# I2C driver for FSL MXC-based platforms
-#
-cdl_package CYGPKG_DEVS_MXC_I2C {
-    # 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
-};
-
-# ipu driver for mxc
-#
-cdl_package CYGPKG_DEVS_IMX_IPU {
-    # 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
-    # option CYGHWR_MX53_LCD_LOGO
-    #     ActiveIf:  CYGPKG_DEVS_IMX_IPU 
-};
-
-# >
-# IPU version 3EX support
-# When this option is enabled, it indicates the IPU version
-# is 3EX
-#
-cdl_option CYGHWR_DEVS_IPU_3_EX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # The inferred value should not be edited directly.
-    inferred_value 1
-    # value_source inferred
-    # Default value: 0
-};
-
-# IPU version 3D support
-# When this option is enabled, it indicates the IPU version
-# is 3D
-#
-cdl_option CYGHWR_DEVS_IPU_3_D {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
similarity index 99%
rename from config/TX53-1020.ecc
rename to config/TX53-xx30.ecc
index 5bfbb5951d575595aa2e6fe58ee1bc7b99c012d1..610d8bb7fe58a43c29e83a32d875f7869dd353b8 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2799,6 +2805,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2821,6 +2846,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -3423,25 +3452,6 @@ cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS {
 };
 
 # >
 };
 
 # >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
 # SDRAM size
 # This option specifies the SDRAM size of the TX53 module.
 #
 # SDRAM size
 # This option specifies the SDRAM size of the TX53 module.
 #
@@ -3459,9 +3469,8 @@ cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
 #
 cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
     # Flavor: data
 #
 cdl_option CYGNUM_HAL_ARM_TX53_CPU_CLK {
     # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1000
-    # value_source default
+    user_value 800
+    # value_source user
     # Default value: 1000
     # Legal values:  800 1000 
 };
     # Default value: 1000
     # Legal values:  800 1000 
 };
@@ -3523,57 +3532,6 @@ cdl_option CYGHWR_MX53_LCD_LOGO {
     # Default value: 0
 };
 
     # Default value: 0
 };
 
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # Flavor: data
-    user_value 333
-    # value_source user
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
 # <
 # Memory layout
 #
 # <
 # Memory layout
 #
@@ -4258,7 +4216,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4278,7 +4236,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10360,9 +10318,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
similarity index 99%
rename from config/TX53-8021.ecc
rename to config/TX53-xx31.ecc
index 22cece0f70233ab96bb6a0d72f4a2227d8ec1aee..315c0f8326efc2245672188f450e89f5bd24ef86 100644 (file)
@@ -76,9 +76,12 @@ cdl_component CYGBLD_GLOBAL_OPTIONS {
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
     # Flavor: data
-    user_value arm-cortexa8-linux-gnu
-    # value_source user
-    # Default value: arm-926ejs-linux-gnu
+    # No user value, uncomment the following line to provide one.
+    # user_value arm-cortexa8-linux-gnueabi
+    # value_source default
+    # Default value:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    #     CYGBLD_ARM_EABI == 1
+    #   --> arm-cortexa8-linux-gnueabi
 };
 
 # Global compiler flags
 };
 
 # Global compiler flags
@@ -88,11 +91,14 @@ cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
 #
 cdl_option CYGBLD_GLOBAL_CFLAGS {
     # Flavor: data
-    user_value "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # The inferred value should not be edited directly.
-    inferred_value "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
-    # value_source user
-    # Default value: "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # No user value, uncomment the following line to provide one.
+    # user_value "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    # value_source default
+    # Default value:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+    #     CYGHWR_THUMB == 0
+    #     CYGBLD_ARM_ENABLE_THUMB_INTERWORK == 0
+    #     CYGBLD_ARM_EABI == 1
+    #   --> "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
     # Requires: CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
     #     CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS == 1
     #   --> 1
@@ -2799,6 +2805,25 @@ cdl_option CYGHWR_THUMB {
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
     # The following properties are affected by this value
     # option CYGBLD_ARM_ENABLE_THUMB_INTERWORK
     #     DefaultValue:  (CYGHWR_THUMB || CYGSEM_HAL_ROM_MONITOR) 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
+};
+
+# Enable EABI
+# Use EABI tool-chain to compile eCos.
+#
+cdl_option CYGBLD_ARM_EABI {
+    # 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 CYGBLD_GLOBAL_COMMAND_PREFIX
+    #     DefaultValue:  "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") 
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # Enable Thumb interworking compiler option
 };
 
 # Enable Thumb interworking compiler option
@@ -2821,6 +2846,10 @@ cdl_option CYGBLD_ARM_ENABLE_THUMB_INTERWORK {
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
     #     CYGHWR_THUMB == 0
     #     CYGSEM_HAL_ROM_MONITOR == 1
     #   --> 1
+
+    # The following properties are affected by this value
+    # option CYGBLD_GLOBAL_CFLAGS
+    #     DefaultValue:  (CYGHWR_THUMB ? "-mthumb " : "") .  (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") .  (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") .  "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" 
 };
 
 # The platform and architecture supports Big Endian operation
 };
 
 # The platform and architecture supports Big Endian operation
@@ -3423,25 +3452,6 @@ cdl_component CYGPKG_HAL_ARM_TX53_OPTIONS {
 };
 
 # >
 };
 
 # >
-# SDRAM DDR type
-# This option specifies the SDRAM type of the TX53 module.
-# Valid options are '2' for DDR2 and '3' for DDR3.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-    # Legal values:  2 3 
-
-    # The following properties are affected by this value
-    # component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    # component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS
-    #     ActiveIf:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-};
-
 # SDRAM size
 # This option specifies the SDRAM size of the TX53 module.
 #
 # SDRAM size
 # This option specifies the SDRAM size of the TX53 module.
 #
@@ -3521,58 +3531,6 @@ cdl_option CYGHWR_MX53_LCD_LOGO {
     # Default value: 0
 };
 
     # Default value: 0
 };
 
-# <
-# Options for DDR2 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 400
-    # value_source default
-    # Default value: 400
-    # Legal values:  216 266 333 400 
-};
-
-# <
-# Options for DDR3 SDRAM
-#
-cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint:  CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 
-    #     CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# SDRAM clock
-# This option specifies the SDRAM clock im MHz of the TX53 module.
-#
-cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-    # This option is not active
-    # The parent CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 333
-    # value_source default
-    # Default value: 333
-    # Legal values:  333 
-};
-
 # <
 # Memory layout
 #
 # <
 # Memory layout
 #
@@ -4257,7 +4215,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 
     # The following properties are affected by this value
     #   --> 1
 
     # The following properties are affected by this value
@@ -4277,7 +4235,7 @@ cdl_option CYGBLD_INFRA_CFLAGS_PIPE {
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
     # value_source user
     # Default value: 0
     # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-march=armv7-a -mfpu=fpa -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Wno-inline -Wundef -O2 -g -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
+    #     CYGBLD_GLOBAL_CFLAGS == "-mabi=aapcs-linux -msoft-float -march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe"
     #   --> 1
 };
 
     #   --> 1
 };
 
@@ -10359,9 +10317,9 @@ cdl_option CYGPKG_ERROR_CFLAGS_ADD {
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
 cdl_option CYGPKG_ERROR_CFLAGS_REMOVE {
     # Flavor: data
     # No user value, uncomment the following line to provide one.
-    # user_value ""
+    # user_value -Wno-pointer-sign
     # value_source default
     # value_source default
-    # Default value: ""
+    # Default value: -Wno-pointer-sign
 };
 
 # <
 };
 
 # <
index a706b65991f10972a251d52bc254d082e25f7c21..e8836b6566f30237bc485d5ac3dd5093c958bf17 100644 (file)
@@ -144,7 +144,7 @@ cdl_package CYGPKG_ERROR {
             display "Suppressed compiler flags"
             flavor  data
             no_define
             display "Suppressed compiler flags"
             flavor  data
             no_define
-            default_value { "" }
+            default_value { "-Wno-pointer-sign" }
             description   "
                 This option modifies the set of compiler flags for
                 building the error package. These flags are removed from
             description   "
                 This option modifies the set of compiler flags for
                 building the error package. These flags are removed from
index acfb9e34c43bb2a33b691ba0d0f724cf1f280605..99ffe6ad7c16009b02dec83adbeceb20044c5f5e 100644 (file)
@@ -105,6 +105,15 @@ cdl_package CYGPKG_HAL_ARM {
             Enable use of the Thumb instruction set."
     }
 
             Enable use of the Thumb instruction set."
     }
 
+    cdl_option CYGBLD_ARM_EABI {
+        display          "Enable EABI"
+        default_value    1
+        description      "
+            Use EABI tool-chain to compile eCos."
+
+           compile arm_eabi.c
+    }
+
     # Note that when building a ROM monitor we include Thumb
     # interworking in order to support Thumb applications running
     # under a ARM ROM monitor.
     # Note that when building a ROM monitor we include Thumb
     # interworking in order to support Thumb applications running
     # under a ARM ROM monitor.
index 38f9d636f46d9e288e6ead8ee2ea52362fd0e987..649828a2a0ed08f0b822badc912d67cb8bbbacbe 100644 (file)
@@ -38,6 +38,7 @@
 //=============================================================================
 
 #include <pkgconf/system.h>
 //=============================================================================
 
 #include <pkgconf/system.h>
+#include <pkgconf/hal_arm.h>
 
 STARTUP(vectors.o)
 ENTRY(reset_vector)
 
 STARTUP(vectors.o)
 ENTRY(reset_vector)
@@ -160,6 +161,14 @@ OUTPUT_FORMAT(elf32-bigarm)
        . = . + 8;                                     \
     } > _region_ = 0
 
        . = . + 8;                                     \
     } > _region_ = 0
 
+#ifdef CYGBLD_ARM_EABI
+#define __CTORS                init_array
+#define __DTORS                fini_array
+#else
+#define __CTORS                ctors
+#define __DTORS                dtors
+#endif
+
 #define SECTION_RELOCS(_region_, _vma_, _lma_)                              \
   .rel.text      :                                                          \
     {                                                                       \
 #define SECTION_RELOCS(_region_, _vma_, _lma_)                              \
   .rel.text      :                                                          \
     {                                                                       \
@@ -199,10 +208,10 @@ OUTPUT_FORMAT(elf32-bigarm)
     } > _region_                                                            \
   .rel.got       :   { *(.rel.got)    } > _region_                          \
   .rela.got      :   { *(.rela.got)   } > _region_                          \
     } > _region_                                                            \
   .rel.got       :   { *(.rel.got)    } > _region_                          \
   .rela.got      :   { *(.rela.got)   } > _region_                          \
-  .rel.ctors     :   { *(.rel.ctors)  } > _region_                          \
-  .rela.ctors    :   { *(.rela.ctors) } > _region_                          \
-  .rel.dtors     :   { *(.rel.dtors)  } > _region_                          \
-  .rela.dtors    :   { *(.rela.dtors) } > _region_                          \
+  .rel.__CTORS   :   { *(.rel.__CTORS) } > _region_                         \
+  .rela.__CTORS  :   { *(.rela.__CTORS) } > _region_                        \
+  .rel.__DTORS   :   { *(.rel.__DTORS) } > _region_                         \
+  .rela.__DTORS  :   { *(.rela.__DTORS) } > _region_                        \
   .rel.init      :   { *(.rel.init)   } > _region_                          \
   .rela.init     :   { *(.rela.init)  } > _region_                          \
   .rel.fini      :   { *(.rel.fini)   } > _region_                          \
   .rel.init      :   { *(.rel.init)   } > _region_                          \
   .rela.init     :   { *(.rela.init)  } > _region_                          \
   .rel.fini      :   { *(.rel.fini)   } > _region_                          \
@@ -238,8 +247,8 @@ OUTPUT_FORMAT(elf32-bigarm)
     . = ALIGN (4); \
     KEEP(*( SORT (.ecos.table.*))) ;            \
     . = ALIGN (4); \
     . = ALIGN (4); \
     KEEP(*( SORT (.ecos.table.*))) ;            \
     . = ALIGN (4); \
-    __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); \
-    __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); \
+    __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.__CTORS*))) __CTOR_END__ = ABSOLUTE (.); \
+    __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.__DTORS*))) __DTOR_END__ = ABSOLUTE (.); \
     *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) \
     . = ALIGN (4); *(.2ram.*) } \
     > _region_ \
     *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) \
     . = ALIGN (4); *(.2ram.*) } \
     > _region_ \
diff --git a/packages/hal/arm/arch/v2_0/src/arm_eabi.c b/packages/hal/arm/arch/v2_0/src/arm_eabi.c
new file mode 100644 (file)
index 0000000..334ae33
--- /dev/null
@@ -0,0 +1,12 @@
+#include <unwind.h>
+#include <cyg/infra/diag.h>
+
+_Unwind_Reason_Code __aeabi_unwind_cpp_pr0(_Unwind_State state,
+                                           _Unwind_Control_Block *ucbp,
+                                           _Unwind_Context *context)
+{
+       diag_printf("EXCEPTION CAUGHT\n");
+       while (1);
+       return _URC_FAILURE;
+}
+
index 547139529f38c62c910293390936c8560d10171b..1d0ab466ba52469af73bae7021ef6d625f987d20 100644 (file)
@@ -63,6 +63,7 @@ cdl_package CYGPKG_HAL_ARM_TX25KARO {
         puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_soc.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_tx25.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_soc.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_tx25.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLF_DEFS_H <cyg/hal/karo_tx25.h>"
        puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX25 based\""
         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX25 processor module\""
         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  2177"
        puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX25 based\""
         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX25 processor module\""
         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  2177"
@@ -155,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX25KARO {
             display       "Global command prefix"
             flavor        data
             no_define
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -166,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX25KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            default_value { "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
index b43469adc43b41b155b040073906ef537c77f5bb..b98ee9bf33026c8f67344d5fd96073675810e6a0 100644 (file)
@@ -47,7 +47,7 @@
 #include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
 #include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>           // MMU definitions
 #include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
 #include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>           // MMU definitions
-#include <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
index 17befe61ed841339ffddb92c371e223b07de1fb3..74e6466cff9ead085c9c9ed7479404abe8c5c2ec 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx25.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 #include <redboot.h>
 
 #include <cyg/hal/hal_soc.h>
 #include <redboot.h>
 
index 457f331c974c61d8a2b2e3de6512b1871dd8d859..f3e42724edf38aa22699de32d6d5625e8f2456d5 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index 3c2be995dc7eecd4e5e6688436ed4c6c0da24a77..7e6df4da5701b9bf3e55acf580acfb539440cd21 100644 (file)
@@ -53,7 +53,7 @@
 #include <cyg/hal/drv_api.h>           // driver API
 #include <cyg/hal/hal_misc.h>          // Helper functions
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/drv_api.h>           // driver API
 #include <cyg/hal/hal_misc.h>          // Helper functions
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx25.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 extern void cyg_hal_plf_serial_init(void);
 
 
 extern void cyg_hal_plf_serial_init(void);
 
index 3c0b32c5b80fffd3885a49deb28b6c4928caf1dc..0b029d403f89167816c7dbee32593d9f4fef2fdb 100644 (file)
@@ -56,7 +56,7 @@
 #include <cyg/hal/hal_intr.h>          // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/hal_intr.h>          // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx25.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 #include <cyg/infra/diag.h>            // diag_printf
 
 
 #include <cyg/infra/diag.h>            // diag_printf
 
index 34d372fbb238c9535c6b8bf29d65862f93d0eb44..c320ad2c5f44342204d1299cc4c22451079c555e 100644 (file)
@@ -54,7 +54,7 @@
 #endif
 #include CYGBLD_HAL_PLATFORM_H
 #include <cyg/hal/plf_mmap.h>
 #endif
 #include CYGBLD_HAL_PLATFORM_H
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx25.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #define LCDC_BASE                      0x53fbc000
 
 
 #define LCDC_BASE                      0x53fbc000
 
@@ -168,7 +168,8 @@ typedef struct lcd_display_metrics {
        unsigned long left;
        unsigned long right;
        /* control signal polarities */
        unsigned long left;
        unsigned long right;
        /* control signal polarities */
-       bool pixclk_pol;
+       bool pix_pol;
+       bool clk_pol;   
        bool hsync_pol;
        bool vsync_pol;
 } LCDDIM;
        bool hsync_pol;
        bool vsync_pol;
 } LCDDIM;
@@ -284,7 +285,8 @@ static bool bootsplash_setup(LCDDIM *ldim, unsigned long img_len)
 
        ok = get_var("lcd_buffer_addr", &ldim->frame_buffer, CONFIG_INT);
        ok &= get_var("lcd_clk_period", &ldim->pixclk, CONFIG_INT);
 
        ok = get_var("lcd_buffer_addr", &ldim->frame_buffer, CONFIG_INT);
        ok &= get_var("lcd_clk_period", &ldim->pixclk, CONFIG_INT);
-       ok &= get_var("lcd_clk_polarity", &ldim->pixclk_pol, CONFIG_BOOL);
+       ok &= get_var("lcd_clk_polarity", &ldim->clk_pol, CONFIG_BOOL);
+       ok &= get_var("lcd_pix_polarity", &ldim->pix_pol, CONFIG_BOOL);
 
        ok &= get_var("lcd_panel_width", &ldim->width, CONFIG_INT);
        ok &= get_var("lcd_panel_height", &ldim->height, CONFIG_INT);
 
        ok &= get_var("lcd_panel_width", &ldim->width, CONFIG_INT);
        ok &= get_var("lcd_panel_height", &ldim->height, CONFIG_INT);
@@ -395,7 +397,8 @@ static bool bootsplash_display(LCDDIM *ldim)
        pcr |= PCR_TFT | PCR_COLOR | PCR_SCLK_SEL |
                (ldim->vsync_pol * PCR_FLMPOL) |
                (ldim->hsync_pol * PCR_LPPOL) |
        pcr |= PCR_TFT | PCR_COLOR | PCR_SCLK_SEL |
                (ldim->vsync_pol * PCR_FLMPOL) |
                (ldim->hsync_pol * PCR_LPPOL) |
-               (ldim->pixclk_pol * PCR_PIXPOL);
+               (ldim->pix_pol * PCR_PIXPOL) |
+               (ldim->clk_pol * PCR_CLKPOL);
 
        switch (ldim->bpp) {
        case 18:
 
        switch (ldim->bpp) {
        case 18:
@@ -678,6 +681,13 @@ RedBoot_config_option("Pixel clock period (in ps)",
                                        33333
        );
 
                                        33333
        );
 
+RedBoot_config_option("Pixel polarity active low",
+                                       lcd_pix_polarity,
+                                       "bootsplash_enable", true,
+                                       CONFIG_BOOL,
+                                       false
+       );
+
 RedBoot_config_option("Pixel clock polarity active low",
                                        lcd_clk_polarity,
                                        "bootsplash_enable", true,
 RedBoot_config_option("Pixel clock polarity active low",
                                        lcd_clk_polarity,
                                        "bootsplash_enable", true,
index 8e95415d7a12d620498425518bf0b420abd56b24..b028bfd8e67598935dc48278661063765ea90cdd 100644 (file)
@@ -63,6 +63,7 @@ cdl_package CYGPKG_HAL_ARM_TX27KARO {
         puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_soc.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_tx27.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_soc.h>"
         puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_tx27.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLF_DEFS_H <cyg/hal/karo_tx27.h>"
        puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX27 based\""
         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX27 processor module\""
         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  1600"
        puts $::cdl_header "#define HAL_PLATFORM_CPU    \"Freescale i.MX27 based\""
         puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Ka-Ro TX27 processor module\""
         puts $::cdl_header "#define HAL_PLATFORM_MACHINE_TYPE  1600"
@@ -155,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX27KARO {
             display       "Global command prefix"
             flavor        data
             no_define
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-926ejs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -166,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX27KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            default_value { "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
index f5ec325dff12f00b6038119742041f2842c6b212..6e55447f52824691c69cb83c572a9527dc02bf61 100644 (file)
@@ -47,7 +47,7 @@
 #include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
 #include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>           // MMU definitions
 #include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
 #include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>           // MMU definitions
-#include <cyg/hal/karo_tx27.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
index 43bffd214bb9a6e8020d7ce6f95aa6cb9ca46d2b..46cb593400ce0c558bc8098f9bda20f928f1f592 100644 (file)
@@ -22,6 +22,8 @@ SECTIONS
     SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_got (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_got (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_extab (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_exidx (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fixed_vectors (ram, CYGMEM_REGION_ram + 0x20, LMA_EQ_VMA)
     SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fixed_vectors (ram, CYGMEM_REGION_ram + 0x20, LMA_EQ_VMA)
index d118785764f2833e19aa1be28198594527789cc8..ad593f74500a8c58653d09de2915c267a2ef1a6b 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx27.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
index cbddd08b49d5957a042c0c1d8f2d10d74fc78a50..e3492f3b4f693b0716ebda338dde351848865d99 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx27.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index d618db51d9c5b7f7159054a398aa033cea2c4436..1a27e7bf7fa9841d53a151596c12555e3a6ccf56 100644 (file)
@@ -53,7 +53,7 @@
 #include <cyg/hal/drv_api.h>           // driver API
 #include <cyg/hal/hal_misc.h>          // Helper functions
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/drv_api.h>           // driver API
 #include <cyg/hal/hal_misc.h>          // Helper functions
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx27.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 extern void cyg_hal_plf_serial_init(void);
 
 
 extern void cyg_hal_plf_serial_init(void);
 
index 0e7e480dcf491d387d8253414417c53160726595..71774856e86625c9c179c6ea5702c99cf4756687 100644 (file)
@@ -56,7 +56,7 @@
 #include <cyg/hal/hal_intr.h>          // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/hal_intr.h>          // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
-#include <cyg/hal/karo_tx27.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 #include <cyg/infra/diag.h>            // diag_printf
 
 
 #include <cyg/infra/diag.h>            // diag_printf
 
index 75da54b09dc7ca6b48652c40ede86fa83faa344e..4dba313961be73a8a77b65f9b8108add547bc9ed 100644 (file)
@@ -153,7 +153,7 @@ cdl_package CYGPKG_HAL_ARM_TX37KARO {
             display       "Global command prefix"
             flavor        data
             no_define
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-1136jfs-linux-gnu" }
+            default_value { "arm-1136jfs-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -164,7 +164,10 @@ cdl_package CYGPKG_HAL_ARM_TX37KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            default_value { "-mcpu=arm9 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-mcpu=arm9 -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
index 0b2b1c594caeb5b1932c4014064a33a81dfec7d4..b0514815eec91b7fa10d2bc1c05e1ab1d7379539 100644 (file)
@@ -47,7 +47,7 @@
 #include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
 #include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>           // MMU definitions
 #include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
 #include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>           // MMU definitions
-#include <cyg/hal/karo_tx37.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #define PLATFORM_SETUP1 _platform_setup1
 
 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #define PLATFORM_SETUP1 _platform_setup1
index 53d497acd6d5d9a94a1b777560b49cf47b56bf95..46cb593400ce0c558bc8098f9bda20f928f1f592 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <cyg/infra/cyg_type.inc>
 #define __ASSEMBLER__
 
 #include <cyg/infra/cyg_type.inc>
 #define __ASSEMBLER__
-#include <pkgconf/mlt_arm_tx37_romram.h>
+#include CYGHWR_MEMORY_LAYOUT_H
 
 MEMORY
 {
 
 MEMORY
 {
index acdacd98b442ccbc3b557c930956d7ab577d5b86..e8cbd4e6f3dcd10162302814dd71ba40e7e8c65b 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx37.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                           \
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                           \
index 76de6c83d44a80a463c5b2c5b1d8a151acc405f7..e0eb59cfe6147430f2e2b3205ecce36106ae569a 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx37.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index cf9c506c3fda3bf8561a8d7e2934fbaa7daa655d..cc53e816010f4c79d3680bab627c950dacece65d 100644 (file)
@@ -53,7 +53,7 @@
 #include <cyg/hal/drv_api.h>            // driver API
 #include <cyg/hal/hal_misc.h>           // Helper functions
 #include <cyg/hal/hal_soc.h>            // Hardware definitions
 #include <cyg/hal/drv_api.h>            // driver API
 #include <cyg/hal/hal_misc.h>           // Helper functions
 #include <cyg/hal/hal_soc.h>            // Hardware definitions
-#include <cyg/hal/karo_tx37.h>          // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H          // Platform specifics
 
 extern void cyg_hal_plf_serial_init(void);
 
 
 extern void cyg_hal_plf_serial_init(void);
 
index 4e58735dd024de464da24536c063915713dcec7f..79c2d18112644d3418bc723550edb357a929d3ad 100644 (file)
@@ -55,7 +55,7 @@
 #include <cyg/hal/hal_intr.h>                  // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>                   // Hardware definitions
 #include <cyg/hal/hal_intr.h>                  // Interrupt names
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>                   // Hardware definitions
-#include <cyg/hal/karo_tx37.h>                 // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H                 // Platform specifics
 #include <cyg/infra/diag.h>                    // diag_printf
 
 // All the MM table layout is here:
 #include <cyg/infra/diag.h>                    // diag_printf
 
 // All the MM table layout is here:
index dfcdf6a2d04051fe9d13bfbaa5b949878a30648f..561289f543f2c8a95b9105cb2dc87ccb4aba08da 100644 (file)
@@ -156,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX51KARO {
             display       "Global command prefix"
             flavor        data
             no_define
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -167,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX51KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            default_value { "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -mfloat-abi=softfp " : "-mabi=apcs-gnu ") . \
+           "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
index 39b7b61be6d062e3e1b7bbe6953ffa5d046f5141..9c676e97d7000e6b988dc94387ee7593dc1e4e06 100644 (file)
@@ -47,7 +47,7 @@
 #include CYGBLD_HAL_PLATFORM_H                 // Platform specific configuration
 #include <cyg/hal/hal_soc.h>                   // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>                   // MMU definitions
 #include CYGBLD_HAL_PLATFORM_H                 // Platform specific configuration
 #include <cyg/hal/hal_soc.h>                   // Variant specific hardware definitions
 #include <cyg/hal/hal_mmu.h>                   // MMU definitions
-#include <cyg/hal/karo_tx51.h>                 // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H                 // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #define CPU_CLK                                CYGNUM_HAL_ARM_TX51_CPU_CLK
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #define CPU_CLK                                CYGNUM_HAL_ARM_TX51_CPU_CLK
index ba9ac9dd79f0a5c73940491d8019301bfedce906..0b164f65d82a513554b008baf63c6c5d8e1632b2 100644 (file)
@@ -42,7 +42,7 @@
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
 //####ECOSGPLCOPYRIGHTEND####
 //=============================================================================
 
-#include <cyg/hal/karo_tx51.h>
+#include CYGBLD_HAL_PLF_DEFS_H
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
 #include <cyg/hal/hal_soc.h>
 
 #define CYGHWR_REDBOOT_LINUX_ATAG_MEM(_p_)                                                        \
index 535ba599f6e0464a746cfecbf9f1474a22745174..0372649beec30ce1f29da2cff72a3f2731b543f6 100644 (file)
@@ -42,7 +42,7 @@
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
 #include <cyg/hal/hal_intr.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/plf_mmap.h>
-#include <cyg/hal/karo_tx51.h>         // Platform specific hardware definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
 
 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG
 #include <flash_config.h>
index 3bd2987d08cd3c0dc7d04bed071196b09d8afde6..70d199f51e402ea7b7adacd78057cd0083d0da4c 100644 (file)
@@ -57,7 +57,7 @@
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/mx51_iomux.h>
 #include <cyg/hal/hal_cache.h>
 #include <cyg/hal/hal_soc.h>           // Hardware definitions
 #include <cyg/hal/mx51_iomux.h>
-#include <cyg/hal/karo_tx51.h>         // Platform specifics
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specifics
 
 #include <cyg/infra/diag.h>                    // diag_printf
 
 
 #include <cyg/infra/diag.h>                    // diag_printf
 
index c367c7aea1bb24f4a9e6c2634e6ce82f7438bc28..b96985b53ff7b6f4ef8d753907710564be106fc2 100644 (file)
@@ -156,7 +156,7 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
             display       "Global command prefix"
             flavor        data
             no_define
             display       "Global command prefix"
             flavor        data
             no_define
-            default_value { "arm-926ejs-linux-gnu" }
+            default_value { "arm-cortexa8-linux-gnu" . (CYGBLD_ARM_EABI ? "eabi" : "") }
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
             description   "
                 This option specifies the command prefix used when
                 invoking the build tools."
@@ -167,7 +167,10 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
             flavor        data
             no_define
             requires CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-            default_value { "-march=armv5 -mabi=apcs-gnu -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
+            default_value { (CYGHWR_THUMB ? "-mthumb " : "") . \
+           (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "") . \
+           (CYGBLD_ARM_EABI ? "-mabi=aapcs-linux -msoft-float " : "-mabi=apcs-gnu ") . \
+           "-march=armv7-a -Wall -Wno-pointer-sign -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -ffunction-sections -fdata-sections -fno-exceptions -fvtable-gc -finit-priority -Werror -pipe" }
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
             description   "
                 This option controls the global compiler flags which are used to
                 compile all packages by default. Individual packages may define
@@ -195,16 +198,6 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
            compiler flags used only in building this package,
            and details of which tests are built."
 
            compiler flags used only in building this package,
            and details of which tests are built."
 
-        cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_TYPE {
-            display       "SDRAM DDR type"
-            flavor        data
-            legal_values  { 2 3 }
-            default_value { 2 }
-            description   "
-                This option specifies the SDRAM type of the TX53 module.
-               Valid options are '2' for DDR2 and '3' for DDR3."
-        }
-
         cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
             display       "SDRAM size"
             flavor        data
         cdl_option CYGNUM_HAL_ARM_TX53_SDRAM_SIZE {
             display       "SDRAM size"
             flavor        data
@@ -275,38 +268,6 @@ cdl_package CYGPKG_HAL_ARM_TX53KARO {
         }
     }
 
         }
     }
 
-    cdl_component CYGHWR_HAL_ARM_TX53_DDR2_OPTIONS {
-        display       "Options for DDR2 SDRAM"
-       active_if     { CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 }
-        flavor        none
-        no_define
-
-        cdl_option CYGNUM_HAL_ARM_TX53_DDR2_CLK {
-            display       "SDRAM clock"
-            flavor        data
-            legal_values  { 216 266 333 400 }
-            default_value { 400 }
-            description   "
-                This option specifies the SDRAM clock im MHz of the TX53 module."
-        }
-    }
-
-    cdl_component CYGHWR_HAL_ARM_TX53_DDR3_OPTIONS {
-        display       "Options for DDR3 SDRAM"
-       active_if     { CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3 }
-        flavor        none
-        no_define
-
-        cdl_option CYGNUM_HAL_ARM_TX53_DDR3_CLK {
-            display       "SDRAM clock"
-            flavor        data
-            legal_values  { 333 }
-            default_value { 333 }
-            description   "
-                This option specifies the SDRAM clock im MHz of the TX53 module."
-        }
-    }
-
     cdl_component CYGHWR_MEMORY_LAYOUT {
         display "Memory layout"
         flavor data
     cdl_component CYGHWR_MEMORY_LAYOUT {
         display "Memory layout"
         flavor data
index c5e42478688c77c8a23b9e4b0521578291874a22..00797d2e3c384849501d3e4b9fbaae73070d5dac 100644 (file)
 //####ECOSGPLCOPYRIGHTEND####
 //===========================================================================
 
 //####ECOSGPLCOPYRIGHTEND####
 //===========================================================================
 
-#include <pkgconf/system.h>                    // System-wide configuration info
-#include CYGBLD_HAL_VARIANT_H                  // Variant specific configuration
-#include CYGBLD_HAL_PLATFORM_H                 // Platform specific configuration
-#include <cyg/hal/hal_soc.h>                   // Variant specific hardware definitions
-#include <cyg/hal/hal_mmu.h>                   // MMU definitions
-#include CYGBLD_HAL_PLF_DEFS_H                 // Platform specific hardware definitions
+#include <pkgconf/system.h>            // System-wide configuration info
+#include CYGBLD_HAL_VARIANT_H          // Variant specific configuration
+#include CYGBLD_HAL_PLATFORM_H         // Platform specific configuration
+#include <cyg/hal/hal_soc.h>           // Variant specific hardware definitions
+#include <cyg/hal/hal_mmu.h>           // MMU definitions
+#include CYGBLD_HAL_PLF_DEFS_H         // Platform specific hardware definitions
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #define CPU_CLK                                CYGNUM_HAL_ARM_TX53_CPU_CLK
 
 #include CYGHWR_MEMORY_LAYOUT_H
 
 #define CPU_CLK                                CYGNUM_HAL_ARM_TX53_CPU_CLK
 
-#if defined(CYGNUM_HAL_ARM_TX53_DDR2_CLK)
-#define SDRAM_CLK                      CYGNUM_HAL_ARM_TX53_DDR2_CLK
-#elif defined(CYGNUM_HAL_ARM_TX53_DDR3_CLK)
-#define SDRAM_CLK                      CYGNUM_HAL_ARM_TX53_DDR3_CLK
-#else
-#error SDRAM clock not defined
-#endif
+#define SDRAM_CLK                      400
 
 #define DEBUG_LED_BIT                  20
 #define LED_GPIO_BASE                  GPIO2_BASE_ADDR
 
 #define DEBUG_LED_BIT                  20
 #define LED_GPIO_BASE                  GPIO2_BASE_ADDR
@@ -111,8 +105,6 @@ KARO_TX53_SETUP_START:
        orr     r0, r0, #0x00000800     @ set bit 12 (Z---) BTB
        mcr     p15, 0, r0, c1, c0, 0
 
        orr     r0, r0, #0x00000800     @ set bit 12 (Z---) BTB
        mcr     p15, 0, r0, c1, c0, 0
 
-       setup_sdram
-
        /* ARM errata ID #468414 */
        mrc     15, 0, r1, c1, c0, 1
        orr     r1, r1, #(1 << 5)    /* enable L1NEON bit */
        /* ARM errata ID #468414 */
        mrc     15, 0, r1, c1, c0, 1
        orr     r1, r1, #(1 << 5)    /* enable L1NEON bit */
@@ -146,11 +138,11 @@ init_aips_start:
        str     r9, [r10, #GPIO_GDIR]
 
        LED_INIT
        str     r9, [r10, #GPIO_GDIR]
 
        LED_INIT
-       LED_BLINK 1
+       LED_BLINK #1
 
 init_clock_start:
        init_clock
 
 init_clock_start:
        init_clock
-       LED_BLINK 2
+       LED_BLINK #2
 
 Normal_Boot_Continue:
 /*
 
 Normal_Boot_Continue:
 /*
@@ -165,7 +157,7 @@ STACK_Setup:
 
        @ Create MMU tables
        bl      hal_mmu_init
 
        @ Create MMU tables
        bl      hal_mmu_init
-       LED_BLINK 3
+       LED_BLINK #3
 
        /* Workaround for arm erratum #709718 */
        @ Setup PRRR so device is always mapped to non-shared
 
        /* Workaround for arm erratum #709718 */
        @ Setup PRRR so device is always mapped to non-shared
@@ -174,7 +166,7 @@ STACK_Setup:
        mcr     MMU_CP, 0, r1, c10, c2, 0 // Write Primary Region Remap Register
 
        @ Enable MMU
        mcr     MMU_CP, 0, r1, c10, c2, 0 // Write Primary Region Remap Register
 
        @ Enable MMU
-       ldr     r2, =10f
+       adr     r2, 10f
        mrc     MMU_CP, 0, r1, MMU_Control, c0
        orr     r1, r1, #7                      @ enable MMU bit
        orr     r1, r1, #0x800                  @ enable z bit
        mrc     MMU_CP, 0, r1, MMU_Control, c0
        orr     r1, r1, #7                      @ enable MMU bit
        orr     r1, r1, #0x800                  @ enable z bit
@@ -187,9 +179,9 @@ STACK_Setup:
        mcr     MMU_CP, 0, r1, MMU_Control, c0, 1
 
        mov     pc, r2                          @ Change address spaces
        mcr     MMU_CP, 0, r1, MMU_Control, c0, 1
 
        mov     pc, r2                          @ Change address spaces
+       .ltorg
        .align  5
 10:
        .align  5
 10:
-       LED_BLINK 4
        .endm   @ _platform_setup1
 
        /* AIPS setup - Only setup MPROTx registers. The PACR default values are good.*/
        .endm   @ _platform_setup1
 
        /* AIPS setup - Only setup MPROTx registers. The PACR default values are good.*/
@@ -199,7 +191,7 @@ STACK_Setup:
        * not forced to user-mode.
        */
        ldr     r0, =AIPS1_CTRL_BASE_ADDR
        * not forced to user-mode.
        */
        ldr     r0, =AIPS1_CTRL_BASE_ADDR
-       ldr     r1, AIPS1_PARAM
+       ldr     r1, =0x77777777
        str     r1, [r0, #0x00]
        str     r1, [r0, #0x04]
        ldr     r0, =AIPS2_CTRL_BASE_ADDR
        str     r1, [r0, #0x00]
        str     r1, [r0, #0x04]
        ldr     r0, =AIPS2_CTRL_BASE_ADDR
@@ -230,15 +222,18 @@ osc_ok:
        setup_pll PLL3_BASE_ADDR, 400
 
        /* Switch peripherals to PLL3 */
        setup_pll PLL3_BASE_ADDR, 400
 
        /* Switch peripherals to PLL3 */
-       ldr     r1, CCM_CBCMR_VAL1
+       ldr     r1, [r0, #CLKCTL_CBCMR]
+       bic     r1, #(3 << 12)
+       orr     r1, #(1 << 12)
        str     r1, [r0, #CLKCTL_CBCMR]
 
        str     r1, [r0, #CLKCTL_CBCMR]
 
-       ldr     r1, CCM_CBCDR_VAL1
+       ldr     r1, [r0, #CLKCTL_CBCDR]
+       orr     r1, r1, #(1 << 25)
        str     r1, [r0, #CLKCTL_CBCDR]
 1:
        /* make sure change is effective */
        ldr     r1, [r0, #CLKCTL_CDHIPR]
        str     r1, [r0, #CLKCTL_CBCDR]
 1:
        /* make sure change is effective */
        ldr     r1, [r0, #CLKCTL_CDHIPR]
-       LED_BLINK 1
+       LED_BLINK #1
        cmp     r1, #0x0
        bne     1b
 
        cmp     r1, #0x0
        bne     1b
 
@@ -256,16 +251,19 @@ osc_ok:
 #error Bad SDRAM_CLK
 #endif
        /* Switch peripheral to PLL2 */
 #error Bad SDRAM_CLK
 #endif
        /* Switch peripheral to PLL2 */
-       ldr     r1, CCM_CBCDR_VAL2
+       ldr     r1, [r0, #CLKCTL_CBCDR]
+       bic     r1, #(1 << 25)
        str     r1, [r0, #CLKCTL_CBCDR]
 
        str     r1, [r0, #CLKCTL_CBCDR]
 
-       ldr     r1, CCM_CBCMR_VAL2
+       ldr     r1, [r0, #CLKCTL_CBCMR]
+       bic     r1, #(3 << 12)
+       orr     r1, #(2 << 12)
        str     r1, [r0, #CLKCTL_CBCMR]
 
        /* make sure change is effective */
 1:
        ldr     r1, [r0, #CLKCTL_CDHIPR]
        str     r1, [r0, #CLKCTL_CBCMR]
 
        /* make sure change is effective */
 1:
        ldr     r1, [r0, #CLKCTL_CDHIPR]
-       LED_BLINK 1
+       LED_BLINK #1
        cmp     r1, #0x0
        bne     1b
 
        cmp     r1, #0x0
        bne     1b
 
@@ -289,8 +287,8 @@ osc_ok:
        ldr     r1, W_CSCMR1_VAL
        str     r1, [r0, #CLKCTL_CSCMR1]
 
        ldr     r1, W_CSCMR1_VAL
        str     r1, [r0, #CLKCTL_CSCMR1]
 
-       mov r1, #0x00000
-       str r1, [r0, #CLKCTL_CCDR]
+       mov     r1, #0x00000
+       str     r1, [r0, #CLKCTL_CCDR]
 
        /* for cko - for ARM div by 8 */
        mov     r1, #0x000A0000
 
        /* for cko - for ARM div by 8 */
        mov     r1, #0x000A0000
@@ -326,27 +324,6 @@ end_clk_init:
        ands    r1, r1, #0x1
        beq     101b
        .endm
        ands    r1, r1, #0x1
        beq     101b
        .endm
-
-       .macro  setup_sdram
-#if 0
-       /* Decrease the DRAM SDCLK pads to HIGH Drive strength */
-       ldr     r0, =IOMUXC_BASE_ADDR
-       ldr     r1, =0x000000e5
-       str     r1, [r0, #0x4b8]
-       /* Change the delay line configuration */
-       ldr     r0, =ESDCTL_BASE_ADDR
-       ldr     r1, =0x00f49400
-       str     r1, [r0, #ESDCTL_ESDCDLY1]
-       ldr     r1, =0x00f49a00
-       str     r1, [r0, #ESDCTL_ESDCDLY2]
-       ldr     r1, =0x00f49100
-       str     r1, [r0, #ESDCTL_ESDCDLY3]
-       ldr     r1, =0x00f48900
-       str     r1, [r0, #ESDCTL_ESDCDLY4]
-       ldr     r1, =0x00f49400
-       str     r1, [r0, #ESDCTL_ESDCDLY5]
-#endif
-       .endm
 #else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #define PLATFORM_SETUP1
 #endif
 #else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
 #define PLATFORM_SETUP1
 #endif
@@ -356,7 +333,7 @@ end_clk_init:
        .macro  DELAY,ms
        .endm
 #else
        .macro  DELAY,ms
        .endm
 #else
-#define CYGHWR_LED_MACRO       LED_BLINK \x
+#define CYGHWR_LED_MACRO       LED_BLINK #\x
 
        .macro  DELAY,ms
        ldr     r10, =\ms
 
        .macro  DELAY,ms
        ldr     r10, =\ms
@@ -364,7 +341,7 @@ end_clk_init:
        .endm
 
        .macro  LED_BLINK,val
        .endm
 
        .macro  LED_BLINK,val
-       ldr     r8, =\val
+       mov     r8, \val
        bl      led_blink
        .endm
 #endif
        bl      led_blink
        .endm
 #endif
@@ -380,10 +357,6 @@ end_clk_init:
        ldr     r9, [r10, #GPIO_GDIR]
        orr     r9, r9, #(1 << DEBUG_LED_BIT)
        str     r9, [r10, #GPIO_GDIR]
        ldr     r9, [r10, #GPIO_GDIR]
        orr     r9, r9, #(1 << DEBUG_LED_BIT)
        str     r9, [r10, #GPIO_GDIR]
-       // iomux
-       ldr     r10, =IOMUXC_BASE_ADDR
-       mov     r9, #LED_MUX_MODE
-       str     r9, [r10, #LED_MUX_OFFSET]
        .endm
 
 #ifdef CYGOPT_HAL_ARM_TX53_DEBUG
        .endm
 
 #ifdef CYGOPT_HAL_ARM_TX53_DEBUG
@@ -448,6 +421,7 @@ _KARO_CECFG_START:
 _KARO_CECFG_END:
        .endm
 
 _KARO_CECFG_END:
        .endm
 
+       .ltorg
        .align  5
        .ascii  "KARO TX53 " __DATE__ " " __TIME__
        .align
        .align  5
        .ascii  "KARO TX53 " __DATE__ " " __TIME__
        .align
@@ -459,18 +433,33 @@ _KARO_CECFG_END:
        (((l) >> 24) & 0x000000FF))
 
 #define MXC_DCD_ITEM(addr, val)                \
        (((l) >> 24) & 0x000000FF))
 
 #define MXC_DCD_ITEM(addr, val)                \
-       .word CPU_2_BE_32(addr) ;       \
-       .word CPU_2_BE_32(val)
+       .word   CPU_2_BE_32(addr), CPU_2_BE_32(val)
 
 #define MXC_DCD_CMD_SZ_BYTE            1
 #define MXC_DCD_CMD_SZ_SHORT           2
 #define MXC_DCD_CMD_SZ_WORD            4
 #define MXC_DCD_CMD_FLAG_WRITE         0x0
 
 #define MXC_DCD_CMD_SZ_BYTE            1
 #define MXC_DCD_CMD_SZ_SHORT           2
 #define MXC_DCD_CMD_SZ_WORD            4
 #define MXC_DCD_CMD_FLAG_WRITE         0x0
-#define MXC_DCD_CMD_FLAG_CLR           0x2
+#define MXC_DCD_CMD_FLAG_CLR           0x1
 #define MXC_DCD_CMD_FLAG_SET           0x3
 #define MXC_DCD_CMD_FLAG_SET           0x3
-#define MXC_DCD_CMD(type, flags, next) \
-       .word CPU_2_BE_32((0xcc << 24) | (((next) - .) << 8) | ((flags) << 3) | (type))
+#define MXC_DCD_CMD_FLAG_CHK_ANY       (1 << 0)
+#define MXC_DCD_CMD_FLAG_CHK_SET       (1 << 1)
+#define MXC_DCD_CMD_FLAG_CHK_CLR       (0 << 1)
+
+#define MXC_DCD_CMD_WRT(type, flags, next)                                     \
+       .word   CPU_2_BE_32((0xcc << 24) | (((next) - .) << 8) | ((flags) << 3) | (type))
+
+#define MXC_DCD_CMD_CHK(type, flags, addr, mask)                               \
+       .word   CPU_2_BE_32((0xcf << 24) | (12 << 8) | ((flags) << 3) | (type)),\
+               CPU_2_BE_32(addr), CPU_2_BE_32(mask)
 
 
+#define MXC_DCD_CMD_CHK_CNT(type, flags, addr, mask, count)                    \
+       .word   CPU_2_BE_32((0xcf << 24) | (16 << 8) | ((flags) << 3) | (type)),\
+               CPU_2_BE_32(addr), CPU_2_BE_32(mask), CPU_2_BE_32(count)
+
+#define MXC_DCD_CMD_NOP()                                                      \
+       .word   CPU_2_BE_32((0xc0 << 24) | (4 << 8))
+
+#define CK_TO_NS(ck)   (((ck) * 1000 + SDRAM_CLK / 2) / SDRAM_CLK)
 #define NS_TO_CK(ns)   (((ns) * SDRAM_CLK + 999) / 1000)
 
        .macro          CK_VAL, name, clks, offs, max
 #define NS_TO_CK(ns)   (((ns) * SDRAM_CLK + 999) / 1000)
 
        .macro          CK_VAL, name, clks, offs, max
@@ -499,92 +488,15 @@ _KARO_CECFG_END:
        .endif
        .endm
 
        .endif
        .endm
 
-#define SDRAM_TYPE_DDR2 2
-#define SDRAM_TYPE_DDR3 3
-
 #define ESDMISC_DDR_TYPE_DDR3          0
 #define ESDMISC_DDR_TYPE_LPDDR2                1
 #define ESDMISC_DDR_TYPE_DDR2          2
 
 #define ESDMISC_DDR_TYPE_DDR3          0
 #define ESDMISC_DDR_TYPE_LPDDR2                1
 #define ESDMISC_DDR_TYPE_DDR2          2
 
-#define ESDOR_CLK_PERIOD               15625   /* base clock for ESDOR values 15.625uS */
-
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
-#define SDRAM_BURST_LENGTH             4
-#define BANK_ADDR_BITS                 1
-#define COL_ADDR_BITS                  10
-#define RALAT                          4
-#define WALAT                          0
-#define ADDR_MIRROR                    0
-#define DDR_TYPE                       ESDMISC_DDR_TYPE_DDR2
+#define DIV_ROUND_UP(m,d)              (((m) + (d) - 1) / (d))
 
 
-#if SDRAM_SIZE > SZ_512M
-#define ROW_ADDR_BITS                  15
+#define CKIL_FREQ_Hz                   32768
+#define ESDOR_CLK_PERIOD_ns            (1000000000 / CKIL_FREQ_Hz / 2) /* base clock for ESDOR values */
 
 
-/* 1GiB SDRAM: MEM2G08D2DABG */
-/* ESDCFG0 0x0c */
-NS_VAL tRFC,   195, 1, 255             /* clks - 1 (0..255) */
-CK_VAL tXS,    tRFC + 1 + NS_TO_CK(10), 1, 255 /* clks - 1 (0..255) tRFC + 10 */
-CK_VAL tXP,    2, 1, 7                 /* clks - 1 (0..7) */
-CK_VAL tXPDLL /* => tXARD */, 2, 1, 15 /* clks - 1 (0..15) */
-NS_VAL tFAW,   35, 1, 31               /* clks - 1 (0..31) */
-CK_VAL tCL,    5, 3, 8                 /* clks - 3 (0..8) CAS Latency */
-
-/* ESDCFG1 0x10 */
-NS_VAL tRCD,   13, 1, 7                /* clks - 1 (0..7) */
-NS_VAL tRP,    13, 1, 7                /* clks - 1 (0..7) */
-NS_VAL tRC,    58, 1, 31               /* clks - 1 (0..31) */
-NS_VAL tRAS,   45, 1, 31               /* clks - 1 (0..31) */
-CK_VAL tRPA,   1, 0, 1                 /* clks     (0..1) */
-NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
-CK_VAL tMRD,   2, 1, 15                /* clks - 1 (0..15) */
-CK_VAL tCWL,   tCL + 3 - 1, 2, 6       /* clks - 2 (0..6) tCL - 1 */
-
-/* ESDCFG2 0x14 */
-CK_VAL tDLLK,  200, 1, 511             /* clks - 1 (0..511) */
-NS_VAL tRTP,   8, 1, 7                 /* clks - 1 (0..7) */
-NS_VAL tWTR,   8, 1, 7                 /* clks - 1 (0..7) */
-NS_VAL tRRD,   8, 1, 6                 /* clks - 1 (0..6) */
-#else
-#define ROW_ADDR_BITS                  14
-
-/* 512MiB SDRAM: V59C1G01(808) */
-/* ESDCFG0 0x0c */
-NS_VAL tRFC,   128, 1, 255             /* clks - 1 (0..255) */
-CK_VAL tXS,    tRFC + 1 + NS_TO_CK(10), 1, 255 /* clks - 1 (0..255) tRFC + 10 */
-CK_VAL tXP,    2, 1, 7                 /* clks - 1 (0..7) */
-CK_VAL tXPDLL, /* tXARD */ 2, 1, 15    /* clks - 1 (0..15) */
-NS_VAL tFAW,   50, 1, 31               /* clks - 1 (0..31) */
-CK_VAL tCL,    5, 3, 8                 /* clks - 3 (0..8) CAS Latency */
-
-/* ESDCFG1 0x10 */
-NS_VAL tRCD,   15, 1, 7                /* clks - 1 (0..7) */
-NS_VAL tRP,    15, 1, 7                /* clks - 1 (0..7) */
-NS_VAL tRC,    60, 1, 31               /* clks - 1 (0..31) */
-NS_VAL tRAS,   45, 1, 31               /* clks - 1 (0..31) */
-CK_VAL tRPA,   1, 0, 1                 /* clks     (0..1) */
-NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
-CK_VAL tMRD,   2, 1, 15                /* clks - 1 (0..15) */
-CK_VAL tCWL,   tCL + 3 - 1, 2, 6       /* clks - 2 (0..6) tCL - 1 */
-
-/* ESDCFG2 0x14 */
-CK_VAL tDLLK,  200, 1, 511             /* clks - 1 (0..511) */
-NS_VAL tRTP,   8, 1, 7                 /* clks - 1 (0..7) */
-CK_VAL tWTR,   2, 1, 7                 /* clks - 1 (0..7) */
-NS_VAL tRRD,   10, 1, 6                /* clks - 1 (0..6) */
-#endif
-
-/* ESDOR 0x30 */
-NS_VAL tXPR,   400, 1, 255             /* clks - 1 (1..255) */
-
-#define tSDE_RST                       0 /* not relevant for DDR2 */
-#define tRST_CKE                       ((200000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
-
-#define ESDSCR_MRS_VAL         (0x8000 | (3 << 4) | \
-                               ((((tCL + 3) << 4) | \
-                               (tWR << 9) | \
-                               ((1 - (SDRAM_BURST_LENGTH / 8)) << 1)) << 16))
-
-#elif CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR3
 /* DDR3 SDRAM */
 #if SDRAM_SIZE > SZ_512M
 #define BANK_ADDR_BITS                 2
 /* DDR3 SDRAM */
 #if SDRAM_SIZE > SZ_512M
 #define BANK_ADDR_BITS                 2
@@ -600,9 +512,9 @@ NS_VAL      tXPR,   400, 1, 255             /* clks - 1 (1..255) */
 /* 512/1024MiB SDRAM: NT5CB128M16P-CG */
 /* ESDCFG0 0x0c */
 NS_VAL tRFC,   160, 1, 255             /* clks - 1 (0..255) */
 /* 512/1024MiB SDRAM: NT5CB128M16P-CG */
 /* ESDCFG0 0x0c */
 NS_VAL tRFC,   160, 1, 255             /* clks - 1 (0..255) */
-CK_MAX tXS,    tRFC + 1 + NS_TO_CK(10), 5, 1, 255      /* clks - 1 (0..255) tRFC + 10 */
+CK_MAX tXS,    tRFC + 1 + NS_TO_CK(10), 5, 1, 255 /* clks - 1 (0..255) tRFC + 10 */
 CK_MAX tXP,    3, NS_TO_CK(6), 1, 7    /* clks - 1 (0..7) */ /* max(6ns, 3*CK) */
 CK_MAX tXP,    3, NS_TO_CK(6), 1, 7    /* clks - 1 (0..7) */ /* max(6ns, 3*CK) */
-CK_MAX tXPDLL, NS_TO_CK(24), 2, 1, 15          /* clks - 1 (0..15) */
+CK_MAX tXPDLL, NS_TO_CK(24), 2, 1, 15  /* clks - 1 (0..15) */
 NS_VAL tFAW,   45, 1, 31               /* clks - 1 (0..31) */
 CK_VAL tCL,    9, 3, 8                 /* clks - 3 (0..8) CAS Latency */
 
 NS_VAL tFAW,   45, 1, 31               /* clks - 1 (0..31) */
 CK_VAL tCL,    9, 3, 8                 /* clks - 3 (0..8) CAS Latency */
 
@@ -614,7 +526,7 @@ NS_VAL      tRAS,   36, 1, 31               /* clks - 1 (0..31) */
 CK_VAL tRPA,   0, 0, 1                 /* clks     (0..1) */
 NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
 CK_VAL tMRD,   4, 1, 15                /* clks - 1 (0..15) */
 CK_VAL tRPA,   0, 0, 1                 /* clks     (0..1) */
 NS_VAL tWR,    15, 1, 15               /* clks - 1 (0..15) */
 CK_VAL tMRD,   4, 1, 15                /* clks - 1 (0..15) */
-CK_VAL tCWL,   7, 2, 6                 /* clks - 2 (0..6) */
+CK_VAL tCWL,   5, 2, 6                 /* clks - 2 (0..6) */
 
 /* ESDCFG2 0x14 */
 CK_VAL tDLLK,  512, 1, 511             /* clks - 1 (0..511) */
 
 /* ESDCFG2 0x14 */
 CK_VAL tDLLK,  512, 1, 511             /* clks - 1 (0..511) */
@@ -623,51 +535,64 @@ CK_MAX    tWTR,   4, NS_TO_CK(8), 1, 7    /* clks - 1 (0..7) */
 CK_MAX tRRD,   4, NS_TO_CK(8), 1, 7    /* clks - 1 (0..7) */
 
 /* ESDOR 0x30 */
 CK_MAX tRRD,   4, NS_TO_CK(8), 1, 7    /* clks - 1 (0..7) */
 
 /* ESDOR 0x30 */
-CK_MAX tXPR,   NS_TO_CK(160 + 10), 5, 1, 255 /* max(tRFC + 10, 5CK) */
+CK_MAX tXPR,   NS_TO_CK(CK_TO_NS(tRFC + 1) + 10), 5, 1, 255 /* clks - 1 (0..255) max(tRFC + 10, 5CK) */
+
+/* ESDOTC 0x08 */
+NS_VAL tAOFPD, 9, 1, 7                 /* clks - 1 (0..7) */
+NS_VAL tAONPD, 9, 1, 7                 /* clks - 1 (0..7) */
+CK_VAL tANPD,  tCWL, 1, 15             /* clks - 1 (0..15) */
+CK_VAL tAXPD,  tCWL, 1, 15             /* clks - 1 (0..15) */
+CK_VAL tODTLon tCWL - 1, 1, 7          /* clks - 1 (0..7) */
+CK_VAL tODTLoff tCWL - 1, 1, 31        /* clks - 1 (0..31) */
+
+#define tSDE_RST                       (DIV_ROUND_UP(200000, ESDOR_CLK_PERIOD_ns) + 1)
 
 
-#define tSDE_RST                       ((200000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
-#define tRST_CKE                       ((500000 + (ESDOR_CLK_PERIOD - 1)) / ESDOR_CLK_PERIOD)
+                                       /* Add an extra (or two?) ESDOR_CLK_PERIOD_ns according to
+                                        * erroneous Erratum Engcm12377
+                                        */
+#define tRST_CKE                       (DIV_ROUND_UP(500000 + 2 * ESDOR_CLK_PERIOD_ns, ESDOR_CLK_PERIOD_ns) + 1)
 
 #define ROW_ADDR_BITS                  14
 #define COL_ADDR_BITS                  10
 
        .iflt   tWR - 7
 
 #define ROW_ADDR_BITS                  14
 #define COL_ADDR_BITS                  10
 
        .iflt   tWR - 7
-       .set    ESDSCR_MRS_VAL, (0x8000 | (3 << 4) | \
-                               (((tWR - 3) << 9) | \
-                               (((tCL + 3) - 4) << 4)) << 16)
+       .set    mrs_val, (0x8080 | \
+                       (3 << 4) /* MRS command */ | \
+                       ((1 << 8) /* DLL Reset */ | \
+                       ((tWR + 1 - 4) << 9) | \
+                       (((tCL + 3) - 4) << 4)) << 16)
        .else
        .else
-       .set    ESDSCR_MRS_VAL, (0x8000 | (3 << 4) | \
-                               ((((tWR + 1) / 2) << 9) | \
-                               (((tCL + 3) - 4) << 4)) << 16)
+       .set    mrs_val, (0x8080 | \
+                       (3 << 4) /* MRS command */ | \
+                       ((1 << 8) /* DLL Reset */ | \
+                       (((tWR + 1) / 2) << 9) | \
+                       (((tCL + 3) - 4) << 4)) << 16)
        .endif
        .endif
-
-#else
-#error Unsupported SDRAM type selected
-#endif
-
-#define ESDCFG0_VAL    (                       \
-       ((tRFC) << 24) |                        \
-       ((tXS) << 16) |                         \
-       ((tXP) << 13) |                         \
-       ((tXPDLL) << 9) |                       \
-       ((tFAW) << 4) |                         \
-       ((tCL) << 0))                           \
-
-#define ESDCFG1_VAL    (                       \
-       ((tRCD) << 29) |                        \
-       ((tRP) << 26) |                         \
-       ((tRC) << 21) |                         \
-       ((tRAS) << 16) |                        \
-       ((tRPA) << 15) |                        \
-       ((tWR) << 9) |                          \
-       ((tMRD) << 5) |                         \
-       ((tCWL) << 0))                          \
-
-#define ESDCFG2_VAL    (                       \
-       ((tDLLK) << 16) |                       \
-       ((tRTP) << 6) |                         \
-       ((tWTR) << 3) |                         \
-       ((tRRD) << 0))
+#define ESDSCR_MRS_VAL(cs)     (mrs_val | ((1 << (cs)) << 8))
+
+#define ESDCFG0_VAL    (               \
+       (tRFC << 24) |                  \
+       (tXS << 16) |                   \
+       (tXP << 13) |                   \
+       (tXPDLL << 9) |                 \
+       (tFAW << 4) |                   \
+       (tCL << 0))                     \
+
+#define ESDCFG1_VAL    (               \
+       (tRCD << 29) |                  \
+       (tRP << 26) |                   \
+       (tRC << 21) |                   \
+       (tRAS << 16) |                  \
+       (tRPA << 15) |                  \
+       (tWR << 9) |                    \
+       (tMRD << 5) |                   \
+       (tCWL << 0))                    \
+
+#define ESDCFG2_VAL    (               \
+       (tDLLK << 16) |                 \
+       (tRTP << 6) |                   \
+       (tWTR << 3) |                   \
+       (tRRD << 0))
 
 #define BL                             (SDRAM_BURST_LENGTH / 8) /* 0: 4 byte 1: 8 byte */
 #define ESDCTL_VAL                     (((ROW_ADDR_BITS - 11) << 24) | \
 
 #define BL                             (SDRAM_BURST_LENGTH / 8) /* 0: 4 byte 1: 8 byte */
 #define ESDCTL_VAL                     (((ROW_ADDR_BITS - 11) << 24) | \
@@ -685,6 +610,13 @@ CK_MAX     tXPR,   NS_TO_CK(160 + 10), 5, 1, 255 /* max(tRFC + 10, 5CK) */
 
 #define ESDOR_VAL              ((tXPR << 16) | (tSDE_RST << 8) | (tRST_CKE << 0))
 
 
 #define ESDOR_VAL              ((tXPR << 16) | (tSDE_RST << 8) | (tRST_CKE << 0))
 
+#define ESDOTC_VAL             ((tAOFPD << 27) |       \
+                               (tAONPD << 24) |        \
+                               (tANPD << 20) |         \
+                               (tAXPD << 16) |         \
+                               (tODTLon << 12) |       \
+                               (tODTLoff << 4))
+
        .macro  flash_header
 __text_start:
 fcb_start:
        .macro  flash_header
 __text_start:
 fcb_start:
@@ -702,81 +634,7 @@ fcb_start:
        .word   0       /* BI Swap disabled */
        .word   0       /* Bad Block marker offset in spare area */
 fcb_end:
        .word   0       /* BI Swap disabled */
        .word   0       /* Bad Block marker offset in spare area */
 fcb_end:
-#if 1
-       .word   0
-tRFC_VAL:
-       .byte   tRFC
-tXS_VAL:
-       .byte   tXS
-tXP_VAL:
-       .byte   tXP
-tXPDLL_VAL:
-       .byte   tXPDLL
-tFAW_VAL:
-       .byte   tFAW
-tCL_VAL:
-       .byte   tCL
-tRCD_VAL:
-       .byte   tRCD
-tRP_VAL:
-       .byte   tRP
-tRC_VAL:
-       .byte   tRC
-tRAS_VAL:
-       .byte   tRAS
-tRPA_VAL:
-       .byte   tRPA
-tWR_VAL:
-       .byte   tWR
-tMRD_VAL:
-       .byte   tMRD
-tCWL_VAL:
-       .byte   tCWL
-tDLLK_VAL:
-       .byte   tDLLK
-tRTP_VAL:
-       .byte   tRTP
-tWTR_VAL:
-       .byte   tWTR
-tRRD_VAL:
-       .byte   tRRD
-tXPR_VAL:
-       .byte   tXPR
-tSDE_RST_VAL:
-       .byte   tSDE_RST
-tRST_CKE_VAL:
-       .byte   tRST_CKE
-       .align  2
-W_ESDCTL_VAL:
-       .word   ESDCTL_VAL
-W_ESDMISC_VAL:
-       .word   ESDMISC_VAL
-W_ESDCFG0_VAL:
-       .word   ESDCFG0_VAL
-W_ESDCFG1_VAL:
-       .word   ESDCFG1_VAL
-W_ESDCFG2_VAL:
-       .word   ESDCFG2_VAL
-W_ESDOR_VAL:
-       .word   ESDOR_VAL
-W_ESDSCR_MRS_VAL:
-       .word   ESDSCR_MRS_VAL
-#endif
-#if 0
-#undef ESDCFG0_VAL
-#undef ESDCFG1_VAL
-#undef ESDMISC_VAL
-
-#define ESDCFG0_VAL 0x9f5152e3
-#define ESDCFG1_VAL 0xb68e8a63
-#define ESDMISC_VAL 0x00011740
-W_ESDMISC_VAL_FSL:
-       .word   ESDMISC_VAL
-W_ESDCFG0_VAL_FSL:
-       .word   ESDCFG0_VAL
-W_ESDCFG1_VAL_FSL:
-       .word   ESDCFG1_VAL
-#endif
+
        .org    0x400
 ivt_header:
        .word   CPU_2_BE_32((0xd1 << 24) | (32 << 8) | 0x40)
        .org    0x400
 ivt_header:
        .word   CPU_2_BE_32((0xd1 << 24) | (32 << 8) | 0x40)
@@ -799,14 +657,12 @@ image_len:
 plugin:
        .word   0
 ivt_end:
 plugin:
        .word   0
 ivt_end:
-
 #define DCD_VERSION    0x40
 
 dcd_hdr:
 #define DCD_VERSION    0x40
 
 dcd_hdr:
-       .word CPU_2_BE_32((0xd2 << 24) |
-       ((dcd_end - .) << 8) | DCD_VERSION)
+       .word   CPU_2_BE_32((0xd2 << 24) | ((dcd_end - .) << 8) | DCD_VERSION)
 dcd_start:
 dcd_start:
-       MXC_DCD_CMD(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, dcd_end)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, zq_calib)
        /* disable all irrelevant clocks */
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR0, 0xffcc0fff)
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR1, 0x000fffc3)
        /* disable all irrelevant clocks */
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR0, 0xffcc0fff)
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR1, 0x000fffc3)
@@ -818,175 +674,161 @@ dcd_start:
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR7, 0xfff00000)
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CMEOR, 0x00000000)
 
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CCGR7, 0xfff00000)
        MXC_DCD_ITEM(CCM_BASE_ADDR + CLKCTL_CMEOR, 0x00000000)
 
-       MXC_DCD_ITEM(IOMUXC_BASE_ADDR + 0x174, 0x00000011)      /* EIM_D18 => GPIO2[20] STK5-LED */
+       MXC_DCD_ITEM(IOMUXC_BASE_ADDR + LED_MUX_OFFSET, LED_MUX_MODE)   /* EIM_D18 => GPIO2[20] STK5-LED */
+       MXC_DCD_ITEM(IOMUXC_BASE_ADDR + 0x318, 0x11)    /* GPIO_1 => LCD Backlight */
 
        MXC_DCD_ITEM(0x63fd800c, 0x00000000)    /* M4IF: MUX NFC signals on WEIM */
 
        MXC_DCD_ITEM(0x63fd800c, 0x00000000)    /* M4IF: MUX NFC signals on WEIM */
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
-       /* setup SDRAM pads */
-       MXC_DCD_ITEM(0x53fa8554, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM3
-       MXC_DCD_ITEM(0x53fa8560, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM2
-       MXC_DCD_ITEM(0x53fa8594, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1
-       MXC_DCD_ITEM(0x53fa8584, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0
-
-       MXC_DCD_ITEM(0x53fa8558, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3
-       MXC_DCD_ITEM(0x53fa8568, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2
-       MXC_DCD_ITEM(0x53fa8590, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1
-       MXC_DCD_ITEM(0x53fa857c, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0
-
-       MXC_DCD_ITEM(0x53fa8564, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT1
-       MXC_DCD_ITEM(0x53fa8580, 0x00200040)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT0
-       MXC_DCD_ITEM(0x53fa8570, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_1
-       MXC_DCD_ITEM(0x53fa8578, 0x00200000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_0
-
-       MXC_DCD_ITEM(0x53fa872c, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B3DS
-       MXC_DCD_ITEM(0x53fa8728, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B2DS
-       MXC_DCD_ITEM(0x53fa871c, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B1DS
-       MXC_DCD_ITEM(0x53fa8718, 0x00200000)    @ IOMUXC_SW_PAD_CTL_GRP_B0DS
-
-       MXC_DCD_ITEM(0x53fa8574, 0x00280000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS
-       MXC_DCD_ITEM(0x53fa8588, 0x00280000)    @ IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS
-       MXC_DCD_ITEM(0x53fa86f0, 0x00280000)    @ IOMUXC_SW_PAD_CTL_GRP_ADDDS
-       MXC_DCD_ITEM(0x53fa8720, 0x00280000)    @ IOMUXC_SW_PAD_CTL_GRP_CTLDS
-
-       MXC_DCD_ITEM(0x53fa86fc, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRPKE
-
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
-       MXC_DCD_ITEM(0x53fa86f4, 0x00000200)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL - DQS DIFF mode
-       MXC_DCD_ITEM(0x53fa8714, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE - Data CMOS mode
-       MXC_DCD_ITEM(0x53fa8724, 0x06000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE - DDR_SEL=01
+#if SDRAM_CLK > 333
+       MXC_DCD_ITEM(0x53fd4014, 0x00888944)    /* CBCDR */
 #else
 #else
-       MXC_DCD_ITEM(0x53fa86f4, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL - DQS DIFF mode
-       MXC_DCD_ITEM(0x53fa8714, 0x00000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDRMODE - Data CMOS mode
-       MXC_DCD_ITEM(0x53fa8724, 0x04000000)    @ IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE - DDR_SEL=10
+       MXC_DCD_ITEM(0x53fd4014, 0x00888644)    /* CBCDR */
 #endif
 #endif
-       /* memory timing setup */
-       MXC_DCD_ITEM(0x63fd9088, 0x36353b38)
-       MXC_DCD_ITEM(0x63fd9090, 0x49434942)
-       MXC_DCD_ITEM(0x63fd90F8, 0x00000800)
-       MXC_DCD_ITEM(0x63fd907c, 0x01350138)
-       MXC_DCD_ITEM(0x63fd9080, 0x01380139)
-       MXC_DCD_ITEM(0x63fd9018, ESDMISC_VAL)   @ ESDMISC
+       MXC_DCD_ITEM(0x53fd4018, 0x00016154)    /* CBCMR */
+
+#define DDR_SEL_VAL    2
+#define DSE_VAL                5
+#define ODT_VAL                2
+
+#define DDR_SEL_SHIFT  25
+#define ODT_SHIFT      22
+#define DSE_SHIFT      19
+#define DDR_INPUT_SHIFT        9
+#define HYS_SHIFT      8
+#define PKE_SHIFT      7
+#define PUE_SHIFT      6
+#define PUS_SHIFT      4
+
+#define DDR_SEL_MASK   (DDR_SEL_VAL << DDR_SEL_SHIFT)
+#define DSE_MASK       (DSE_VAL << DSE_SHIFT)
+#define ODT_MASK       (ODT_VAL << ODT_SHIFT)
+
+#define DQM_VAL                DSE_MASK
+#define SDQS_VAL       (ODT_MASK | DSE_MASK | (1 << PUE_SHIFT))
+#define SDODT_VAL      (DSE_MASK | (0 << PKE_SHIFT) | (1 << PUE_SHIFT) | (0 << PUS_SHIFT))
+#define SDCLK_VAL      DSE_MASK
+#define SDCKE_VAL      ((1 << PKE_SHIFT) | (1 << PUE_SHIFT) | (0 << PUS_SHIFT))
+
+       MXC_DCD_ITEM(0x53fa8724, DDR_SEL_MASK) /* DDR_TYPE: DDR3 */
+       MXC_DCD_ITEM(0x53fa86f4, 0 << DDR_INPUT_SHIFT) /* DDRMODE_CTL */
+       MXC_DCD_ITEM(0x53fa8714, 0 << DDR_INPUT_SHIFT) /* GRP_DDRMODE */
+       MXC_DCD_ITEM(0x53fa86fc, 1 << PKE_SHIFT) /* GRP_DDRPKE */
+       MXC_DCD_ITEM(0x53fa8710, 0 << HYS_SHIFT) /* GRP_DDRHYS */
+       MXC_DCD_ITEM(0x53fa8708, 1 << PUE_SHIFT) /* GRP_DDRPK */
+
+       MXC_DCD_ITEM(0x53fa8584, DQM_VAL) /* DQM0 */
+       MXC_DCD_ITEM(0x53fa8594, DQM_VAL) /* DQM1 */
+       MXC_DCD_ITEM(0x53fa8560, DQM_VAL) /* DQM2 */
+       MXC_DCD_ITEM(0x53fa8554, DQM_VAL) /* DQM3 */
+
+       MXC_DCD_ITEM(0x53fa857c, SDQS_VAL) /* SDQS0 */
+       MXC_DCD_ITEM(0x53fa8590, SDQS_VAL) /* SDQS1 */
+       MXC_DCD_ITEM(0x53fa8568, SDQS_VAL) /* SDQS2 */
+       MXC_DCD_ITEM(0x53fa8558, SDQS_VAL) /* SDQS3 */
+
+       MXC_DCD_ITEM(0x53fa8580, SDODT_VAL) /* SDODT0 */
+       MXC_DCD_ITEM(0x53fa8578, SDCLK_VAL) /* SDCLK0 */
+
+       MXC_DCD_ITEM(0x53fa8564, SDODT_VAL) /* SDODT1 */
+       MXC_DCD_ITEM(0x53fa8570, SDCLK_VAL) /* SDCLK1 */
+
+       MXC_DCD_ITEM(0x53fa858c, SDCKE_VAL) /* SDCKE0 */
+       MXC_DCD_ITEM(0x53fa855c, SDCKE_VAL) /* SDCKE1 */
+
+       MXC_DCD_ITEM(0x53fa8574, DSE_MASK) /* DRAM_CAS */
+       MXC_DCD_ITEM(0x53fa8588, DSE_MASK) /* DRAM_RAS */
+
+       MXC_DCD_ITEM(0x53fa86f0, DSE_MASK) /* GRP_ADDDS */
+       MXC_DCD_ITEM(0x53fa8720, DSE_MASK) /* GRP_CTLDS */
+       MXC_DCD_ITEM(0x53fa8718, DSE_MASK) /* GRP_B0DS */
+       MXC_DCD_ITEM(0x53fa871c, DSE_MASK) /* GRP_B1DS */
+       MXC_DCD_ITEM(0x53fa8728, DSE_MASK) /* GRP_B2DS */
+       MXC_DCD_ITEM(0x53fa872c, DSE_MASK) /* GRP_B3DS */
+
+       /* calibration defaults */
+       MXC_DCD_ITEM(0x63fd904c, 0x001f001f)
+       MXC_DCD_ITEM(0x63fd9050, 0x001f001f)
+       MXC_DCD_ITEM(0x63fd907c, 0x011e011e)
+       MXC_DCD_ITEM(0x63fd9080, 0x011f0120)
+       MXC_DCD_ITEM(0x63fd9088, 0x3a393d3b)
+       MXC_DCD_ITEM(0x63fd9090, 0x3f3f3f3f)
+
+       MXC_DCD_ITEM(0x63fd9018, ESDMISC_VAL)
        MXC_DCD_ITEM(0x63fd9000, ESDCTL_VAL)
        MXC_DCD_ITEM(0x63fd900c, ESDCFG0_VAL)
        MXC_DCD_ITEM(0x63fd9010, ESDCFG1_VAL)
        MXC_DCD_ITEM(0x63fd9014, ESDCFG2_VAL)
 
        MXC_DCD_ITEM(0x63fd9000, ESDCTL_VAL)
        MXC_DCD_ITEM(0x63fd900c, ESDCFG0_VAL)
        MXC_DCD_ITEM(0x63fd9010, ESDCFG1_VAL)
        MXC_DCD_ITEM(0x63fd9014, ESDCFG2_VAL)
 
-       MXC_DCD_ITEM(0x63fd902c, 0x000026d2)    @ command delay
-       MXC_DCD_ITEM(0x63fd9030, ESDOR_VAL)     @ out of reset delays
-       MXC_DCD_ITEM(0x63fd9008, 0x12273030)    @ ODT timings
-       MXC_DCD_ITEM(0x63fd9004, 0x00030012)    @ Power down control
-
-       /*********************************
-       * DDR device configuration:
-       **********************************/
-       /* CS0 */
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
-       MXC_DCD_ITEM(0x63fd901c, 0x04008010)
-       MXC_DCD_ITEM(0x63fd901c, 0x00008020)
-       MXC_DCD_ITEM(0x63fd901c, 0x00008020)
-#endif
-       MXC_DCD_ITEM(0x63fd901c, ESDSCR_MRS_VAL)
-       //MXC_DCD_ITEM(0x63fd901c, 0x0a528030)  @ MRS: BL: 4, BT: seq, CL: 5, WR: 6
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
-       MXC_DCD_ITEM(0x63fd901c, 0x03868031)    @ EMRS(1): OCD calibration default
-       MXC_DCD_ITEM(0x63fd901c, 0x00068031)    @ EMRS(1): OCD calibration exit
-       MXC_DCD_ITEM(0x63fd901c, 0x00008032)    @ EMRS(2): 0
-#else
-       MXC_DCD_ITEM(0x63fd901c, 0x00008032)    @ MR2: 0
-       MXC_DCD_ITEM(0x63fd901c, 0x00008032)    @ MR3: 0
-       MXC_DCD_ITEM(0x63fd901c, 0x00028031)    @ MR1:
-       MXC_DCD_ITEM(0x63fd901c, 0x092080b0)    @ MR0: WHY 80b0 instead of 8030? Undocumented bit# 7?
-       MXC_DCD_ITEM(0x63fd901c, 0x04008040)
-#endif
+       MXC_DCD_ITEM(0x63fd902c, 0x000026d2)
+       MXC_DCD_ITEM(0x63fd9030, ESDOR_VAL)
+       MXC_DCD_ITEM(0x63fd9008, ESDOTC_VAL)
+       MXC_DCD_ITEM(0x63fd9004, 0x00030012)
+
+       /* MR0 - CS0 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008032) /* MRS: MR2 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: MR3 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00408031) /* MRS: MR1 */
+       MXC_DCD_ITEM(0x63fd901c, ESDSCR_MRS_VAL(0)) /* MRS: MR0 */
+       /* MR0 - CS1 */
 #if BANK_ADDR_BITS > 1
 #if BANK_ADDR_BITS > 1
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == SDRAM_TYPE_DDR2
-       MXC_DCD_ITEM(0x63fd901c, 0x04008018)
-       MXC_DCD_ITEM(0x63fd901c, 0x00008028)
-       MXC_DCD_ITEM(0x63fd901c, 0x00008028)
-#endif
-       MXC_DCD_ITEM(0x63fd901c, 0x0a528038)    @ MRS: BL: 4, BT: seq, CL: 5, WR: 6
-       MXC_DCD_ITEM(0x63fd901c, 0x03868039)    @ EMRS(1): OCD calibration default
-       MXC_DCD_ITEM(0x63fd901c, 0x00068039)    @ EMRS(1): OCD calibration exit
-       MXC_DCD_ITEM(0x63fd901c, 0x0000803a)    @ EMRS(2): 0
+       MXC_DCD_ITEM(0x63fd901c, 0x0000803a) /* MRS: MR2 */
+       MXC_DCD_ITEM(0x63fd901c, 0x0000803b) /* MRS: MR3 */
+       MXC_DCD_ITEM(0x63fd901c, 0x00408039) /* MRS: MR1 */
+       MXC_DCD_ITEM(0x63fd901c, ESDSCR_MRS_VAL(1)) /* MRS: MR0 */
 #endif
 #endif
-       MXC_DCD_ITEM(0x63fd9020, 0x00005800)
-       MXC_DCD_ITEM(0x63fd9058, 0x00033332)    @ ODT control: 50Ohms, ODT act enable
+       MXC_DCD_ITEM(0x63fd9020, 0x00005800) /* refresh interval */
+       MXC_DCD_ITEM(0x63fd9058, 0x00011112)
+
+       MXC_DCD_ITEM(0x63fd90d0, 0x00000003) /* select default compare pattern for calibration */
+
+       /* ZQ calibration */
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008040) /* MRS: ZQ calibration */
+       MXC_DCD_ITEM(0x63fd9040, 0x0539002b) /* Force ZQ calibration */
+zq_calib:
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd9040, 0x00010000)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, wl_calib)
+
+       /* Write Leveling */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd901c, 0x00848231) /* MRS: start write leveling */
        MXC_DCD_ITEM(0x63fd901c, 0x00000000)
        MXC_DCD_ITEM(0x63fd901c, 0x00000000)
-
-       MXC_DCD_ITEM(0x63fd901c, 0x00448031)    @ full drive strength, enable 50ohm ODT
-       MXC_DCD_ITEM(0x63fd901c, 0x04008018)
+       MXC_DCD_ITEM(0x63fd9048, 0x00000001)
+wl_calib:
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd9048, 0x00000001)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, dqs_calib)
+       MXC_DCD_ITEM(0x63fd901c, 0x00048031) /* MRS: end write leveling */
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
+
+       /* DQS calibration */
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd907c, 0x90000000) /* reset RD fifo and start DQS calib. */
+dqs_calib:
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd907c, 0x90000000)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, wr_dl_calib)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
+
+       /* WR DL calibration */
        MXC_DCD_ITEM(0x63fd901c, 0x00000000)
        MXC_DCD_ITEM(0x63fd901c, 0x00000000)
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd90a4, 0x00000010)
+wr_dl_calib: /* 6c4 */
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd90a4, 0x00000010)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, rd_dl_calib)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
+
+       /* RD DL calibration */
+       MXC_DCD_ITEM(0x63fd901c, 0x04008010) /* precharge all */
+       MXC_DCD_ITEM(0x63fd901c, 0x00048033) /* MRS: select MPR */
+       MXC_DCD_ITEM(0x63fd90a0, 0x00000010)
+rd_dl_calib: /* 70c */
+       MXC_DCD_CMD_CHK(MXC_DCD_CMD_SZ_WORD, 0, 0x63fd90a0, 0x00000010)
+       MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE, dcd_end)
+       MXC_DCD_ITEM(0x63fd901c, 0x00008033) /* MRS: select normal data path */
 
 
-       /* Enable ZQ calibration to tightly control the impedance of the DDR IO pads */
-       MXC_DCD_ITEM(0x63fd9040, 0x04b80003)    @ keep ZQ HW control values and enable it
-#else
-MXC_DCD_ITEM(0x53fa8554, 0x00300000)
-MXC_DCD_ITEM(0x53fa8560, 0x00300000)
-MXC_DCD_ITEM(0x53fa8594, 0x00300000)
-MXC_DCD_ITEM(0x53fa8584, 0x00300000)
-
-MXC_DCD_ITEM(0x53fa8558, 0x00f00000)
-MXC_DCD_ITEM(0x53fa8568, 0x00f00000)
-MXC_DCD_ITEM(0x53fa8590, 0x00f00000)
-MXC_DCD_ITEM(0x53fa857c, 0x00f00000)
-
-MXC_DCD_ITEM(0x53fa8564, 0x00300040)
-MXC_DCD_ITEM(0x53fa8580, 0x00300040)
-MXC_DCD_ITEM(0x53fa8570, 0x00300000)
-MXC_DCD_ITEM(0x53fa8578, 0x00300000)
-
-MXC_DCD_ITEM(0x53fa872c, 0x00300000)
-MXC_DCD_ITEM(0x53fa8728, 0x00300000)
-MXC_DCD_ITEM(0x53fa871c, 0x00300000)
-MXC_DCD_ITEM(0x53fa8718, 0x00300000)
-
-MXC_DCD_ITEM(0x53fa8574, 0x00300000)
-MXC_DCD_ITEM(0x53fa8588, 0x00300000)
-MXC_DCD_ITEM(0x53fa86f0, 0x00300000)
-MXC_DCD_ITEM(0x53fa8720, 0x00300000)
-
-MXC_DCD_ITEM(0x53fa86fc, 0x00000000)
-
-MXC_DCD_ITEM(0x53fa86f4, 0x00000000)
-MXC_DCD_ITEM(0x53fa8714, 0x00000000)
-
-MXC_DCD_ITEM(0x53fa8724, 0x04000000)
-
-MXC_DCD_ITEM(0x63fd9088, 0x35343535)
-MXC_DCD_ITEM(0x63fd9090, 0x4d444c44)
-MXC_DCD_ITEM(0x63fd907c, 0x01370138)
-MXC_DCD_ITEM(0x63fd9080, 0x013b013c)
-
-MXC_DCD_ITEM(0x63fd9018, 0x00011740)
-MXC_DCD_ITEM(0x63fd9000, 0xc3190000)
-MXC_DCD_ITEM(0x63fd900c, 0x9f5152e3)
-MXC_DCD_ITEM(0x63fd9010, 0xb68e8a63)
-MXC_DCD_ITEM(0x63fd9014, 0x01ff00db)
-
-MXC_DCD_ITEM(0x63fd902c, 0x000026d2)
-MXC_DCD_ITEM(0x63fd9030, 0x009f0e21)
-MXC_DCD_ITEM(0x63fd9008, 0x12273030)
-MXC_DCD_ITEM(0x63fd9004, 0x0002002d)
-@ MR0 - CS0
-MXC_DCD_ITEM(0x63fd901c, 0x00008032)
-MXC_DCD_ITEM(0x63fd901c, 0x00008033)
-MXC_DCD_ITEM(0x63fd901c, 0x00028031)
-MXC_DCD_ITEM(0x63fd901c, 0x092080b0)
-MXC_DCD_ITEM(0x63fd901c, 0x04008040)
-@ MR0 - CS1
-#if SDRAM_SIZE > SZ_512M
-MXC_DCD_ITEM(0x63fd901c, 0x0000803a)
-MXC_DCD_ITEM(0x63fd901c, 0x0000803b)
-MXC_DCD_ITEM(0x63fd901c, 0x00028039)
-MXC_DCD_ITEM(0x63fd901c, 0x09208138)
+       MXC_DCD_ITEM(0x63fd901c, 0x00000000)
 
 
-MXC_DCD_ITEM(0x63fd901c, 0x04008048)
-#endif
-MXC_DCD_ITEM(0x63fd9020, 0x00005800)
-MXC_DCD_ITEM(0x63fd9040, 0x04b80003)
-MXC_DCD_ITEM(0x63fd9058, 0x00022227)
-MXC_DCD_ITEM(0x63fd901c, 0x00000000)
-#endif
        MXC_DCD_ITEM(0x53fa8004, 0x00194005)    @ set LDO to 1.3V
 
        /* setup NFC pads */
        MXC_DCD_ITEM(0x53fa8004, 0x00194005)    @ set LDO to 1.3V
 
        /* setup NFC pads */
@@ -1023,21 +865,19 @@ MXC_DCD_ITEM(0x63fd901c, 0x00000000)
        MXC_DCD_ITEM(0x53fa85ac, 0x000000e4)    @ NANDF_RB0
        MXC_DCD_ITEM(0x53fa85b0, 0x00000004)    @ NANDF_CS0
 dcd_end:
        MXC_DCD_ITEM(0x53fa85ac, 0x000000e4)    @ NANDF_RB0
        MXC_DCD_ITEM(0x53fa85b0, 0x00000004)    @ NANDF_CS0
 dcd_end:
+       .ifgt   dcd_end - dcd_start - 1768
+       DCD too large!
+       .endif
        .endm
 
        .endm
 
-AIPS1_PARAM:           .word   0x77777777
 MXC_REDBOOT_ROM_START: .long   SDRAM_BASE_ADDR + SDRAM_SIZE - REDBOOT_OFFSET
 
 #if SDRAM_CLK > 333
 CCM_CBCDR_VAL1:                .word   0x02888944
 MXC_REDBOOT_ROM_START: .long   SDRAM_BASE_ADDR + SDRAM_SIZE - REDBOOT_OFFSET
 
 #if SDRAM_CLK > 333
 CCM_CBCDR_VAL1:                .word   0x02888944
-CCM_CBCMR_VAL1:                .word   0x00015154
 CCM_CBCDR_VAL2:                .word   0x00888944
 CCM_CBCDR_VAL2:                .word   0x00888944
-CCM_CBCMR_VAL2:                .word   0x00016154
 #else
 CCM_CBCDR_VAL1:                .word   0x02888644
 #else
 CCM_CBCDR_VAL1:                .word   0x02888644
-CCM_CBCMR_VAL1:                .word   0x00015154
 CCM_CBCDR_VAL2:                .word   0x00888644
 CCM_CBCDR_VAL2:                .word   0x00888644
-CCM_CBCMR_VAL2:                .word   0x00016154
 #endif
 
 W_CSCMR1_VAL:          .word   0xa6a2a020
 #endif
 
 W_CSCMR1_VAL:          .word   0xa6a2a020
index 39de7b5f3e297d5dd064c99ef6e7df55f2d38c95..d3d03b7ba4869cd69b315eaf83612e1843c4f52c 100644 (file)
@@ -602,13 +602,7 @@ void tx53_program_new_stack(void *func)
        stack_ptr = old_stack;
 }
 
        stack_ptr = old_stack;
 }
 
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-#define PMIC_NAME                      "LP3972"
-#elif CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
 #define PMIC_NAME                      "LT3598"
 #define PMIC_NAME                      "LT3598"
-#else
-#error Bad CYGNUM_HAL_ARM_TX53_SDRAM_TYPE
-#endif
 
 static int pmic_reg_read(cyg_uint8 reg)
 {
 
 static int pmic_reg_read(cyg_uint8 reg)
 {
@@ -618,6 +612,10 @@ static int pmic_reg_read(cyg_uint8 reg)
        if (ret < 0)
                diag_printf("Failed to read %s reg 0x%02x %d\n", PMIC_NAME,
                                        reg, ret);
        if (ret < 0)
                diag_printf("Failed to read %s reg 0x%02x %d\n", PMIC_NAME,
                                        reg, ret);
+#ifdef DEBUG
+       else
+               diag_printf("read %02x from reg %02x\n", ret, reg);
+#endif
        return ret;
 }
 
        return ret;
 }
 
@@ -629,47 +627,17 @@ static int pmic_reg_write(cyg_uint8 reg, cyg_uint8 val)
        if (ret)
                diag_printf("Failed to write 0x%02x to %s reg 0x%02x: %d\n",
                                        val, PMIC_NAME, reg, ret);
        if (ret)
                diag_printf("Failed to write 0x%02x to %s reg 0x%02x: %d\n",
                                        val, PMIC_NAME, reg, ret);
+#ifdef DEBUG
+       else
+               diag_printf("wrote %02x to reg %02x\n", val, reg);
+#endif
        return ret;
 }
 
        return ret;
 }
 
-#if CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2
-int tx53_fuse_voltage(int on)
-{
-       int ret;
-
-       ret = pmic_reg_read(0x81);
-       if (ret < 0)
-               return ret;
-
-       /* Try to enable FUSE_VDD by asserting LP3972 GPIO1 */
-       ret = (ret & ~0x3) | (on ? 1 : 3);
-       ret = pmic_reg_write(0x81, ret);
-       if (ret) {
-               return ret;
-       }
-       ret = pmic_reg_read(0x81);
-       if ((ret & 0x3) != (on ? 0x1 : 0x3)) {
-               return -EIO;
-       }
-       return 0;
-}
-
-#define CORE_VOLTAGE_HIGH              0x1b
-#define CORE_VOLTAGE_LOW               0x03
-#if CYGNUM_HAL_ARM_TX53_SDRAM_SIZE == SZ_512M
-#define SDRAM_SIZE_STR                 '0'
-#else
-#if CYGNUM_HAL_ARM_TX53_CPU_CLK == 1000
-#define SDRAM_SIZE_STR                 '2'
-#else
-#define SDRAM_SIZE_STR                 '1'
-#endif /* CYGNUM_HAL_ARM_TX53_CPU_CLK == 1000 */
-#endif /* CYGNUM_HAL_ARM_TX53_SDRAM_SIZE == SZ512M */
-
-#elif CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 3
 int tx53_fuse_voltage(int on)
 {
        int ret;
 int tx53_fuse_voltage(int on)
 {
        int ret;
+       int retries = 0;
 
        if (on) {
                ret = pmic_reg_read(0x33);
 
        if (on) {
                ret = pmic_reg_read(0x33);
@@ -695,80 +663,127 @@ int tx53_fuse_voltage(int on)
                        return ret;
 
                if (!(ret & (1 << 6))) {
                        return ret;
 
                if (!(ret & (1 << 6))) {
-                       ret |= 1 << 6; /* LDO4 Startup: don't wait for output < 300mV */
-                       ret = pmic_reg_write(0x12, ret);
+                       ret = pmic_reg_write(0x12, ret | (1 << 6));
                        if (ret)
                        if (ret)
-                               return -EIO;
-                       ret = pmic_reg_read(0x12);
-                       if (!(ret & (1 << 6))) {
-                               diag_printf("Could not set LT3589 LDO4 Startup control\n");
-                               return -EIO;
+                               return ret;
+               }
+
+               /* enable SW regulator control and all regulators */
+               ret = pmic_reg_write(0x10, 0xff);
+               if (ret)
+                       return ret;
+
+               for (;;) {
+                       ret = pmic_reg_read(0x13);
+                       if (ret < 0)
+                               return ret;
+                       if (ret & (1 << 7))
+                               break;
+
+#ifdef DEBUG
+                       if (retries == 0)
+                               diag_printf("Waiting for LDO4 PGOOD\n");
+#endif
+                       HAL_DELAY_US(100);
+                       if (++retries >= 1000) {
+                               diag_printf("Failed to enable LDO4\n");
+                               return -ETIMEDOUT;
                        }
                }
                        }
                }
+       } else {
+               ret = pmic_reg_write(0x10, 0xbf);
+               if (ret)
+                       return ret;
+
+               ret = pmic_reg_read(0x12);
+               if (ret < 0)
+                       return ret;
+               if (ret & (1 << 6)) {
+                       ret = pmic_reg_write(0x12, ret & ~(1 << 6));
+                       if (ret)
+                               return ret;
+               }
        }
        }
-       /* enable SW regulator control and all regulators (except LDO4, if !on) */
-       ret = pmic_reg_write(0x10, 0xbf | (!!on << 6));
-       if (ret)
-               return ret;
 
        ret = pmic_reg_read(0x10);
        if (ret < 0)
                return ret;
 
        if (!(ret & (1 << 6)) ^ !on) {
 
        ret = pmic_reg_read(0x10);
        if (ret < 0)
                return ret;
 
        if (!(ret & (1 << 6)) ^ !on) {
-               diag_printf("Could not enable LT3589 LDO4 output\n");
+               diag_printf("Could not %sable LT3589 LDO4 output\n",
+                                       on ? "en" : "dis");
                return -EIO;
        }
        return 0;
 }
 
                return -EIO;
        }
        return 0;
 }
 
-#define CORE_VOLTAGE_HIGH              0x1c
-#define CORE_VOLTAGE_LOW               0x17
-#if CYGNUM_HAL_ARM_TX53_SDRAM_SIZE == SZ_512M
-#define SDRAM_SIZE_STR                 '0'
-#else
-#define SDRAM_SIZE_STR                 '1'
-#endif
-#endif
+#define LT3589_PGOOD_MASK              (1 << 5)
+#define LT3589_SLEW_RATE(n)            (((n) & 3) << 6)
+#define CORE_VOLTAGE_1200              0x1e
+#define CORE_VOLTAGE_1000              0x19
+#define CORE_VOLTAGE_800               0x13
 
 
-void increase_core_voltage(bool high)
+int adjust_core_voltage(unsigned int clock)
 {
        int ret;
 {
        int ret;
-       const int volt = high ? CORE_VOLTAGE_HIGH : CORE_VOLTAGE_LOW;
+       int volt;
+       int retries = 0;
+
+       switch (clock) {
+       case 1200:
+               volt = CORE_VOLTAGE_1200;
+               break;
+
+       case 1000:
+               volt = CORE_VOLTAGE_1000;
+               break;
+
+       case 800:
+               volt = CORE_VOLTAGE_800;
+               break;
+
+       default:
+               if (clock > 1200) {
+                       diag_printf("No core voltage assigned for %u MHz core clock\n",
+                                               clock);
+                       return -EINVAL;
+               }
+               volt = CORE_VOLTAGE_800;
+       }
 
        ret = pmic_reg_read(0x23);
        if (ret < 0) {
 
        ret = pmic_reg_read(0x23);
        if (ret < 0) {
-               diag_printf("Failed to read core voltage: %d\n", ret);
-               return;
+               return ret;
        }
 
        }
 
-       ret = pmic_reg_write(0x23, volt);
+       ret = pmic_reg_write(0x23, volt | LT3589_SLEW_RATE(3) | LT3589_PGOOD_MASK);
        if (ret < 0) {
        if (ret < 0) {
-               diag_printf("Failed to write core voltage: %d\n", ret);
+               return ret;
        }
        }
-}
 
 
-static void display_board_type(void)
-{
-       char cpu_freq;
-       const char *ddr_type = _stringify(CYGNUM_HAL_ARM_TX53_SDRAM_TYPE);
-
-       switch (CYGNUM_HAL_ARM_TX53_CPU_CLK) {
-       case 800:
-               cpu_freq = '8';
-               break;
+       ret = pmic_reg_read(0x20);
+       if (ret < 0)
+               return ret;
 
 
-       case 1000:
-               cpu_freq = '1';
-               break;
+       /* Select V1 reference and enable slew */
+       ret = pmic_reg_write(0x20, (ret & ~(1 << 1)) | (1 << 0));
+       if (ret)
+               return ret;
 
 
-       default:
-               cpu_freq = '?';
-       }
+       do {
+               ret = pmic_reg_read(0x20);
+               if (ret < 0)
+                       return ret;
+               if (++retries >= 1000)
+                       return -ETIMEDOUT;
+               HAL_DELAY_US(100);
+       } while (ret & (1 << 0));
+       return ret;
+}
 
 
-       diag_printf("\nBoard Type: Ka-Ro TX53-%c%c%s%c\n",
-                               cpu_freq, CYGNUM_HAL_ARM_TX53_SDRAM_TYPE == 2 ? '0' : 'x',
-                               ddr_type, SDRAM_SIZE_STR);
+static void display_board_type(void)
+{
+       diag_printf("\nBoard Type: Ka-Ro TX53 v3\n");
 }
 
 static void display_board_info(void)
 }
 
 static void display_board_info(void)
index 94ac0c1ed22eb15b5a9eaaa244de44a86452975f..88d508bfd36ad7e3bb0e707b25f8ea53183d80c1 100644 (file)
@@ -56,7 +56,8 @@
 
 extern char HAL_PLATFORM_EXTRA[40];
 externC void plf_hardware_init(void);
 
 extern char HAL_PLATFORM_EXTRA[40];
 externC void plf_hardware_init(void);
-extern void increase_core_voltage(bool i);
+
+extern int adjust_core_voltage(unsigned int);
 
 #define REG8(a)                                (*(volatile unsigned char *)(a))
 #define REG16(a)                       (*(volatile unsigned short *)(a))
 
 #define REG8(a)                                (*(volatile unsigned char *)(a))
 #define REG16(a)                       (*(volatile unsigned short *)(a))
@@ -218,9 +219,6 @@ extern void increase_core_voltage(bool i);
 #define WEIM_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000DA000)
 #define NFC_IP_BASE                                    (AIPS2_BASE_ADDR + 0x000DB000)
 #define EMI_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000DBF00)
 #define WEIM_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000DA000)
 #define NFC_IP_BASE                                    (AIPS2_BASE_ADDR + 0x000DB000)
 #define EMI_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000DBF00)
-//#define MIPI_HSC_BASE_ADDR                   (AIPS2_BASE_ADDR + 0x000DC000)
-//#define ATA_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000E0000)
-//#define SIM_BASE_ADDR                                (AIPS2_BASE_ADDR + 0x000E4000)
 #define SSI3_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000E8000)
 #define FEC_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000EC000)
 #define SOC_FEC_BASE                           FEC_BASE_ADDR
 #define SSI3_BASE_ADDR                         (AIPS2_BASE_ADDR + 0x000E8000)
 #define FEC_BASE_ADDR                          (AIPS2_BASE_ADDR + 0x000EC000)
 #define SOC_FEC_BASE                           FEC_BASE_ADDR
@@ -326,14 +324,12 @@ extern void increase_core_voltage(bool i);
 #define ESDCTL_ESDCFG0                         0x04
 #define ESDCTL_ESDCTL1                         0x08
 #define ESDCTL_ESDCFG1                         0x0C
 #define ESDCTL_ESDCFG0                         0x04
 #define ESDCTL_ESDCTL1                         0x08
 #define ESDCTL_ESDCFG1                         0x0C
-#define ESDCTL_ESDMISC                         0x10
-#define ESDCTL_ESDSCR                          0x14
-#define ESDCTL_ESDCDLY1                                0x20
-#define ESDCTL_ESDCDLY2                                0x24
-#define ESDCTL_ESDCDLY3                                0x28
-#define ESDCTL_ESDCDLY4                                0x2C
-#define ESDCTL_ESDCDLY5                                0x30
-#define ESDCTL_ESDCDLYGD                       0x34
+#define ESDCTL_ESDMISC                         0x18
+#define ESDCTL_ESDSCR                          0x1c
+#define ESDCTL_ESDMRR                          0x34
+#define ESDCTL_WLGCR                           0x48
+#define ESDCTL_RDDLHWCTL                       0xa0
+#define ESDCTL_WRDLHWCTL                       0xa4
 
 /* DPLL */
 #define PLL_DP_CTL                                     0x00
 
 /* DPLL */
 #define PLL_DP_CTL                                     0x00
@@ -617,8 +613,6 @@ extern unsigned int get_peri_clock(enum peri_clocks clk);
 
 typedef unsigned int nfc_setup_func_t(unsigned int, unsigned int, unsigned int, unsigned int);
 
 
 typedef unsigned int nfc_setup_func_t(unsigned int, unsigned int, unsigned int, unsigned int);
 
-extern void increase_core_voltage(bool);
-
 #endif //#if !defined(__ASSEMBLER__)
 
 #endif /* __HAL_SOC_H__ */
 #endif //#if !defined(__ASSEMBLER__)
 
 #endif /* __HAL_SOC_H__ */
index 7ca808aece46813fdc6e534a0e6a9aff09152946..39cf6476914af5be2d6186afc55ee7993732fc96 100644 (file)
@@ -324,10 +324,14 @@ int configure_clock(u32 ref, u32 core_clk, u32 emi_clk)
 
                if (core_clk > 800000000) {
                        div_core = 3;
 
                if (core_clk > 800000000) {
                        div_core = 3;
-                       increase_core_voltage(true);
                } else {
                        div_core = 2;
                } else {
                        div_core = 2;
-                       increase_core_voltage(false);
+               }
+               ret = adjust_core_voltage(core_clk / 1000000);
+               if (ret) {
+                       diag_printf("Failed to adjust core voltage for %u MHz\n",
+                                               core_clk / 1000000);
+                       return ret;
                }
                cyg_hal_plf_serial_stop();
 
                }
                cyg_hal_plf_serial_stop();
 
index 3a0c60acae5998a5ccd263cabbbea25a861eeab8..551bb4aeb571465fea307e635c4510f7ddfb30f8 100644 (file)
@@ -44,9 +44,9 @@
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2000-07-14
 // Author(s):    gthomas
 // Contributors: gthomas
 // Date:         2000-07-14
-// Purpose:      
-// Description:  
-//              
+// Purpose:
+// Description:
+//
 // This code is part of RedBoot (tm).
 //
 //####DESCRIPTIONEND####
 // This code is part of RedBoot (tm).
 //
 //####DESCRIPTIONEND####
@@ -69,7 +69,7 @@
 #define MAX_RETRIES    8
 
 static bootp_header_t *bp_info;
 #define MAX_RETRIES    8
 
 static bootp_header_t *bp_info;
-  
+
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 static const unsigned char dhcpCookie[] = {99,130,83,99};
 static const unsigned char dhcpEnd[] = {255};
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 static const unsigned char dhcpCookie[] = {99,130,83,99};
 static const unsigned char dhcpEnd[] = {255};
@@ -78,89 +78,89 @@ static const unsigned char dhcpRequest[] = {53,1,3};
 static const unsigned char dhcpRequestIP[] = {50,4};
 static const unsigned char dhcpParamRequestList[] = {55,3,1,3,6};
 static enum {
 static const unsigned char dhcpRequestIP[] = {50,4};
 static const unsigned char dhcpParamRequestList[] = {55,3,1,3,6};
 static enum {
-    DHCP_NONE = 0,
-    DHCP_DISCOVER,
-    DHCP_OFFER,
-    DHCP_REQUEST,
-    DHCP_ACK
+       DHCP_NONE = 0,
+       DHCP_DISCOVER,
+       DHCP_OFFER,
+       DHCP_REQUEST,
+       DHCP_ACK
 } dhcpState;
 #endif
 
 static void
 bootp_handler(udp_socket_t *skt, void *buf, int len,
 } dhcpState;
 #endif
 
 static void
 bootp_handler(udp_socket_t *skt, void *buf, int len,
-             ip_route_t *src_route, word src_port)
+                       ip_route_t *src_route, word src_port)
 {
 {
-    bootp_header_t *b;
+       bootp_header_t *b;
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    unsigned char *p, expected = 0;
+       unsigned char *p, expected = 0;
 #endif
 
 #endif
 
-    b = buf;
-    if (bp_info) {
-        memset(bp_info,0,sizeof *bp_info);
-        if (len > sizeof *bp_info)
-            len = sizeof *bp_info;
-        memcpy(bp_info, b, len);
-    }
+       b = buf;
+       if (bp_info) {
+               memset(bp_info,0,sizeof *bp_info);
+               if (len > sizeof *bp_info)
+                       len = sizeof *bp_info;
+               memcpy(bp_info, b, len);
+       }
+
+       // Only accept pure REPLY responses
+       if (b->bp_op != BOOTREPLY)
+               return;
+
+       // Must be sent to me, as well!
+       if (memcmp(b->bp_chaddr, __local_enet_addr, 6))
+               return;
 
 
-    // Only accept pure REPLY responses
-    if (b->bp_op != BOOTREPLY)
-      return;
-    
-    // Must be sent to me, as well!
-    if (memcmp(b->bp_chaddr, __local_enet_addr, 6))
-      return;
-        
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    p = b->bp_vend;
-    if (memcmp(p, dhcpCookie, sizeof(dhcpCookie)))
-      return;
-    p += 4;
+       p = b->bp_vend;
+       if (memcmp(p, dhcpCookie, sizeof(dhcpCookie)))
+               return;
+       p += 4;
 
 
-    // Find the DHCP Message Type tag
-    while (*p != TAG_DHCP_MESS_TYPE) {
-        p += p[1] + 2;
-        if (p >= (unsigned char*)b + sizeof(*bp_info))
-            return;
-    }
+       // Find the DHCP Message Type tag
+       while (*p != TAG_DHCP_MESS_TYPE) {
+               p += p[1] + 2;
+               if (p >= (unsigned char*)b + sizeof(*bp_info))
+                       return;
+       }
 
 
-    p += 2;
+       p += 2;
 
 
-    switch (dhcpState) {
-    case DHCP_DISCOVER:
-        // The discover message has been sent, only accept an offer reply
-        if (*p == DHCP_MESS_TYPE_OFFER) {
-            dhcpState = DHCP_OFFER;
-            return;
-        } else {
-            expected = DHCP_MESS_TYPE_OFFER;
-        }
-        break;
-    case DHCP_REQUEST:
-        // The request message has been sent, only accept an ack reply
-        if (*p == DHCP_MESS_TYPE_ACK) {
-            dhcpState = DHCP_ACK;
-            return;
-        } else {
-            expected = DHCP_MESS_TYPE_ACK;
-        }
-        break;
-    case DHCP_NONE:
-    case DHCP_OFFER:
-    case DHCP_ACK:
-        // Quitely ignore these - they indicate repeated message from server
-        return;
-    }
-    // See if we've been NAK'd - if so, give up and try again
-    if (*p == DHCP_MESS_TYPE_NAK) {
-        dhcpState = DHCP_NONE;
-        return;
-    }
-    diag_printf("DHCP reply: %d, not %d\n", (int)*p, (int)expected);
-    return;
+       switch (dhcpState) {
+       case DHCP_DISCOVER:
+               // The discover message has been sent, only accept an offer reply
+               if (*p == DHCP_MESS_TYPE_OFFER) {
+                       dhcpState = DHCP_OFFER;
+                       return;
+               } else {
+                       expected = DHCP_MESS_TYPE_OFFER;
+               }
+               break;
+       case DHCP_REQUEST:
+               // The request message has been sent, only accept an ack reply
+               if (*p == DHCP_MESS_TYPE_ACK) {
+                       dhcpState = DHCP_ACK;
+                       return;
+               } else {
+                       expected = DHCP_MESS_TYPE_ACK;
+               }
+               break;
+       case DHCP_NONE:
+       case DHCP_OFFER:
+       case DHCP_ACK:
+               // Quietly ignore these - they indicate repeated message from server
+               return;
+       }
+       // See if we've been NAK'd - if so, give up and try again
+       if (*p == DHCP_MESS_TYPE_NAK) {
+               dhcpState = DHCP_NONE;
+               return;
+       }
+       diag_printf("DHCP reply: %d, not %d\n", (int)*p, (int)expected);
+       return;
 #else
 #else
-    // Simple BOOTP - this is all there is!
-    memcpy(__local_ip_addr, &b->bp_yiaddr, 4);
+       // Simple BOOTP - this is all there is!
+       memcpy(__local_ip_addr, &b->bp_yiaddr, 4);
 #endif
 }
 
 #endif
 }
 
@@ -183,136 +183,136 @@ static int get_xid(void)
 int
 __bootp_find_local_ip(bootp_header_t *info)
 {
 int
 __bootp_find_local_ip(bootp_header_t *info)
 {
-    udp_socket_t udp_skt;
-    bootp_header_t b;
-    ip_route_t     r;
-    int            retry;
-    unsigned long  start;
-    ip_addr_t saved_ip_addr;
+       udp_socket_t udp_skt;
+       bootp_header_t b;
+       ip_route_t     r;
+       int            retry;
+       unsigned long  start;
+       ip_addr_t saved_ip_addr;
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    unsigned char *p;
-    int oldState;
+       unsigned char *p;
+       int oldState;
 #endif
 #endif
-    int txSize;
-    bool abort = false;
+       int txSize;
+       bool abort = false;
 
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-    dhcpState = DHCP_NONE;
+       dhcpState = DHCP_NONE;
 #endif
 
 #endif
 
-    // Where we want the results saved
-    bp_info = info;
-    // Preserve any IP address we currently have, just in case
-    memcpy(saved_ip_addr, __local_ip_addr, sizeof(__local_ip_addr));
+       // Where we want the results saved
+       bp_info = info;
+       // Preserve any IP address we currently have, just in case
+       memcpy(saved_ip_addr, __local_ip_addr, sizeof(__local_ip_addr));
 
 
-    // fill out route for a broadcast
-    r.ip_addr[0] = 255;
-    r.ip_addr[1] = 255;
-    r.ip_addr[2] = 255;
-    r.ip_addr[3] = 255;
-    r.enet_addr[0] = 255;
-    r.enet_addr[1] = 255;
-    r.enet_addr[2] = 255;
-    r.enet_addr[3] = 255;
-    r.enet_addr[4] = 255;
-    r.enet_addr[5] = 255;
+       // fill out route for a broadcast
+       r.ip_addr[0] = 255;
+       r.ip_addr[1] = 255;
+       r.ip_addr[2] = 255;
+       r.ip_addr[3] = 255;
+       r.enet_addr[0] = 255;
+       r.enet_addr[1] = 255;
+       r.enet_addr[2] = 255;
+       r.enet_addr[3] = 255;
+       r.enet_addr[4] = 255;
+       r.enet_addr[5] = 255;
 
 
-    // setup a socket listener for bootp replies
-    __udp_install_listener(&udp_skt, IPPORT_BOOTPC, bootp_handler);
+       // setup a socket listener for bootp replies
+       __udp_install_listener(&udp_skt, IPPORT_BOOTPC, bootp_handler);
 
 
-    retry = MAX_RETRIES;  
-    do {
+       retry = MAX_RETRIES;
+       do {
        start = MS_TICKS();
 
        start = MS_TICKS();
 
-        // Build up the BOOTP/DHCP request
-        memset(&b, 0, sizeof(b));
-        b.bp_op = BOOTREQUEST;
-        b.bp_htype = HTYPE_ETHERNET;
-        b.bp_hlen = 6;
-        b.bp_xid = get_xid();
-        memcpy(b.bp_chaddr, __local_enet_addr, 6);
-        memset(__local_ip_addr, 0, sizeof(__local_ip_addr));
-         
+               // Build up the BOOTP/DHCP request
+               memset(&b, 0, sizeof(b));
+               b.bp_op = BOOTREQUEST;
+               b.bp_htype = HTYPE_ETHERNET;
+               b.bp_hlen = 6;
+               b.bp_xid = get_xid();
+               memcpy(b.bp_chaddr, __local_enet_addr, 6);
+               memset(__local_ip_addr, 0, sizeof(__local_ip_addr));
+
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-        p = b.bp_vend;
-        switch (dhcpState) {
-        case DHCP_NONE:
-        case DHCP_DISCOVER:
-            AddOption(p,dhcpCookie);
-            AddOption(p,dhcpDiscover);
-            AddOption(p,dhcpParamRequestList);
-            AddOption(p,dhcpEnd);
-            dhcpState = DHCP_DISCOVER;
-            break;
-        case DHCP_OFFER:
-            retry = MAX_RETRIES;
-        case DHCP_REQUEST:
-            b.bp_xid = bp_info->bp_xid;  // Match what server sent
-            AddOption(p,dhcpCookie);
-            AddOption(p,dhcpRequest);
-            AddOption(p,dhcpRequestIP);
-            memcpy(p, &bp_info->bp_yiaddr, 4);  p += 4;  // Ask for the address just given
-            AddOption(p,dhcpParamRequestList);
-            AddOption(p,dhcpEnd);
-            dhcpState = DHCP_REQUEST;
-            memset(&b.bp_yiaddr, 0xFF, 4);
-            memset(&b.bp_siaddr, 0xFF, 4);
-            memset(&b.bp_yiaddr, 0x00, 4);
-            memset(&b.bp_siaddr, 0x00, 4);
-            break;
-        case DHCP_ACK:
-            // Ignore these states (they won't happen)
-            break;
-        }
-     
-        // Some servers insist on a minimum amount of "vendor" data
-        if (p < &b.bp_vend[BP_MIN_VEND_SIZE]) p = &b.bp_vend[BP_MIN_VEND_SIZE];
-        txSize = p - (unsigned char*)&b;
-        oldState = dhcpState;
+               p = b.bp_vend;
+               switch (dhcpState) {
+               case DHCP_NONE:
+               case DHCP_DISCOVER:
+                       AddOption(p, dhcpCookie);
+                       AddOption(p, dhcpDiscover);
+                       AddOption(p, dhcpParamRequestList);
+                       AddOption(p, dhcpEnd);
+                       dhcpState = DHCP_DISCOVER;
+                       break;
+               case DHCP_OFFER:
+                       retry = MAX_RETRIES;
+               case DHCP_REQUEST:
+                       b.bp_xid = bp_info->bp_xid;  // Match what server sent
+                       AddOption(p, dhcpCookie);
+                       AddOption(p, dhcpRequest);
+                       AddOption(p, dhcpRequestIP);
+                       memcpy(p, &bp_info->bp_yiaddr, 4);  p += 4;  // Ask for the address just given
+                       AddOption(p,dhcpParamRequestList);
+                       AddOption(p,dhcpEnd);
+                       dhcpState = DHCP_REQUEST;
+                       memset(&b.bp_yiaddr, 0xFF, 4);
+                       memset(&b.bp_siaddr, 0xFF, 4);
+                       memset(&b.bp_yiaddr, 0x00, 4);
+                       memset(&b.bp_siaddr, 0x00, 4);
+                       break;
+               case DHCP_ACK:
+                       // Ignore these states (they won't happen)
+                       break;
+               }
+
+               // Some servers insist on a minimum amount of "vendor" data
+               if (p < &b.bp_vend[BP_MIN_VEND_SIZE]) p = &b.bp_vend[BP_MIN_VEND_SIZE];
+               txSize = p - (unsigned char*)&b;
+               oldState = dhcpState;
 #else
 #else
-        txSize = sizeof(b);
+               txSize = sizeof(b);
 #endif
 
        __udp_send((char *)&b, txSize, &r, IPPORT_BOOTPS, IPPORT_BOOTPC);
 
 #endif
 
        __udp_send((char *)&b, txSize, &r, IPPORT_BOOTPS, IPPORT_BOOTPC);
 
-        // If we're retrying, inform the user
-        if (retry == (MAX_RETRIES - 1))
-            diag_printf("... waiting for BOOTP information\n");
+               // If we're retrying, inform the user
+               if (retry == (MAX_RETRIES - 1))
+                       diag_printf("... waiting for BOOTP information\n");
 
        do {
 
        do {
-           __enet_poll();
+               __enet_poll();
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
 #ifdef CYGSEM_REDBOOT_NETWORKING_DHCP
-            if (dhcpState != oldState) {
-                if (dhcpState == DHCP_ACK) {
-                    unsigned char *end;
-                    int optlen;
-                    // Address information has now arrived!
-                    memcpy(__local_ip_addr, &bp_info->bp_yiaddr, 4);
+                       if (dhcpState != oldState) {
+                               if (dhcpState == DHCP_ACK) {
+                                       unsigned char *end;
+                                       int optlen;
+                                       // Address information has now arrived!
+                                       memcpy(__local_ip_addr, &bp_info->bp_yiaddr, 4);
 #ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
 #ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-                    memcpy(__local_ip_gate, &bp_info->bp_giaddr, 4);
+                                       memcpy(__local_ip_gate, &bp_info->bp_giaddr, 4);
 #endif
 #endif
-                    p = bp_info->bp_vend+4;
-                    end = (unsigned char *)bp_info+sizeof(*bp_info);
-                    while (p < end) {
-                        unsigned char tag = *p;
-                        if (tag == TAG_END)
-                            break;
-                        if (tag == TAG_PAD)
-                            optlen = 1;
-                        else {
-                            optlen = p[1];
-                            p += 2;
-                            switch (tag) {
+                                       p = bp_info->bp_vend+4;
+                                       end = (unsigned char *)bp_info+sizeof(*bp_info);
+                                       while (p < end) {
+                                               unsigned char tag = *p;
+                                               if (tag == TAG_END)
+                                                       break;
+                                               if (tag == TAG_PAD)
+                                                       optlen = 1;
+                                               else {
+                                                       optlen = p[1];
+                                                       p += 2;
+                                                       switch (tag) {
 #ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
 #ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
-                            case TAG_SUBNET_MASK:  // subnet mask
-                                memcpy(__local_ip_mask,p,4); 
-                                break;
-                            case TAG_GATEWAY:  // router
-                                memcpy(__local_ip_gate,p,4); 
-                                break;
+                                                       case TAG_SUBNET_MASK:  // subnet mask
+                                                               memcpy(__local_ip_mask,p,4);
+                                                               break;
+                                                       case TAG_GATEWAY:  // router
+                                                               memcpy(__local_ip_gate,p,4);
+                                                               break;
 #endif
 #ifdef CYGPKG_REDBOOT_NETWORKING_DNS
 #endif
 #ifdef CYGPKG_REDBOOT_NETWORKING_DNS
-                           case TAG_DOMAIN_SERVER:
+                               case TAG_DOMAIN_SERVER:
 //                             diag_printf(" DNS server found!\n");
                                memcpy(&__bootp_dns_addr, p, 4);
                                __bootp_dns_set = 1;
 //                             diag_printf(" DNS server found!\n");
                                memcpy(&__bootp_dns_addr, p, 4);
                                __bootp_dns_set = 1;
@@ -329,43 +329,41 @@ __bootp_find_local_ip(bootp_header_t *info)
                                                                break;
 #endif //CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN
 #endif //CYGPKG_REDBOOT_NETWORKING_DNS
                                                                break;
 #endif //CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN
 #endif //CYGPKG_REDBOOT_NETWORKING_DNS
-                            default:
-                                break;
-                            }
-                        }
-                        p += optlen;
-                    }
-                    __udp_remove_listener(IPPORT_BOOTPC);
-                    return 0;
-                } else {
-                    break;  // State changed, handle it
-                }
-            }
+                                                       default:
+                                                               break;
+                                                       }
+                                               }
+                                               p += optlen;
+                                       }
+                                       __udp_remove_listener(IPPORT_BOOTPC);
+                                       return 0;
+                               } else {
+                                       break;  // State changed, handle it
+                               }
+                       }
 #else
 #else
-            // All done, if address response has arrived
-           if (__local_ip_addr[0] || __local_ip_addr[1] ||
+                       // All done, if address response has arrived
+               if (__local_ip_addr[0] || __local_ip_addr[1] ||
                __local_ip_addr[2] || __local_ip_addr[3]) {
                /* success */
                __udp_remove_listener(IPPORT_BOOTPC);
                return 0;
                __local_ip_addr[2] || __local_ip_addr[3]) {
                /* success */
                __udp_remove_listener(IPPORT_BOOTPC);
                return 0;
-           }
+               }
 #endif
 #endif
-           if (retry < MAX_RETRIES) {
+               if (retry < MAX_RETRIES) {
                if (_rb_break(1)) {
                if (_rb_break(1)) {
-                   // The user typed ^C on the console
-                   abort = true;
-                   break;
+                       // The user typed ^C on the console
+                       abort = true;
+                       break;
                }
                start--; /* account for time spent in _rb_break() */
                }
                start--; /* account for time spent in _rb_break() */
-           }
+               }
        } while ((int)(MS_TICKS_DELAY() - start) < RETRY_TIME);
        } while ((int)(MS_TICKS_DELAY() - start) < RETRY_TIME);
-    } while (!abort && (retry-- > 0));
+       } while (!abort && (retry-- > 0));
 
 
-    // timed out
-    __udp_remove_listener(IPPORT_BOOTPC);
-    // Restore any previous IP address
-    memcpy(__local_ip_addr, saved_ip_addr, sizeof(__local_ip_addr));
-    return -1;
+       // timed out
+       __udp_remove_listener(IPPORT_BOOTPC);
+       // Restore any previous IP address
+       memcpy(__local_ip_addr, saved_ip_addr, sizeof(__local_ip_addr));
+       return -1;
 }
 }
-
-
index dc26041d133a12dfc6281af055f8f34305a1114c..6d2171fc4720a6dc7cec5a7f33a29dc2d4be7db0 100755 (executable)
@@ -440,11 +440,11 @@ void setup_drv_globals(ce_driver_globals *drv_glb)
        // Local IP address
        memcpy(&drv_glb->ipAddr, __local_ip_addr, sizeof(__local_ip_addr));
 
        // Local IP address
        memcpy(&drv_glb->ipAddr, __local_ip_addr, sizeof(__local_ip_addr));
 
+#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Subnet mask
        memcpy(&drv_glb->ipMask, __local_ip_mask, sizeof(__local_ip_mask));
 
        // Gateway config
        // Subnet mask
        memcpy(&drv_glb->ipMask, __local_ip_mask, sizeof(__local_ip_mask));
 
        // Gateway config
-#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Getway IP address
        memcpy(&drv_glb->ipGate, __local_ip_gate, sizeof(__local_ip_gate));
 #endif
        // Getway IP address
        memcpy(&drv_glb->ipGate, __local_ip_gate, sizeof(__local_ip_gate));
 #endif
@@ -470,11 +470,11 @@ void setup_std_drv_globals(ce_std_driver_globals *std_drv_glb)
        // Local IP address
        memcpy(&std_drv_glb->kitl.ipAddress, __local_ip_addr, sizeof(__local_ip_addr));
 
        // Local IP address
        memcpy(&std_drv_glb->kitl.ipAddress, __local_ip_addr, sizeof(__local_ip_addr));
 
+#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Subnet mask
        memcpy(&std_drv_glb->kitl.ipMask, __local_ip_mask, sizeof(__local_ip_mask));
 
        // Gateway config
        // Subnet mask
        memcpy(&std_drv_glb->kitl.ipMask, __local_ip_mask, sizeof(__local_ip_mask));
 
        // Gateway config
-#ifdef CYGSEM_REDBOOT_NETWORKING_USE_GATEWAY
        // Getway IP address
        memcpy(&std_drv_glb->kitl.ipRoute, __local_ip_gate, sizeof(__local_ip_gate));
 #endif
        // Getway IP address
        memcpy(&std_drv_glb->kitl.ipRoute, __local_ip_gate, sizeof(__local_ip_gate));
 #endif
index 7c642df5ec8bdef2fe0462e0abdb3211b2e5b49f..469af12f776ffbc72632c469d8cbba367064352e 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //==========================================================================
 //
 
 //==========================================================================
 //
@@ -8,32 +8,32 @@
 //
 //==========================================================================
 //####COPYRIGHTBEGIN####
 //
 //==========================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002, 2003 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002, 2003 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //==========================================================================
 //####COPYRIGHTEND####
 //==========================================================================
-//#####DESCRIPTIONBEGIN####                                             
+//#####DESCRIPTIONBEGIN####
 //
 // Author(s):           bartv
 // Contributors:        bartv
 //
 // Author(s):           bartv
 // Contributors:        bartv
@@ -43,7 +43,7 @@
 //==========================================================================
 
 //}}}
 //==========================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include <string.h>
 
 // ----------------------------------------------------------------------------
 #include <string.h>
@@ -61,7 +61,7 @@
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlBuildLoadableBody);
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlBuildLoadableBody);
@@ -70,9 +70,9 @@ CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlDefineLoadableBody);
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlDefinableBody);
 
 //}}}
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlDefinableBody);
 
 //}}}
-//{{{  CdlBuildableBody                 
+//{{{  CdlBuildableBody
 
 
-//{{{  Basics                           
+//{{{  Basics
 
 // ----------------------------------------------------------------------------
 // There is little data specific to a buildable. The only distinguishing
 
 // ----------------------------------------------------------------------------
 // There is little data specific to a buildable. The only distinguishing
@@ -87,7 +87,7 @@ CdlBuildableBody::CdlBuildableBody()
     // There is no data to initialize yet
     cdlbuildablebody_cookie = CdlBuildableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     // There is no data to initialize yet
     cdlbuildablebody_cookie = CdlBuildableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -100,7 +100,7 @@ CdlBuildableBody::~CdlBuildableBody()
 
     cdlbuildablebody_cookie = CdlBuildableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdlbuildablebody_cookie = CdlBuildableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -121,14 +121,14 @@ bool
 CdlBuildableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlBuildableBody_Magic != cdlbuildablebody_cookie) {
 CdlBuildableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlBuildableBody_Magic != cdlbuildablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal);
 }
 
 //}}}
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Add and check property parsers   
+//{{{  Add and check property parsers
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -139,30 +139,30 @@ CdlBuildableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntry>&
 
     static CdlInterpreterCommandEntry commands[] =
     {
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("compile",            &CdlBuildableBody::parse_compile    ),
-        CdlInterpreterCommandEntry("object",             &CdlBuildableBody::parse_object     ),
-        CdlInterpreterCommandEntry("make_object",        &CdlBuildableBody::parse_make_object),
-        CdlInterpreterCommandEntry("make",               &CdlBuildableBody::parse_make       ),
-        CdlInterpreterCommandEntry("build_proc",         &CdlBuildableBody::parse_build_proc ),
-        CdlInterpreterCommandEntry("",                   0                                   ),
+       CdlInterpreterCommandEntry("compile",            &CdlBuildableBody::parse_compile    ),
+       CdlInterpreterCommandEntry("object",             &CdlBuildableBody::parse_object     ),
+       CdlInterpreterCommandEntry("make_object",        &CdlBuildableBody::parse_make_object),
+       CdlInterpreterCommandEntry("make",               &CdlBuildableBody::parse_make       ),
+       CdlInterpreterCommandEntry("build_proc",         &CdlBuildableBody::parse_build_proc ),
+       CdlInterpreterCommandEntry("",                   0                                   ),
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -179,14 +179,14 @@ CdlBuildableBody::check_properties(CdlInterpreter interp)
     // TODO: check that the relevant sources files exist,
     //       unless marked appropriately (build_proc can create
     //       new source files).
     // TODO: check that the relevant sources files exist,
     //       unless marked appropriately (build_proc can create
     //       new source files).
-    
+
     CdlNodeBody::check_properties(interp);
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Property parsers                 
+//{{{  Property parsers
 
 // ----------------------------------------------------------------------------
 // Syntax: compile <file1 file2 ...>
 
 // ----------------------------------------------------------------------------
 // Syntax: compile <file1 file2 ...>
@@ -210,16 +210,16 @@ CdlBuildableBody::check_properties(CdlInterpreter interp)
 // scheme.
 
 int
 // scheme.
 
 int
-CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const charargv[])
+CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_compile", "result %d");
 {
     CYG_REPORT_FUNCNAMETYPE("parse_compile", "result %d");
-    static char* options[] = {
-        "library:",
-        0
+    static const char *options[] = {
+       "library:",
+       0
     };
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_Compile, options, 0, true);
     };
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_Compile, options, 0, true);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -232,7 +232,7 @@ CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char* arg
 //         rules
 //
 // This utility function takes a single string of this form and breaks
 //         rules
 //
 // This utility function takes a single string of this form and breaks
-// it down into its constituent parts. 
+// it down into its constituent parts.
 //
 // NOTE: this will need lots of extra code in future to allow for
 // escaped characters, spaces in filenames, etc. For now just keep
 //
 // NOTE: this will need lots of extra code in future to allow for
 // escaped characters, spaces in filenames, etc. For now just keep
@@ -240,7 +240,7 @@ CdlBuildableBody::parse_compile(CdlInterpreter interp, int argc, const char* arg
 
 bool
 CdlBuildableBody::split_custom_build_step(std::string str_data, std::string& target, std::string& deps, std::string& rules,
 
 bool
 CdlBuildableBody::split_custom_build_step(std::string str_data, std::string& target, std::string& deps, std::string& rules,
-                                          std::string& error_msg)
+                                         std::string& error_msg)
 {
     CYG_REPORT_FUNCNAMETYPE("CdlBuildable::split_custom_build_step", "result %d");
 
 {
     CYG_REPORT_FUNCNAMETYPE("CdlBuildable::split_custom_build_step", "result %d");
 
@@ -253,90 +253,90 @@ CdlBuildableBody::split_custom_build_step(std::string str_data, std::string& tar
 
     // Skip any leading white space, and make sure that this leaves some real data.
     while (('\0' != *data) && isspace(*data)) {
 
     // Skip any leading white space, and make sure that this leaves some real data.
     while (('\0' != *data) && isspace(*data)) {
-        data++;
+       data++;
     }
     if ('\0' == *data) {
     }
     if ('\0' == *data) {
-        error_msg = "no data in custom build_step";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "no data in custom build_step";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Now extract the target. This consists of any sequence of characters
     // upto space, tab, colon.
     for ( ; ('\0' != *data) && (':' != *data) && (' ' != *data) && ('\t' != *data); data++) {
     }
 
     // Now extract the target. This consists of any sequence of characters
     // upto space, tab, colon.
     for ( ; ('\0' != *data) && (':' != *data) && (' ' != *data) && ('\t' != *data); data++) {
-        target += *data;
+       target += *data;
     }
     // Discard any spaces or tabs, they are of no interest
     while ((' ' == *data) || ('\t' == *data)) {
     }
     // Discard any spaces or tabs, they are of no interest
     while ((' ' == *data) || ('\t' == *data)) {
-        data++;
+       data++;
     }
     // The current character should be a colon
     if (':' != *data) {
     }
     // The current character should be a colon
     if (':' != *data) {
-        error_msg = "expecting a colon `;' after the target `" + target + "'";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "expecting a colon `;' after the target `" + target + "'";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Move past the colon, and skip any further spaces or tabs
     data++;
     while (('\0' != *data) && ((' ' == *data) || ('\t' == *data))) {
     }
 
     // Move past the colon, and skip any further spaces or tabs
     data++;
     while (('\0' != *data) && ((' ' == *data) || ('\t' == *data))) {
-        data++;
+       data++;
     }
 
     // Everything from here until the end of line should be part of the deps field,
     }
 
     // Everything from here until the end of line should be part of the deps field,
-    // including white space. 
+    // including white space.
     while (('\0' != *data) && ('\n' != *data) && (';' != *data)) {
     while (('\0' != *data) && ('\n' != *data) && (';' != *data)) {
-        deps += *data++;
+       deps += *data++;
     }
 
     if ("" == deps) {
     }
 
     if ("" == deps) {
-        error_msg = "expecting dependency list after `" + target + ":'";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "expecting dependency list after `" + target + ":'";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Having some rules is compulsory.
     if ('\0' == *data) {
     }
 
     // Having some rules is compulsory.
     if ('\0' == *data) {
-        error_msg = "expecting one or more rules after the dependency list";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "expecting one or more rules after the dependency list";
+       CYG_REPORT_RETVAL(false);
+       return false;
     } else {
     } else {
-        // We are currently at \n or ;, move on to the actual rules
-        data++;
+       // We are currently at \n or ;, move on to the actual rules
+       data++;
     }
 
     // Rules consist of one or more lines. Any leading white space on a given
     // line should be discarded.
     while ('\0' != *data) {
     }
 
     // Rules consist of one or more lines. Any leading white space on a given
     // line should be discarded.
     while ('\0' != *data) {
-        // Processing the current rule. Skip leading spaces and tabs
-        while ((' ' == *data) || ('\t' == *data)) {
-            data++;
-        }
-        // Now add everything up to the next newline or EOD to the rules.
-        while (('\0' != *data) && ('\n' != *data)) {
-            rules += *data++;
-        }
+       // Processing the current rule. Skip leading spaces and tabs
+       while ((' ' == *data) || ('\t' == *data)) {
+           data++;
+       }
+       // Now add everything up to the next newline or EOD to the rules.
+       while (('\0' != *data) && ('\n' != *data)) {
+           rules += *data++;
+       }
 
 
-        // Terminate this line of the rules with a newline, even if that
-        // character is absent from the raw data.
-        rules += '\n';
+       // Terminate this line of the rules with a newline, even if that
+       // character is absent from the raw data.
+       rules += '\n';
 
 
-        // And ignore the newline in the raw data itself
-        if ('\n' == *data) {
-            data++;
-        }
+       // And ignore the newline in the raw data itself
+       if ('\n' == *data) {
+           data++;
+       }
     }
 
     // Better make sure that there are some rules. All of the looping above
     // may just have left white space
     if ("" == rules) {
     }
 
     // Better make sure that there are some rules. All of the looping above
     // may just have left white space
     if ("" == rules) {
-        error_msg = "no rules provided";
-        CYG_REPORT_RETVAL(false);
-        return false;
+       error_msg = "no rules provided";
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
 
     // Everything is ok.
     }
 
     // Everything is ok.
+
     CYG_REPORT_RETVAL(true);
     return true;
 }
     CYG_REPORT_RETVAL(true);
     return true;
 }
@@ -365,18 +365,18 @@ parse_make_final_check(CdlInterpreter interp, CdlProperty_String prop)
 
     std::string prio_string = prop->get_option("priority");
     if ("" != prio_string) {
 
     std::string prio_string = prop->get_option("priority");
     if ("" != prio_string) {
-        cdl_int tmp = 1;
-        if (!Cdl::string_to_integer(prio_string, tmp)) {
-            CdlParse::report_property_parse_error(interp, prop,
-                                                  "Invalid priority option, priorities should be simple numbers.");
-        } else {
-            if ((tmp < 1) || (tmp > 1024)) {
-                CdlParse::report_property_parse_error(interp, prop,
-                                                      "Invalid priority value, priorities should be in the range 1 to 1024.");
-            }
-        }
-    }
-    
+       cdl_int tmp = 1;
+       if (!Cdl::string_to_integer(prio_string, tmp)) {
+           CdlParse::report_property_parse_error(interp, prop,
+                                                 "Invalid priority option, priorities should be simple numbers.");
+       } else {
+           if ((tmp < 1) || (tmp > 1024)) {
+               CdlParse::report_property_parse_error(interp, prop,
+                                                     "Invalid priority value, priorities should be in the range 1 to 1024.");
+           }
+       }
+    }
+
     std::string data    = prop->get_string();
     std::string target;
     std::string deps;
     std::string data    = prop->get_string();
     std::string target;
     std::string deps;
@@ -384,7 +384,7 @@ parse_make_final_check(CdlInterpreter interp, CdlProperty_String prop)
     std::string error_msg;
 
     if (!CdlBuildableBody::split_custom_build_step(data, target, deps, rules, error_msg)) {
     std::string error_msg;
 
     if (!CdlBuildableBody::split_custom_build_step(data, target, deps, rules, error_msg)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
     }
 }
 
     }
 }
 
@@ -392,13 +392,13 @@ int
 CdlBuildableBody::parse_make(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_make", "result %d");
 CdlBuildableBody::parse_make(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_make", "result %d");
-    static char* options[] = {
-        "priority:",
-        0
+    static const char* options[] = {
+       "priority:",
+       0
     };
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Make, options, &parse_make_final_check);
     };
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Make, options, &parse_make_final_check);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -419,18 +419,18 @@ parse_make_object_final_check(CdlInterpreter interp, CdlProperty_String prop)
 
     std::string prio_string = prop->get_option("priority");
     if ("" != prio_string) {
 
     std::string prio_string = prop->get_option("priority");
     if ("" != prio_string) {
-        cdl_int tmp = 1;
-        if (!Cdl::string_to_integer(prio_string, tmp)) {
-            CdlParse::report_property_parse_error(interp, prop,
-                                                  "Invalid priority option, priorities should be simple numbers.");
-        } else {
-            if ((tmp < 1) || (tmp > 1024)) {
-                CdlParse::report_property_parse_error(interp, prop,
-                                                      "Invalid priority value, priorities should be in the range 1 to 1024.");
-            }
-        }
-    }
-    
+       cdl_int tmp = 1;
+       if (!Cdl::string_to_integer(prio_string, tmp)) {
+           CdlParse::report_property_parse_error(interp, prop,
+                                                 "Invalid priority option, priorities should be simple numbers.");
+       } else {
+           if ((tmp < 1) || (tmp > 1024)) {
+               CdlParse::report_property_parse_error(interp, prop,
+                                                     "Invalid priority value, priorities should be in the range 1 to 1024.");
+           }
+       }
+    }
+
     std::string data    = prop->get_string();
     std::string target;
     std::string deps;
     std::string data    = prop->get_string();
     std::string target;
     std::string deps;
@@ -438,7 +438,7 @@ parse_make_object_final_check(CdlInterpreter interp, CdlProperty_String prop)
     std::string error_msg;
 
     if (!CdlBuildableBody::split_custom_build_step(data, target, deps, rules, error_msg)) {
     std::string error_msg;
 
     if (!CdlBuildableBody::split_custom_build_step(data, target, deps, rules, error_msg)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid custom build step, " + error_msg);
     }
 }
 
     }
 }
 
@@ -446,15 +446,15 @@ int
 CdlBuildableBody::parse_make_object(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_make_object", "result %d");
 CdlBuildableBody::parse_make_object(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_make_object", "result %d");
-    static char* options[] = {
-        "library:",
-        "priority:",
-        0
+    static const char* options[] = {
+       "library:",
+       "priority:",
+       0
     };
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_MakeObject, options,
     };
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_MakeObject, options,
-                                                 &parse_make_object_final_check);
-    
+                                                &parse_make_object_final_check);
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -467,13 +467,13 @@ int
 CdlBuildableBody::parse_object(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_object", "result %d");
 CdlBuildableBody::parse_object(CdlInterpreter interp, int argc, const char* argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_object", "result %d");
-    static char* options[] = {
-        "library:",
-        0
+    static const char* options[] = {
+       "library:",
+       0
     };
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_Object, options, 0, true);
     };
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_Object, options, 0, true);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -493,7 +493,7 @@ CdlBuildableBody::parse_build_proc(CdlInterpreter interp, int argc, const char*
 }
 
 //}}}
 }
 
 //}}}
-//{{{  update_build_info()              
+//{{{  update_build_info()
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in update_all_build_info(). The update_build_info()
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in update_all_build_info(). The update_build_info()
@@ -507,25 +507,25 @@ CdlBuildableBody::update_build_info(CdlBuildInfo_Loadable& build_info, std::stri
     CYG_PRECONDITIONC("" != library);
 
     if (!is_active()) {
     CYG_PRECONDITIONC("" != library);
 
     if (!is_active()) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     CdlConstValuable valuable = dynamic_cast<CdlConstValuable>(this);
     if (0 != valuable) {
     }
 
     CdlConstValuable valuable = dynamic_cast<CdlConstValuable>(this);
     if (0 != valuable) {
-        if (!valuable->is_enabled()) {
-            CYG_REPORT_RETURN();
-            return;
-        }
+       if (!valuable->is_enabled()) {
+           CYG_REPORT_RETURN();
+           return;
+       }
     }
 
     update_all_build_info(build_info, library);
     }
 
     update_all_build_info(build_info, library);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  update_all_build_info()          
+//{{{  update_all_build_info()
 
 // ----------------------------------------------------------------------------
 // There are four properties to be considered, each of which may occur
 
 // ----------------------------------------------------------------------------
 // There are four properties to be considered, each of which may occur
@@ -569,146 +569,146 @@ CdlBuildableBody::update_all_build_info(CdlBuildInfo_Loadable& build_info, std::
     std::vector<CdlProperty>::const_iterator prop_i;
 
     for (prop_i = compile_properties.begin(); prop_i != compile_properties.end(); prop_i++) {
     std::vector<CdlProperty>::const_iterator prop_i;
 
     for (prop_i = compile_properties.begin(); prop_i != compile_properties.end(); prop_i++) {
-        CdlProperty_StringVector compile_prop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
-        CYG_LOOP_INVARIANT_CLASSC(compile_prop);
-
-        // Does this property have a library option?
-        std::string current_library = compile_prop->get_option("library");
-        if ("" == current_library) {
-            current_library = package_library;
-        }
-
-        const std::vector<std::string>& files   = compile_prop->get_strings();
-        std::vector<std::string>::const_iterator file_i;
-
-        for (file_i = files.begin(); file_i != files.end(); file_i++) {
-
-            // For each listed file, try to find it. If this is unsuccessful
-            // then assume that the file will be generated later on.
-            std::string path = loadable->find_relative_file(*file_i, "src");
-            if ("" == path) {
-                if (has_src_subdir) {
-                    path = "src/" + *file_i;
-                } else {
-                    path = *file_i;
-                }
-            }
-
-            // Now check whether or not the specified file is already present.
-            std::vector<CdlBuildInfo_Compile>::const_iterator info_i;
-            for (info_i = build_info.compiles.begin(); info_i != build_info.compiles.end(); info_i++) {
-                if ((current_library == info_i->library) && (path == info_i->source)) {
-                    break;
-                }
-            }
-            if (info_i == build_info.compiles.end()) {
-                CdlBuildInfo_Compile new_info;
-                new_info.library    = current_library;
-                new_info.source     = path;
-                build_info.compiles.push_back(new_info);
-            }
-        }
+       CdlProperty_StringVector compile_prop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
+       CYG_LOOP_INVARIANT_CLASSC(compile_prop);
+
+       // Does this property have a library option?
+       std::string current_library = compile_prop->get_option("library");
+       if ("" == current_library) {
+           current_library = package_library;
+       }
+
+       const std::vector<std::string>& files   = compile_prop->get_strings();
+       std::vector<std::string>::const_iterator file_i;
+
+       for (file_i = files.begin(); file_i != files.end(); file_i++) {
+
+           // For each listed file, try to find it. If this is unsuccessful
+           // then assume that the file will be generated later on.
+           std::string path = loadable->find_relative_file(*file_i, "src");
+           if ("" == path) {
+               if (has_src_subdir) {
+                   path = "src/" + *file_i;
+               } else {
+                   path = *file_i;
+               }
+           }
+
+           // Now check whether or not the specified file is already present.
+           std::vector<CdlBuildInfo_Compile>::const_iterator info_i;
+           for (info_i = build_info.compiles.begin(); info_i != build_info.compiles.end(); info_i++) {
+               if ((current_library == info_i->library) && (path == info_i->source)) {
+                   break;
+               }
+           }
+           if (info_i == build_info.compiles.end()) {
+               CdlBuildInfo_Compile new_info;
+               new_info.library    = current_library;
+               new_info.source     = path;
+               build_info.compiles.push_back(new_info);
+           }
+       }
     }
 
     for (prop_i = makeobject_properties.begin(); prop_i != makeobject_properties.end(); prop_i++) {
     }
 
     for (prop_i = makeobject_properties.begin(); prop_i != makeobject_properties.end(); prop_i++) {
-        CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
-        CYG_LOOP_INVARIANT_CLASSC(prop);
-
-        // Does thie property have a library option?
-        std::string current_library = prop->get_option("library");
-        if ("" == current_library) {
-            current_library = package_library;
-        }
-
-        // How about a priority field? The default priority for make_object is 100
-        // We can rely on the validation done during the parsing process
-        cdl_int priority = 100;
-        std::string priority_option = prop->get_option("priority");
-        if ("" != priority_option) {
-            Cdl::string_to_integer(priority_option, priority);
-        }
-
-        // What we need now is the separate target, deps, and rules. These
-        // can be obtained via a utility. The raw data will have been validated
-        // already.
-        std::string raw_data = prop->get_string();
-        std::string target;
-        std::string deps;
-        std::string rules;
-        std::string error_msg;
-        bool result;
-
-        result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
-        CYG_ASSERTC(true == result);
-
-        // Construct a local object, then copy it into the vector
-        CdlBuildInfo_MakeObject local_copy;
-        local_copy.priority     = priority;
-        local_copy.library      = current_library;
-        local_copy.object       = target;
-        local_copy.deps         = deps;
-        local_copy.rules        = rules;
-
-        build_info.make_objects.push_back(local_copy);
-    }
-    
+       CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
+       CYG_LOOP_INVARIANT_CLASSC(prop);
+
+       // Does thie property have a library option?
+       std::string current_library = prop->get_option("library");
+       if ("" == current_library) {
+           current_library = package_library;
+       }
+
+       // How about a priority field? The default priority for make_object is 100
+       // We can rely on the validation done during the parsing process
+       cdl_int priority = 100;
+       std::string priority_option = prop->get_option("priority");
+       if ("" != priority_option) {
+           Cdl::string_to_integer(priority_option, priority);
+       }
+
+       // What we need now is the separate target, deps, and rules. These
+       // can be obtained via a utility. The raw data will have been validated
+       // already.
+       std::string raw_data = prop->get_string();
+       std::string target;
+       std::string deps;
+       std::string rules;
+       std::string error_msg;
+       bool result;
+
+       result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
+       CYG_ASSERTC(true == result);
+
+       // Construct a local object, then copy it into the vector
+       CdlBuildInfo_MakeObject local_copy;
+       local_copy.priority     = priority;
+       local_copy.library      = current_library;
+       local_copy.object       = target;
+       local_copy.deps         = deps;
+       local_copy.rules        = rules;
+
+       build_info.make_objects.push_back(local_copy);
+    }
+
     for (prop_i = make_properties.begin(); prop_i != make_properties.end(); prop_i++) {
     for (prop_i = make_properties.begin(); prop_i != make_properties.end(); prop_i++) {
-        CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
-        CYG_LOOP_INVARIANT_CLASSC(prop);
-
-        // Is there a priority field? The default priority for make is
-        // 300 We can rely on the validation done during the parsing
-        // process
-        cdl_int priority = 300;
-        std::string priority_option = prop->get_option("priority");
-        if ("" != priority_option) {
-            Cdl::string_to_integer(priority_option, priority);
-        }
-
-        // What we need now is the separate target, deps, and rules. These
-        // can be obtained via a utility. The raw data will have been validated
-        // already.
-        std::string raw_data = prop->get_string();
-        std::string target;
-        std::string deps;
-        std::string rules;
-        std::string error_msg;
-        bool result;
-
-        result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
-        CYG_ASSERTC(true == result);
-
-        // Construct a local object, then copy it into the vector
-        CdlBuildInfo_Make local_copy;
-        local_copy.priority     = priority;
-        local_copy.target       = target;
-        local_copy.deps         = deps;
-        local_copy.rules        = rules;
-
-        build_info.makes.push_back(local_copy);
-    }
-    
+       CdlProperty_String prop = dynamic_cast<CdlProperty_String>(*prop_i);
+       CYG_LOOP_INVARIANT_CLASSC(prop);
+
+       // Is there a priority field? The default priority for make is
+       // 300 We can rely on the validation done during the parsing
+       // process
+       cdl_int priority = 300;
+       std::string priority_option = prop->get_option("priority");
+       if ("" != priority_option) {
+           Cdl::string_to_integer(priority_option, priority);
+       }
+
+       // What we need now is the separate target, deps, and rules. These
+       // can be obtained via a utility. The raw data will have been validated
+       // already.
+       std::string raw_data = prop->get_string();
+       std::string target;
+       std::string deps;
+       std::string rules;
+       std::string error_msg;
+       bool result;
+
+       result = CdlBuildableBody::split_custom_build_step(raw_data, target, deps, rules, error_msg);
+       CYG_ASSERTC(true == result);
+
+       // Construct a local object, then copy it into the vector
+       CdlBuildInfo_Make local_copy;
+       local_copy.priority     = priority;
+       local_copy.target       = target;
+       local_copy.deps         = deps;
+       local_copy.rules        = rules;
+
+       build_info.makes.push_back(local_copy);
+    }
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 //}}}
-//{{{  CdlBuildLoadableBody             
+//{{{  CdlBuildLoadableBody
 
 
-//{{{  Class variables                          
+//{{{  Class variables
 
 // ----------------------------------------------------------------------------
 // This variable controls the default library that should be generated.
 // Some applications may wish to override this.
 
 // ----------------------------------------------------------------------------
 // This variable controls the default library that should be generated.
 // Some applications may wish to override this.
-char* CdlBuildLoadableBody::default_library_name        = "libtarget.a";
+const char* CdlBuildLoadableBody::default_library_name        = "libtarget.a";
 
 // The pattern that should be used to identify header files.
 // FIXME: this information should come out of a data file
 
 // The pattern that should be used to identify header files.
 // FIXME: this information should come out of a data file
-char* CdlBuildLoadableBody::default_headers_glob_pattern = "*.h *.hxx *.inl *.si *.inc";
+const char* CdlBuildLoadableBody::default_headers_glob_pattern = "*.h *.hxx *.inl *.si *.inc";
 
 //}}}
 
 //}}}
-//{{{  The simple stuff                         
+//{{{  The simple stuff
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -721,7 +721,7 @@ CdlBuildLoadableBody::CdlBuildLoadableBody()
     // There is no data to initialize
     cdlbuildloadablebody_cookie = CdlBuildLoadableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     // There is no data to initialize
     cdlbuildloadablebody_cookie = CdlBuildLoadableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -734,7 +734,7 @@ CdlBuildLoadableBody::~CdlBuildLoadableBody()
 
     cdlbuildloadablebody_cookie = CdlBuildLoadableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdlbuildloadablebody_cookie = CdlBuildLoadableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -755,14 +755,14 @@ bool
 CdlBuildLoadableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlBuildLoadableBody_Magic != cdlbuildloadablebody_cookie) {
 CdlBuildLoadableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlBuildLoadableBody_Magic != cdlbuildloadablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlContainerBody::check_this(zeal) && CdlNodeBody::check_this(zeal);
 }
 
 //}}}
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlContainerBody::check_this(zeal) && CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Property parsers                         
+//{{{  Property parsers
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -773,28 +773,28 @@ CdlBuildLoadableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntr
 
     static CdlInterpreterCommandEntry commands[] =
     {
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("library",            &CdlBuildLoadableBody::parse_library       ),
-        CdlInterpreterCommandEntry("makefile",           &CdlBuildLoadableBody::parse_makefile      ),
-        CdlInterpreterCommandEntry("include_dir",        &CdlBuildLoadableBody::parse_include_dir   ),
-        CdlInterpreterCommandEntry("include_files",      &CdlBuildLoadableBody::parse_include_files ),
-        CdlInterpreterCommandEntry("",                   0                                          )
+       CdlInterpreterCommandEntry("library",            &CdlBuildLoadableBody::parse_library       ),
+       CdlInterpreterCommandEntry("makefile",           &CdlBuildLoadableBody::parse_makefile      ),
+       CdlInterpreterCommandEntry("include_dir",        &CdlBuildLoadableBody::parse_include_dir   ),
+       CdlInterpreterCommandEntry("include_files",      &CdlBuildLoadableBody::parse_include_files ),
+       CdlInterpreterCommandEntry("",                   0                                          )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
-    }
-    
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
+    }
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -807,7 +807,7 @@ CdlBuildLoadableBody::check_properties(CdlInterpreter interp)
     CYG_PRECONDITION_CLASSC(interp);
 
     CdlNodeBody::check_properties(interp);
     CYG_PRECONDITION_CLASSC(interp);
 
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -823,7 +823,7 @@ CdlBuildLoadableBody::parse_library(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_library", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Library, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_library", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Library, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -839,7 +839,7 @@ CdlBuildLoadableBody::parse_makefile(CdlInterpreter interp, int argc, const char
     CYG_REPORT_FUNCNAMETYPE("parse_makefile", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Makefile, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_makefile", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Makefile, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -852,7 +852,7 @@ CdlBuildLoadableBody::parse_include_dir(CdlInterpreter interp, int argc, const c
     CYG_REPORT_FUNCNAMETYPE("parse_include_dir", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_IncludeDir, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_include_dir", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_IncludeDir, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -873,13 +873,13 @@ CdlBuildLoadableBody::parse_include_files(CdlInterpreter interp, int argc, const
     CYG_REPORT_FUNCNAMETYPE("parse_include_files", "result %d");
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_IncludeFiles, 0, 0, true);
     CYG_REPORT_FUNCNAMETYPE("parse_include_files", "result %d");
 
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_IncludeFiles, 0, 0, true);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  update_build_info()                      
+//{{{  update_build_info()
 
 // ----------------------------------------------------------------------------
 // This utility routine takes care of filling in a Buildinfo_Loadable
 
 // ----------------------------------------------------------------------------
 // This utility routine takes care of filling in a Buildinfo_Loadable
@@ -914,9 +914,9 @@ update_header_file_info(CdlConstBuildLoadable loadable, CdlBuildInfo_Loadable& b
     std::string dest_dir = "";
     CdlProperty include_dir_prop = loadable->get_property(CdlPropertyId_IncludeDir);
     if (0 != include_dir_prop) {
     std::string dest_dir = "";
     CdlProperty include_dir_prop = loadable->get_property(CdlPropertyId_IncludeDir);
     if (0 != include_dir_prop) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(include_dir_prop);
-        CYG_ASSERT_CLASSC(strprop);
-        dest_dir = strprop->get_string();
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(include_dir_prop);
+       CYG_ASSERT_CLASSC(strprop);
+       dest_dir = strprop->get_string();
     }
 
     bool has_include_subdir = loadable->has_subdirectory("include");
     }
 
     bool has_include_subdir = loadable->has_subdirectory("include");
@@ -924,97 +924,97 @@ update_header_file_info(CdlConstBuildLoadable loadable, CdlBuildInfo_Loadable& b
     std::vector<CdlProperty> include_file_properties;
     loadable->get_properties(CdlPropertyId_IncludeFiles, include_file_properties);
     if (include_file_properties.size() > 0) {
     std::vector<CdlProperty> include_file_properties;
     loadable->get_properties(CdlPropertyId_IncludeFiles, include_file_properties);
     if (include_file_properties.size() > 0) {
-        std::vector<CdlProperty>::const_iterator prop_i;
-        for (prop_i = include_file_properties.begin(); prop_i != include_file_properties.end(); prop_i++) {
-            
-            CdlProperty_StringVector strvprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
-            CYG_ASSERT_CLASSC(strvprop);
-
-            const std::vector<std::string>& filenames = strvprop->get_strings();
-            std::vector<std::string>::const_iterator file_i;
-            for (file_i = filenames.begin(); file_i != filenames.end(); file_i++) {
-                std::string path = loadable->find_relative_file(*file_i, "include");
-                // Assume that the header file will be generated by a build_proc
-                if ("" == path) {
-                    if (has_include_subdir) {
-                        path = "include/" + *file_i;
-                    } else {
-                        path = *file_i;
-                    }
-                }
-                CdlBuildInfo_Header local_copy;
-                local_copy.source       = path;
-                local_copy.destination  = "";
-                if ("" != dest_dir) {
-                    local_copy.destination = dest_dir + "/";
-                }
-                // At this stage "path" may begin with "include/", which should not
-                // be present in the destination.
-                const char* tmp = path.c_str();
-                if (0 == strncmp("include/", tmp, 8)) {
-                    local_copy.destination += &(tmp[8]);
-                } else {
-                    local_copy.destination += path;
-                }
-                build_info.headers.push_back(local_copy);
-            }
-        }
-        CYG_REPORT_RETURN();
-        return;
+       std::vector<CdlProperty>::const_iterator prop_i;
+       for (prop_i = include_file_properties.begin(); prop_i != include_file_properties.end(); prop_i++) {
+
+           CdlProperty_StringVector strvprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
+           CYG_ASSERT_CLASSC(strvprop);
+
+           const std::vector<std::string>& filenames = strvprop->get_strings();
+           std::vector<std::string>::const_iterator file_i;
+           for (file_i = filenames.begin(); file_i != filenames.end(); file_i++) {
+               std::string path = loadable->find_relative_file(*file_i, "include");
+               // Assume that the header file will be generated by a build_proc
+               if ("" == path) {
+                   if (has_include_subdir) {
+                       path = "include/" + *file_i;
+                   } else {
+                       path = *file_i;
+                   }
+               }
+               CdlBuildInfo_Header local_copy;
+               local_copy.source       = path;
+               local_copy.destination  = "";
+               if ("" != dest_dir) {
+                   local_copy.destination = dest_dir + "/";
+               }
+               // At this stage "path" may begin with "include/", which should not
+               // be present in the destination.
+               const char* tmp = path.c_str();
+               if (0 == strncmp("include/", tmp, 8)) {
+                   local_copy.destination += &(tmp[8]);
+               } else {
+                   local_copy.destination += path;
+               }
+               build_info.headers.push_back(local_copy);
+           }
+       }
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // It is necessary to search for the appropriate files.
     CdlInterpreter interp = loadable->get_interpreter();
     std::string    path   = loadable->get_toplevel()->get_directory() + "/" + loadable->get_directory();
     if (has_include_subdir) {
     }
 
     // It is necessary to search for the appropriate files.
     CdlInterpreter interp = loadable->get_interpreter();
     std::string    path   = loadable->get_toplevel()->get_directory() + "/" + loadable->get_directory();
     if (has_include_subdir) {
-        std::vector<std::string> files;
-        std::vector<std::string>::const_iterator file_i;
-        interp->locate_all_files(path + "/include", files);
-        for (file_i = files.begin(); file_i != files.end(); file_i++) {
-            // NOTE: for now discard any header files in the pkgconf subdirectory
-            if (0 == strncmp("pkgconf/", file_i->c_str(), 8)) {
-                continue;
-            }
-            if ('~' == *(file_i->rbegin())) {
-                continue;
-            }
-            CdlBuildInfo_Header local_copy;
-            local_copy.source   = "include/" + *file_i;
-            local_copy.destination      = "";
-            if ("" != dest_dir) {
-                local_copy.destination = dest_dir + "/";
-            }
-            local_copy.destination += *file_i;
-            build_info.headers.push_back(local_copy);
-        }
+       std::vector<std::string> files;
+       std::vector<std::string>::const_iterator file_i;
+       interp->locate_all_files(path + "/include", files);
+       for (file_i = files.begin(); file_i != files.end(); file_i++) {
+           // NOTE: for now discard any header files in the pkgconf subdirectory
+           if (0 == strncmp("pkgconf/", file_i->c_str(), 8)) {
+               continue;
+           }
+           if ('~' == *(file_i->rbegin())) {
+               continue;
+           }
+           CdlBuildInfo_Header local_copy;
+           local_copy.source   = "include/" + *file_i;
+           local_copy.destination      = "";
+           if ("" != dest_dir) {
+               local_copy.destination = dest_dir + "/";
+           }
+           local_copy.destination += *file_i;
+           build_info.headers.push_back(local_copy);
+       }
     } else {
     } else {
-        // Look for all header files, which for now means files with
-        // a .h, .hxx, .inl or .inc extension.
-        // FIXME: the definition of what constitutes a header file
-        // should not be hard-wired here.
-        std::vector<std::string> files;
-        std::vector<std::string>::const_iterator file_i;
-        interp->locate_all_files(path, files);
-        for (file_i = files.begin(); file_i != files.end(); file_i++) {
-
-            // Problems with libstdc++ versions, use C comparisons instead.
-            const char* c_string = file_i->c_str();
-            unsigned int len = strlen(c_string);
-            if (((len >= 2) && (0 == strncmp(c_string + len - 2, ".h", 2)))        ||
-                ((len >= 4) && (0 == strncmp(c_string + len - 4, ".hxx", 4)))      ||
-                ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inl", 4)))      ||
-                ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inc", 4)))) {
-                
-                CdlBuildInfo_Header local_copy;
-                local_copy.source = *file_i;
-                local_copy.destination = "";
-                if ("" != dest_dir) {
-                    local_copy.destination = dest_dir + "/";
-                }
-                local_copy.destination += *file_i;
-                build_info.headers.push_back(local_copy);
-            }
-        }
+       // Look for all header files, which for now means files with
+       // a .h, .hxx, .inl or .inc extension.
+       // FIXME: the definition of what constitutes a header file
+       // should not be hard-wired here.
+       std::vector<std::string> files;
+       std::vector<std::string>::const_iterator file_i;
+       interp->locate_all_files(path, files);
+       for (file_i = files.begin(); file_i != files.end(); file_i++) {
+
+           // Problems with libstdc++ versions, use C comparisons instead.
+           const char* c_string = file_i->c_str();
+           unsigned int len = strlen(c_string);
+           if (((len >= 2) && (0 == strncmp(c_string + len - 2, ".h", 2)))        ||
+               ((len >= 4) && (0 == strncmp(c_string + len - 4, ".hxx", 4)))      ||
+               ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inl", 4)))      ||
+               ((len >= 4) && (0 == strncmp(c_string + len - 4, ".inc", 4)))) {
+
+               CdlBuildInfo_Header local_copy;
+               local_copy.source = *file_i;
+               local_copy.destination = "";
+               if ("" != dest_dir) {
+                   local_copy.destination = dest_dir + "/";
+               }
+               local_copy.destination += *file_i;
+               build_info.headers.push_back(local_copy);
+           }
+       }
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -1042,8 +1042,8 @@ CdlBuildLoadableBody::update_build_info(CdlBuildInfo& build_info) const
     // and hence it is still necessary to check whether or not the
     // loadable is active.
     if (!is_active()) {
     // and hence it is still necessary to check whether or not the
     // loadable is active.
     if (!is_active()) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Time to add a new CdlBuildInfo_Loadable object to the current
     }
 
     // Time to add a new CdlBuildInfo_Loadable object to the current
@@ -1057,25 +1057,25 @@ CdlBuildLoadableBody::update_build_info(CdlBuildInfo& build_info) const
 
     // Take care of the header files
     update_header_file_info(this, this_info);
 
     // Take care of the header files
     update_header_file_info(this, this_info);
-    
+
     // Work out the library name appropriate for this loadable.
     // There may be a library property, otherwise the global default
     // should be used.
     std::string loadable_library = default_library_name;
     if (has_property(CdlPropertyId_Library)) {
     // Work out the library name appropriate for this loadable.
     // There may be a library property, otherwise the global default
     // should be used.
     std::string loadable_library = default_library_name;
     if (has_property(CdlPropertyId_Library)) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
-        loadable_library = strprop->get_string();
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
+       loadable_library = strprop->get_string();
     }
     }
-    
+
     const std::vector<CdlNode>& contents = get_owned();
     std::vector<CdlNode>::const_iterator node_i;
     for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
     const std::vector<CdlNode>& contents = get_owned();
     std::vector<CdlNode>::const_iterator node_i;
     for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
-        CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
-        if (0 != buildable) {
-            buildable->update_build_info(this_info, loadable_library);
-        }
+       CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
+       if (0 != buildable) {
+           buildable->update_build_info(this_info, loadable_library);
+       }
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1096,19 +1096,19 @@ CdlBuildLoadableBody::update_all_build_info(CdlBuildInfo& build_info) const
 
     std::string loadable_library = default_library_name;
     if (has_property(CdlPropertyId_Library)) {
 
     std::string loadable_library = default_library_name;
     if (has_property(CdlPropertyId_Library)) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
-        loadable_library = strprop->get_string();
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Library));
+       loadable_library = strprop->get_string();
     }
     }
-    
+
     const std::vector<CdlNode>& contents = get_owned();
     std::vector<CdlNode>::const_iterator node_i;
     for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
     const std::vector<CdlNode>& contents = get_owned();
     std::vector<CdlNode>::const_iterator node_i;
     for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
-        CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
-        if (0 != buildable) {
-            buildable->update_build_info(this_info, loadable_library);
-        }
+       CdlBuildable buildable = dynamic_cast<CdlBuildable>(*node_i);
+       if (0 != buildable) {
+           buildable->update_build_info(this_info, loadable_library);
+       }
     }
     }
-    
+
     CYG_REPORT_RETURN();
     CYG_REPORT_RETURN();
 }
     CYG_REPORT_RETURN();
     CYG_REPORT_RETURN();
 }
@@ -1116,7 +1116,7 @@ CdlBuildLoadableBody::update_all_build_info(CdlBuildInfo& build_info) const
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  Version number #define's         
+//{{{  Version number #define's
 
 // ----------------------------------------------------------------------------
 // Given a package xxxPKG_A_B_C with a version V1_2_3, generate additional
 
 // ----------------------------------------------------------------------------
 // Given a package xxxPKG_A_B_C with a version V1_2_3, generate additional
@@ -1134,7 +1134,7 @@ CdlBuildLoadableBody::update_all_build_info(CdlBuildInfo& build_info) const
 // is possible to cope with VERSION_NUMBER #define's.
 //
 // Note that only application code and third party packages are
 // is possible to cope with VERSION_NUMBER #define's.
 //
 // Note that only application code and third party packages are
-// affected. 
+// affected.
 //
 // These #define's go into system.h, alongside the main definition of
 // the package. There seems to be little point in putting them in the
 //
 // These #define's go into system.h, alongside the main definition of
 // the package. There seems to be little point in putting them in the
@@ -1202,31 +1202,31 @@ system_h_add_package_versioning(Tcl_Channel system_h, std::string name, std::str
 
     char name_buf[256];
     char line_buf[512];
 
     char name_buf[256];
     char line_buf[512];
-    
+
     // The first thing to check is that the package name can be used
     // as the basis for the version symbols.
     bool ok = false;
     unsigned int i;
     for (i = 0; i < name.size(); i++) {
     // The first thing to check is that the package name can be used
     // as the basis for the version symbols.
     bool ok = false;
     unsigned int i;
     for (i = 0; i < name.size(); i++) {
-        if ('_' == name[i]) {
-            if (3 < i) {
-                if ((name[i-3] == 'P') && (name[i-2] == 'K') && (name[i-1] == 'G')) {
-                    ok = true;
-                }
-            }
-            break;
-        }
+       if ('_' == name[i]) {
+           if (3 < i) {
+               if ((name[i-3] == 'P') && (name[i-2] == 'K') && (name[i-1] == 'G')) {
+                   ok = true;
+               }
+           }
+           break;
+       }
     }
     if (name.size() >= 256) {
     }
     if (name.size() >= 256) {
-        ok = false;
+       ok = false;
     }
     if (!ok) {
     }
     if (!ok) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     strcpy(name_buf, name.c_str());
     }
 
     strcpy(name_buf, name.c_str());
-    
+
     // Change from xxxPKG to xxxNUM
     name_buf[i - 3] = 'N';
     name_buf[i - 2] = 'U';
     // Change from xxxPKG to xxxNUM
     name_buf[i - 3] = 'N';
     name_buf[i - 2] = 'U';
@@ -1237,9 +1237,9 @@ system_h_add_package_versioning(Tcl_Channel system_h, std::string name, std::str
     std::string minor   = "-1";
     std::string release = "-1";
     if ("current" == value) {
     std::string minor   = "-1";
     std::string release = "-1";
     if ("current" == value) {
-        major   = "CYGNUM_VERSION_CURRENT";
+       major   = "CYGNUM_VERSION_CURRENT";
     } else {
     } else {
-        Cdl::split_version_string(value, major, minor, release);
+       Cdl::split_version_string(value, major, minor, release);
     }
 
     sprintf(line_buf, "#define %s_VERSION_MAJOR %s\n", name_buf, major.c_str());
     }
 
     sprintf(line_buf, "#define %s_VERSION_MAJOR %s\n", name_buf, major.c_str());
@@ -1248,14 +1248,14 @@ system_h_add_package_versioning(Tcl_Channel system_h, std::string name, std::str
     Tcl_Write(system_h, line_buf, -1);
     sprintf(line_buf, "#define %s_VERSION_RELEASE %s\n", name_buf, release.c_str());
     Tcl_Write(system_h, line_buf, -1);
     Tcl_Write(system_h, line_buf, -1);
     sprintf(line_buf, "#define %s_VERSION_RELEASE %s\n", name_buf, release.c_str());
     Tcl_Write(system_h, line_buf, -1);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlDefinableBody                 
+//{{{  CdlDefinableBody
 
 
-//{{{  Basics                                           
+//{{{  Basics
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1267,7 +1267,7 @@ CdlDefinableBody::CdlDefinableBody()
     // There is no data to initialize
     cdldefinablebody_cookie = CdlDefinableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     // There is no data to initialize
     cdldefinablebody_cookie = CdlDefinableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1280,7 +1280,7 @@ CdlDefinableBody::~CdlDefinableBody()
 
     cdldefinablebody_cookie = CdlDefinableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdldefinablebody_cookie = CdlDefinableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1301,14 +1301,14 @@ bool
 CdlDefinableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlDefinableBody_Magic != cdldefinablebody_cookie) {
 CdlDefinableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlDefinableBody_Magic != cdldefinablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal);
 }
 
 //}}}
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  add_property_parser() and check_properties()     
+//{{{  add_property_parser() and check_properties()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1319,30 +1319,30 @@ CdlDefinableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntry>&
 
     static CdlInterpreterCommandEntry commands[] =
     {
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("no_define",          &parse_no_define     ),
-        CdlInterpreterCommandEntry("define",             &parse_define        ),
-        CdlInterpreterCommandEntry("define_format",      &parse_define_format ),
-        CdlInterpreterCommandEntry("define_proc",        &parse_define_proc   ),
-        CdlInterpreterCommandEntry("if_define",          &parse_if_define     ),
-        CdlInterpreterCommandEntry("",                   0                    )
+       CdlInterpreterCommandEntry("no_define",          &parse_no_define     ),
+       CdlInterpreterCommandEntry("define",             &parse_define        ),
+       CdlInterpreterCommandEntry("define_format",      &parse_define_format ),
+       CdlInterpreterCommandEntry("define_proc",        &parse_define_proc   ),
+       CdlInterpreterCommandEntry("if_define",          &parse_if_define     ),
+       CdlInterpreterCommandEntry("",                   0                    )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1356,34 +1356,34 @@ CdlDefinableBody::check_properties(CdlInterpreter interp)
 
     // There should be at most one each of no_define and define_format.
     if (count_properties(CdlPropertyId_NoDefine) > 1) {
 
     // There should be at most one each of no_define and define_format.
     if (count_properties(CdlPropertyId_NoDefine) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one no_define property.");
+       CdlParse::report_error(interp, "", "There should be at most one no_define property.");
     }
     if (count_properties(CdlPropertyId_DefineFormat) > 1) {
     }
     if (count_properties(CdlPropertyId_DefineFormat) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one define_format property.");
+       CdlParse::report_error(interp, "", "There should be at most one define_format property.");
     }
     if (has_property(CdlPropertyId_NoDefine) && has_property(CdlPropertyId_DefineFormat)) {
     }
     if (has_property(CdlPropertyId_NoDefine) && has_property(CdlPropertyId_DefineFormat)) {
-        CdlParse::report_error(interp, "", "The no_define and define_format properties are mutually exclusive.");
+       CdlParse::report_error(interp, "", "The no_define and define_format properties are mutually exclusive.");
     }
     // FIXME: the define_format property only makes sense for certain
     // flavors. However the flavor property may not have been processed yet.
     }
     // FIXME: the define_format property only makes sense for certain
     // flavors. However the flavor property may not have been processed yet.
-    
+
     CdlNodeBody::check_properties(interp);
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Definable properties                             
+//{{{  Definable properties
 
 // ----------------------------------------------------------------------------
 // Syntax: no_define
 int
 
 // ----------------------------------------------------------------------------
 // Syntax: no_define
 int
-CdlDefinableBody::parse_no_define(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_no_define(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_no_define", "result %d");
 
     int result = CdlParse::parse_minimal_property(interp, argc, argv, CdlPropertyId_NoDefine, 0, 0);
 {
     CYG_REPORT_FUNCNAMETYPE("parse_no_define", "result %d");
 
     int result = CdlParse::parse_minimal_property(interp, argc, argv, CdlPropertyId_NoDefine, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1398,37 +1398,37 @@ parse_define_final_check(CdlInterpreter interp, CdlProperty_String prop)
     CYG_REPORT_FUNCNAME("parse_define_final_check");
     CYG_PRECONDITION_CLASSC(prop);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_REPORT_FUNCNAME("parse_define_final_check");
     CYG_PRECONDITION_CLASSC(prop);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     const std::string& str = prop->get_string();
 
     if (!Cdl::is_valid_c_preprocessor_symbol(str)) {
     const std::string& str = prop->get_string();
 
     if (!Cdl::is_valid_c_preprocessor_symbol(str)) {
-        CdlParse::report_property_parse_error(interp, prop, str + " is not a valid C preprocessor symbol");
+       CdlParse::report_property_parse_error(interp, prop, str + " is not a valid C preprocessor symbol");
     }
 
     // There may be a file option. At this stage the only valid filename
     // that can be used here is system.h
     std::string file_option = prop->get_option("file");
     if (("" != file_option) && ("system.h" != file_option)) {
     }
 
     // There may be a file option. At this stage the only valid filename
     // that can be used here is system.h
     std::string file_option = prop->get_option("file");
     if (("" != file_option) && ("system.h" != file_option)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
     }
 
     // FIXME: validate the format string
     }
 
     // FIXME: validate the format string
-    
+
     CYG_REPORT_RETURN();
 }
 
 int
     CYG_REPORT_RETURN();
 }
 
 int
-CdlDefinableBody::parse_define(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_define(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define", "result %d");
 
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define", "result %d");
 
-    static char* options[] = {
-        "file:",
-        "format:",
-        0
+    static const char *options[] = {
+       "file:",
+       "format:",
+       0
     };
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Define, options, &parse_define_final_check);
     };
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Define, options, &parse_define_final_check);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1446,24 +1446,24 @@ CdlDefinableBody::parse_define(CdlInterpreter interp, int argc, const char* argv
 // FIXME: enforce mutual exclusion with no_define
 
 int
 // FIXME: enforce mutual exclusion with no_define
 
 int
-CdlDefinableBody::parse_define_format(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_define_format(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_format", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_DefineFormat, 0, 0);
 {
     CYG_REPORT_FUNCNAMETYPE("parse_format", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_DefineFormat, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 // ----------------------------------------------------------------------------
 // syntax: define_proc <tclcode>
 int
     CYG_REPORT_RETVAL(result);
     return result;
 }
 // ----------------------------------------------------------------------------
 // syntax: define_proc <tclcode>
 int
-CdlDefinableBody::parse_define_proc(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_define_proc(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_DefineProc, 0, 0);
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_DefineProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1477,52 +1477,52 @@ parse_if_define_final_check(CdlInterpreter interp, CdlProperty_StringVector prop
     CYG_REPORT_FUNCNAME("parse_if_define_final_check");
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION_CLASSC(prop);
     CYG_REPORT_FUNCNAME("parse_if_define_final_check");
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     // There should be exactly two entries in the vector, and both of them should be
     // valid preprocessor symbols.
     const std::vector<std::string>& strings     = prop->get_strings();
 
     if (2 != strings.size()) {
     // There should be exactly two entries in the vector, and both of them should be
     // valid preprocessor symbols.
     const std::vector<std::string>& strings     = prop->get_strings();
 
     if (2 != strings.size()) {
-        CdlParse::report_property_parse_error(interp, prop, "There should be exactly two arguments.");
+       CdlParse::report_property_parse_error(interp, prop, "There should be exactly two arguments.");
     }
     if (!Cdl::is_valid_c_preprocessor_symbol(strings[0])) {
     }
     if (!Cdl::is_valid_c_preprocessor_symbol(strings[0])) {
-        CdlParse::report_property_parse_error(interp, prop, strings[0] + " is not a valid C preprocessor symbol.");
+       CdlParse::report_property_parse_error(interp, prop, strings[0] + " is not a valid C preprocessor symbol.");
     }
     if (!Cdl::is_valid_c_preprocessor_symbol(strings[1])) {
     }
     if (!Cdl::is_valid_c_preprocessor_symbol(strings[1])) {
-        CdlParse::report_property_parse_error(interp, prop, strings[1] + " is not a valid C preprocessor symbol.");
+       CdlParse::report_property_parse_error(interp, prop, strings[1] + " is not a valid C preprocessor symbol.");
     }
     }
-    
+
     // There may be a file option. At this stage the only valid filename
     // that can be used here is system.h
     std::string file_option = prop->get_option("file");
     if (("" != file_option) && ("system.h" != file_option)) {
     // There may be a file option. At this stage the only valid filename
     // that can be used here is system.h
     std::string file_option = prop->get_option("file");
     if (("" != file_option) && ("system.h" != file_option)) {
-        CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
+       CdlParse::report_property_parse_error(interp, prop, "Invalid -file option " + file_option);
     }
 }
 
 int
     }
 }
 
 int
-CdlDefinableBody::parse_if_define(CdlInterpreter interp, int argc, const charargv[])
+CdlDefinableBody::parse_if_define(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_if_define", "result %d");
 
 {
     CYG_REPORT_FUNCNAMETYPE("parse_if_define", "result %d");
 
-    char* options[] = {
-        "file:",
-        0
+    const char *options[] = {
+       "file:",
+       0
     };
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_IfDefine, options,
     };
     int result = CdlParse::parse_stringvector_property(interp, argc, argv, CdlPropertyId_IfDefine, options,
-                                                       &parse_if_define_final_check, false);
-    
+                                                      &parse_if_define_final_check, false);
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  generate_config_header()                         
+//{{{  generate_config_header()
 
 // ----------------------------------------------------------------------------
 // This code needs to allow for the following properties.
 //
 
 // ----------------------------------------------------------------------------
 // This code needs to allow for the following properties.
 //
-// 1) no_define. This suppresses the default #define generation. 
+// 1) no_define. This suppresses the default #define generation.
 //
 // 2) define_format <format_string.
 //
 //
 // 2) define_format <format_string.
 //
@@ -1541,7 +1541,7 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
 
     CdlLoadable    loadable = get_owner();
     CdlInterpreter interp   = loadable->get_interpreter();
 
     CdlLoadable    loadable = get_owner();
     CdlInterpreter interp   = loadable->get_interpreter();
-    
+
     // This definable is known to be active. However it may or may not be enabled.
     CYG_PRECONDITIONC(is_active());
 
     // This definable is known to be active. However it may or may not be enabled.
     CYG_PRECONDITIONC(is_active());
 
@@ -1550,18 +1550,18 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
     std::string      value  = "1";
     CdlConstValuable valuable        = dynamic_cast<CdlConstValuable>(this);
     if (0 != valuable) {
     std::string      value  = "1";
     CdlConstValuable valuable        = dynamic_cast<CdlConstValuable>(this);
     if (0 != valuable) {
-        // It is always possible to check the enabled() flag. 
-        if (!valuable->is_enabled()) {
-            CYG_REPORT_RETURN();
-            return;
-        }
-        // The value is only valid for BoolData and Data flavors, and may
-        // not have been provided. If there is no value then this option
-        // should not generate a #define
-        flavor = valuable->get_flavor();
-        if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
-            value = valuable->get_value();
-        }
+       // It is always possible to check the enabled() flag.
+       if (!valuable->is_enabled()) {
+           CYG_REPORT_RETURN();
+           return;
+       }
+       // The value is only valid for BoolData and Data flavors, and may
+       // not have been provided. If there is no value then this option
+       // should not generate a #define
+       flavor = valuable->get_flavor();
+       if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
+           value = valuable->get_value();
+       }
     }
 
     // Flavor and value are now both set to sensible strings.
     }
 
     // Flavor and value are now both set to sensible strings.
@@ -1569,49 +1569,49 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
     // #define generation should be suppressed.
     if (!has_property(CdlPropertyId_NoDefine)) {
 
     // #define generation should be suppressed.
     if (!has_property(CdlPropertyId_NoDefine)) {
 
-        // OK, it is necessary to generate at least one #define.
-        // If this node is actually a loadable then the #define should go
-        // into system.h, otherwise into the current header
-        Tcl_Channel chan = this_hdr;
-        if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
-            chan = system_h;
-        }
-
-        // For flavors None and Bool, there should be just one #define
-        if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
-            std::string define = "#define " + name + " 1\n";
-            Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-        } else {
-            // If there is a format string then that controls the default
-            // value display.
-            if (!has_property(CdlPropertyId_DefineFormat)) {
-                std::string define = "#define " + name + " " + value + "\n";
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            } else {
-                CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_DefineFormat));
-                CYG_ASSERT_CLASSC(strprop);
-                std::string format = strprop->get_string();
-                std::string cmd = "return \"#define " + name + " [format " + format + " " + value + "]\n\"";
-                std::string define;
-                if (TCL_OK != interp->eval(cmd, define)) {
-                    throw CdlInputOutputException("Internal error executing tcl fragment to process define_format property");
-                }
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            }
-
-            // There may also be a separate #define of the form <name>_<value>,
-            // if that is a valid preprocessor symbol.
-            std::string tmp = name + "_" + value;
-            if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
-                tmp = "#define "+ tmp + "\n";
-                Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
-            }
-            
-            // For loadables, add additional version information to system_h
-            if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
-                system_h_add_package_versioning(system_h, name, value);
-            }
-        }
+       // OK, it is necessary to generate at least one #define.
+       // If this node is actually a loadable then the #define should go
+       // into system.h, otherwise into the current header
+       Tcl_Channel chan = this_hdr;
+       if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
+           chan = system_h;
+       }
+
+       // For flavors None and Bool, there should be just one #define
+       if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
+           std::string define = "#define " + name + " 1\n";
+           Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+       } else {
+           // If there is a format string then that controls the default
+           // value display.
+           if (!has_property(CdlPropertyId_DefineFormat)) {
+               std::string define = "#define " + name + " " + value + "\n";
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           } else {
+               CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_DefineFormat));
+               CYG_ASSERT_CLASSC(strprop);
+               std::string format = strprop->get_string();
+               std::string cmd = "return \"#define " + name + " [format " + format + " " + value + "]\n\"";
+               std::string define;
+               if (TCL_OK != interp->eval(cmd, define)) {
+                   throw CdlInputOutputException("Internal error executing tcl fragment to process define_format property");
+               }
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           }
+
+           // There may also be a separate #define of the form <name>_<value>,
+           // if that is a valid preprocessor symbol.
+           std::string tmp = name + "_" + value;
+           if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
+               tmp = "#define "+ tmp + "\n";
+               Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
+           }
+
+           // For loadables, add additional version information to system_h
+           if (dynamic_cast<CdlConstLoadable>((CdlConstNode)this) == loadable) {
+               system_h_add_package_versioning(system_h, name, value);
+           }
+       }
     }
 
     // Next, check for any additional define properties
     }
 
     // Next, check for any additional define properties
@@ -1619,85 +1619,85 @@ CdlDefinableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel syste
     get_properties(CdlPropertyId_Define, define_props);
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = define_props.begin(); prop_i != define_props.end(); prop_i++) {
     get_properties(CdlPropertyId_Define, define_props);
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = define_props.begin(); prop_i != define_props.end(); prop_i++) {
-        CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(*prop_i);
-        CYG_ASSERT_CLASSC(strprop);
-        std::string symbol = strprop->get_string();
-
-        std::string file = strprop->get_option("file");
-        Tcl_Channel chan = this_hdr;
-        if (("" != file) && ("system.h" == file)) {
-            chan = system_h;
-        }
-
-        if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
-            std::string define = "#define " + symbol + " 1\n";
-            Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-        } else {
-            std::string format = strprop->get_option("format");
-            if ("" == format) {
-                std::string define = "#define " + symbol + " " + value + "\n";
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            } else {
-                std::string cmd = "return \"#define " + symbol + " [format " + format + " " + value + "]\n\"";
-                std::string define;
-                if (TCL_OK != interp->eval(cmd, define)) {
-                    throw CdlInputOutputException("Internal error executing tcl fragment to process format option");
-                }
-                Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
-            }
-
-            std::string tmp = symbol + "_" + value;
-            if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
-                tmp = "#define " + tmp + "\n";
-                Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
-            }
-        }
+       CdlProperty_String strprop = dynamic_cast<CdlProperty_String>(*prop_i);
+       CYG_ASSERT_CLASSC(strprop);
+       std::string symbol = strprop->get_string();
+
+       std::string file = strprop->get_option("file");
+       Tcl_Channel chan = this_hdr;
+       if (("" != file) && ("system.h" == file)) {
+           chan = system_h;
+       }
+
+       if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Bool == flavor)) {
+           std::string define = "#define " + symbol + " 1\n";
+           Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+       } else {
+           std::string format = strprop->get_option("format");
+           if ("" == format) {
+               std::string define = "#define " + symbol + " " + value + "\n";
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           } else {
+               std::string cmd = "return \"#define " + symbol + " [format " + format + " " + value + "]\n\"";
+               std::string define;
+               if (TCL_OK != interp->eval(cmd, define)) {
+                   throw CdlInputOutputException("Internal error executing tcl fragment to process format option");
+               }
+               Tcl_Write(chan, const_cast<char*>(define.c_str()), -1);
+           }
+
+           std::string tmp = symbol + "_" + value;
+           if (Cdl::is_valid_c_preprocessor_symbol(tmp)) {
+               tmp = "#define " + tmp + "\n";
+               Tcl_Write(chan, const_cast<char*>(tmp.c_str()), -1);
+           }
+       }
     }
 
     // Now check for if_define properties
     std::vector<CdlProperty> if_define_props;
     get_properties(CdlPropertyId_IfDefine, if_define_props);
     for (prop_i = if_define_props.begin(); prop_i != if_define_props.end(); prop_i++) {
     }
 
     // Now check for if_define properties
     std::vector<CdlProperty> if_define_props;
     get_properties(CdlPropertyId_IfDefine, if_define_props);
     for (prop_i = if_define_props.begin(); prop_i != if_define_props.end(); prop_i++) {
-        CdlProperty_StringVector strprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
-        CYG_ASSERT_CLASSC(strprop);
-        CYG_ASSERTC(2 == strprop->get_number_of_strings());
+       CdlProperty_StringVector strprop = dynamic_cast<CdlProperty_StringVector>(*prop_i);
+       CYG_ASSERT_CLASSC(strprop);
+       CYG_ASSERTC(2 == strprop->get_number_of_strings());
 
 
-        std::string sym1 = strprop->get_string(0);
-        std::string sym2 = strprop->get_string(1);
+       std::string sym1 = strprop->get_string(0);
+       std::string sym2 = strprop->get_string(1);
 
 
-        Tcl_Channel chan = this_hdr;
-        std::string file = strprop->get_option("file");
-        if (("" != file) && ("system.h" == file)) {
-            chan = system_h;
-        }
-        std::string data = "#ifdef " + sym1 + "\n# define " + sym2 + " 1\n#endif\n";
-        Tcl_Write(chan, const_cast<char*>(data.c_str()), -1);
+       Tcl_Channel chan = this_hdr;
+       std::string file = strprop->get_option("file");
+       if (("" != file) && ("system.h" == file)) {
+           chan = system_h;
+       }
+       std::string data = "#ifdef " + sym1 + "\n# define " + sym2 + " 1\n#endif\n";
+       Tcl_Write(chan, const_cast<char*>(data.c_str()), -1);
     }
 
     // And define_proc properties
     std::vector<CdlProperty> define_proc_props;
     get_properties(CdlPropertyId_DefineProc, define_proc_props);
     for (prop_i = define_proc_props.begin(); prop_i != define_proc_props.end(); prop_i++) {
     }
 
     // And define_proc properties
     std::vector<CdlProperty> define_proc_props;
     get_properties(CdlPropertyId_DefineProc, define_proc_props);
     for (prop_i = define_proc_props.begin(); prop_i != define_proc_props.end(); prop_i++) {
-        CdlProperty_TclCode codeprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        CYG_ASSERT_CLASSC(codeprop);
+       CdlProperty_TclCode codeprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       CYG_ASSERT_CLASSC(codeprop);
 
 
-        cdl_tcl_code code       = codeprop->get_code();
-        std::string  result;
-        if (TCL_OK != interp->eval(code, result)) {
-            throw CdlInputOutputException("Error evaluating define_proc property for " + name + "\n" + result);
-        }
+       cdl_tcl_code code       = codeprop->get_code();
+       std::string  result;
+       if (TCL_OK != interp->eval(code, result)) {
+           throw CdlInputOutputException("Error evaluating define_proc property for " + name + "\n" + result);
+       }
     }
     }
-    
-    
+
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 //}}}
-//{{{  CdlDefineLoadableBody            
+//{{{  CdlDefineLoadableBody
 
 
-//{{{  Basics                           
+//{{{  Basics
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1708,7 +1708,7 @@ CdlDefineLoadableBody::CdlDefineLoadableBody()
 
     cdldefineloadablebody_cookie = CdlDefineLoadableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
 
     cdldefineloadablebody_cookie = CdlDefineLoadableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1721,7 +1721,7 @@ CdlDefineLoadableBody::~CdlDefineLoadableBody()
 
     cdldefineloadablebody_cookie = CdlDefineLoadableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdldefineloadablebody_cookie = CdlDefineLoadableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1742,14 +1742,14 @@ bool
 CdlDefineLoadableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlDefineLoadableBody_Magic != cdldefineloadablebody_cookie) {
 CdlDefineLoadableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlDefineLoadableBody_Magic != cdldefineloadablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlLoadableBody::check_this(zeal) && CdlNodeBody::check_this(zeal);
 }
 
 //}}}
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlLoadableBody::check_this(zeal) && CdlNodeBody::check_this(zeal);
 }
 
 //}}}
-//{{{  Property parsing                 
+//{{{  Property parsing
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1760,26 +1760,26 @@ CdlDefineLoadableBody::add_property_parsers(std::vector<CdlInterpreterCommandEnt
 
     static CdlInterpreterCommandEntry commands[] =
     {
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("define_header",      &parse_define_header),
-        CdlInterpreterCommandEntry("",                   0                   )
+       CdlInterpreterCommandEntry("define_header",      &parse_define_header),
+       CdlInterpreterCommandEntry("",                   0                   )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1794,30 +1794,30 @@ CdlDefineLoadableBody::check_properties(CdlInterpreter interp)
     // There should be at most one define_header property
     int count = count_properties(CdlPropertyId_DefineHeader);
     if (count> 1) {
     // There should be at most one define_header property
     int count = count_properties(CdlPropertyId_DefineHeader);
     if (count> 1) {
-        CdlParse::report_error(interp, "", "There should be at most one define_header property.");
+       CdlParse::report_error(interp, "", "There should be at most one define_header property.");
     }
     // FIXME: filename validation
     }
     // FIXME: filename validation
-    
+
     CdlNodeBody::check_properties(interp);
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 // ----------------------------------------------------------------------------
 // syntax: define_header <header file name>
 int
     CYG_REPORT_RETURN();
 }
 
 // ----------------------------------------------------------------------------
 // syntax: define_header <header file name>
 int
-CdlDefineLoadableBody::parse_define_header(CdlInterpreter interp, int argc, const charargv[])
+CdlDefineLoadableBody::parse_define_header(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define_header", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_DefineHeader, 0, 0);
 {
     CYG_REPORT_FUNCNAMETYPE("parse_define_header", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_DefineHeader, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  generate_config_header()         
+//{{{  generate_config_header()
 
 // ----------------------------------------------------------------------------
 void
 
 // ----------------------------------------------------------------------------
 void
@@ -1832,40 +1832,40 @@ CdlDefineLoadableBody::generate_config_header(Tcl_Channel this_hdr, Tcl_Channel
     Tcl_RegisterChannel(interp->get_tcl_interpreter(), system_h);
 
     CdlInterpreterBody::ContextSupport(interp, std::string("Package ") + this->get_name() + ", header file generation");
     Tcl_RegisterChannel(interp->get_tcl_interpreter(), system_h);
 
     CdlInterpreterBody::ContextSupport(interp, std::string("Package ") + this->get_name() + ", header file generation");
-    
+
     try {
     try {
-        interp->set_variable("::cdl_header", Tcl_GetChannelName(this_hdr));
-        interp->set_variable("::cdl_system_header", Tcl_GetChannelName(system_h));
-
-        const std::vector<CdlNode>& contents = get_owned();
-        std::vector<CdlNode>::const_iterator node_i;
-        for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
-            CdlDefinable definable = dynamic_cast<CdlDefinable>(*node_i);
-            if (0 == definable) {
-                continue;
-            }
-            if (!definable->is_active()) {
-                continue;
-            }
-            definable->generate_config_header(this_hdr, system_h);
-        }
-    
-        interp->unset_variable("::cdl_header");
-        interp->unset_variable("::cdl_system_header");
+       interp->set_variable("::cdl_header", Tcl_GetChannelName(this_hdr));
+       interp->set_variable("::cdl_system_header", Tcl_GetChannelName(system_h));
+
+       const std::vector<CdlNode>& contents = get_owned();
+       std::vector<CdlNode>::const_iterator node_i;
+       for (node_i = contents.begin(); node_i != contents.end(); node_i++) {
+           CdlDefinable definable = dynamic_cast<CdlDefinable>(*node_i);
+           if (0 == definable) {
+               continue;
+           }
+           if (!definable->is_active()) {
+               continue;
+           }
+           definable->generate_config_header(this_hdr, system_h);
+       }
+
+       interp->unset_variable("::cdl_header");
+       interp->unset_variable("::cdl_system_header");
     } catch(...) {
     } catch(...) {
-        Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
-        Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
-        throw;
+       Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
+       Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
+       throw;
     }
     }
-    
+
     Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
     Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
     Tcl_UnregisterChannel(interp->get_tcl_interpreter(), this_hdr);
     Tcl_UnregisterChannel(interp->get_tcl_interpreter(), system_h);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  get_config_headers()             
+//{{{  get_config_headers()
 
 // ----------------------------------------------------------------------------
 // What header file should be generated for this loadable?
 
 // ----------------------------------------------------------------------------
 // What header file should be generated for this loadable?
@@ -1883,13 +1883,13 @@ CdlDefineLoadableBody::get_config_header() const
     std::string result = "";
     CdlProperty prop = get_property(CdlPropertyId_DefineHeader);
     if (0 != prop) {
     std::string result = "";
     CdlProperty prop = get_property(CdlPropertyId_DefineHeader);
     if (0 != prop) {
-        CdlProperty_String string_prop = dynamic_cast<CdlProperty_String>(prop);
-        CYG_ASSERT_CLASSC(string_prop);
-        result = string_prop->get_string();
+       CdlProperty_String string_prop = dynamic_cast<CdlProperty_String>(prop);
+       CYG_ASSERT_CLASSC(string_prop);
+       result = string_prop->get_string();
     } else {
     } else {
-        std::string tmp = get_name();
-        result = Cdl::get_short_form(tmp);
-        result += ".h";
+       std::string tmp = get_name();
+       result = Cdl::get_short_form(tmp);
+       result += ".h";
     }
     CYG_REPORT_RETURN();
     return result;
     }
     CYG_REPORT_RETURN();
     return result;
@@ -1898,9 +1898,9 @@ CdlDefineLoadableBody::get_config_header() const
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlToplevel                      
+//{{{  CdlToplevel
 
 
-//{{{  CdlToplevel::get_build_info()            
+//{{{  CdlToplevel::get_build_info()
 
 // ----------------------------------------------------------------------------
 // Essentially this code involves iterating over the loadables vector,
 
 // ----------------------------------------------------------------------------
 // Essentially this code involves iterating over the loadables vector,
@@ -1917,23 +1917,23 @@ CdlToplevelBody::get_build_info(CdlBuildInfo& build_info)
     CYG_PRECONDITION_THISC();
 
     if (0 != build_info.entries.size()) {
     CYG_PRECONDITION_THISC();
 
     if (0 != build_info.entries.size()) {
-        build_info.entries.clear();
+       build_info.entries.clear();
     }
 
     const std::vector<CdlLoadable>&          loadables   = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
     }
 
     const std::vector<CdlLoadable>&          loadables   = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
-        CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
-        if (0 != bl) {
-            bl->update_build_info(build_info);
-        }
+       CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
+       if (0 != bl) {
+           bl->update_build_info(build_info);
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlToplevel::get_all_build_info()        
+//{{{  CdlToplevel::get_all_build_info()
 
 // ----------------------------------------------------------------------------
 // This is just like get_build_info(), but calls a different
 
 // ----------------------------------------------------------------------------
 // This is just like get_build_info(), but calls a different
@@ -1947,23 +1947,23 @@ CdlToplevelBody::get_all_build_info(CdlBuildInfo& build_info)
     CYG_PRECONDITION_THISC();
 
     if (0 != build_info.entries.size()) {
     CYG_PRECONDITION_THISC();
 
     if (0 != build_info.entries.size()) {
-        build_info.entries.clear();
+       build_info.entries.clear();
     }
 
     const std::vector<CdlLoadable>&          loadables   = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
     }
 
     const std::vector<CdlLoadable>&          loadables   = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
-        CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
-        if (0 != bl) {
-            bl->update_all_build_info(build_info);
-        }
+       CdlConstBuildLoadable bl = dynamic_cast<CdlConstBuildLoadable>(*load_i);
+       if (0 != bl) {
+           bl->update_all_build_info(build_info);
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlToplevel::generate_config_headers()   
+//{{{  CdlToplevel::generate_config_headers()
 
 // ----------------------------------------------------------------------------
 // Generating the config headers. This involves the following steps:
 
 // ----------------------------------------------------------------------------
 // Generating the config headers. This involves the following steps:
@@ -2013,8 +2013,8 @@ if {$data1 == $data2} {
     interp->set_variable("::cdl_compare_and_copy_file2", file2);
     std::string tcl_result;
     if (TCL_OK != interp->eval(compare_and_copy_script, tcl_result)) {
     interp->set_variable("::cdl_compare_and_copy_file2", file2);
     std::string tcl_result;
     if (TCL_OK != interp->eval(compare_and_copy_script, tcl_result)) {
-        throw CdlInputOutputException("internal error manipulating temporary header " + file1 + " and target " + file2 +
-            "\n" + tcl_result);
+       throw CdlInputOutputException("internal error manipulating temporary header " + file1 + " and target " + file2 +
+           "\n" + tcl_result);
     }
 }
 
     }
 }
 
@@ -2030,27 +2030,27 @@ CdlToplevelBody::generate_config_headers(std::string directory)
     // latter are used throughout the library
     // NOTE: this is not i18n-friendly.
     for (unsigned int i = 0; i < directory.size(); i++) {
     // latter are used throughout the library
     // NOTE: this is not i18n-friendly.
     for (unsigned int i = 0; i < directory.size(); i++) {
-        if ('\\' == directory[i]) {
-            directory[i] = '/';
-        }
+       if ('\\' == directory[i]) {
+           directory[i] = '/';
+       }
     }
     }
-    
+
     CdlInterpreter interp = get_interpreter();
     std::string    tcl_result;
     if ((TCL_OK != interp->eval("file isdirectory \"" + directory + "\"", tcl_result)) ||
     CdlInterpreter interp = get_interpreter();
     std::string    tcl_result;
     if ((TCL_OK != interp->eval("file isdirectory \"" + directory + "\"", tcl_result)) ||
-        (tcl_result != "1")) {
-        throw CdlInputOutputException("target " + directory + " is not a valid existing directory.");
+       (tcl_result != "1")) {
+       throw CdlInputOutputException("target " + directory + " is not a valid existing directory.");
     }
     }
-    
+
     std::vector<std::pair<CdlDefineLoadable, std::string> > headers;
     const std::vector<CdlLoadable>& loadables = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
     std::vector<std::pair<CdlDefineLoadable, std::string> > headers;
     const std::vector<CdlLoadable>& loadables = get_loadables();
     std::vector<CdlLoadable>::const_iterator load_i;
     for (load_i = loadables.begin(); load_i != loadables.end(); load_i++) {
-        CdlDefineLoadable tmp = dynamic_cast<CdlDefineLoadable>(*load_i);
-        if (0 != tmp) {
-            std::string hdr = tmp->get_config_header();
-            headers.push_back(std::make_pair(tmp, hdr));
-        }
+       CdlDefineLoadable tmp = dynamic_cast<CdlDefineLoadable>(*load_i);
+       if (0 != tmp) {
+           std::string hdr = tmp->get_config_header();
+           headers.push_back(std::make_pair(tmp, hdr));
+       }
     }
 
     static char banner_format[] =
     }
 
     static char banner_format[] =
@@ -2080,10 +2080,10 @@ CdlToplevelBody::generate_config_headers(std::string directory)
     // export to these.
     std::string system_h_name = directory + "/__libcdl_file1";
     Tcl_Channel system_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
     // export to these.
     std::string system_h_name = directory + "/__libcdl_file1";
     Tcl_Channel system_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
-                                               const_cast<char*>(system_h_name.c_str()), "w", 0666);
+                                              const_cast<char*>(system_h_name.c_str()), "w", 0666);
     if (0 == system_h) {
     if (0 == system_h) {
-        throw CdlInputOutputException("Unable to open file " + system_h_name + "\n" +
-                                      interp->get_result());
+       throw CdlInputOutputException("Unable to open file " + system_h_name + "\n" +
+                                     interp->get_result());
     }
     // The channel will be registered and unregistered in several
     // different interpreters. This call prevents the channel from
     }
     // The channel will be registered and unregistered in several
     // different interpreters. This call prevents the channel from
@@ -2092,80 +2092,80 @@ CdlToplevelBody::generate_config_headers(std::string directory)
 
     // Make sure that this operation is undone if necessary.
     try {
 
     // Make sure that this operation is undone if necessary.
     try {
-        // Now fill in system.h with the appropriate data. Start with the banner.
-        char local_buf[512];
-        sprintf(local_buf, banner_format, "SYSTEM_H", "SYSTEM_H", "system.h");
-        Tcl_Write(system_h, local_buf, -1);
-
-        // Add generic version information
-        system_h_add_version_header(system_h);
-        
-        // The rest of system.h will be filled in by the following loop.
-        //
-        // Walk down the previously constructed headers vector, create
-        // appropriate files, and let each DefineLoadable fill in the
-        // file for itself.
-        std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator outer_i;
-        std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator inner_i;
-        for (outer_i = headers.begin(); outer_i != headers.end(); outer_i++) {
-            if ("" == outer_i->second) {
-                continue;
-            }
-            std::string target_name = outer_i->second;
-            std::string header_name = directory + "/__libcdl_file2";
-            Tcl_Channel header_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
-                                                       const_cast<char*>(header_name.c_str()), "w", 0666);
-            if (0 == header_h) {
-                throw CdlInputOutputException("Unable to open file " + header_name + "\n" +
-                                              interp->get_result());
-            }
-            // The channel may be used in several different interpreters, so
-            // do an extra register operation
-            Tcl_RegisterChannel(0, header_h);
-
-            try {
-                // Output the banner. This requires an all-upper-case version of the
-                // header name.
-                std::string upper_case;
-                for (unsigned int i = 0; i < target_name.size(); i++) {
-                    if (islower(target_name[i])) {
-                        upper_case += toupper(target_name[i]);
-                    } else if ('.' == target_name[i]) {
-                        upper_case += '_';
-                    } else {
-                        upper_case += target_name[i];
-                    }
-                }
-                sprintf(local_buf, banner_format, upper_case.c_str(), upper_case.c_str(), target_name.c_str());
-                Tcl_Write(header_h, local_buf, -1);
-
-                // Now iterate over all the loadables looking for ones which
-                // should generate #define's for this header, and invoke the
-                // appropriate member function.
-                for (inner_i = outer_i; inner_i != headers.end(); inner_i++) {
-                    if (inner_i->second == target_name) {
-                        inner_i->first->generate_config_header(header_h, system_h);
-                        inner_i->second = "";
-                    }
-                }
-        
-                // The header file has now been updated. Close it and decide whether
-                // or not to replace the old version
-                Tcl_Write(header_h, "\n#endif\n", -1);
-            } catch(...) {
-                Tcl_UnregisterChannel(0, header_h);
-                throw;
-            }
-            Tcl_UnregisterChannel(0, header_h);
-            compare_and_copy(interp, header_name, directory + "/" + target_name);
-        }
-        
-        Tcl_Write(system_h, "\n#endif\n", -1);
+       // Now fill in system.h with the appropriate data. Start with the banner.
+       char local_buf[512];
+       sprintf(local_buf, banner_format, "SYSTEM_H", "SYSTEM_H", "system.h");
+       Tcl_Write(system_h, local_buf, -1);
+
+       // Add generic version information
+       system_h_add_version_header(system_h);
+
+       // The rest of system.h will be filled in by the following loop.
+       //
+       // Walk down the previously constructed headers vector, create
+       // appropriate files, and let each DefineLoadable fill in the
+       // file for itself.
+       std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator outer_i;
+       std::vector<std::pair<CdlDefineLoadable, std::string> >::iterator inner_i;
+       for (outer_i = headers.begin(); outer_i != headers.end(); outer_i++) {
+           if ("" == outer_i->second) {
+               continue;
+           }
+           std::string target_name = outer_i->second;
+           std::string header_name = directory + "/__libcdl_file2";
+           Tcl_Channel header_h = Tcl_OpenFileChannel(interp->get_tcl_interpreter(),
+                                                      const_cast<char*>(header_name.c_str()), "w", 0666);
+           if (0 == header_h) {
+               throw CdlInputOutputException("Unable to open file " + header_name + "\n" +
+                                             interp->get_result());
+           }
+           // The channel may be used in several different interpreters, so
+           // do an extra register operation
+           Tcl_RegisterChannel(0, header_h);
+
+           try {
+               // Output the banner. This requires an all-upper-case version of the
+               // header name.
+               std::string upper_case;
+               for (unsigned int i = 0; i < target_name.size(); i++) {
+                   if (islower(target_name[i])) {
+                       upper_case += toupper(target_name[i]);
+                   } else if ('.' == target_name[i]) {
+                       upper_case += '_';
+                   } else {
+                       upper_case += target_name[i];
+                   }
+               }
+               sprintf(local_buf, banner_format, upper_case.c_str(), upper_case.c_str(), target_name.c_str());
+               Tcl_Write(header_h, local_buf, -1);
+
+               // Now iterate over all the loadables looking for ones which
+               // should generate #define's for this header, and invoke the
+               // appropriate member function.
+               for (inner_i = outer_i; inner_i != headers.end(); inner_i++) {
+                   if (inner_i->second == target_name) {
+                       inner_i->first->generate_config_header(header_h, system_h);
+                       inner_i->second = "";
+                   }
+               }
+
+               // The header file has now been updated. Close it and decide whether
+               // or not to replace the old version
+               Tcl_Write(header_h, "\n#endif\n", -1);
+           } catch(...) {
+               Tcl_UnregisterChannel(0, header_h);
+               throw;
+           }
+           Tcl_UnregisterChannel(0, header_h);
+           compare_and_copy(interp, header_name, directory + "/" + target_name);
+       }
+
+       Tcl_Write(system_h, "\n#endif\n", -1);
     } catch(...) {
     } catch(...) {
-        Tcl_UnregisterChannel(0, system_h);
-        throw;
+       Tcl_UnregisterChannel(0, system_h);
+       throw;
     }
     }
-    
+
     // This call to UnregisterChannel automatically closes the
     // channel, there is no need for an explicit Tcl_Close() call.
     Tcl_UnregisterChannel(0, system_h);
     // This call to UnregisterChannel automatically closes the
     // channel, there is no need for an explicit Tcl_Close() call.
     Tcl_UnregisterChannel(0, system_h);
@@ -2178,7 +2178,7 @@ CdlToplevelBody::generate_config_headers(std::string directory)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlToplevel::get_config_headers()        
+//{{{  CdlToplevel::get_config_headers()
 
 // ----------------------------------------------------------------------------
 // Return details of the header files that should be generated. This
 
 // ----------------------------------------------------------------------------
 // Return details of the header files that should be generated. This
@@ -2210,21 +2210,21 @@ CdlToplevelBody::get_config_headers(std::vector<std::string>& headers)
     const std::vector<CdlLoadable>& loadables = get_loadables();
     std::vector<CdlLoadable>::const_iterator i;
     for (i = loadables.begin(); i != loadables.end(); i++) {
     const std::vector<CdlLoadable>& loadables = get_loadables();
     std::vector<CdlLoadable>::const_iterator i;
     for (i = loadables.begin(); i != loadables.end(); i++) {
-        CdlDefineLoadable current = dynamic_cast<CdlDefineLoadable>(*i);
-        if (0 != current) {
-            std::string its_file = current->get_config_header();
-            CYG_LOOP_INVARIANTC("" != its_file);
-            if (std::find(headers.begin(), headers.end(), its_file) == headers.end()) {
-                headers.push_back(its_file);
-            }
-        }
+       CdlDefineLoadable current = dynamic_cast<CdlDefineLoadable>(*i);
+       if (0 != current) {
+           std::string its_file = current->get_config_header();
+           CYG_LOOP_INVARIANTC("" != its_file);
+           if (std::find(headers.begin(), headers.end(), its_file) == headers.end()) {
+               headers.push_back(its_file);
+           }
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlToplevel::generate_build_tree()       
+//{{{  CdlToplevel::generate_build_tree()
 
 void
 CdlToplevelBody::generate_build_tree(std::string build_tree, std::string install_tree)
 
 void
 CdlToplevelBody::generate_build_tree(std::string build_tree, std::string install_tree)
index 6b971961c6b5546f6a78300090c2a8fb10d0ed0a..a268a1ef510b8fbda397ed9a93c60ea83e131754 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef __CDL_HXX
 # define __CDL_HXX
 #ifndef __CDL_HXX
 # define __CDL_HXX
-//{{{  Banner                                   
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -49,7 +49,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  nested #include's                        
+//{{{  nested #include's
 
 // ----------------------------------------------------------------------------
 // Software CDL depends on the core but adds no new system requirements.
 
 // ----------------------------------------------------------------------------
 // Software CDL depends on the core but adds no new system requirements.
@@ -60,7 +60,7 @@
 
 //}}}
 
 
 //}}}
 
-//{{{  Forward declarations of the body classes 
+//{{{  Forward declarations of the body classes
 
 // ----------------------------------------------------------------------------
 // This section provides forward declarations of the main classes used
 
 // ----------------------------------------------------------------------------
 // This section provides forward declarations of the main classes used
@@ -85,7 +85,7 @@ typedef const CdlOptionBody*            CdlConstOption;
 typedef const CdlPackagesDatabaseBody*  CdlConstPackagesDatabase;
 
 //}}}
 typedef const CdlPackagesDatabaseBody*  CdlConstPackagesDatabase;
 
 //}}}
-//{{{  CdlPackagesDatabase class                
+//{{{  CdlPackagesDatabase class
 
 // ----------------------------------------------------------------------------
 // An eCos component repository can get to be quite complicated. There will
 
 // ----------------------------------------------------------------------------
 // An eCos component repository can get to be quite complicated. There will
@@ -114,16 +114,16 @@ class CdlPackagesDatabaseBody {
 
     friend class CdlTest;
     friend class CdlDbParser;
 
     friend class CdlTest;
     friend class CdlDbParser;
-    
+
   public:
 
     static CdlPackagesDatabase  make(std::string = "", CdlDiagnosticFnPtr /* error */ = 0,
   public:
 
     static CdlPackagesDatabase  make(std::string = "", CdlDiagnosticFnPtr /* error */ = 0,
-                                     CdlDiagnosticFnPtr /* warn */ = 0);
+                                    CdlDiagnosticFnPtr /* warn */ = 0);
     bool                        update(void);
     ~CdlPackagesDatabaseBody();
 
     std::string                         get_component_repository() const;
     bool                        update(void);
     ~CdlPackagesDatabaseBody();
 
     std::string                         get_component_repository() const;
-    
+
     const std::vector<std::string>&     get_packages(void) const;
     bool                                is_known_package(std::string) const;
     const std::string&                  get_package_description(std::string) const;
     const std::vector<std::string>&     get_packages(void) const;
     bool                                is_known_package(std::string) const;
     const std::string&                  get_package_description(std::string) const;
@@ -141,7 +141,7 @@ class CdlPackagesDatabaseBody {
     const std::vector<std::string>&     get_target_enables(std::string) const;
     const std::vector<std::string>&     get_target_disables(std::string) const;
     const std::vector<std::pair<std::string,std::string> >& get_target_set_values(std::string) const;
     const std::vector<std::string>&     get_target_enables(std::string) const;
     const std::vector<std::string>&     get_target_disables(std::string) const;
     const std::vector<std::pair<std::string,std::string> >& get_target_set_values(std::string) const;
-    
+
     const std::vector<std::string>&     get_templates(void) const;
     bool                                is_known_template(std::string) const;
     std::string                         get_template_filename(std::string, std::string = "") const;
     const std::vector<std::string>&     get_templates(void) const;
     bool                                is_known_template(std::string) const;
     std::string                         get_template_filename(std::string, std::string = "") const;
@@ -149,8 +149,8 @@ class CdlPackagesDatabaseBody {
     const std::string                   get_template_description(std::string, std::string = "");
     const std::vector<std::string>&     get_template_packages(std::string, std::string = "");
     static void                         extract_template_details(std::string /* filename */, std::string& /* description */,
     const std::string                   get_template_description(std::string, std::string = "");
     const std::vector<std::string>&     get_template_packages(std::string, std::string = "");
     static void                         extract_template_details(std::string /* filename */, std::string& /* description */,
-                                                                 std::vector<std::string>& /* packages */);
-    
+                                                                std::vector<std::string>& /* packages */);
+
     // What are the valid compiler flag variables (ARCHFLAGS, ERRFLAGS, ...)?
     // For now the library provides a static vector of these things, but
     // this area is likely to change in future
     // What are the valid compiler flag variables (ARCHFLAGS, ERRFLAGS, ...)?
     // For now the library provides a static vector of these things, but
     // this area is likely to change in future
@@ -158,10 +158,10 @@ class CdlPackagesDatabaseBody {
 
     // Control verbosity when reading in a database
     static void set_verbose(bool);
 
     // Control verbosity when reading in a database
     static void set_verbose(bool);
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     // The only valid constructor gets invoked from the make() member function.
     // The argument should be a pathname for the component repository. The
   private:
     // The only valid constructor gets invoked from the make() member function.
     // The argument should be a pathname for the component repository. The
@@ -172,62 +172,62 @@ class CdlPackagesDatabaseBody {
     std::vector<std::string>            package_names;
     struct package_data {
       public:
     std::vector<std::string>            package_names;
     struct package_data {
       public:
-        std::string                     description;
-        std::vector<std::string>        aliases;
-        std::vector<std::string>        versions;
-        std::string                     directory;
-        std::string                     script;
-        bool                            hardware;
+       std::string                     description;
+       std::vector<std::string>        aliases;
+       std::vector<std::string>        versions;
+       std::string                     directory;
+       std::string                     script;
+       bool                            hardware;
     };
     std::map<std::string,struct package_data> packages;
     };
     std::map<std::string,struct package_data> packages;
-    
+
     std::vector<std::string>            target_names;
     struct target_data {
       public:
     std::vector<std::string>            target_names;
     struct target_data {
       public:
-        std::string                     description;
-        std::vector<std::string>        aliases;
-        std::vector<std::string>        packages;
-        std::vector<std::string>        enable;
-        std::vector<std::string>        disable;
-        std::vector<std::pair<std::string, std::string> > set_values;
+       std::string                     description;
+       std::vector<std::string>        aliases;
+       std::vector<std::string>        packages;
+       std::vector<std::string>        enable;
+       std::vector<std::string>        disable;
+       std::vector<std::pair<std::string, std::string> > set_values;
     };
     std::map<std::string, struct target_data>    targets;
     };
     std::map<std::string, struct target_data>    targets;
-    
+
     std::vector<std::string>            template_names;
     struct template_version_data {
       public:
     std::vector<std::string>            template_names;
     struct template_version_data {
       public:
-        std::string                     description;
-        std::vector<std::string>        packages;
+       std::string                     description;
+       std::vector<std::string>        packages;
     };
     struct template_data {
       public:
     };
     struct template_data {
       public:
-        std::vector<std::string>        versions;
-        std::map<std::string, struct template_version_data> version_details;
+       std::vector<std::string>        versions;
+       std::map<std::string, struct template_version_data> version_details;
     };
     std::map<std::string, struct template_data>   templates;
     };
     std::map<std::string, struct template_data>   templates;
-    
+
     enum {
     enum {
-        CdlPackagesDatabaseBody_Invalid = 0,
-        CdlPackagesDatabaseBody_Magic   = 0x50896acb
+       CdlPackagesDatabaseBody_Invalid = 0,
+       CdlPackagesDatabaseBody_Magic   = 0x50896acb
     } cdlpackagesdatabasebody_cookie;
 
     // This allows test cases to overwrite the name of the file
     // containing the database information.
     } cdlpackagesdatabasebody_cookie;
 
     // This allows test cases to overwrite the name of the file
     // containing the database information.
-    static char* database_name;
+    static const char *database_name;
 
     // Control whether or not minor problems with the database should be
     // reported.
     static bool verbose_mode;
 
     // Control whether or not minor problems with the database should be
     // reported.
     static bool verbose_mode;
-    
+
     // The default constructor, copy constructor and assignment operator are illegal.
     CdlPackagesDatabaseBody();
     CdlPackagesDatabaseBody(const CdlPackagesDatabaseBody&);
     CdlPackagesDatabaseBody& operator=(const CdlPackagesDatabaseBody&);
     // The default constructor, copy constructor and assignment operator are illegal.
     CdlPackagesDatabaseBody();
     CdlPackagesDatabaseBody(const CdlPackagesDatabaseBody&);
     CdlPackagesDatabaseBody& operator=(const CdlPackagesDatabaseBody&);
-    
+
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlConfiguration class                   
+//{{{  CdlConfiguration class
 
 // ----------------------------------------------------------------------------
 // The CdlConfiguration class is the toplevel used for mainpulating
 
 // ----------------------------------------------------------------------------
 // The CdlConfiguration class is the toplevel used for mainpulating
@@ -253,7 +253,7 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     friend class CdlTest;
 
   public:
     friend class CdlTest;
 
   public:
-    
+
     // ----------------------------------------------------------------------------
     // Create a new configuration.
     // Currently this requires a name, a database and a master interpreter.
     // ----------------------------------------------------------------------------
     // Create a new configuration.
     // Currently this requires a name, a database and a master interpreter.
@@ -317,24 +317,24 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
 
     // A version argument of "" implies the most recent version.
     void load_package(std::string /* name */, std::string /* version */,
 
     // A version argument of "" implies the most recent version.
     void load_package(std::string /* name */, std::string /* version */,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void load_package(CdlTransaction, std::string /* name */, std::string /* version */,
     void load_package(CdlTransaction, std::string /* name */, std::string /* version */,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
 
     void unload_package(std::string /* name */, bool /* limbo */ = true);
     void unload_package(CdlPackage, bool /* limbo */ = true);
     void unload_package(CdlTransaction, std::string /* name */, bool /* limbo */ = true);
     void unload_package(CdlTransaction, CdlPackage, bool /* limbo */ = true);
 
     void unload_package(std::string /* name */, bool /* limbo */ = true);
     void unload_package(CdlPackage, bool /* limbo */ = true);
     void unload_package(CdlTransaction, std::string /* name */, bool /* limbo */ = true);
     void unload_package(CdlTransaction, CdlPackage, bool /* limbo */ = true);
-    
+
     void change_package_version(std::string /*name*/, std::string /*version*/,
     void change_package_version(std::string /*name*/, std::string /*version*/,
-                                CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void change_package_version(CdlPackage, std::string /*version*/, CdlDiagnosticFnPtr /* error */,
     void change_package_version(CdlPackage, std::string /*version*/, CdlDiagnosticFnPtr /* error */,
-                                CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
 
     void change_package_version(CdlTransaction, std::string /*name*/, std::string /*version*/,
 
     void change_package_version(CdlTransaction, std::string /*name*/, std::string /*version*/,
-                                CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void change_package_version(CdlTransaction, CdlPackage, std::string /*version*/, CdlDiagnosticFnPtr /* error */,
     void change_package_version(CdlTransaction, CdlPackage, std::string /*version*/, CdlDiagnosticFnPtr /* error */,
-                                CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                               CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
 
     // Loading a savefile is different in that it creates a new
     // toplevel. Since transactions can only be created if the
 
     // Loading a savefile is different in that it creates a new
     // toplevel. Since transactions can only be created if the
@@ -342,36 +342,36 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     // per-transaction load() operation. It is possible to have
     // a per-transaction add() operation.
     static CdlConfiguration load(std::string /* filename */, CdlPackagesDatabase, CdlInterpreter,
     // per-transaction load() operation. It is possible to have
     // a per-transaction add() operation.
     static CdlConfiguration load(std::string /* filename */, CdlPackagesDatabase, CdlInterpreter,
-                                 CdlDiagnosticFnPtr /* error */,  CdlDiagnosticFnPtr /* warn */);
+                                CdlDiagnosticFnPtr /* error */,  CdlDiagnosticFnPtr /* warn */);
 
     void add(std::string /* filename */,
 
     void add(std::string /* filename */,
-             CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
+            CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
     void add(CdlTransaction, std::string /* filename */,
     void add(CdlTransaction, std::string /* filename */,
-             CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
+            CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */);
 
     // As with packages, a version of "" implies the most recent.
     void set_template(std::string, std::string /* version */,
 
     // As with packages, a version of "" implies the most recent.
     void set_template(std::string, std::string /* version */,
-                      CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */,bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */,bool /* limbo */ = true);
     void set_template_file(std::string,
     void set_template_file(std::string,
-                           CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                          CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void set_template(CdlTransaction, std::string, std::string /* version */,
     void set_template(CdlTransaction, std::string, std::string /* version */,
-                      CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void set_template_file(CdlTransaction, std::string,
     void set_template_file(CdlTransaction, std::string,
-                           CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                          CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void unload_template(bool /* limbo */ = true);
     void unload_template(CdlTransaction, bool /* limbo */ = true);
     std::string get_template() const;
     void        set_template_name(std::string); // Intended for library use only
 
     void set_hardware(std::string,
     void unload_template(bool /* limbo */ = true);
     void unload_template(CdlTransaction, bool /* limbo */ = true);
     std::string get_template() const;
     void        set_template_name(std::string); // Intended for library use only
 
     void set_hardware(std::string,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void set_hardware(CdlTransaction, std::string,
     void set_hardware(CdlTransaction, std::string,
-                      CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
+                     CdlDiagnosticFnPtr /* error */, CdlDiagnosticFnPtr /* warn */, bool /* limbo */ = true);
     void unload_hardware(bool /* limbo */ = true);
     void unload_hardware(CdlTransaction, bool /* limbo */ = true);
     std::string get_hardware() const;
     void        set_hardware_name(std::string); // Intended for library use only
     void unload_hardware(bool /* limbo */ = true);
     void unload_hardware(CdlTransaction, bool /* limbo */ = true);
     std::string get_hardware() const;
     void        set_hardware_name(std::string); // Intended for library use only
-    
+
     // ----------------------------------------------------------------------------
     // Save a configuration to a file
     void        save(std::string, bool /* minimal */ = false);
     // ----------------------------------------------------------------------------
     // Save a configuration to a file
     void        save(std::string, bool /* minimal */ = false);
@@ -385,7 +385,7 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     virtual std::string         get_class_name() const;
     bool                        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string         get_class_name() const;
     bool                        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     // The only legal constructor, invoked from make() and load()
   private:
 
     // The only legal constructor, invoked from make() and load()
@@ -398,15 +398,15 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     static int                  savefile_hardware_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_template_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_package_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_hardware_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_template_command(CdlInterpreter, int, const char*[]);
     static int                  savefile_package_command(CdlInterpreter, int, const char*[]);
-    
+
     std::string                 current_hardware;
     std::string                 current_template;
     std::string                 description;
     CdlPackagesDatabase         database;
     std::string                 save_file;
     enum {
     std::string                 current_hardware;
     std::string                 current_template;
     std::string                 description;
     CdlPackagesDatabase         database;
     std::string                 save_file;
     enum {
-        CdlConfigurationBody_Invalid    = 0,
-        CdlConfigurationBody_Magic      = 0x5c409a3d
+       CdlConfigurationBody_Invalid    = 0,
+       CdlConfigurationBody_Magic      = 0x5c409a3d
     } cdlconfigurationbody_cookie;
 
     // The constructor can only be invoked via the make() and load()
     } cdlconfigurationbody_cookie;
 
     // The constructor can only be invoked via the make() and load()
@@ -415,37 +415,37 @@ class CdlConfigurationBody : public virtual CdlToplevelBody
     CdlConfigurationBody();
     CdlConfigurationBody(const CdlConfigurationBody&);
     CdlConfigurationBody& operator=(const CdlConfigurationBody&);
     CdlConfigurationBody();
     CdlConfigurationBody(const CdlConfigurationBody&);
     CdlConfigurationBody& operator=(const CdlConfigurationBody&);
-    
+
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlPackage class                         
+//{{{  CdlPackage class
 
 // ----------------------------------------------------------------------------
 // Packages inherit from most of the base classes.
 
 class CdlPackageBody : public virtual CdlNodeBody,
 
 // ----------------------------------------------------------------------------
 // Packages inherit from most of the base classes.
 
 class CdlPackageBody : public virtual CdlNodeBody,
-                       public virtual CdlContainerBody,
-                       public virtual CdlUserVisibleBody,
-                       public virtual CdlValuableBody,
-                       public virtual CdlParentableBody,
-                       public virtual CdlBuildableBody,
-                       public virtual CdlDefinableBody,
-                       public virtual CdlLoadableBody,
-                       public virtual CdlBuildLoadableBody,
-                       public virtual CdlDefineLoadableBody
-{                       
+                      public virtual CdlContainerBody,
+                      public virtual CdlUserVisibleBody,
+                      public virtual CdlValuableBody,
+                      public virtual CdlParentableBody,
+                      public virtual CdlBuildableBody,
+                      public virtual CdlDefinableBody,
+                      public virtual CdlLoadableBody,
+                      public virtual CdlBuildLoadableBody,
+                      public virtual CdlDefineLoadableBody
+{
     friend class CdlTest;
 
     // Packages should not be created by application code, but
     // the CdlConfiguration class must be able to do so inside
     // load_package();
     friend class CdlConfigurationBody;
     friend class CdlTest;
 
     // Packages should not be created by application code, but
     // the CdlConfiguration class must be able to do so inside
     // load_package();
     friend class CdlConfigurationBody;
-    
+
   public:
 
     ~CdlPackageBody();
   public:
 
     ~CdlPackageBody();
-    
+
     static int          parse_package(CdlInterpreter, int, const char*[]);
     static int          parse_hardware(CdlInterpreter, int, const char*[]);
     static int          parse_install_proc(CdlInterpreter, int, const char*[]);
     static int          parse_package(CdlInterpreter, int, const char*[]);
     static int          parse_hardware(CdlInterpreter, int, const char*[]);
     static int          parse_install_proc(CdlInterpreter, int, const char*[]);
@@ -454,7 +454,7 @@ class CdlPackageBody : public virtual CdlNodeBody,
     // Override the CdlDefineLoadable member. Hardware packages always
     // send their configuration options to hardware.h
     virtual std::string get_config_header() const;
     // Override the CdlDefineLoadable member. Hardware packages always
     // send their configuration options to hardware.h
     virtual std::string get_config_header() const;
-    
+
     bool                is_hardware_package() const;
     bool                has_install_proc() const;
     const cdl_tcl_code& get_install_proc() const;
     bool                is_hardware_package() const;
     bool                has_install_proc() const;
     const cdl_tcl_code& get_install_proc() const;
@@ -465,7 +465,7 @@ class CdlPackageBody : public virtual CdlNodeBody,
     // it is necessary to invoke the container and valuable
     // update members.
     virtual void update(CdlTransaction, CdlUpdate);
     // it is necessary to invoke the container and valuable
     // update members.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
@@ -474,11 +474,11 @@ class CdlPackageBody : public virtual CdlNodeBody,
     // Was this package loaded because of a template or hardware setting?
     bool                belongs_to_template() const;
     bool                belongs_to_hardware() const;
     // Was this package loaded because of a template or hardware setting?
     bool                belongs_to_template() const;
     bool                belongs_to_hardware() const;
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     // The only valid constructor requires a number of fields
   private:
 
     // The only valid constructor requires a number of fields
@@ -491,26 +491,26 @@ class CdlPackageBody : public virtual CdlNodeBody,
 
     bool loaded_for_template;
     bool loaded_for_hardware;
 
     bool loaded_for_template;
     bool loaded_for_hardware;
-    
+
     enum {
     enum {
-        CdlPackageBody_Invalid  = 0,
-        CdlPackageBody_Magic    = 0x1d7c0d43
+       CdlPackageBody_Invalid  = 0,
+       CdlPackageBody_Magic    = 0x1d7c0d43
     } cdlpackagebody_cookie;
 };
 
 //}}}
     } cdlpackagebody_cookie;
 };
 
 //}}}
-//{{{  CdlComponent class                       
+//{{{  CdlComponent class
 
 // ----------------------------------------------------------------------------
 // Similarly components just inherit from the appropriate base classes.
 
 class CdlComponentBody : public virtual CdlNodeBody,
 
 // ----------------------------------------------------------------------------
 // Similarly components just inherit from the appropriate base classes.
 
 class CdlComponentBody : public virtual CdlNodeBody,
-                         public virtual CdlContainerBody,
-                         public virtual CdlUserVisibleBody,
-                         public virtual CdlValuableBody,
-                         public virtual CdlParentableBody,
-                         public virtual CdlBuildableBody,
-                         public virtual CdlDefinableBody
+                        public virtual CdlContainerBody,
+                        public virtual CdlUserVisibleBody,
+                        public virtual CdlValuableBody,
+                        public virtual CdlParentableBody,
+                        public virtual CdlBuildableBody,
+                        public virtual CdlDefinableBody
 {
     friend class CdlTest;
 
 {
     friend class CdlTest;
 
@@ -524,26 +524,26 @@ class CdlComponentBody : public virtual CdlNodeBody,
     // it is necessary to invoke the container and valuable
     // update members.
     virtual void update(CdlTransaction, CdlUpdate);
     // it is necessary to invoke the container and valuable
     // update members.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     static int          savefile_component_command(CdlInterpreter, int, const char*[]);
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     static int          savefile_component_command(CdlInterpreter, int, const char*[]);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     // The only valid constructor requires a name.
     CdlComponentBody(std::string);
   private:
 
     // The only valid constructor requires a name.
     CdlComponentBody(std::string);
-    
+
     enum {
     enum {
-        CdlComponentBody_Invalid  = 0,
-        CdlComponentBody_Magic    = 0x6359d9a7
+       CdlComponentBody_Invalid  = 0,
+       CdlComponentBody_Magic    = 0x6359d9a7
     } cdlcomponentbody_cookie;
     } cdlcomponentbody_cookie;
-    
+
     // Other constructors are illegal
     CdlComponentBody();
     CdlComponentBody(const CdlComponentBody&);
     // Other constructors are illegal
     CdlComponentBody();
     CdlComponentBody(const CdlComponentBody&);
@@ -551,30 +551,30 @@ class CdlComponentBody : public virtual CdlNodeBody,
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlOption class                          
+//{{{  CdlOption class
 
 // ----------------------------------------------------------------------------
 // Again options just inherit their functionality from the base classes.
 
 class CdlOptionBody : public virtual CdlNodeBody,
 
 // ----------------------------------------------------------------------------
 // Again options just inherit their functionality from the base classes.
 
 class CdlOptionBody : public virtual CdlNodeBody,
-                      public virtual CdlUserVisibleBody,
-                      public virtual CdlValuableBody,
-                      public virtual CdlParentableBody,
-                      public virtual CdlBuildableBody,
-                      public virtual CdlDefinableBody
+                     public virtual CdlUserVisibleBody,
+                     public virtual CdlValuableBody,
+                     public virtual CdlParentableBody,
+                     public virtual CdlBuildableBody,
+                     public virtual CdlDefinableBody
 {
     friend class CdlTest;
 {
     friend class CdlTest;
-    
+
   public:
     ~CdlOptionBody();
   public:
     ~CdlOptionBody();
-    
+
     static int          parse_option(CdlInterpreter, int, const char*[]);
     static int          parse_option(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     static int          savefile_option_command(CdlInterpreter, int, const char*[]);
     // Persistence support.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     static void         initialize_savefile_support(CdlToplevel);
     static int          savefile_option_command(CdlInterpreter, int, const char*[]);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -583,10 +583,10 @@ class CdlOptionBody : public virtual CdlNodeBody,
     CdlOptionBody(std::string);
 
     enum {
     CdlOptionBody(std::string);
 
     enum {
-        CdlOptionBody_Invalid   = 0,
-        CdlOptionBody_Magic     = 0x1c1162d1
+       CdlOptionBody_Invalid   = 0,
+       CdlOptionBody_Magic     = 0x1c1162d1
     } cdloptionbody_cookie;
     } cdloptionbody_cookie;
-    
+
     CdlOptionBody();
     CdlOptionBody(const CdlOptionBody&);
     CdlOptionBody& operator=(const CdlOptionBody&);
     CdlOptionBody();
     CdlOptionBody(const CdlOptionBody&);
     CdlOptionBody& operator=(const CdlOptionBody&);
index c64e2c3405e3fb4eceb8d9ee7550161c294b89a8..07e72625375029f2efdfa5cb2f429db275e55040 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef __CDLCORE_HXX
 # define __CDLCORE_HXX
 
 #ifndef __CDLCORE_HXX
 # define __CDLCORE_HXX
 
-//{{{  Banner                                           
+//{{{  Banner
 
 //==========================================================================
 //
 
 //==========================================================================
 //
 //
 //==========================================================================
 //####COPYRIGHTBEGIN####
 //
 //==========================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //==========================================================================
 //####COPYRIGHTEND####
 //==========================================================================
-//#####DESCRIPTIONBEGIN####                                             
+//#####DESCRIPTIONBEGIN####
 //
 // Author(s):           bartv
 // Contributors:        bartv
 //
 // Author(s):           bartv
 // Contributors:        bartv
@@ -48,7 +48,7 @@
 //==========================================================================
 
 //}}}
 //==========================================================================
 
 //}}}
-//{{{  Platform dependencies                            
+//{{{  Platform dependencies
 
 // ----------------------------------------------------------------------------
 // Visual C++ has the delightful feature that the source browser will generate
 
 // ----------------------------------------------------------------------------
 // Visual C++ has the delightful feature that the source browser will generate
@@ -65,7 +65,7 @@
 #endif
 
 //}}}
 #endif
 
 //}}}
-//{{{  nested #include's                                
+//{{{  nested #include's
 
 // ----------------------------------------------------------------------------
 // The libcdl API is defined using parts of the standard C++ library,
 
 // ----------------------------------------------------------------------------
 // The libcdl API is defined using parts of the standard C++ library,
@@ -148,7 +148,7 @@ extern "C" {
 
 //}}}
 
 
 //}}}
 
-//{{{  Primitive types, constants:, enums, etc.         
+//{{{  Primitive types, constants:, enums, etc.
 
 // ----------------------------------------------------------------------------
 // The CDL languages are defined in terms of arbitrary precision
 
 // ----------------------------------------------------------------------------
 // The CDL languages are defined in terms of arbitrary precision
@@ -248,7 +248,7 @@ typedef std::string  cdl_tcl_code;
 //    for enums? Arrays? Bitfields? Structures? Unions? C++ classes?
 //    How about other programming languages such as Ada or Java?
 //
 //    for enums? Arrays? Bitfields? Structures? Unions? C++ classes?
 //    How about other programming languages such as Ada or Java?
 //
-//    Any attempt to implement a grand union of all data types in CDL 
+//    Any attempt to implement a grand union of all data types in CDL
 //    is doomed to failure and should not be attempted. Treating
 //    everything as a string instead has proven successful in a number
 //    of languages, including Tcl and Perl.
 //    is doomed to failure and should not be attempted. Treating
 //    everything as a string instead has proven successful in a number
 //    of languages, including Tcl and Perl.
@@ -312,7 +312,7 @@ enum CdlValueSource {
     CdlValueSource_Wizard               =  2,
     CdlValueSource_User                 =  3,
     CdlValueSource_Current              =  4
     CdlValueSource_Wizard               =  2,
     CdlValueSource_User                 =  3,
     CdlValueSource_Current              =  4
-};        
+};
 
 // ----------------------------------------------------------------------------
 // Update support.
 
 // ----------------------------------------------------------------------------
 // Update support.
@@ -342,7 +342,7 @@ enum CdlUpdate {
     CdlUpdate_Created           = 0x0008,       // The destination has just been created
     CdlUpdate_Destroyed         = 0x0010,       // The destination is being destroyed
     CdlUpdate_ValueChange       = 0x0020,       // The destination's value has changed.
     CdlUpdate_Created           = 0x0008,       // The destination has just been created
     CdlUpdate_Destroyed         = 0x0010,       // The destination is being destroyed
     CdlUpdate_ValueChange       = 0x0020,       // The destination's value has changed.
-                                                // This gets applied to nodes as well                   
+                                               // This gets applied to nodes as well
     CdlUpdate_ActiveChange      = 0x0040        // The node has become active or inactive
 };
 
     CdlUpdate_ActiveChange      = 0x0040        // The node has become active or inactive
 };
 
@@ -373,7 +373,7 @@ enum CdlBoolWidget {
     CdlBoolWidget_CustomDialog          = 1,    // There is a valid custom dialog property
     CdlBoolWidget_CheckButton           = 2,    // For simple booleans
     CdlBoolWidget_Radio                 = 3,    // For several mutual exclusive options,
     CdlBoolWidget_CustomDialog          = 1,    // There is a valid custom dialog property
     CdlBoolWidget_CheckButton           = 2,    // For simple booleans
     CdlBoolWidget_Radio                 = 3,    // For several mutual exclusive options,
-                                                // the data structure will provide a string identifier
+                                               // the data structure will provide a string identifier
 };
 
 enum CdlValueWidget {
 };
 
 enum CdlValueWidget {
@@ -383,17 +383,17 @@ enum CdlValueWidget {
     CdlValueWidget_EntryBox             = 3,    // Fallback
     CdlValueWidget_MultilineString      = 4,    // For complicated strings
     CdlValueWidget_DecimalRange         = 5,    // e.g. 1 to 16
     CdlValueWidget_EntryBox             = 3,    // Fallback
     CdlValueWidget_MultilineString      = 4,    // For complicated strings
     CdlValueWidget_DecimalRange         = 5,    // e.g. 1 to 16
-                                                // Could be implemented as scale, radio buttons, entry, pull-down menu,
-                                                // combo box, ... depending on GUI conventions and number of entries
+                                               // Could be implemented as scale, radio buttons, entry, pull-down menu,
+                                               // combo box, ... depending on GUI conventions and number of entries
     CdlValueWidget_HexRange             = 6,    // e.g. 0x01 to 0x10
     CdlValueWidget_OctalRange           = 7,    // e.g. 01 to 020
     CdlValueWidget_DoubleRange          = 8,    // e.g. 0.1 to 0.2
     CdlValueWidget_NumericSet           = 9,    // e.g. 1 2 4 8 16
     CdlValueWidget_HexRange             = 6,    // e.g. 0x01 to 0x10
     CdlValueWidget_OctalRange           = 7,    // e.g. 01 to 020
     CdlValueWidget_DoubleRange          = 8,    // e.g. 0.1 to 0.2
     CdlValueWidget_NumericSet           = 9,    // e.g. 1 2 4 8 16
-                                                // The exact nature of the numbers is irrelevant, they will only
-                                                // get displayed, not edited
-                                                // Could be implemented as radio buttons, entry widget, pull-down menu,
-                                                // combo box, ... depending on GUI conventions and number of entries
-                                                // Each entry can have its own representation
+                                               // The exact nature of the numbers is irrelevant, they will only
+                                               // get displayed, not edited
+                                               // Could be implemented as radio buttons, entry widget, pull-down menu,
+                                               // combo box, ... depending on GUI conventions and number of entries
+                                               // Each entry can have its own representation
     CdlValueWidget_StringSet            = 10    // e.g. "ram", "rom"
 
     // More to be added, e.g. for compiler flag handling
     CdlValueWidget_StringSet            = 10    // e.g. "ram", "rom"
 
     // More to be added, e.g. for compiler flag handling
@@ -420,7 +420,7 @@ enum CdlValueFormat
 };
 
 //}}}
 };
 
 //}}}
-//{{{  Exception classes                                
+//{{{  Exception classes
 
 // ----------------------------------------------------------------------------
 // Some parts of the library make use of C++ exception handling. A number
 
 // ----------------------------------------------------------------------------
 // Some parts of the library make use of C++ exception handling. A number
@@ -437,20 +437,20 @@ class CdlStringException {
 
   public:
     CdlStringException(std::string message_arg) {
 
   public:
     CdlStringException(std::string message_arg) {
-        message = message_arg;
+       message = message_arg;
     }
     CdlStringException(const CdlStringException& original) {
     }
     CdlStringException(const CdlStringException& original) {
-        message = original.message;
+       message = original.message;
     }
     CdlStringException& operator=(const CdlStringException& original) {
     }
     CdlStringException& operator=(const CdlStringException& original) {
-        message = original.message;
-        return *this;
+       message = original.message;
+       return *this;
     }
     ~CdlStringException() {
     }
     ~CdlStringException() {
-        message = "";
+       message = "";
     }
     const std::string& get_message() const {
     }
     const std::string& get_message() const {
-        return message;
+       return message;
     }
   private:
     std::string message;
     }
   private:
     std::string message;
@@ -471,14 +471,14 @@ class CdlInputOutputException : public CdlStringException {
     friend class CdlTest;
   public:
     CdlInputOutputException(std::string message_arg) :
     friend class CdlTest;
   public:
     CdlInputOutputException(std::string message_arg) :
-        CdlStringException(message_arg) {
+       CdlStringException(message_arg) {
     }
     CdlInputOutputException(const CdlInputOutputException& original) :
     }
     CdlInputOutputException(const CdlInputOutputException& original) :
-        CdlStringException(original) {
+       CdlStringException(original) {
     }
     CdlInputOutputException& operator=(const CdlInputOutputException& original) {
     }
     CdlInputOutputException& operator=(const CdlInputOutputException& original) {
-        (void) CdlStringException::operator=(original);
-        return *this;
+       (void) CdlStringException::operator=(original);
+       return *this;
     }
 };
 
     }
 };
 
@@ -491,14 +491,14 @@ class CdlParseException : public CdlStringException {
     friend class CdlTest;
   public:
     CdlParseException(std::string message_arg) :
     friend class CdlTest;
   public:
     CdlParseException(std::string message_arg) :
-        CdlStringException(message_arg) {
+       CdlStringException(message_arg) {
     }
     CdlParseException(const CdlParseException& original) :
     }
     CdlParseException(const CdlParseException& original) :
-        CdlStringException(original) {
+       CdlStringException(original) {
     }
     CdlParseException& operator=(const CdlParseException& original) {
     }
     CdlParseException& operator=(const CdlParseException& original) {
-        (void) CdlStringException::operator=(original);
-        return *this;
+       (void) CdlStringException::operator=(original);
+       return *this;
     }
 };
 
     }
 };
 
@@ -510,19 +510,19 @@ class CdlEvalException : public CdlStringException {
     friend class CdlTest;
   public:
     CdlEvalException(std::string message_arg) :
     friend class CdlTest;
   public:
     CdlEvalException(std::string message_arg) :
-        CdlStringException(message_arg) {
+       CdlStringException(message_arg) {
     }
     CdlEvalException(const CdlEvalException& original) :
     }
     CdlEvalException(const CdlEvalException& original) :
-        CdlStringException(original) {
+       CdlStringException(original) {
     }
     CdlEvalException& operator=(const CdlEvalException& original) {
     }
     CdlEvalException& operator=(const CdlEvalException& original) {
-        (void) CdlStringException::operator=(original);
-        return *this;
+       (void) CdlStringException::operator=(original);
+       return *this;
     }
 };
 
 //}}}
     }
 };
 
 //}}}
-//{{{  Forward declarations of the body classes         
+//{{{  Forward declarations of the body classes
 
 // ----------------------------------------------------------------------------
 // This section provides forward declarations of the main classes in
 
 // ----------------------------------------------------------------------------
 // This section provides forward declarations of the main classes in
@@ -564,7 +564,7 @@ class CdlProperty_GoalExpressionBody;
 
 // Base classes. CDL entities such as options and components derive
 // from one or more of these, using virtual inheritance.
 
 // Base classes. CDL entities such as options and components derive
 // from one or more of these, using virtual inheritance.
-// 
+//
 // The lowest-level class is CdlNodeBody.
 //
 // 1) a node usually lives in a hierarchy, below a toplevel
 // The lowest-level class is CdlNodeBody.
 //
 // 1) a node usually lives in a hierarchy, below a toplevel
@@ -775,7 +775,7 @@ typedef const CdlConflict_DataBody*           CdlConstConflict_Data;
 typedef const CdlTransactionBody*             CdlConstTransaction;
 
 //}}}
 typedef const CdlTransactionBody*             CdlConstTransaction;
 
 //}}}
-//{{{  Miscellaneous types etc.                         
+//{{{  Miscellaneous types etc.
 
 // ----------------------------------------------------------------------------
 // This section is used for data types, function prototypes, etc. which could
 
 // ----------------------------------------------------------------------------
 // This section is used for data types, function prototypes, etc. which could
@@ -844,17 +844,17 @@ class CdlInterpreterCommandEntry {
 
     CdlInterpreterCommandEntry() : name(""), command(0) {}
     CdlInterpreterCommandEntry(const char *name_arg, CdlInterpreterCommand command_arg)
 
     CdlInterpreterCommandEntry() : name(""), command(0) {}
     CdlInterpreterCommandEntry(const char *name_arg, CdlInterpreterCommand command_arg)
-        : name(name_arg), command(command_arg)
+       : name(name_arg), command(command_arg)
     {
     }
     CdlInterpreterCommandEntry(std::string name_arg, CdlInterpreterCommand command_arg)
     {
     }
     CdlInterpreterCommandEntry(std::string name_arg, CdlInterpreterCommand command_arg)
-        : name(name_arg), command(command_arg)
+       : name(name_arg), command(command_arg)
     {
     }
     ~CdlInterpreterCommandEntry()
     {
     {
     }
     ~CdlInterpreterCommandEntry()
     {
-        name = "";
-        command = 0;
+       name = "";
+       command = 0;
     }
 };
 
     }
 };
 
@@ -900,7 +900,7 @@ struct CdlWidgetHint {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  Memory leak detection                            
+//{{{  Memory leak detection
 
 // ----------------------------------------------------------------------------
 // Provide some macros that are useful for detecting memory leaks. Basically
 
 // ----------------------------------------------------------------------------
 // Provide some macros that are useful for detecting memory leaks. Basically
@@ -926,7 +926,7 @@ struct CdlWidgetHint {
 #define CYGDBG_MEMLEAK_CONSTRUCTOR()            this->memleak_counter++;
 #define CYGDBG_MEMLEAK_DESTRUCTOR()             this->memleak_counter--;
 #define CYGDBG_MEMLEAK_CHECKTHIS()              if (this->memleak_counter < 0) { return false; }
 #define CYGDBG_MEMLEAK_CONSTRUCTOR()            this->memleak_counter++;
 #define CYGDBG_MEMLEAK_DESTRUCTOR()             this->memleak_counter--;
 #define CYGDBG_MEMLEAK_CHECKTHIS()              if (this->memleak_counter < 0) { return false; }
-    
+
 #else
 
 #define CYGDBG_MEMLEAK_CONSTRUCTOR()
 #else
 
 #define CYGDBG_MEMLEAK_CONSTRUCTOR()
@@ -937,7 +937,7 @@ struct CdlWidgetHint {
 
 //}}}
 
 
 //}}}
 
-//{{{  Cdl class                                        
+//{{{  Cdl class
 
 // ---------------------------------------------------------------------------
 // The sole purpose of this class is to provide some utility functions with
 
 // ---------------------------------------------------------------------------
 // The sole purpose of this class is to provide some utility functions with
@@ -945,15 +945,15 @@ struct CdlWidgetHint {
 // implements namespaces.
 
 class Cdl {
 // implements namespaces.
 
 class Cdl {
-    
+
   public:
 
     static bool         is_valid_value_flavor(CdlValueFlavor);
     static bool         is_valid_value_source(CdlValueSource);
   public:
 
     static bool         is_valid_value_flavor(CdlValueFlavor);
     static bool         is_valid_value_source(CdlValueSource);
-    
+
     static bool         is_valid_cdl_name(const std::string&);
     static bool         is_valid_c_preprocessor_symbol(const std::string&);
     static bool         is_valid_cdl_name(const std::string&);
     static bool         is_valid_c_preprocessor_symbol(const std::string&);
-    
+
     static bool         string_to_integer(std::string, cdl_int&);
     static bool         string_to_double(std::string, double&);
     static bool         string_to_bool(std::string, bool&);
     static bool         string_to_integer(std::string, cdl_int&);
     static bool         string_to_double(std::string, double&);
     static bool         string_to_bool(std::string, bool&);
@@ -966,19 +966,19 @@ class Cdl {
     static void         integer_to_double(cdl_int, double&);
     static double       integer_to_double(cdl_int);
     static bool         double_to_integer(double, cdl_int&);
     static void         integer_to_double(cdl_int, double&);
     static double       integer_to_double(cdl_int);
     static bool         double_to_integer(double, cdl_int&);
-    
+
     static bool         string_to_flavor(std::string, CdlValueFlavor&);
     static bool         flavor_to_string(CdlValueFlavor, std::string&);
     static bool         string_to_source(std::string, CdlValueSource&);
     static bool         source_to_string(CdlValueSource, std::string&);
     static bool         string_to_flavor(std::string, CdlValueFlavor&);
     static bool         flavor_to_string(CdlValueFlavor, std::string&);
     static bool         string_to_source(std::string, CdlValueSource&);
     static bool         source_to_string(CdlValueSource, std::string&);
-                                         
+
     static std::string  get_library_version();
     static void         set_interactive(bool = true);
     static bool         is_interactive();
 
     static bool         truth() { return true; }
     static bool         falsehood() { return false; }
     static std::string  get_library_version();
     static void         set_interactive(bool = true);
     static bool         is_interactive();
 
     static bool         truth() { return true; }
     static bool         falsehood() { return false; }
-    
+
     // return values are -1,0,1 just like strcmp(). The most recent
     // version is the smallest.
     static int          compare_versions(std::string, std::string);
     // return values are -1,0,1 just like strcmp(). The most recent
     // version is the smallest.
     static int          compare_versions(std::string, std::string);
@@ -986,25 +986,25 @@ class Cdl {
     // Also provide an STL-friendly comparison class
     class version_cmp {
       public:
     // Also provide an STL-friendly comparison class
     class version_cmp {
       public:
-        bool operator()(const std::string& v1, const std::string& v2) const {
-            return Cdl::compare_versions(v1,v2) < 0;
-        }
+       bool operator()(const std::string& v1, const std::string& v2) const {
+           return Cdl::compare_versions(v1,v2) < 0;
+       }
     };
 
     // Split a version string into major, minor and release numbers.
     static void         split_version_string(const std::string&, std::string& /* major */,
     };
 
     // Split a version string into major, minor and release numbers.
     static void         split_version_string(const std::string&, std::string& /* major */,
-                                             std::string& /* minor */, std::string& /* release */);
-    
+                                            std::string& /* minor */, std::string& /* release */);
+
     // It is occasionally useful to take a full CDL name such as CYGPKG_KERNEL
     // and turn it into a short form, i.e. kernel.
     static std::string  get_short_form(const std::string&);
     // It is occasionally useful to take a full CDL name such as CYGPKG_KERNEL
     // and turn it into a short form, i.e. kernel.
     static std::string  get_short_form(const std::string&);
-    
+
   private:
     static bool         interactive;
 };
 
 //}}}
   private:
     static bool         interactive;
 };
 
 //}}}
-//{{{  CdlInterpreter class                             
+//{{{  CdlInterpreter class
 
 // ----------------------------------------------------------------------------
 // libcdl requires access to a Tcl interpreter. For now the standard
 
 // ----------------------------------------------------------------------------
 // libcdl requires access to a Tcl interpreter. For now the standard
@@ -1076,7 +1076,7 @@ class CdlInterpreterBody
   public:
 
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
   public:
 
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
     // This is how a top-level (i.e. per-toplevel) interpreter
     // should get created.
     static CdlInterpreter       make(Tcl_Interp* = 0);
     // This is how a top-level (i.e. per-toplevel) interpreter
     // should get created.
     static CdlInterpreter       make(Tcl_Interp* = 0);
@@ -1084,10 +1084,10 @@ class CdlInterpreterBody
     // Create a slave interpreter for reading in the data in e.g. a
     // cdl_package
     CdlInterpreter create_slave(CdlLoadable, bool /* safe */ = true);
     // Create a slave interpreter for reading in the data in e.g. a
     // cdl_package
     CdlInterpreter create_slave(CdlLoadable, bool /* safe */ = true);
-    
+
     // Make the interpreter safe, a one-way operation.
     void                make_safe();
     // Make the interpreter safe, a one-way operation.
     void                make_safe();
-    
+
     // The destructor is public.
     virtual ~CdlInterpreterBody();
 
     // The destructor is public.
     virtual ~CdlInterpreterBody();
 
@@ -1104,15 +1104,15 @@ class CdlInterpreterBody
     std::vector<CdlInterpreterCommandEntry>* push_commands(std::vector<CdlInterpreterCommandEntry>&);
     void pop_commands(std::vector<CdlInterpreterCommandEntry>*);
     std::vector<CdlInterpreterCommandEntry>* get_pushed_commands() const;
     std::vector<CdlInterpreterCommandEntry>* push_commands(std::vector<CdlInterpreterCommandEntry>&);
     void pop_commands(std::vector<CdlInterpreterCommandEntry>*);
     std::vector<CdlInterpreterCommandEntry>* get_pushed_commands() const;
-    
+
     // Similarly, allow variables to be set, unset and queried
     void        set_variable(std::string, std::string);
     void        unset_variable(std::string);
     std::string get_variable(std::string);
     // Similarly, allow variables to be set, unset and queried
     void        set_variable(std::string, std::string);
     void        unset_variable(std::string);
     std::string get_variable(std::string);
-    
+
     // FIXME: add support for variable traces. These are needed
     // for cdl_value and similar utilities.
     // FIXME: add support for variable traces. These are needed
     // for cdl_value and similar utilities.
-    
+
     // Provide hooks into the AssocData() facilities associated with
     // Tcl interpreters. This makes it possible to store arbitrary
     // data with an interpreter, e.g. to keep track of current state.
     // Provide hooks into the AssocData() facilities associated with
     // Tcl interpreters. This makes it possible to store arbitrary
     // data with an interpreter, e.g. to keep track of current state.
@@ -1133,7 +1133,7 @@ class CdlInterpreterBody
     // And support for evaluating an entire file
     int eval_file(std::string);
     int eval_file(std::string, std::string&);
     // And support for evaluating an entire file
     int eval_file(std::string);
     int eval_file(std::string, std::string&);
-    
+
     // For use by commands implemented in C++, a way of setting the result
     void set_result(std::string);
 
     // For use by commands implemented in C++, a way of setting the result
     void set_result(std::string);
 
@@ -1142,7 +1142,7 @@ class CdlInterpreterBody
 
     // Was the result set by the Tcl interpreter or by libcdl?
     bool result_set_by_cdl();
 
     // Was the result set by the Tcl interpreter or by libcdl?
     bool result_set_by_cdl();
-    
+
     // A utility to quote data that is going to end up in a TCL script.
     static std::string quote(std::string);
 
     // A utility to quote data that is going to end up in a TCL script.
     static std::string quote(std::string);
 
@@ -1151,7 +1151,7 @@ class CdlInterpreterBody
 
     // Add some data to a comment, allowing for newlines if necessary
     static std::string extend_comment(const std::string&, int, int = 0);
 
     // Add some data to a comment, allowing for newlines if necessary
     static std::string extend_comment(const std::string&, int, int = 0);
-    
+
     // Write some data to a savefile, throwing an exception on error
     void write_data(Tcl_Channel, std::string);
 
     // Write some data to a savefile, throwing an exception on error
     void write_data(Tcl_Channel, std::string);
 
@@ -1212,126 +1212,126 @@ class CdlInterpreterBody
     // exceptions may get thrown.
     class DiagSupport {
       public:
     // exceptions may get thrown.
     class DiagSupport {
       public:
-        DiagSupport(CdlInterpreter interp_arg, CdlDiagnosticFnPtr error_fn_arg, CdlDiagnosticFnPtr warn_fn_arg) {
-            interp         = interp_arg;
-            saved_error_fn = interp->push_error_fn_ptr(error_fn_arg);
-            saved_warn_fn  = interp->push_warning_fn_ptr(warn_fn_arg);
-        }
-        ~DiagSupport() {
-            interp->pop_error_fn_ptr(saved_error_fn);
-            interp->pop_warning_fn_ptr(saved_warn_fn);
-        }
+       DiagSupport(CdlInterpreter interp_arg, CdlDiagnosticFnPtr error_fn_arg, CdlDiagnosticFnPtr warn_fn_arg) {
+           interp         = interp_arg;
+           saved_error_fn = interp->push_error_fn_ptr(error_fn_arg);
+           saved_warn_fn  = interp->push_warning_fn_ptr(warn_fn_arg);
+       }
+       ~DiagSupport() {
+           interp->pop_error_fn_ptr(saved_error_fn);
+           interp->pop_warning_fn_ptr(saved_warn_fn);
+       }
     private:
     private:
-        DiagSupport();
+       DiagSupport();
 
 
-        CdlInterpreter     interp;
-        CdlDiagnosticFnPtr saved_error_fn;
-        CdlDiagnosticFnPtr saved_warn_fn;
+       CdlInterpreter     interp;
+       CdlDiagnosticFnPtr saved_error_fn;
+       CdlDiagnosticFnPtr saved_warn_fn;
     };
     class ContextSupport {
       public:
     };
     class ContextSupport {
       public:
-        ContextSupport(CdlInterpreter interp_arg, std::string context) {
-            interp = interp_arg;
-            saved_context = interp->push_context(context);
-        }
-        ~ContextSupport() {
-            interp->pop_context(saved_context);
-        }
+       ContextSupport(CdlInterpreter interp_arg, std::string context) {
+           interp = interp_arg;
+           saved_context = interp->push_context(context);
+       }
+       ~ContextSupport() {
+           interp->pop_context(saved_context);
+       }
       private:
       private:
-        ContextSupport();
-        CdlInterpreter interp;
-        std::string    saved_context;
+       ContextSupport();
+       CdlInterpreter interp;
+       std::string    saved_context;
     };
     class ContainerSupport {
       public:
     };
     class ContainerSupport {
       public:
-        ContainerSupport(CdlInterpreter interp_arg, CdlContainer container) {
-            interp = interp_arg;
-            saved_container = interp->push_container(container);
-        }
-        ~ContainerSupport() {
-            interp->pop_container(saved_container);
-        }
+       ContainerSupport(CdlInterpreter interp_arg, CdlContainer container) {
+           interp = interp_arg;
+           saved_container = interp->push_container(container);
+       }
+       ~ContainerSupport() {
+           interp->pop_container(saved_container);
+       }
       private:
       private:
-        ContainerSupport();
-        CdlInterpreter interp;
-        CdlContainer   saved_container;
+       ContainerSupport();
+       CdlInterpreter interp;
+       CdlContainer   saved_container;
     };
     class NodeSupport {
       public:
     };
     class NodeSupport {
       public:
-        NodeSupport(CdlInterpreter interp_arg, CdlNode node) {
-            interp = interp_arg;
-            saved_node = interp->push_node(node);
-        }
-        ~NodeSupport() {
-            interp->pop_node(saved_node);
-        }
+       NodeSupport(CdlInterpreter interp_arg, CdlNode node) {
+           interp = interp_arg;
+           saved_node = interp->push_node(node);
+       }
+       ~NodeSupport() {
+           interp->pop_node(saved_node);
+       }
       private:
       private:
-        NodeSupport();
-        CdlInterpreter interp;
-        CdlNode        saved_node;
+       NodeSupport();
+       CdlInterpreter interp;
+       CdlNode        saved_node;
     };
     class CommandSupport {
       public:
     };
     class CommandSupport {
       public:
-        CommandSupport(CdlInterpreter interp_arg, std::vector<CdlInterpreterCommandEntry>& commands) {
-            interp = interp_arg;
-            saved_commands = interp->push_commands(commands);
-        }
-        CommandSupport(CdlInterpreter interp_arg, CdlInterpreterCommandEntry* commands) {
-            unsigned int i;
-            for (i = 0; 0 != commands[i].command; i++) {
-                new_commands.push_back(commands[i]);
-            }
-            interp = interp_arg;
-            saved_commands = interp->push_commands(new_commands);
-        }
-        ~CommandSupport() {
-            interp->pop_commands(saved_commands);
-        }
+       CommandSupport(CdlInterpreter interp_arg, std::vector<CdlInterpreterCommandEntry>& commands) {
+           interp = interp_arg;
+           saved_commands = interp->push_commands(commands);
+       }
+       CommandSupport(CdlInterpreter interp_arg, CdlInterpreterCommandEntry* commands) {
+           unsigned int i;
+           for (i = 0; 0 != commands[i].command; i++) {
+               new_commands.push_back(commands[i]);
+           }
+           interp = interp_arg;
+           saved_commands = interp->push_commands(new_commands);
+       }
+       ~CommandSupport() {
+           interp->pop_commands(saved_commands);
+       }
 
       private:
 
       private:
-        CommandSupport();
-        CdlInterpreter interp;
-        std::vector<CdlInterpreterCommandEntry>* saved_commands;
-        std::vector<CdlInterpreterCommandEntry> new_commands;
+       CommandSupport();
+       CdlInterpreter interp;
+       std::vector<CdlInterpreterCommandEntry>* saved_commands;
+       std::vector<CdlInterpreterCommandEntry> new_commands;
     };
 
     // Similar utility classes for variables and assoc data.
     class VariableSupport {
       public:
     };
 
     // Similar utility classes for variables and assoc data.
     class VariableSupport {
       public:
-        VariableSupport(CdlInterpreter interp_arg, std::string varname_arg, std::string data) {
-            interp  = interp_arg;
-            varname = varname_arg;
-            interp->set_variable(varname, data);
-        }
-        ~VariableSupport() {
-            interp->unset_variable(varname);
-        }
+       VariableSupport(CdlInterpreter interp_arg, std::string varname_arg, std::string data) {
+           interp  = interp_arg;
+           varname = varname_arg;
+           interp->set_variable(varname, data);
+       }
+       ~VariableSupport() {
+           interp->unset_variable(varname);
+       }
       private:
       private:
-        VariableSupport();
-        CdlInterpreter interp;
-        std::string    varname;
+       VariableSupport();
+       CdlInterpreter interp;
+       std::string    varname;
     };
     class AssocSupport {
       public:
     };
     class AssocSupport {
       public:
-        AssocSupport(CdlInterpreter interp_arg, const char* name_arg, ClientData data, Tcl_InterpDeleteProc* del_proc = 0) {
-            interp = interp_arg;
-            name   = name_arg;
-            interp->set_assoc_data(name, data, del_proc);
-        }
-        ~AssocSupport() {
-            interp->delete_assoc_data(name);
-        }
+       AssocSupport(CdlInterpreter interp_arg, const char* name_arg, ClientData data, Tcl_InterpDeleteProc* del_proc = 0) {
+           interp = interp_arg;
+           name   = name_arg;
+           interp->set_assoc_data(name, data, del_proc);
+       }
+       ~AssocSupport() {
+           interp->delete_assoc_data(name);
+       }
       private:
       private:
-        AssocSupport();
-        CdlInterpreter interp;
-        const char*    name;
+       AssocSupport();
+       CdlInterpreter interp;
+       const char*    name;
     };
     };
-    
+
     // Some command implementations may want to access other Tcl library
     // routines such as Tcl_SplitList(). This requires convenient access
     // to the underlying Tcl interpreter.
     Tcl_Interp*         get_tcl_interpreter() const;
     // Some command implementations may want to access other Tcl library
     // routines such as Tcl_SplitList(). This requires convenient access
     // to the underlying Tcl interpreter.
     Tcl_Interp*         get_tcl_interpreter() const;
-    
+
     // For use by the assertion macros.
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
 
     // For use by the assertion macros.
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
 
@@ -1341,8 +1341,8 @@ class CdlInterpreterBody
     static int          tcl_command_proc(ClientData, Tcl_Interp*, int, const char*[]);
 
     // This key is used to access the CdlInterpreter assoc data.
     static int          tcl_command_proc(ClientData, Tcl_Interp*, int, const char*[]);
 
     // This key is used to access the CdlInterpreter assoc data.
-    static char*        cdlinterpreter_assoc_data_key;
-    
+    static const char*        cdlinterpreter_assoc_data_key;
+
     // Do not allow static instances of a Cdl interpreter. There are too
     // many possible failure conditions. Cdl interpreters can only be
     // created dynamically via make(), which will invoke this.
     // Do not allow static instances of a Cdl interpreter. There are too
     // many possible failure conditions. Cdl interpreters can only be
     // created dynamically via make(), which will invoke this.
@@ -1353,7 +1353,7 @@ class CdlInterpreterBody
     CdlInterpreterBody(const CdlInterpreterBody&);
     CdlInterpreterBody& operator=(const CdlInterpreterBody&);
 
     CdlInterpreterBody(const CdlInterpreterBody&);
     CdlInterpreterBody& operator=(const CdlInterpreterBody&);
 
-    
+
     Tcl_Interp*                 tcl_interp;     // The underlying Tcl interpreter
     bool                        owns_interp;    // Was the Tcl interpreter created by the library?
     std::vector<CdlInterpreter> slaves;         // All slave interpreters
     Tcl_Interp*                 tcl_interp;     // The underlying Tcl interpreter
     bool                        owns_interp;    // Was the Tcl interpreter created by the library?
     std::vector<CdlInterpreter> slaves;         // All slave interpreters
@@ -1367,17 +1367,17 @@ class CdlInterpreterBody
     CdlDiagnosticFnPtr          error_fn_ptr;
     CdlDiagnosticFnPtr          warning_fn_ptr;
     bool                        cdl_result;
     CdlDiagnosticFnPtr          error_fn_ptr;
     CdlDiagnosticFnPtr          warning_fn_ptr;
     bool                        cdl_result;
-    
+
     std::vector<CdlInterpreterCommandEntry>* current_commands; // for push() and pop()
     std::vector<CdlInterpreterCommandEntry>* current_commands; // for push() and pop()
-    
+
     enum {
     enum {
-        CdlInterpreterBody_Invalid = 0,
-        CdlInterpreterBody_Magic   = 0x0be67689
+       CdlInterpreterBody_Invalid = 0,
+       CdlInterpreterBody_Magic   = 0x0be67689
     } cdlinterpreterbody_cookie;
 };
 
 //}}}
     } cdlinterpreterbody_cookie;
 };
 
 //}}}
-//{{{  CdlReference/Referrer classes                    
+//{{{  CdlReference/Referrer classes
 
 // ---------------------------------------------------------------------------
 // CDL objects are organised primarily in a tree hierarchy. For
 
 // ---------------------------------------------------------------------------
 // CDL objects are organised primarily in a tree hierarchy. For
@@ -1449,14 +1449,14 @@ class CdlReference {
     // CdlReferrer must be a friend so that when a package gets unloaded
     // it can clean up all references to it.
     friend class        CdlReferrer;
     // CdlReferrer must be a friend so that when a package gets unloaded
     // it can clean up all references to it.
     friend class        CdlReferrer;
-    
+
   public:
 
     // The default constructor should not normally be used, instead
     // a string should be supplied. However there are vectors of
     // reference objects...
     CdlReference();
   public:
 
     // The default constructor should not normally be used, instead
     // a string should be supplied. However there are vectors of
     // reference objects...
     CdlReference();
-    
+
     // The main constructor supplies the name of the referenced
     // entity. The resulting object will be unbound.
     CdlReference(const std::string);
     // The main constructor supplies the name of the referenced
     // entity. The resulting object will be unbound.
     CdlReference(const std::string);
@@ -1467,11 +1467,11 @@ class CdlReference {
     // The assignment operator is needed for STL operations.
     // Again it only makes sense of unbound objects.
     CdlReference& operator=(const CdlReference&);
     // The assignment operator is needed for STL operations.
     // Again it only makes sense of unbound objects.
     CdlReference& operator=(const CdlReference&);
-    
+
     // The destructor is only valid for unbound objects. All references
     // should be unbound before an entity can be destroyed.
     ~CdlReference();
     // The destructor is only valid for unbound objects. All references
     // should be unbound before an entity can be destroyed.
     ~CdlReference();
-    
+
     // Access the various fields.
     void               set_destination_name(const std::string);
     const std::string& get_destination_name() const;
     // Access the various fields.
     void               set_destination_name(const std::string);
     const std::string& get_destination_name() const;
@@ -1495,11 +1495,11 @@ class CdlReference {
     // This is used by the ASSERT_CLASS() and ASSERT_THIS() macros.
     bool check_this(cyg_assert_class_zeal cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     // This is used by the ASSERT_CLASS() and ASSERT_THIS() macros.
     bool check_this(cyg_assert_class_zeal cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
   private:
   protected:
 
   private:
-    
+
     // The data fields. The name is usually filled in by the
     // constructor. The destination defaults to zero for an unbound
     // object and gets filled in by the bind() operation.
     // The data fields. The name is usually filled in by the
     // constructor. The destination defaults to zero for an unbound
     // object and gets filled in by the bind() operation.
@@ -1507,8 +1507,8 @@ class CdlReference {
     CdlNode     dest;
 
     enum {
     CdlNode     dest;
 
     enum {
-        CdlReference_Invalid = 0,
-        CdlReference_Magic   = 0x3f908608
+       CdlReference_Invalid = 0,
+       CdlReference_Magic   = 0x3f908608
     } cdlreference_cookie;
 };
 
     } cdlreference_cookie;
 };
 
@@ -1538,7 +1538,7 @@ class CdlReferrer {
     // members, since these two functions are really responsible for
     // creating and destroying referrer objects.
     friend class        CdlReference;
     // members, since these two functions are really responsible for
     // creating and destroying referrer objects.
     friend class        CdlReference;
-    
+
   public:
 
     // The default constructor, copy constructor and assignment
   public:
 
     // The default constructor, copy constructor and assignment
@@ -1556,22 +1556,22 @@ class CdlReferrer {
     void        update(CdlTransaction, CdlNode, CdlUpdate);
     bool        check_this(cyg_assert_class_zeal=cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     void        update(CdlTransaction, CdlNode, CdlUpdate);
     bool        check_this(cyg_assert_class_zeal=cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
 
     CdlNode     source;
     CdlProperty source_property;
   private:
 
     CdlNode     source;
     CdlProperty source_property;
-    
+
     enum {
     enum {
-        CdlReferrer_Invalid = 0,
-        CdlReferrer_Magic   = 0x70e1fc37
+       CdlReferrer_Invalid = 0,
+       CdlReferrer_Magic   = 0x70e1fc37
     } cdlreferrer_cookie;
 };
 
 //}}}
     } cdlreferrer_cookie;
 };
 
 //}}}
-//{{{  Value and Expression  classes                    
+//{{{  Value and Expression  classes
 
 
-//{{{  CdlEvalContext                   
+//{{{  CdlEvalContext
 
 // ----------------------------------------------------------------------------
 // Expression evaluation always happens within a certain context.
 
 // ----------------------------------------------------------------------------
 // Expression evaluation always happens within a certain context.
@@ -1583,9 +1583,9 @@ class CdlReferrer {
 // evaluation-related routines, a utility class is provided.
 
 class CdlEvalContext {
 // evaluation-related routines, a utility class is provided.
 
 class CdlEvalContext {
-    
+
     friend class CdlTest;
     friend class CdlTest;
-    
+
   public:
 
     CdlTransaction      transaction;
   public:
 
     CdlTransaction      transaction;
@@ -1600,10 +1600,10 @@ class CdlEvalContext {
     // a node or, more specifically, a valuable.
     CdlNode             resolve_reference(CdlExpression, int);
     CdlValuable         resolve_valuable_reference(CdlExpression, int);
     // a node or, more specifically, a valuable.
     CdlNode             resolve_reference(CdlExpression, int);
     CdlValuable         resolve_valuable_reference(CdlExpression, int);
-    
+
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -1612,14 +1612,14 @@ class CdlEvalContext {
     CdlEvalContext();
 
     enum {
     CdlEvalContext();
 
     enum {
-        CdlEvalContext_Invalid  = 0,
-        CdlEvalContext_Magic    = 0x03434be9
+       CdlEvalContext_Invalid  = 0,
+       CdlEvalContext_Magic    = 0x03434be9
     } cdlevalcontext_cookie;
     } cdlevalcontext_cookie;
-    
+
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlSimpleValue                   
+//{{{  CdlSimpleValue
 
 // ----------------------------------------------------------------------------
 // Expression evaluation happens in terms of CdlSimpleValue objects.
 
 // ----------------------------------------------------------------------------
 // Expression evaluation happens in terms of CdlSimpleValue objects.
@@ -1646,7 +1646,7 @@ class CdlEvalContext {
 // The default value is 0.
 
 class CdlSimpleValue {
 // The default value is 0.
 
 class CdlSimpleValue {
-    
+
     friend class CdlTest;
 
   public:
     friend class CdlTest;
 
   public:
@@ -1663,49 +1663,49 @@ class CdlSimpleValue {
     CdlSimpleValue&     operator=(std::string);
     CdlSimpleValue&     operator=(cdl_int);
     CdlSimpleValue&     operator=(double);
     CdlSimpleValue&     operator=(std::string);
     CdlSimpleValue&     operator=(cdl_int);
     CdlSimpleValue&     operator=(double);
-    
+
     CdlSimpleValue&     operator=(bool);
     CdlSimpleValue&     operator=(bool);
-    
+
     bool                operator==(const CdlSimpleValue&) const;
     bool                operator!=(const CdlSimpleValue&) const;
     bool                operator==(std::string arg) const
     {
     bool                operator==(const CdlSimpleValue&) const;
     bool                operator!=(const CdlSimpleValue&) const;
     bool                operator==(std::string arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this == val;
+       CdlSimpleValue val(arg);
+       return *this == val;
     }
     bool                operator==(cdl_int arg) const
     {
     }
     bool                operator==(cdl_int arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this == val;
+       CdlSimpleValue val(arg);
+       return *this == val;
     }
     bool                operator==(double arg) const
     {
     }
     bool                operator==(double arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this == val;
+       CdlSimpleValue val(arg);
+       return *this == val;
     }
     bool                operator!=(std::string arg) const
     {
     }
     bool                operator!=(std::string arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this != val;
+       CdlSimpleValue val(arg);
+       return *this != val;
     }
     bool                operator!=(cdl_int arg) const
     {
     }
     bool                operator!=(cdl_int arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this != val;
+       CdlSimpleValue val(arg);
+       return *this != val;
     }
     bool                operator!=(double arg) const
     {
     }
     bool                operator!=(double arg) const
     {
-        CdlSimpleValue val(arg);
-        return *this != val;
+       CdlSimpleValue val(arg);
+       return *this != val;
     }
     }
-    
+
     void                set_value(std::string, CdlValueFormat = CdlValueFormat_Default);
     std::string         get_value() const;
     void                set_value(std::string, CdlValueFormat = CdlValueFormat_Default);
     std::string         get_value() const;
-    
+
     bool                has_integer_value() const;
     void                set_integer_value(cdl_int, CdlValueFormat = CdlValueFormat_Default);
     cdl_int             get_integer_value() const;
     bool                has_integer_value() const;
     void                set_integer_value(cdl_int, CdlValueFormat = CdlValueFormat_Default);
     cdl_int             get_integer_value() const;
-    
+
     bool                has_double_value() const;
     void                set_double_value(double, CdlValueFormat = CdlValueFormat_Default);
     double              get_double_value() const;
     bool                has_double_value() const;
     void                set_double_value(double, CdlValueFormat = CdlValueFormat_Default);
     double              get_double_value() const;
@@ -1716,26 +1716,26 @@ class CdlSimpleValue {
     void                set_value_format(CdlSimpleValue&, CdlSimpleValue&);
 
     static void         eval_valuable(CdlEvalContext&, CdlValuable, CdlSimpleValue&);
     void                set_value_format(CdlSimpleValue&, CdlSimpleValue&);
 
     static void         eval_valuable(CdlEvalContext&, CdlValuable, CdlSimpleValue&);
-    
+
     // For expression evaluation, it is often convenient to get hold
     // of a boolean as well. This may indicate a non-empty string
     // or a non-zero value.
     bool                get_bool_value() const;
     // For expression evaluation, it is often convenient to get hold
     // of a boolean as well. This may indicate a non-empty string
     // or a non-zero value.
     bool                get_bool_value() const;
-    
+
     // This class is too simple to warrant even a cookie validation.
     bool check_this(cyg_assert_class_zeal zeal = cyg_quick) const {
     // This class is too simple to warrant even a cookie validation.
     bool check_this(cyg_assert_class_zeal zeal = cyg_quick) const {
-        return true;
+       return true;
     }
     }
-    
+
   protected:
 
   private:
     enum {
   protected:
 
   private:
     enum {
-        int_valid       = 0x01,
-        double_valid    = 0x02,
-        string_valid    = 0x04,
-        int_invalid     = 0x08,
-        double_invalid  = 0x10
+       int_valid       = 0x01,
+       double_valid    = 0x02,
+       string_valid    = 0x04,
+       int_invalid     = 0x08,
+       double_invalid  = 0x10
     };
     mutable int         valid_flags;
     mutable std::string value;
     };
     mutable int         valid_flags;
     mutable std::string value;
@@ -1745,7 +1745,7 @@ class CdlSimpleValue {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlListValue                     
+//{{{  CdlListValue
 
 // ----------------------------------------------------------------------------
 // Evaluating a list expression results in a set of possible values, but
 
 // ----------------------------------------------------------------------------
 // Evaluating a list expression results in a set of possible values, but
@@ -1769,13 +1769,13 @@ class CdlSimpleValue {
 // double to avoid unnecessary string conversions.
 
 class CdlListValue {
 // double to avoid unnecessary string conversions.
 
 class CdlListValue {
-    
+
     friend class        CdlTest;
 
     // A list value will only be filled in when a list expression is evaluated.
     // The members cannot be updated by other means.
     friend class        CdlListExpressionBody;
     friend class        CdlTest;
 
     // A list value will only be filled in when a list expression is evaluated.
     // The members cannot be updated by other means.
     friend class        CdlListExpressionBody;
-    
+
   public:
 
     CdlListValue();
   public:
 
     CdlListValue();
@@ -1796,20 +1796,20 @@ class CdlListValue {
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     std::vector<CdlSimpleValue>                 table;
     std::vector<std::pair<cdl_int, cdl_int> >   integer_ranges;
     std::vector<std::pair<double, double> >     double_ranges;
 
     enum {
   private:
     std::vector<CdlSimpleValue>                 table;
     std::vector<std::pair<cdl_int, cdl_int> >   integer_ranges;
     std::vector<std::pair<double, double> >     double_ranges;
 
     enum {
-        CdlListValue_Invalid  = 0,
-        CdlListValue_Magic    = 0x2183a943
+       CdlListValue_Invalid  = 0,
+       CdlListValue_Magic    = 0x2183a943
     } cdllistvalue_cookie;
 };
 
 //}}}
     } cdllistvalue_cookie;
 };
 
 //}}}
-//{{{  CdlValue                         
+//{{{  CdlValue
 
 // ----------------------------------------------------------------------------
 // Values in CDL are non-trivial compared with some other languages.
 
 // ----------------------------------------------------------------------------
 // Values in CDL are non-trivial compared with some other languages.
@@ -1903,7 +1903,7 @@ class CdlListValue {
 // The first function can be used if e.g. the user wants to
 // change his or her mind and go back to the default value
 // rather than a user value. The user value is not forgotten
 // The first function can be used if e.g. the user wants to
 // change his or her mind and go back to the default value
 // rather than a user value. The user value is not forgotten
-// and can be reinstated. 
+// and can be reinstated.
 //
 // invalidate_source() can be used to completely cancel a
 // value source. If that source happens to be the current one
 //
 // invalidate_source() can be used to completely cancel a
 // value source. If that source happens to be the current one
@@ -1959,7 +1959,7 @@ class CdlListValue {
 // whatever the flavor happens to be.
 
 class CdlValue {
 // whatever the flavor happens to be.
 
 class CdlValue {
-    
+
     friend class CdlTest;
 
   public:
     friend class CdlTest;
 
   public:
@@ -1980,97 +1980,97 @@ class CdlValue {
     cdl_int             get_integer_value(CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(CdlValueSource = CdlValueSource_Current) const;
     cdl_int             get_integer_value(CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(CdlValueSource = CdlValueSource_Current) const;
-    
+
     void set_source(CdlValueSource);
     void invalidate_source(CdlValueSource);
     void set_source(CdlValueSource);
     void invalidate_source(CdlValueSource);
-    
+
     void set_enabled(bool, CdlValueSource);
     void enable(CdlValueSource source)
     {
     void set_enabled(bool, CdlValueSource);
     void enable(CdlValueSource source)
     {
-        set_enabled(true, source);
+       set_enabled(true, source);
     }
     void disable(CdlValueSource source)
     {
     }
     void disable(CdlValueSource source)
     {
-        set_enabled(false, source);
+       set_enabled(false, source);
     }
 
     void set_value(CdlSimpleValue&, CdlValueSource);
     void set_value(std::string data, CdlValueSource source)
     {
     }
 
     void set_value(CdlSimpleValue&, CdlValueSource);
     void set_value(std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_integer_value(cdl_int data, CdlValueSource source)
     {
     }
     void set_integer_value(cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_double_value(double data, CdlValueSource source)
     {
     }
     void set_double_value(double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_enabled_and_value(bool, CdlSimpleValue&, CdlValueSource);
     void set_enabled_and_value(bool enabled, std::string data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(bool, CdlSimpleValue&, CdlValueSource);
     void set_enabled_and_value(bool enabled, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, cdl_int data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(bool enabled, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, double data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(bool enabled, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void enable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
     }
     void enable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(true, val, source);
+       set_enabled_and_value(true, val, source);
     }
     void enable_and_set_value(std::string data, CdlValueSource source)
     {
     }
     void enable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(cdl_int data, CdlValueSource source)
     {
     }
     void enable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(double data, CdlValueSource source)
     {
     }
     void enable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void disable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
     }
     void disable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(false, val, source);
+       set_enabled_and_value(false, val, source);
     }
     void disable_and_set_value(std::string data, CdlValueSource source)
     {
     }
     void disable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(cdl_int data, CdlValueSource source)
     {
     }
     void disable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(double data, CdlValueSource source)
     {
     }
     void disable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
 
     void set(CdlSimpleValue&, CdlValueSource);
     }
 
     void set(CdlSimpleValue&, CdlValueSource);
-    
+
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
     // This should only be used by the library itself.
     void                set_flavor(CdlValueFlavor);
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
     // This should only be used by the library itself.
     void                set_flavor(CdlValueFlavor);
-    
+
   protected:
   protected:
-    
+
   private:
   private:
-    
+
     CdlValueFlavor      flavor;
     CdlValueSource      current_source;
 
     CdlValueFlavor      flavor;
     CdlValueSource      current_source;
 
@@ -2081,15 +2081,15 @@ class CdlValue {
     bool                source_valid[4];
     bool                enabled[4];
     CdlSimpleValue      values[4];
     bool                source_valid[4];
     bool                enabled[4];
     CdlSimpleValue      values[4];
-    
+
     enum {
     enum {
-        CdlValue_Invalid = 0,
-        CdlValue_Magic   = 0x41837960
+       CdlValue_Invalid = 0,
+       CdlValue_Magic   = 0x41837960
     } cdlvalue_cookie;
 };
 
 //}}}
     } cdlvalue_cookie;
 };
 
 //}}}
-//{{{  CdlSubexpression                 
+//{{{  CdlSubexpression
 
 // ----------------------------------------------------------------------------
 // Expressions come into existence primarily as the result of reading
 
 // ----------------------------------------------------------------------------
 // Expressions come into existence primarily as the result of reading
@@ -2172,13 +2172,13 @@ struct CdlSubexpression {
     int                 lhs_index;              // for all non-constant operators
     int                 rhs_index;              // for binary and ternary operators only
     int                 rrhs_index;             // only for ternary operators.
     int                 lhs_index;              // for all non-constant operators
     int                 rhs_index;              // for binary and ternary operators only
     int                 rrhs_index;             // only for ternary operators.
-    
+
     int                 func;                   // iff CdlExprOp_Function
     int                 args[CdlFunction_MaxArgs];
 };
 
 //}}}
     int                 func;                   // iff CdlExprOp_Function
     int                 args[CdlFunction_MaxArgs];
 };
 
 //}}}
-//{{{  CdlFunction                      
+//{{{  CdlFunction
 
 // ----------------------------------------------------------------------------
 // Generic support for function parsing, evaluation, and inference. The
 
 // ----------------------------------------------------------------------------
 // Generic support for function parsing, evaluation, and inference. The
@@ -2186,18 +2186,18 @@ struct CdlSubexpression {
 // core via static constructors.
 
 class CdlFunction {
 // core via static constructors.
 
 class CdlFunction {
-    
+
     friend class CdlTest;
     friend class CdlTest;
-    
+
   public:
     CdlFunction(const char* /* name */, int /* no_args */,
   public:
     CdlFunction(const char* /* name */, int /* no_args */,
-                void (*)(CdlExpression, const CdlSubexpression&),
-                void (*)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&),
-                bool (*)(CdlTransaction, CdlExpression, unsigned int, bool, int),
-                bool (*)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int)
-                );
+               void (*)(CdlExpression, const CdlSubexpression&),
+               void (*)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&),
+               bool (*)(CdlTransaction, CdlExpression, unsigned int, bool, int),
+               bool (*)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int)
+               );
     ~CdlFunction();
     ~CdlFunction();
-    
+
     static bool         is_function(std::string, int&);
     static std::string  get_name(int);
     static int          get_args_count(int);
     static bool         is_function(std::string, int&);
     static std::string  get_name(int);
     static int          get_args_count(int);
@@ -2210,7 +2210,7 @@ class CdlFunction {
     static void         (*null_check)(CdlExpression, const CdlSubexpression&);
     static bool         (*null_infer_bool)(CdlTransaction, CdlExpression, unsigned int, bool, int);
     static bool         (*null_infer_value)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int);
     static void         (*null_check)(CdlExpression, const CdlSubexpression&);
     static bool         (*null_infer_bool)(CdlTransaction, CdlExpression, unsigned int, bool, int);
     static bool         (*null_infer_value)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int);
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -2228,13 +2228,13 @@ class CdlFunction {
     void                (*eval_fn)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&);
     bool                (*infer_bool_fn)(CdlTransaction, CdlExpression, unsigned int, bool, int);
     bool                (*infer_value_fn)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int);
     void                (*eval_fn)(CdlEvalContext&, CdlExpression, const CdlSubexpression&, CdlSimpleValue&);
     bool                (*infer_bool_fn)(CdlTransaction, CdlExpression, unsigned int, bool, int);
     bool                (*infer_value_fn)(CdlTransaction, CdlExpression, unsigned int, CdlSimpleValue&, int);
-    
+
     // The default constructor is illegal
     CdlFunction();
 };
 
 //}}}
     // The default constructor is illegal
     CdlFunction();
 };
 
 //}}}
-//{{{  CdlExpression                    
+//{{{  CdlExpression
 
 // ----------------------------------------------------------------------------
 // And now for the expression class itself.
 
 // ----------------------------------------------------------------------------
 // And now for the expression class itself.
@@ -2242,7 +2242,7 @@ class CdlFunction {
 class CdlExpressionBody {
 
     friend class CdlTest;
 class CdlExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
 
     // The default constructor is basically a no-op, new expression
   public:
 
     // The default constructor is basically a no-op, new expression
@@ -2268,7 +2268,7 @@ class CdlExpressionBody {
     int                                 first_subexpression;
     std::vector<CdlReference>           references;
     bool                                update(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
     int                                 first_subexpression;
     std::vector<CdlReference>           references;
     bool                                update(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
-    
+
     // There are a number of parsing functions. The first one is
     // used by higher-level code to parse a single expression. Its
     // argument is a single string (which may be the result of
     // There are a number of parsing functions. The first one is
     // used by higher-level code to parse a single expression. Its
     // argument is a single string (which may be the result of
@@ -2295,7 +2295,7 @@ class CdlExpressionBody {
     // expression.
     //
     // NOTE: possibly this should should be a protected member, since
     // expression.
     //
     // NOTE: possibly this should should be a protected member, since
-    // its main use is in parsing goal expressions. 
+    // its main use is in parsing goal expressions.
     static void continue_parse(CdlExpression, std::string, int&, CdlExprOp&, int&);
 
     // Evaluating expressions. Note that this may fail at run-time
     static void continue_parse(CdlExpression, std::string, int&, CdlExprOp&, int&);
 
     // Evaluating expressions. Note that this may fail at run-time
@@ -2311,46 +2311,46 @@ class CdlExpressionBody {
     void eval(CdlEvalContext&, CdlSimpleValue&);
     void eval_internal(CdlEvalContext&, CdlSimpleValue&);
     void eval_subexpression(CdlEvalContext&, int, CdlSimpleValue&);
     void eval(CdlEvalContext&, CdlSimpleValue&);
     void eval_internal(CdlEvalContext&, CdlSimpleValue&);
     void eval_subexpression(CdlEvalContext&, int, CdlSimpleValue&);
-    
+
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
-    
+
     bool        check_this(cyg_assert_class_zeal cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool        check_this(cyg_assert_class_zeal cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
     // The default constructor does very little, the main work
     // is done by the various parsing functions. However it is
     // available to derived classes, especially goal expressions.
     CdlExpressionBody();
   protected:
 
     // The default constructor does very little, the main work
     // is done by the various parsing functions. However it is
     // available to derived classes, especially goal expressions.
     CdlExpressionBody();
-    
+
     // The copy constructor has to be usable by derived classes,
     // e.g. CdlExpressionProperty
     CdlExpressionBody(const CdlExpressionBody&);
     // The copy constructor has to be usable by derived classes,
     // e.g. CdlExpressionProperty
     CdlExpressionBody(const CdlExpressionBody&);
-    
+
   private:
 
   private:
 
-    
+
     // The assignment operator is illegal.
     CdlExpressionBody&  operator=(const CdlExpressionBody&);
 
     // The string that was parsed originally
     std::string                 expression_string;
     // The assignment operator is illegal.
     CdlExpressionBody&  operator=(const CdlExpressionBody&);
 
     // The string that was parsed originally
     std::string                 expression_string;
-    
+
     enum {
     enum {
-        CdlExpressionBody_Invalid       = 0,
-        CdlExpressionBody_Magic         = 0x760293a3
+       CdlExpressionBody_Invalid       = 0,
+       CdlExpressionBody_Magic         = 0x760293a3
     } cdlexpressionbody_cookie;
 };
 
 //}}}
     } cdlexpressionbody_cookie;
 };
 
 //}}}
-//{{{  CdlListExpression                
+//{{{  CdlListExpression
 
 // ----------------------------------------------------------------------------
 // The main use of list expressions is for the legal_values
 // properties. Essentially a list expression is just a vector of
 
 // ----------------------------------------------------------------------------
 // The main use of list expressions is for the legal_values
 // properties. Essentially a list expression is just a vector of
-// ordinary expressions and ranges of expressions. 
+// ordinary expressions and ranges of expressions.
 
 class CdlListExpressionBody {
 
 
 class CdlListExpressionBody {
 
@@ -2361,7 +2361,7 @@ class CdlListExpressionBody {
     // Availability of constructors etc. is as per the ordinary
     // expression class.
     virtual ~CdlListExpressionBody();
     // Availability of constructors etc. is as per the ordinary
     // expression class.
     virtual ~CdlListExpressionBody();
-    
+
     // The data associated with a list expression is a vector of
     // expressions, plus a vector of expression pairs constituting
     // ranges. As with ordinary expressions the data is fully public
     // The data associated with a list expression is a vector of
     // expressions, plus a vector of expression pairs constituting
     // ranges. As with ordinary expressions the data is fully public
@@ -2372,13 +2372,13 @@ class CdlListExpressionBody {
     // Parsing. This involves taking a single string, typically from
     // a CDL script, and parsing one or more ordinary expressions.
     static CdlListExpression parse(std::string);
     // Parsing. This involves taking a single string, typically from
     // a CDL script, and parsing one or more ordinary expressions.
     static CdlListExpression parse(std::string);
-    
+
     // Evaluation support. A list expression evaluates to a list value.
     void eval(CdlEvalContext&, CdlListValue&);
 
     // More commonly client code is going to be interested in whether
     // or not a particular value is a legal member. The result
     // Evaluation support. A list expression evaluates to a list value.
     void eval(CdlEvalContext&, CdlListValue&);
 
     // More commonly client code is going to be interested in whether
     // or not a particular value is a legal member. The result
-    // cache ensures that it is possible to 
+    // cache ensures that it is possible to
     bool is_member(CdlEvalContext&, CdlSimpleValue&);
     bool is_member(CdlEvalContext&, std::string);
     bool is_member(CdlEvalContext&, cdl_int);
     bool is_member(CdlEvalContext&, CdlSimpleValue&);
     bool is_member(CdlEvalContext&, std::string);
     bool is_member(CdlEvalContext&, cdl_int);
@@ -2386,10 +2386,10 @@ class CdlListExpressionBody {
 
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
 
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlListExpressionBody(const CdlListExpressionBody&);
     bool        update(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
   protected:
     CdlListExpressionBody(const CdlListExpressionBody&);
     bool        update(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
@@ -2401,15 +2401,15 @@ class CdlListExpressionBody {
 
     void eval_internal(CdlEvalContext&, CdlListValue&);
     std::string         expression_string;
 
     void eval_internal(CdlEvalContext&, CdlListValue&);
     std::string         expression_string;
-    
+
     enum {
     enum {
-        CdlListExpressionBody_Invalid   = 0,
-        CdlListExpressionBody_Magic     = 0x7da4bcc2
+       CdlListExpressionBody_Invalid   = 0,
+       CdlListExpressionBody_Magic     = 0x7da4bcc2
     } cdllistexpressionbody_cookie;
 };
 
 //}}}
     } cdllistexpressionbody_cookie;
 };
 
 //}}}
-//{{{  CdlGoalExpression                
+//{{{  CdlGoalExpression
 
 // ----------------------------------------------------------------------------
 // A goal expression inherits privately from ordinary expressions. Essentially
 
 // ----------------------------------------------------------------------------
 // A goal expression inherits privately from ordinary expressions. Essentially
@@ -2438,13 +2438,13 @@ class CdlGoalExpressionBody : private CdlExpressionBody {
     // Provide public access to the underlying expression object,
     // useful for the inference engine
     CdlExpression               get_expression();
     // Provide public access to the underlying expression object,
     // useful for the inference engine
     CdlExpression               get_expression();
-    
+
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
     // The full original expression is useful for diagnostics purposes
     std::string get_original_string() const;
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlGoalExpressionBody(const CdlGoalExpressionBody&);
 
   protected:
     CdlGoalExpressionBody(const CdlGoalExpressionBody&);
 
@@ -2454,17 +2454,17 @@ class CdlGoalExpressionBody : private CdlExpressionBody {
     CdlGoalExpressionBody();
     CdlGoalExpressionBody& operator=(const CdlGoalExpressionBody&);
     void eval_internal(CdlEvalContext&, bool&);
     CdlGoalExpressionBody();
     CdlGoalExpressionBody& operator=(const CdlGoalExpressionBody&);
     void eval_internal(CdlEvalContext&, bool&);
-    
+
     std::string expression_string;
     std::string expression_string;
-    
+
     enum {
     enum {
-        CdlGoalExpressionBody_Invalid = 0,
-        CdlGoalExpressionBody_Magic   = 0x5a58bb24
+       CdlGoalExpressionBody_Invalid = 0,
+       CdlGoalExpressionBody_Magic   = 0x5a58bb24
     } cdlgoalexpressionbody_cookie;
 };
 
 //}}}
     } cdlgoalexpressionbody_cookie;
 };
 
 //}}}
-//{{{  CdlInfer                         
+//{{{  CdlInfer
 
 // ----------------------------------------------------------------------------
 // A utility class related to inference. This exports the main functions
 
 // ----------------------------------------------------------------------------
 // A utility class related to inference. This exports the main functions
@@ -2487,7 +2487,7 @@ class CdlInfer {
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlConflict classes                              
+//{{{  CdlConflict classes
 
 // ----------------------------------------------------------------------------
 // As a configuration is created and modified there will be times when
 
 // ----------------------------------------------------------------------------
 // As a configuration is created and modified there will be times when
@@ -2544,19 +2544,19 @@ class CdlInfer {
 // on a global basis, only on a per-transaction basis.
 
 class CdlConflictBody {
 // on a global basis, only on a per-transaction basis.
 
 class CdlConflictBody {
-    
+
     friend class CdlTest;
 
     // Transactions and conflicts are closely connected
     friend class CdlTransactionBody;
     friend class CdlTest;
 
     // Transactions and conflicts are closely connected
     friend class CdlTransactionBody;
-    
+
   public:
 
     // Creation happens only inside a derived class.
     // Clearing a conflict only happens inside transactions.
     // Destroying a conflict only happens from inside a
     // per-transaction clear(), or during a transaction commit.
   public:
 
     // Creation happens only inside a derived class.
     // Clearing a conflict only happens inside transactions.
     // Destroying a conflict only happens from inside a
     // per-transaction clear(), or during a transaction commit.
-    
+
     // Is this conflict part of a transaction, or has it been committed to the toplevel.
     CdlTransaction      get_transaction() const;
 
     // Is this conflict part of a transaction, or has it been committed to the toplevel.
     CdlTransaction      get_transaction() const;
 
@@ -2571,14 +2571,14 @@ class CdlConflictBody {
     // CdlToplevel::resolve_all_conflicts(). The conflict may cease to
     // exist as a side-effect of this call.
     void                resolve();
     // CdlToplevel::resolve_all_conflicts(). The conflict may cease to
     // exist as a side-effect of this call.
     void                resolve();
-  
+
     // Keep track of whether or not this conflict has a solution
     // 1) a conflict may have a current solution. This gets invalidated
     //    whenever there is a change to a value that was referenced
     //    while identifying the solution.
     //
     //    A current solution is indicated by a non-empty solution vector.
     // Keep track of whether or not this conflict has a solution
     // 1) a conflict may have a current solution. This gets invalidated
     //    whenever there is a change to a value that was referenced
     //    while identifying the solution.
     //
     //    A current solution is indicated by a non-empty solution vector.
-    //    
+    //
     // 2) a conflict may not have a current solution. Again this gets
     //    invalidated whenever a referred value changes. There is a boolean
     //    to keep track of this.
     // 2) a conflict may not have a current solution. Again this gets
     //    invalidated whenever a referred value changes. There is a boolean
     //    to keep track of this.
@@ -2590,7 +2590,7 @@ class CdlConflictBody {
     const std::vector<std::pair<CdlValuable, CdlValue> >& get_solution() const;
     const std::set<CdlValuable>& get_solution_references() const;
     void                clear_solution();
     const std::vector<std::pair<CdlValuable, CdlValue> >& get_solution() const;
     const std::set<CdlValuable>& get_solution_references() const;
     void                clear_solution();
-    
+
     // Provide a text message "explaining" the conflict.
     // This only makes sense for derived classes.
     virtual std::string get_explanation() const = 0;
     // Provide a text message "explaining" the conflict.
     // This only makes sense for derived classes.
     virtual std::string get_explanation() const = 0;
@@ -2610,23 +2610,23 @@ class CdlConflictBody {
     void                enable();
     bool                is_enabled() const;
     std::string         get_disabled_reason() const;
     void                enable();
     bool                is_enabled() const;
     std::string         get_disabled_reason() const;
-    
+
     bool check_this(cyg_assert_class_zeal zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
     CdlConflictBody(CdlTransaction, CdlNode, CdlProperty, bool /* structural */);
     bool check_this(cyg_assert_class_zeal zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
     CdlConflictBody(CdlTransaction, CdlNode, CdlProperty, bool /* structural */);
-    
+
     // The destructor gets accessed from inside the friend transaction class,
     // either during a clear_conflict() or during a transaction commit.
     virtual ~CdlConflictBody();
     // The destructor gets accessed from inside the friend transaction class,
     // either during a clear_conflict() or during a transaction commit.
     virtual ~CdlConflictBody();
-    
+
     // All conflicts are associated with a node and a property.
     // This information will be useful to derived classes'
     // implementations of get_explanation()
     CdlNode             node;
     CdlProperty         property;
     // All conflicts are associated with a node and a property.
     // This information will be useful to derived classes'
     // implementations of get_explanation()
     CdlNode             node;
     CdlProperty         property;
-    
+
   private:
 
     // Attempt to resolve a conflict in a sub-transaction
   private:
 
     // Attempt to resolve a conflict in a sub-transaction
@@ -2634,7 +2634,7 @@ class CdlConflictBody {
     // There are additional exported interfaces inside and outside
     // the transaction class.
     virtual bool        inner_resolve(CdlTransaction, int);
     // There are additional exported interfaces inside and outside
     // the transaction class.
     virtual bool        inner_resolve(CdlTransaction, int);
-    
+
     // Keep track of the transaction in which this conflict was created.
     // The field is cleared at the end of a transaction.
     CdlTransaction      transaction;
     // Keep track of the transaction in which this conflict was created.
     // The field is cleared at the end of a transaction.
     CdlTransaction      transaction;
@@ -2644,21 +2644,21 @@ class CdlConflictBody {
     // needs to be available at base constructor time so
     // a virtual function is not appropriate.
     bool                structural;
     // needs to be available at base constructor time so
     // a virtual function is not appropriate.
     bool                structural;
-    
+
     // Solution support
     bool                                           no_solution;
     std::vector<std::pair<CdlValuable, CdlValue> > solution;
     std::set<CdlValuable>                          solution_references;
     void update_solution_validity(CdlValuable);
     // Solution support
     bool                                           no_solution;
     std::vector<std::pair<CdlValuable, CdlValue> > solution;
     std::set<CdlValuable>                          solution_references;
     void update_solution_validity(CdlValuable);
-    
+
     // Users may disable a conflict. Usually they will have to
     // supply a reason for this.
     bool                enabled;
     std::string         reason;
 
     enum {
     // Users may disable a conflict. Usually they will have to
     // supply a reason for this.
     bool                enabled;
     std::string         reason;
 
     enum {
-        CdlConflictBody_Invalid = 0,
-        CdlConflictBody_Magic   = 0x073e8853
+       CdlConflictBody_Invalid = 0,
+       CdlConflictBody_Magic   = 0x073e8853
     } cdlconflictbody_cookie;
 
     // Illegal operations. Conflicts always live on the heap.
     } cdlconflictbody_cookie;
 
     // Illegal operations. Conflicts always live on the heap.
@@ -2671,10 +2671,10 @@ class CdlConflictBody {
 // An unresolved conflict means that there is a reference in some
 // property to an entity that is not yet in the current configuration.
 // The class provides convenient access to the name of the unresolved
 // An unresolved conflict means that there is a reference in some
 // property to an entity that is not yet in the current configuration.
 // The class provides convenient access to the name of the unresolved
-// entity. 
+// entity.
 
 class CdlConflict_UnresolvedBody : public CdlConflictBody {
 
 class CdlConflict_UnresolvedBody : public CdlConflictBody {
-    
+
     friend class CdlTest;
   public:
 
     friend class CdlTest;
   public:
 
@@ -2693,10 +2693,10 @@ class CdlConflict_UnresolvedBody : public CdlConflictBody {
     CdlConflict_UnresolvedBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string         target_name;
     enum {
     CdlConflict_UnresolvedBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string         target_name;
     enum {
-        CdlConflict_UnresolvedBody_Invalid      = 0,
-        CdlConflict_UnresolvedBody_Magic        = 0x1b24bb8a
+       CdlConflict_UnresolvedBody_Invalid      = 0,
+       CdlConflict_UnresolvedBody_Magic        = 0x1b24bb8a
     } cdlconflict_unresolvedbody_cookie;
     } cdlconflict_unresolvedbody_cookie;
-    
+
     CdlConflict_UnresolvedBody();
     CdlConflict_UnresolvedBody(const CdlConflict_UnresolvedBody&);
     CdlConflict_UnresolvedBody& operator=(const CdlConflict_UnresolvedBody&);
     CdlConflict_UnresolvedBody();
     CdlConflict_UnresolvedBody(const CdlConflict_UnresolvedBody&);
     CdlConflict_UnresolvedBody& operator=(const CdlConflict_UnresolvedBody&);
@@ -2717,7 +2717,7 @@ class CdlConflict_IllegalValueBody : public CdlConflictBody {
     static void         make(CdlTransaction, CdlNode, CdlProperty);
 
     bool                resolution_implemented() const;
     static void         make(CdlTransaction, CdlNode, CdlProperty);
 
     bool                resolution_implemented() const;
-    
+
     std::string         get_explanation() const;
     void                set_explanation(std::string);
     static bool         test(CdlConflict);
     std::string         get_explanation() const;
     void                set_explanation(std::string);
     static bool         test(CdlConflict);
@@ -2732,8 +2732,8 @@ class CdlConflict_IllegalValueBody : public CdlConflictBody {
     CdlConflict_IllegalValueBody(CdlTransaction, CdlNode, CdlProperty);
     std::string explanation;
     enum {
     CdlConflict_IllegalValueBody(CdlTransaction, CdlNode, CdlProperty);
     std::string explanation;
     enum {
-        CdlConflict_IllegalValueBody_Invalid    = 0,
-        CdlConflict_IllegalValueBody_Magic      = 0x4fb27ed1
+       CdlConflict_IllegalValueBody_Invalid    = 0,
+       CdlConflict_IllegalValueBody_Magic      = 0x4fb27ed1
     } cdlconflict_illegalvaluebody_cookie;
 
     CdlConflict_IllegalValueBody();
     } cdlconflict_illegalvaluebody_cookie;
 
     CdlConflict_IllegalValueBody();
@@ -2766,14 +2766,14 @@ class CdlConflict_EvalExceptionBody : public CdlConflictBody {
     CdlConflict_EvalExceptionBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string explanation;
     enum {
     CdlConflict_EvalExceptionBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string explanation;
     enum {
-        CdlConflict_EvalExceptionBody_Invalid   = 0,
-        CdlConflict_EvalExceptionBody_Magic     = 0x7e64bc41
+       CdlConflict_EvalExceptionBody_Invalid   = 0,
+       CdlConflict_EvalExceptionBody_Magic     = 0x7e64bc41
     } cdlconflict_evalexceptionbody_cookie;
 };
 
 // ----------------------------------------------------------------------------
 // A goal expression evaluates to false. Producing sensible diagnostics
     } cdlconflict_evalexceptionbody_cookie;
 };
 
 // ----------------------------------------------------------------------------
 // A goal expression evaluates to false. Producing sensible diagnostics
-// depends on a detailed understanding of goal expressions, which will 
+// depends on a detailed understanding of goal expressions, which will
 // have to wait until the inference engine comes along.
 
 class CdlConflict_RequiresBody : public CdlConflictBody {
 // have to wait until the inference engine comes along.
 
 class CdlConflict_RequiresBody : public CdlConflictBody {
@@ -2784,7 +2784,7 @@ class CdlConflict_RequiresBody : public CdlConflictBody {
 
     static void         make(CdlTransaction, CdlNode, CdlProperty);
     bool                resolution_implemented() const;
 
     static void         make(CdlTransaction, CdlNode, CdlProperty);
     bool                resolution_implemented() const;
-    
+
     std::string         get_explanation() const;
     static bool         test(CdlConflict);
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     std::string         get_explanation() const;
     static bool         test(CdlConflict);
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -2797,8 +2797,8 @@ class CdlConflict_RequiresBody : public CdlConflictBody {
     bool     inner_resolve(CdlTransaction, int);
     CdlConflict_RequiresBody(CdlTransaction, CdlNode, CdlProperty);
     enum {
     bool     inner_resolve(CdlTransaction, int);
     CdlConflict_RequiresBody(CdlTransaction, CdlNode, CdlProperty);
     enum {
-        CdlConflict_RequiresBody_Invalid        = 0,
-        CdlConflict_RequiresBody_Magic          = 0x78436331
+       CdlConflict_RequiresBody_Invalid        = 0,
+       CdlConflict_RequiresBody_Magic          = 0x78436331
     } cdlconflict_requiresbody_cookie;
 };
 
     } cdlconflict_requiresbody_cookie;
 };
 
@@ -2829,15 +2829,15 @@ class CdlConflict_DataBody : public CdlConflictBody {
     CdlConflict_DataBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string message;
     enum {
     CdlConflict_DataBody(CdlTransaction, CdlNode, CdlProperty, std::string);
     std::string message;
     enum {
-        CdlConflict_DataBody_Invalid    = 0,
-        CdlConflict_DataBody_Magic      = 0x2cec7ad8
+       CdlConflict_DataBody_Invalid    = 0,
+       CdlConflict_DataBody_Magic      = 0x2cec7ad8
     } cdlconflict_databody_cookie;
 };
 
 //}}}
     } cdlconflict_databody_cookie;
 };
 
 //}}}
-//{{{  CdlProperty class and derived classes            
+//{{{  CdlProperty class and derived classes
 
 
-//{{{  Description                              
+//{{{  Description
 
 // ---------------------------------------------------------------------------
 // There are many different kinds of property. An alias property contains
 
 // ---------------------------------------------------------------------------
 // There are many different kinds of property. An alias property contains
@@ -2857,7 +2857,7 @@ class CdlConflict_DataBody : public CdlConflictBody {
 // constructor.
 
 //}}}
 // constructor.
 
 //}}}
-//{{{  CdlPropertyId_xxx                        
+//{{{  CdlPropertyId_xxx
 
 // ----------------------------------------------------------------------------
 // Properties are identified by strings rather than by an enum or anything
 
 // ----------------------------------------------------------------------------
 // Properties are identified by strings rather than by an enum or anything
@@ -2917,7 +2917,7 @@ class CdlConflict_DataBody : public CdlConflictBody {
 #define CdlPropertyId_Wizard            "Wizard"
 
 //}}}
 #define CdlPropertyId_Wizard            "Wizard"
 
 //}}}
-//{{{  Base class                               
+//{{{  Base class
 
 // ----------------------------------------------------------------------------
 // The base class is never used directly. Instead the appropriate derived
 
 // ----------------------------------------------------------------------------
 // The base class is never used directly. Instead the appropriate derived
@@ -2927,11 +2927,11 @@ class CdlConflict_DataBody : public CdlConflictBody {
 class CdlPropertyBody {
 
     friend class CdlTest;
 class CdlPropertyBody {
 
     friend class CdlTest;
-    
+
   public:
     // The destructor is public, to avoid possible problems with STL.
     virtual ~CdlPropertyBody();
   public:
     // The destructor is public, to avoid possible problems with STL.
     virtual ~CdlPropertyBody();
-    
+
     // These routines provide access to the basic data.
     std::string get_property_name() const;
 
     // These routines provide access to the basic data.
     std::string get_property_name() const;
 
@@ -2941,12 +2941,12 @@ class CdlPropertyBody {
     std::string get_option(std::string) const;
     const std::vector<std::string>&     get_argv() const;
     const std::vector<std::pair<std::string,std::string> >&     get_options() const;
     std::string get_option(std::string) const;
     const std::vector<std::string>&     get_argv() const;
     const std::vector<std::pair<std::string,std::string> >&     get_options() const;
-    
+
     // Resolve any references, or generate/update appropriate conflict
     // objects. The default implementation is a no-op because not all
     // properties involve references.
     virtual void update(CdlTransaction, CdlNode /* source */, CdlNode /* dest */, CdlUpdate);
     // Resolve any references, or generate/update appropriate conflict
     // objects. The default implementation is a no-op because not all
     // properties involve references.
     virtual void update(CdlTransaction, CdlNode /* source */, CdlNode /* dest */, CdlUpdate);
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
@@ -2969,7 +2969,7 @@ class CdlPropertyBody {
     // <name/value> pairs, and is usually obtained via
     // CdlParse::parse_options().
     CdlPropertyBody(CdlNode, std::string, int argc, const char* argv[], std::vector<std::pair<std::string,std::string> >&);
     // <name/value> pairs, and is usually obtained via
     // CdlParse::parse_options().
     CdlPropertyBody(CdlNode, std::string, int argc, const char* argv[], std::vector<std::pair<std::string,std::string> >&);
-    
+
   private:
     // This string indicates the command used to define this property,
     // e.g. "doc" or "define_proc". It is provided to the constructor.
   private:
     // This string indicates the command used to define this property,
     // e.g. "doc" or "define_proc". It is provided to the constructor.
@@ -2986,15 +2986,15 @@ class CdlPropertyBody {
     CdlPropertyBody();
     CdlPropertyBody(const CdlPropertyBody&);
     CdlPropertyBody& operator=(const CdlPropertyBody&);
     CdlPropertyBody();
     CdlPropertyBody(const CdlPropertyBody&);
     CdlPropertyBody& operator=(const CdlPropertyBody&);
-    
+
     enum {
     enum {
-        CdlPropertyBody_Invalid = 0,
-        CdlPropertyBody_Magic   = 0x60dd58f4
+       CdlPropertyBody_Invalid = 0,
+       CdlPropertyBody_Magic   = 0x60dd58f4
     } cdlpropertybody_cookie;
 };
 
 //}}}
     } cdlpropertybody_cookie;
 };
 
 //}}}
-//{{{  CdlProperty_Minimal                      
+//{{{  CdlProperty_Minimal
 
 // ----------------------------------------------------------------------------
 // This class is used for properties that are simple flags, e.g. no_define.
 
 // ----------------------------------------------------------------------------
 // This class is used for properties that are simple flags, e.g. no_define.
@@ -3003,7 +3003,7 @@ class CdlPropertyBody {
 class CdlProperty_MinimalBody : public CdlPropertyBody {
 
     friend class CdlTest;
 class CdlProperty_MinimalBody : public CdlPropertyBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_Minimal   make(CdlNode, std::string, int, const char*[], std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_MinimalBody( );
   public:
     static CdlProperty_Minimal   make(CdlNode, std::string, int, const char*[], std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_MinimalBody( );
@@ -3011,14 +3011,14 @@ class CdlProperty_MinimalBody : public CdlPropertyBody {
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
-    
+
   private:
     typedef CdlPropertyBody     inherited;
   private:
     typedef CdlPropertyBody     inherited;
-    
+
     CdlProperty_MinimalBody(CdlNode, std::string, int, const char*[], std::vector<std::pair<std::string,std::string> >&);
     enum {
     CdlProperty_MinimalBody(CdlNode, std::string, int, const char*[], std::vector<std::pair<std::string,std::string> >&);
     enum {
-        CdlProperty_MinimalBody_Invalid = 0,
-        CdlProperty_MinimalBody_Magic   = 0x25625b8c
+       CdlProperty_MinimalBody_Invalid = 0,
+       CdlProperty_MinimalBody_Magic   = 0x25625b8c
     } cdlproperty_minimalbody_cookie;
 
     CdlProperty_MinimalBody();
     } cdlproperty_minimalbody_cookie;
 
     CdlProperty_MinimalBody();
@@ -3027,7 +3027,7 @@ class CdlProperty_MinimalBody : public CdlPropertyBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_String                       
+//{{{  CdlProperty_String
 
 // ----------------------------------------------------------------------------
 // A string property contains a single piece of additional data in the form
 
 // ----------------------------------------------------------------------------
 // A string property contains a single piece of additional data in the form
@@ -3036,10 +3036,10 @@ class CdlProperty_MinimalBody : public CdlPropertyBody {
 class CdlProperty_StringBody : public CdlPropertyBody {
 
     friend class CdlTest;
 class CdlProperty_StringBody : public CdlPropertyBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_String    make(CdlNode, std::string, std::string, int, const char*[],
   public:
     static CdlProperty_String    make(CdlNode, std::string, std::string, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_StringBody();
 
     std::string                 get_string(void) const;
     virtual ~CdlProperty_StringBody();
 
     std::string                 get_string(void) const;
@@ -3047,16 +3047,16 @@ class CdlProperty_StringBody : public CdlPropertyBody {
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
-    
+
   private:
     typedef CdlPropertyBody     inherited;
   private:
     typedef CdlPropertyBody     inherited;
-    
+
     CdlProperty_StringBody(CdlNode, std::string /* id */, std::string /* data */, int, const char*[],
     CdlProperty_StringBody(CdlNode, std::string /* id */, std::string /* data */, int, const char*[],
-                           std::vector<std::pair<std::string,std::string> >&);
+                          std::vector<std::pair<std::string,std::string> >&);
     std::string                 data;
     enum {
     std::string                 data;
     enum {
-        CdlProperty_StringBody_Invalid = 0,
-        CdlProperty_StringBody_Magic   = 0x78d1ca94
+       CdlProperty_StringBody_Invalid = 0,
+       CdlProperty_StringBody_Magic   = 0x78d1ca94
     } cdlproperty_stringbody_cookie;
 
     // The only legal constructor supplies all the data.
     } cdlproperty_stringbody_cookie;
 
     // The only legal constructor supplies all the data.
@@ -3066,7 +3066,7 @@ class CdlProperty_StringBody : public CdlPropertyBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_TclCode                      
+//{{{  CdlProperty_TclCode
 
 // ----------------------------------------------------------------------------
 // A TclCode property is currently equivalent to a string property. In
 
 // ----------------------------------------------------------------------------
 // A TclCode property is currently equivalent to a string property. In
@@ -3084,37 +3084,37 @@ class CdlProperty_TclCodeBody : public CdlPropertyBody {
 
   public:
     static CdlProperty_TclCode   make(CdlNode, std::string, cdl_tcl_code, int, const char*[],
 
   public:
     static CdlProperty_TclCode   make(CdlNode, std::string, cdl_tcl_code, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     std::vector<std::pair<std::string,std::string> >&);
     static CdlProperty_TclCode   make(CdlNode, std::string, cdl_int, cdl_tcl_code, int, const char*[],
     static CdlProperty_TclCode   make(CdlNode, std::string, cdl_int, cdl_tcl_code, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_TclCodeBody();
     virtual ~CdlProperty_TclCodeBody();
-    
+
     cdl_int                     get_number(void) const;
     const cdl_tcl_code&         get_code(void)   const;
     bool                        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     cdl_int                     get_number(void) const;
     const cdl_tcl_code&         get_code(void)   const;
     bool                        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     typedef CdlPropertyBody     inherited;
   private:
     typedef CdlPropertyBody     inherited;
-    
+
     CdlProperty_TclCodeBody(CdlNode, std::string, cdl_int, cdl_tcl_code, int, const char*[],
     CdlProperty_TclCodeBody(CdlNode, std::string, cdl_int, cdl_tcl_code, int, const char*[],
-                            std::vector<std::pair<std::string,std::string> >&);
+                           std::vector<std::pair<std::string,std::string> >&);
 
     cdl_int                     number;
     cdl_tcl_code                code;
     enum {
 
     cdl_int                     number;
     cdl_tcl_code                code;
     enum {
-        CdlProperty_TclCodeBody_Invalid = 0,
-        CdlProperty_TclCodeBody_Magic   = 0x7b14d4e5
+       CdlProperty_TclCodeBody_Invalid = 0,
+       CdlProperty_TclCodeBody_Magic   = 0x7b14d4e5
     } cdlproperty_tclcodebody_cookie;
 
     CdlProperty_TclCodeBody();
     CdlProperty_TclCodeBody(const CdlProperty_TclCodeBody&);
     CdlProperty_TclCodeBody& operator=(const CdlProperty_TclCodeBody&);
     } cdlproperty_tclcodebody_cookie;
 
     CdlProperty_TclCodeBody();
     CdlProperty_TclCodeBody(const CdlProperty_TclCodeBody&);
     CdlProperty_TclCodeBody& operator=(const CdlProperty_TclCodeBody&);
-    
+
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_StringVector                 
+//{{{  CdlProperty_StringVector
 
 // ----------------------------------------------------------------------------
 // This is used for multiple constant strings, as opposed to a list
 
 // ----------------------------------------------------------------------------
 // This is used for multiple constant strings, as opposed to a list
@@ -3127,26 +3127,26 @@ class CdlProperty_StringVectorBody : public CdlPropertyBody {
 
   public:
     static CdlProperty_StringVector     make(CdlNode, std::string, const std::vector<std::string>&, int, const char*[],
 
   public:
     static CdlProperty_StringVector     make(CdlNode, std::string, const std::vector<std::string>&, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_StringVectorBody();
     virtual ~CdlProperty_StringVectorBody();
-    
+
     const std::vector<std::string>&     get_strings() const;
     std::string                         get_first_string() const;
     unsigned int                        get_number_of_strings() const;
     const std::vector<std::string>&     get_strings() const;
     std::string                         get_first_string() const;
     unsigned int                        get_number_of_strings() const;
-    std::string                         get_string(unsigned int) const;                  
+    std::string                         get_string(unsigned int) const;
     bool                                check_this(cyg_assert_class_zeal zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool                                check_this(cyg_assert_class_zeal zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     typedef CdlPropertyBody            inherited;
   private:
     typedef CdlPropertyBody            inherited;
-    
+
     CdlProperty_StringVectorBody(CdlNode, std::string, const std::vector<std::string>&, int, const char*[],
     CdlProperty_StringVectorBody(CdlNode, std::string, const std::vector<std::string>&, int, const char*[],
-                                 std::vector<std::pair<std::string,std::string> >&);
+                                std::vector<std::pair<std::string,std::string> >&);
 
     std::vector<std::string>            data;
     enum {
 
     std::vector<std::string>            data;
     enum {
-        CdlProperty_StringVectorBody_Invalid = 0,
-        CdlProperty_StringVectorBody_Magic   = 0x4ed039f3
+       CdlProperty_StringVectorBody_Invalid = 0,
+       CdlProperty_StringVectorBody_Magic   = 0x4ed039f3
     } cdlproperty_stringvectorbody_cookie;
 
     CdlProperty_StringVectorBody();
     } cdlproperty_stringvectorbody_cookie;
 
     CdlProperty_StringVectorBody();
@@ -3155,7 +3155,7 @@ class CdlProperty_StringVectorBody : public CdlPropertyBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_Reference                    
+//{{{  CdlProperty_Reference
 
 // ----------------------------------------------------------------------------
 // This is used for properties such as wizard and dialog, where the data
 
 // ----------------------------------------------------------------------------
 // This is used for properties such as wizard and dialog, where the data
@@ -3169,26 +3169,26 @@ class CdlProperty_ReferenceBody : public CdlPropertyBody, public CdlReference {
 
   public:
     static CdlProperty_Reference make(CdlNode, std::string /* id */, std::string /* destination */,
 
   public:
     static CdlProperty_Reference make(CdlNode, std::string /* id */, std::string /* destination */,
-                                      CdlUpdateHandler, int, const char*[],
-                                      std::vector<std::pair<std::string,std::string> >&);
+                                     CdlUpdateHandler, int, const char*[],
+                                     std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_ReferenceBody();
     virtual ~CdlProperty_ReferenceBody();
-    
+
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   private:
     typedef CdlPropertyBody     inherited_property;
     typedef CdlReference        inherited_reference;
 
     CdlUpdateHandler            update_handler;
   private:
     typedef CdlPropertyBody     inherited_property;
     typedef CdlReference        inherited_reference;
 
     CdlUpdateHandler            update_handler;
-    
+
     CdlProperty_ReferenceBody(CdlNode, std::string /* id */, std::string /* destination */, CdlUpdateHandler, int, const char*[],
     CdlProperty_ReferenceBody(CdlNode, std::string /* id */, std::string /* destination */, CdlUpdateHandler, int, const char*[],
-                              std::vector<std::pair<std::string,std::string> >&);
+                             std::vector<std::pair<std::string,std::string> >&);
     enum {
     enum {
-        CdlProperty_ReferenceBody_Invalid = 0,
-        CdlProperty_ReferenceBody_Magic   = 0x78100339
+       CdlProperty_ReferenceBody_Invalid = 0,
+       CdlProperty_ReferenceBody_Magic   = 0x78100339
     } cdlproperty_referencebody_cookie;
 
     CdlProperty_ReferenceBody();
     } cdlproperty_referencebody_cookie;
 
     CdlProperty_ReferenceBody();
@@ -3197,7 +3197,7 @@ class CdlProperty_ReferenceBody : public CdlPropertyBody, public CdlReference {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_Expression                   
+//{{{  CdlProperty_Expression
 
 // ----------------------------------------------------------------------------
 // An expression property simply inherits its functionality from the basic
 
 // ----------------------------------------------------------------------------
 // An expression property simply inherits its functionality from the basic
@@ -3206,10 +3206,10 @@ class CdlProperty_ReferenceBody : public CdlPropertyBody, public CdlReference {
 class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionBody {
 
     friend class CdlTest;
 class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_Expression       make(CdlNode, std::string, CdlExpression, CdlUpdateHandler, int, const char*[],
   public:
     static CdlProperty_Expression       make(CdlNode, std::string, CdlExpression, CdlUpdateHandler, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_ExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     virtual ~CdlProperty_ExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -3220,12 +3220,12 @@ class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionB
     typedef CdlExpressionBody   inherited_expression;
 
     CdlProperty_ExpressionBody(CdlNode, std::string, CdlExpression, CdlUpdateHandler, int, const char*[],
     typedef CdlExpressionBody   inherited_expression;
 
     CdlProperty_ExpressionBody(CdlNode, std::string, CdlExpression, CdlUpdateHandler, int, const char*[],
-                               std::vector<std::pair<std::string,std::string> >&);
-    
+                              std::vector<std::pair<std::string,std::string> >&);
+
     CdlUpdateHandler update_handler;
     enum {
     CdlUpdateHandler update_handler;
     enum {
-        CdlProperty_ExpressionBody_Invalid = 0,
-        CdlProperty_ExpressionBody_Magic   = 0x05fb4056
+       CdlProperty_ExpressionBody_Invalid = 0,
+       CdlProperty_ExpressionBody_Magic   = 0x05fb4056
     } cdlproperty_expressionbody_cookie;
 
     CdlProperty_ExpressionBody();
     } cdlproperty_expressionbody_cookie;
 
     CdlProperty_ExpressionBody();
@@ -3234,7 +3234,7 @@ class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionB
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_ListExpression               
+//{{{  CdlProperty_ListExpression
 
 // ----------------------------------------------------------------------------
 // Similarly a list property simply inherits from property and from
 
 // ----------------------------------------------------------------------------
 // Similarly a list property simply inherits from property and from
@@ -3243,10 +3243,10 @@ class CdlProperty_ExpressionBody : public CdlPropertyBody, public CdlExpressionB
 class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExpressionBody {
 
     friend class CdlTest;
 class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_ListExpression   make(CdlNode, std::string, CdlListExpression, CdlUpdateHandler, int, const char*[],
   public:
     static CdlProperty_ListExpression   make(CdlNode, std::string, CdlListExpression, CdlUpdateHandler, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_ListExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     virtual ~CdlProperty_ListExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -3257,12 +3257,12 @@ class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExp
     typedef CdlListExpressionBody   inherited_expression;
 
     CdlProperty_ListExpressionBody(CdlNode, std::string, CdlListExpression, CdlUpdateHandler, int, const char*[],
     typedef CdlListExpressionBody   inherited_expression;
 
     CdlProperty_ListExpressionBody(CdlNode, std::string, CdlListExpression, CdlUpdateHandler, int, const char*[],
-                                   std::vector<std::pair<std::string,std::string> >&);
+                                  std::vector<std::pair<std::string,std::string> >&);
 
     CdlUpdateHandler update_handler;
     enum {
 
     CdlUpdateHandler update_handler;
     enum {
-        CdlProperty_ListExpressionBody_Invalid = 0,
-        CdlProperty_ListExpressionBody_Magic   = 0x6b0136f5
+       CdlProperty_ListExpressionBody_Invalid = 0,
+       CdlProperty_ListExpressionBody_Magic   = 0x6b0136f5
     } cdlproperty_listexpressionbody_cookie;
 
     CdlProperty_ListExpressionBody();
     } cdlproperty_listexpressionbody_cookie;
 
     CdlProperty_ListExpressionBody();
@@ -3271,7 +3271,7 @@ class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExp
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlProperty_GoalExpression               
+//{{{  CdlProperty_GoalExpression
 
 // ----------------------------------------------------------------------------
 // And a goal property inherits from property and from goal expressions.
 
 // ----------------------------------------------------------------------------
 // And a goal property inherits from property and from goal expressions.
@@ -3279,10 +3279,10 @@ class CdlProperty_ListExpressionBody : public CdlPropertyBody, public CdlListExp
 class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExpressionBody {
 
     friend class CdlTest;
 class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExpressionBody {
 
     friend class CdlTest;
-    
+
   public:
     static CdlProperty_GoalExpression   make(CdlNode, std::string, CdlGoalExpression, CdlUpdateHandler, int, const char*[],
   public:
     static CdlProperty_GoalExpression   make(CdlNode, std::string, CdlGoalExpression, CdlUpdateHandler, int, const char*[],
-                                             std::vector<std::pair<std::string,std::string> >&);
+                                            std::vector<std::pair<std::string,std::string> >&);
     virtual ~CdlProperty_GoalExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     virtual ~CdlProperty_GoalExpressionBody();
     void update(CdlTransaction, CdlNode, CdlNode, CdlUpdate);
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
@@ -3293,12 +3293,12 @@ class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExp
     typedef CdlGoalExpressionBody   inherited_expression;
 
     CdlProperty_GoalExpressionBody(CdlNode, std::string, CdlGoalExpression, CdlUpdateHandler, int, const char*[],
     typedef CdlGoalExpressionBody   inherited_expression;
 
     CdlProperty_GoalExpressionBody(CdlNode, std::string, CdlGoalExpression, CdlUpdateHandler, int, const char*[],
-                                   std::vector<std::pair<std::string,std::string> >&);
-    
+                                  std::vector<std::pair<std::string,std::string> >&);
+
     CdlUpdateHandler update_handler;
     enum {
     CdlUpdateHandler update_handler;
     enum {
-        CdlProperty_GoalExpressionBody_Invalid = 0,
-        CdlProperty_GoalExpressionBody_Magic   = 0x08b2b31e
+       CdlProperty_GoalExpressionBody_Invalid = 0,
+       CdlProperty_GoalExpressionBody_Magic   = 0x08b2b31e
     } cdlproperty_goalexpressionbody_cookie;
 
     CdlProperty_GoalExpressionBody();
     } cdlproperty_goalexpressionbody_cookie;
 
     CdlProperty_GoalExpressionBody();
@@ -3309,7 +3309,7 @@ class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExp
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlParse class                                   
+//{{{  CdlParse class
 
 // ----------------------------------------------------------------------------
 // This is another utility class for collecting together parsing-related
 
 // ----------------------------------------------------------------------------
 // This is another utility class for collecting together parsing-related
@@ -3321,17 +3321,17 @@ class CdlProperty_GoalExpressionBody : public CdlPropertyBody, public CdlGoalExp
 // possible to re-use some of the functionality in that class.
 
 class CdlParse {
 // possible to re-use some of the functionality in that class.
 
 class CdlParse {
-    
+
   public:
     // Utility routines.
     static std::string  get_tcl_cmd_name(std::string);
     static std::string  concatenate_argv(int, const char*[], int);
   public:
     // Utility routines.
     static std::string  get_tcl_cmd_name(std::string);
     static std::string  concatenate_argv(int, const char*[], int);
-    static int          parse_options(CdlInterpreter, std::string /* diag_prefix */, char** /* options */,
-                                               int /* argc */, const char*[] /* argv */, int /* start_index */,
-                                               std::vector<std::pair<std::string,std::string> >& /* result */);
+    static int          parse_options(CdlInterpreter, std::string /* diag_prefix */, const char** /* options */,
+                                              int /* argc */, const char*[] /* argv */, int /* start_index */,
+                                              std::vector<std::pair<std::string,std::string> >& /* result */);
     static std::string  construct_diagnostic(CdlInterpreter, std::string /* classification */,
     static std::string  construct_diagnostic(CdlInterpreter, std::string /* classification */,
-                                             std::string /* sub-identifier */, std::string /* message */);
-                                       
+                                            std::string /* sub-identifier */, std::string /* message */);
+
     static void         report_error(CdlInterpreter, std::string /* sub-identifier */, std::string /* message */);
     static void         report_warning(CdlInterpreter, std::string /* sub-identifier */, std::string /* message */);
     static void         clear_error_count(CdlInterpreter);
     static void         report_error(CdlInterpreter, std::string /* sub-identifier */, std::string /* message */);
     static void         report_warning(CdlInterpreter, std::string /* sub-identifier */, std::string /* message */);
     static void         clear_error_count(CdlInterpreter);
@@ -3339,43 +3339,43 @@ class CdlParse {
     static void         incr_error_count(CdlInterpreter, int=1);
 
     static std::string  get_expression_error_location(void);
     static void         incr_error_count(CdlInterpreter, int=1);
 
     static std::string  get_expression_error_location(void);
-    
+
     // Support for Tcl's "unknown" command
     static int          unknown_command(CdlInterpreter, int, const char*[]);
     // Support for Tcl's "unknown" command
     static int          unknown_command(CdlInterpreter, int, const char*[]);
-    
+
     // Property-related utilities
     static void         report_property_parse_error(CdlInterpreter, std::string, std::string);
     static void         report_property_parse_error(CdlInterpreter, CdlProperty, std::string);
     static void         report_property_parse_warning(CdlInterpreter, std::string, std::string);
     static void         report_property_parse_warning(CdlInterpreter, CdlProperty, std::string);
     // Property-related utilities
     static void         report_property_parse_error(CdlInterpreter, std::string, std::string);
     static void         report_property_parse_error(CdlInterpreter, CdlProperty, std::string);
     static void         report_property_parse_warning(CdlInterpreter, std::string, std::string);
     static void         report_property_parse_warning(CdlInterpreter, CdlProperty, std::string);
-    
+
     // Utility parsing routines
     static int  parse_minimal_property(CdlInterpreter, int, const char*[], std::string,
     // Utility parsing routines
     static int  parse_minimal_property(CdlInterpreter, int, const char*[], std::string,
-                                       char**, void (*)(CdlInterpreter, CdlProperty_Minimal));
+                                      const char **, void (*)(CdlInterpreter, CdlProperty_Minimal));
     static int  parse_string_property(CdlInterpreter, int, const char*[], std::string,
     static int  parse_string_property(CdlInterpreter, int, const char*[], std::string,
-                                      char**, void (*)(CdlInterpreter, CdlProperty_String));
+                                     const char **, void (*)(CdlInterpreter, CdlProperty_String));
     static int  parse_tclcode_property(CdlInterpreter, int, const char*[], std::string,
     static int  parse_tclcode_property(CdlInterpreter, int, const char*[], std::string,
-                                       char**, void (*)(CdlInterpreter, CdlProperty_TclCode));
+                                      const char **, void (*)(CdlInterpreter, CdlProperty_TclCode));
     static int  parse_stringvector_property(CdlInterpreter, int, const char*[], std::string,
     static int  parse_stringvector_property(CdlInterpreter, int, const char*[], std::string,
-                                            char**, void (*)(CdlInterpreter, CdlProperty_StringVector),
-                                            bool /* allow_empty */ = false);
+                                           const char **, void (*)(CdlInterpreter, CdlProperty_StringVector),
+                                           bool /* allow_empty */ = false);
     static int  parse_reference_property(CdlInterpreter, int, const char*[], std::string,
     static int  parse_reference_property(CdlInterpreter, int, const char*[], std::string,
-                                         char**, void (*)(CdlInterpreter, CdlProperty_Reference),
-                                         bool /* allow_empty */,
-                                         CdlUpdateHandler);
-    static int  parse_expression_property(CdlInterpreter, int, const char*[], std::string, 
-                                          char **, void (*)(CdlInterpreter, CdlProperty_Expression),
-                                          CdlUpdateHandler);
+                                        const char **, void (*)(CdlInterpreter, CdlProperty_Reference),
+                                        bool /* allow_empty */,
+                                        CdlUpdateHandler);
+    static int  parse_expression_property(CdlInterpreter, int, const char*[], std::string,
+                                         const char **, void (*)(CdlInterpreter, CdlProperty_Expression),
+                                         CdlUpdateHandler);
     static int  parse_listexpression_property(CdlInterpreter, int, const char*[], std::string,
     static int  parse_listexpression_property(CdlInterpreter, int, const char*[], std::string,
-                                              char **, void (*)(CdlInterpreter, CdlProperty_ListExpression),
-                                              CdlUpdateHandler);
+                                             const char **, void (*)(CdlInterpreter, CdlProperty_ListExpression),
+                                             CdlUpdateHandler);
     static int  parse_goalexpression_property(CdlInterpreter, int, const char*[], std::string,
     static int  parse_goalexpression_property(CdlInterpreter, int, const char*[], std::string,
-                                              char **, void (*)(CdlInterpreter, CdlProperty_GoalExpression),
-                                              CdlUpdateHandler);
+                                             const char **, void (*)(CdlInterpreter, CdlProperty_GoalExpression),
+                                             CdlUpdateHandler);
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlNode                                          
+//{{{  CdlNode
 
 // ----------------------------------------------------------------------------
 // A node object has a name and lives in a hierarchy. Each node keeps
 
 // ----------------------------------------------------------------------------
 // A node object has a name and lives in a hierarchy. Each node keeps
@@ -3397,7 +3397,7 @@ class CdlNodeBody {
 
     // CdlLoadable must be able to access the destructor
     friend class CdlLoadableBody;
 
     // CdlLoadable must be able to access the destructor
     friend class CdlLoadableBody;
-    
+
     // It is intended that CdlProperties will also add and remove themselves
     friend class CdlPropertyBody;
 
     // It is intended that CdlProperties will also add and remove themselves
     friend class CdlPropertyBody;
 
@@ -3405,7 +3405,7 @@ class CdlNodeBody {
     // the referrers vector. So does CdlTransaction::commit()
     friend class CdlReference;
     friend class CdlTransactionBody;
     // the referrers vector. So does CdlTransaction::commit()
     friend class CdlReference;
     friend class CdlTransactionBody;
-    
+
   public:
 
     // Basic information.
   public:
 
     // Basic information.
@@ -3418,7 +3418,7 @@ class CdlNodeBody {
     // get applied to nodes as well as to properties. Note that because
     // of multiple inheritance this virtual call can get confusing.
     virtual void        update(CdlTransaction, CdlUpdate);
     // get applied to nodes as well as to properties. Note that because
     // of multiple inheritance this virtual call can get confusing.
     virtual void        update(CdlTransaction, CdlUpdate);
-    
+
     // Is this node active or not? The is_active() call refers
     // to the global state, things may be different inside a
     // transaction.
     // Is this node active or not? The is_active() call refers
     // to the global state, things may be different inside a
     // transaction.
@@ -3431,7 +3431,7 @@ class CdlNodeBody {
     // active_if constraints. This routine can be used
     // to check whether or not a node should become active.
     virtual bool        test_active(CdlTransaction);
     // active_if constraints. This routine can be used
     // to check whether or not a node should become active.
     virtual bool        test_active(CdlTransaction);
-    
+
     // Provide access to the various properties. Currently all this
     // information is publicly available.
     const std::vector<CdlProperty>&     get_properties() const;
     // Provide access to the various properties. Currently all this
     // information is publicly available.
     const std::vector<CdlProperty>&     get_properties() const;
@@ -3447,7 +3447,7 @@ class CdlNodeBody {
     void get_conflicts(bool (*)(CdlConflict), std::vector<CdlConflict>&) const;
     void get_structural_conflicts(std::vector<CdlConflict>&) const;
     void get_structural_conflicts(bool (*)(CdlConflict), std::vector<CdlConflict>&) const;
     void get_conflicts(bool (*)(CdlConflict), std::vector<CdlConflict>&) const;
     void get_structural_conflicts(std::vector<CdlConflict>&) const;
     void get_structural_conflicts(bool (*)(CdlConflict), std::vector<CdlConflict>&) const;
-    
+
     // Provide access to all the referrers. This may not get used very
     // much outside the library itself.
     const std::vector<CdlReferrer>&     get_referrers() const;
     // Provide access to all the referrers. This may not get used very
     // much outside the library itself.
     const std::vector<CdlReferrer>&     get_referrers() const;
@@ -3469,25 +3469,25 @@ class CdlNodeBody {
     // to have a TCL interpreter available.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
     bool has_additional_savefile_information() const;
     // to have a TCL interpreter available.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
     bool has_additional_savefile_information() const;
-    
+
     // Mainly for diagnostics code, what is the actual name for this
     // type of CDL object? This should be in terms of CDL data, e.g.
     // "package" or "component", rather than in implementation terms
     // Mainly for diagnostics code, what is the actual name for this
     // type of CDL object? This should be in terms of CDL data, e.g.
     // "package" or "component", rather than in implementation terms
-    // such as "CdlPackageBody". 
+    // such as "CdlPackageBody".
     virtual std::string get_class_name() const;
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
     virtual std::string get_class_name() const;
 
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
   protected:
-    
+
     // CdlNodeBodies are only instantiated by derived classes.
     // They must always have a name. They need not be placed
     // in the hierarchy immediately, that can wait until
     // later.
     CdlNodeBody(std::string);
     // A dummy constructor is needed because of the virtual
     // CdlNodeBodies are only instantiated by derived classes.
     // They must always have a name. They need not be placed
     // in the hierarchy immediately, that can wait until
     // later.
     CdlNodeBody(std::string);
     // A dummy constructor is needed because of the virtual
-    // inheritance. 
+    // inheritance.
     CdlNodeBody();
 
     // Nodes cannot be destroyed directly by application code,
     CdlNodeBody();
 
     // Nodes cannot be destroyed directly by application code,
@@ -3496,14 +3496,14 @@ class CdlNodeBody {
 
     // Updating the name is rarely required, but is useful for savefiles.
     void                set_name(std::string);
 
     // Updating the name is rarely required, but is useful for savefiles.
     void                set_name(std::string);
-    
+
     // Is the node currently active? This applies to the global state
     // only, not per-transaction state. Some derived classes may want
     // to override the default value
     bool                active;
     // Is the node currently active? This applies to the global state
     // only, not per-transaction state. Some derived classes may want
     // to override the default value
     bool                active;
-    
+
   private:
   private:
-    
+
     // The basic data. The name is known during construction.
     // The other three fields get updated by e.g. CdlToplevel::add_node();
     std::string         name;
     // The basic data. The name is known during construction.
     // The other three fields get updated by e.g. CdlToplevel::add_node();
     std::string         name;
@@ -3514,7 +3514,7 @@ class CdlNodeBody {
     // This is used by remove_node_from_toplevel()/add_node_to_toplevel()
     // to allow the latter to exactly reverse the former
     int                 remove_node_container_position;
     // This is used by remove_node_from_toplevel()/add_node_to_toplevel()
     // to allow the latter to exactly reverse the former
     int                 remove_node_container_position;
-    
+
     // Properties normally only get added during the parsing process,
     // and only get removed when the object itself is destroyed.
     // A vector is the obvious implementation.
     // Properties normally only get added during the parsing process,
     // and only get removed when the object itself is destroyed.
     // A vector is the obvious implementation.
@@ -3533,19 +3533,19 @@ class CdlNodeBody {
     // the savefile information so that it can be put in the next
     // savefile.
     std::vector<std::string> unsupported_savefile_strings;
     // the savefile information so that it can be put in the next
     // savefile.
     std::vector<std::string> unsupported_savefile_strings;
-    
+
     enum {
     enum {
-        CdlNodeBody_Invalid     = 0,
-        CdlNodeBody_Magic       = 0x309595b5
+       CdlNodeBody_Invalid     = 0,
+       CdlNodeBody_Magic       = 0x309595b5
     } cdlnodebody_cookie;
     } cdlnodebody_cookie;
-    
+
     // Illegal operations
     CdlNodeBody(const CdlNodeBody&);
     CdlNodeBody& operator=(const CdlNodeBody&);
 };
 
 //}}}
     // Illegal operations
     CdlNodeBody(const CdlNodeBody&);
     CdlNodeBody& operator=(const CdlNodeBody&);
 };
 
 //}}}
-//{{{  CdlContainer                                     
+//{{{  CdlContainer
 
 // ----------------------------------------------------------------------------
 // A container is a node that can contain other nodes.
 
 // ----------------------------------------------------------------------------
 // A container is a node that can contain other nodes.
@@ -3556,14 +3556,14 @@ class CdlContainerBody : virtual public CdlNodeBody {
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
-    
+
     // Adding a node to the hierarchy is done by a CdlToplevel member.
     // Ditto for removing.
     friend class CdlToplevelBody;
 
     // Deleting a container can happen inside CdlToplevel and CdlLoadable
     friend class CdlLoadableBody;
     // Adding a node to the hierarchy is done by a CdlToplevel member.
     // Ditto for removing.
     friend class CdlToplevelBody;
 
     // Deleting a container can happen inside CdlToplevel and CdlLoadable
     friend class CdlLoadableBody;
-    
+
   public:
 
     const std::vector<CdlNode>& get_contents() const;
   public:
 
     const std::vector<CdlNode>& get_contents() const;
@@ -3574,14 +3574,14 @@ class CdlContainerBody : virtual public CdlNodeBody {
     // Propagation support. Some updates such as active/inactive changes
     // get applied to nodes as well as to properties.
     virtual void update(CdlTransaction, CdlUpdate);
     // Propagation support. Some updates such as active/inactive changes
     // get applied to nodes as well as to properties.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     // Persistence support.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
     // Persistence support.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
     // Containers cannot be destroyed explicitly, only via higher-level
   protected:
 
     // Containers cannot be destroyed explicitly, only via higher-level
@@ -3594,11 +3594,11 @@ class CdlContainerBody : virtual public CdlNodeBody {
 
     // The CdlToplevel class needs access to its own contents.
     std::vector<CdlNode>                contents;
 
     // The CdlToplevel class needs access to its own contents.
     std::vector<CdlNode>                contents;
-    
+
   private:
     enum {
   private:
     enum {
-        CdlContainerBody_Invalid        = 0,
-        CdlContainerBody_Magic          = 0x543c5f1d
+       CdlContainerBody_Invalid        = 0,
+       CdlContainerBody_Magic          = 0x543c5f1d
     } cdlcontainerbody_cookie;
 
     // Illegal operations
     } cdlcontainerbody_cookie;
 
     // Illegal operations
@@ -3607,7 +3607,7 @@ class CdlContainerBody : virtual public CdlNodeBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlLoadable                                      
+//{{{  CdlLoadable
 
 // ----------------------------------------------------------------------------
 // A loadable object is a container that gets loaded or unloaded
 
 // ----------------------------------------------------------------------------
 // A loadable object is a container that gets loaded or unloaded
@@ -3623,14 +3623,14 @@ class CdlLoadableBody : virtual public CdlContainerBody {
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
-    
+
     // Adding nodes to the hierarchy is done by a toplevel member
     friend class CdlToplevelBody;
 
   public:
     virtual ~CdlLoadableBody();
 
     // Adding nodes to the hierarchy is done by a toplevel member
     friend class CdlToplevelBody;
 
   public:
     virtual ~CdlLoadableBody();
 
-    
+
     const std::vector<CdlNode>&         get_owned() const;
     bool                                owns(CdlConstNode) const;
     CdlInterpreter                      get_interpreter() const;
     const std::vector<CdlNode>&         get_owned() const;
     bool                                owns(CdlConstNode) const;
     CdlInterpreter                      get_interpreter() const;
@@ -3654,7 +3654,7 @@ class CdlLoadableBody : virtual public CdlContainerBody {
     // the various properties, calculating default values, etc.
     void                bind(CdlTransaction);
     void                unbind(CdlTransaction);
     // the various properties, calculating default values, etc.
     void                bind(CdlTransaction);
     void                unbind(CdlTransaction);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -3665,19 +3665,19 @@ class CdlLoadableBody : virtual public CdlContainerBody {
 
     // Needed by derived classes, but not actually used.
     CdlLoadableBody();
 
     // Needed by derived classes, but not actually used.
     CdlLoadableBody();
-    
+
   private:
   private:
-    
+
     std::vector<CdlNode> owned;
     CdlInterpreter       interp;
     std::string          directory;
 
     // Used by add/remove_node_from_toplevel()
     int                  remove_node_loadables_position;
     std::vector<CdlNode> owned;
     CdlInterpreter       interp;
     std::string          directory;
 
     // Used by add/remove_node_from_toplevel()
     int                  remove_node_loadables_position;
-    
+
     enum {
     enum {
-        CdlLoadableBody_Invalid = 0,
-        CdlLoadableBody_Magic   = 0x488d6127
+       CdlLoadableBody_Invalid = 0,
+       CdlLoadableBody_Magic   = 0x488d6127
     } cdlloadablebody_cookie;
 
     // Invalid operations
     } cdlloadablebody_cookie;
 
     // Invalid operations
@@ -3686,7 +3686,7 @@ class CdlLoadableBody : virtual public CdlContainerBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlToplevel                                      
+//{{{  CdlToplevel
 
 // ----------------------------------------------------------------------------
 // Toplevels are containers that live at the top of a hierarchy
 
 // ----------------------------------------------------------------------------
 // Toplevels are containers that live at the top of a hierarchy
@@ -3707,7 +3707,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
 
     // Allow CdlNode::check_this() access to the internals
     friend class CdlNodeBody;
-    
+
     // The CdlTransaction class needs direct access to the lists
     // of conflicts.
     friend class CdlTransactionBody;
     // The CdlTransaction class needs direct access to the lists
     // of conflicts.
     friend class CdlTransactionBody;
@@ -3754,7 +3754,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // for some operations like determining build information
     // which must operate on a per-loadable basis.
     const std::vector<CdlLoadable>& get_loadables() const;
     // for some operations like determining build information
     // which must operate on a per-loadable basis.
     const std::vector<CdlLoadable>& get_loadables() const;
-    
+
     // Name uniqueness is guaranteed. It is convenient to have an STL
     // map as a lookup service.
     CdlNode lookup(const std::string) const;
     // Name uniqueness is guaranteed. It is convenient to have an STL
     // map as a lookup service.
     CdlNode lookup(const std::string) const;
@@ -3780,7 +3780,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // will be created for this.
     void        resolve_conflicts(const std::vector<CdlConflict>&);
     void        resolve_all_conflicts();
     // will be created for this.
     void        resolve_conflicts(const std::vector<CdlConflict>&);
     void        resolve_all_conflicts();
-    
+
     // Toplevels can have descriptions provided by the user. This is
     // particularly important for pre-defined templates, target
     // board descriptions, etc. where the user would like some
     // Toplevels can have descriptions provided by the user. This is
     // particularly important for pre-defined templates, target
     // board descriptions, etc. where the user would like some
@@ -3788,11 +3788,11 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // The default value is an empty string.
     std::string         get_description() const;
     void                set_description(std::string);
     // The default value is an empty string.
     std::string         get_description() const;
     void                set_description(std::string);
-    
+
     // Each toplevel must have an associated master Tcl interpreter.
     CdlInterpreter      get_interpreter() const;
 
     // Each toplevel must have an associated master Tcl interpreter.
     CdlInterpreter      get_interpreter() const;
 
-    // Each toplevel should also have an associated directory for 
+    // Each toplevel should also have an associated directory for
     // the component repository. It is not required that all loadables
     // are relative to this, but that is the default behaviour.
     std::string         get_directory() const;
     // the component repository. It is not required that all loadables
     // are relative to this, but that is the default behaviour.
     std::string         get_directory() const;
@@ -3802,7 +3802,7 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     // operating on a single toplevel (although nested transactions
     // are allowed)
     CdlTransaction      get_active_transaction() const;
     // operating on a single toplevel (although nested transactions
     // are allowed)
     CdlTransaction      get_active_transaction() const;
-    
+
     // Build and define operations are available for all toplevels,
     // even if they are not always applicable
     void                get_build_info(CdlBuildInfo&);
     // Build and define operations are available for all toplevels,
     // even if they are not always applicable
     void                get_build_info(CdlBuildInfo&);
@@ -3810,8 +3810,8 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     void                generate_config_headers(std::string);
     void                get_config_headers(std::vector<std::string>&);
     void                generate_build_tree(std::string, std::string = "");
     void                generate_config_headers(std::string);
     void                get_config_headers(std::vector<std::string>&);
     void                generate_build_tree(std::string, std::string = "");
-    
-    // Values can be stored in limbo. This is useful when unloading 
+
+    // Values can be stored in limbo. This is useful when unloading
     // and reloading packages, e.g. when changing a version the
     // current settings can be preserved as much as possible.
     void                set_limbo_value(CdlValuable);
     // and reloading packages, e.g. when changing a version the
     // current settings can be preserved as much as possible.
     void                set_limbo_value(CdlValuable);
@@ -3819,25 +3819,25 @@ class CdlToplevelBody : virtual public CdlContainerBody {
     CdlValue            get_limbo_value(std::string) const;
     CdlValue            get_and_remove_limbo_value(std::string);
     void                clear_limbo();
     CdlValue            get_limbo_value(std::string) const;
     CdlValue            get_and_remove_limbo_value(std::string);
     void                clear_limbo();
-    
+
     // Persistence support. These are commented in the source code.
     // Persistence support. These are commented in the source code.
-           void         initialize_savefile_support();
+          void         initialize_savefile_support();
     static bool         savefile_support_initialized();
     static bool         savefile_support_initialized();
-           void         add_savefile_command(std::string, CdlSaveCallback, CdlInterpreterCommand);
-           void         add_savefile_subcommand(std::string, std::string, CdlSaveCallback, CdlInterpreterCommand);
-           void         get_savefile_commands(std::vector<CdlInterpreterCommandEntry>&);
-           void         get_savefile_subcommands(std::string, std::vector<CdlInterpreterCommandEntry>&);
-           void         save_command_details(CdlInterpreter, Tcl_Channel, int, bool);
+          void         add_savefile_command(std::string, CdlSaveCallback, CdlInterpreterCommand);
+          void         add_savefile_subcommand(std::string, std::string, CdlSaveCallback, CdlInterpreterCommand);
+          void         get_savefile_commands(std::vector<CdlInterpreterCommandEntry>&);
+          void         get_savefile_subcommands(std::string, std::vector<CdlInterpreterCommandEntry>&);
+          void         save_command_details(CdlInterpreter, Tcl_Channel, int, bool);
     static int          savefile_handle_command(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_unsupported(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_unknown(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_command(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_unsupported(CdlInterpreter, int, const char*[]);
     static int          savefile_handle_unknown(CdlInterpreter, int, const char*[]);
-           void         save_unsupported_commands(CdlInterpreter, Tcl_Channel, int, bool);
+          void         save_unsupported_commands(CdlInterpreter, Tcl_Channel, int, bool);
     static cdl_int      get_library_savefile_version();
     static int          savefile_handle_version(CdlInterpreter, int, const char*[]);
     static cdl_int      get_savefile_version(CdlInterpreter);
     static cdl_int      get_library_savefile_version();
     static int          savefile_handle_version(CdlInterpreter, int, const char*[]);
     static cdl_int      get_savefile_version(CdlInterpreter);
-           void         save_conflicts(CdlInterpreter, Tcl_Channel, int, bool);
+          void         save_conflicts(CdlInterpreter, Tcl_Channel, int, bool);
     static void         save_separator(CdlInterpreter, Tcl_Channel, std::string, bool);
     static void         save_separator(CdlInterpreter, Tcl_Channel, std::string, bool);
-        
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -3873,19 +3873,19 @@ class CdlToplevelBody : virtual public CdlContainerBody {
 
     // Keep track of the current active transaction for this toplevel (if any)
     CdlTransaction      transaction;
 
     // Keep track of the current active transaction for this toplevel (if any)
     CdlTransaction      transaction;
-    
+
     enum {
     enum {
-        CdlToplevelBody_Invalid = 0,
-        CdlToplevelBody_Magic   = 0x0834666e
+       CdlToplevelBody_Invalid = 0,
+       CdlToplevelBody_Magic   = 0x0834666e
     } cdltoplevelbody_cookie;
     } cdltoplevelbody_cookie;
-    
+
     // Invalid operations
     CdlToplevelBody(const CdlToplevelBody&);
     CdlToplevelBody& operator=(const CdlToplevelBody&);
 };
 
 //}}}
     // Invalid operations
     CdlToplevelBody(const CdlToplevelBody&);
     CdlToplevelBody& operator=(const CdlToplevelBody&);
 };
 
 //}}}
-//{{{  CdlUserVisible                                   
+//{{{  CdlUserVisible
 
 // ----------------------------------------------------------------------------
 // A user-visible object is likely to have properties such as display,
 
 // ----------------------------------------------------------------------------
 // A user-visible object is likely to have properties such as display,
@@ -3907,9 +3907,9 @@ class CdlUserVisibleBody : virtual public CdlNodeBody {
     // NOTE: this will only work for absolute doc strings or for doc
     // strings that are relative to the package.
     std::string         get_doc_url() const;
     // NOTE: this will only work for absolute doc strings or for doc
     // strings that are relative to the package.
     std::string         get_doc_url() const;
-    
+
     // Add property parsers and validation code appropriate for a
     // Add property parsers and validation code appropriate for a
-    // user-visible object such as doc and description 
+    // user-visible object such as doc and description
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     void                check_properties(CdlInterpreter);
     static int          parse_description(CdlInterpreter, int, const char*[]);
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     void                check_properties(CdlInterpreter);
     static int          parse_description(CdlInterpreter, int, const char*[]);
@@ -3919,19 +3919,19 @@ class CdlUserVisibleBody : virtual public CdlNodeBody {
     // Persistence support. The save code simply outputs some comments
     // corresponding to the display, doc and description properties.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
     // Persistence support. The save code simply outputs some comments
     // corresponding to the display, doc and description properties.
     virtual void save(CdlInterpreter, Tcl_Channel, int, bool);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlUserVisibleBody();
 
   private:
 
     enum {
   protected:
     CdlUserVisibleBody();
 
   private:
 
     enum {
-        CdlUserVisibleBody_Invalid      = 0,
-        CdlUserVisibleBody_Magic        = 0x13bbc817
+       CdlUserVisibleBody_Invalid      = 0,
+       CdlUserVisibleBody_Magic        = 0x13bbc817
     } cdluservisiblebody_cookie;
 
     // Illegal operations
     } cdluservisiblebody_cookie;
 
     // Illegal operations
@@ -3940,7 +3940,7 @@ class CdlUserVisibleBody : virtual public CdlNodeBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlParentable                                    
+//{{{  CdlParentable
 
 // ----------------------------------------------------------------------------
 // A parentable object may have the parent property, redefining its
 
 // ----------------------------------------------------------------------------
 // A parentable object may have the parent property, redefining its
@@ -3961,7 +3961,7 @@ class CdlParentableBody : virtual public CdlNodeBody {
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlParentableBody();
 
   protected:
     CdlParentableBody();
 
@@ -3970,10 +3970,10 @@ class CdlParentableBody : virtual public CdlNodeBody {
     // Unloads may be cancelled. To restore the previous state exactly
     // it is necessary to keep track of the old position.
     int                 change_parent_save_position;
     // Unloads may be cancelled. To restore the previous state exactly
     // it is necessary to keep track of the old position.
     int                 change_parent_save_position;
-    
+
     enum {
     enum {
-        CdlParentableBody_Invalid      = 0,
-        CdlParentableBody_Magic        = 0x40c6a077
+       CdlParentableBody_Invalid      = 0,
+       CdlParentableBody_Magic        = 0x40c6a077
     } cdlparentablebody_cookie;
 
     // Illegal operations
     } cdlparentablebody_cookie;
 
     // Illegal operations
@@ -3982,7 +3982,7 @@ class CdlParentableBody : virtual public CdlNodeBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlValuable                                      
+//{{{  CdlValuable
 
 // ----------------------------------------------------------------------------
 // A valuable body has a value. Many valuables can be modified but not all.
 
 // ----------------------------------------------------------------------------
 // A valuable body has a value. Many valuables can be modified but not all.
@@ -4014,21 +4014,21 @@ class CdlValuableBody : virtual public CdlNodeBody {
 
     // Transaction commit operations require direct access to the CdlValue
     friend class CdlTransactionBody;
 
     // Transaction commit operations require direct access to the CdlValue
     friend class CdlTransactionBody;
-    
+
   private:
     CdlValue value;
   private:
     CdlValue value;
-    
+
   public:
     virtual ~CdlValuableBody();
 
     // Accessing the current value. There are variants for the global state
     // and for per-transaction operations.
     const CdlValue&     get_whole_value() const;
   public:
     virtual ~CdlValuableBody();
 
     // Accessing the current value. There are variants for the global state
     // and for per-transaction operations.
     const CdlValue&     get_whole_value() const;
-    
+
     CdlValueFlavor      get_flavor() const;
     CdlValueFlavor      get_flavor(CdlTransaction transaction) const
     {   // The transaction is irrelevant, it cannot change the flavor
     CdlValueFlavor      get_flavor() const;
     CdlValueFlavor      get_flavor(CdlTransaction transaction) const
     {   // The transaction is irrelevant, it cannot change the flavor
-        return this->get_flavor();
+       return this->get_flavor();
     }
 
     CdlValueSource      get_source() const;
     }
 
     CdlValueSource      get_source() const;
@@ -4040,7 +4040,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     bool                has_double_value(  CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(  CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(  CdlValueSource = CdlValueSource_Current) const;
     bool                has_double_value(  CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(  CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(  CdlValueSource = CdlValueSource_Current) const;
-    
+
     CdlValueSource      get_source(CdlTransaction) const;
     bool                has_source(        CdlTransaction, CdlValueSource) const;
     bool                is_enabled(        CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     CdlValueSource      get_source(CdlTransaction) const;
     bool                has_source(        CdlTransaction, CdlValueSource) const;
     bool                is_enabled(        CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
@@ -4050,7 +4050,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     bool                has_double_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     bool                has_double_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     double              get_double_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
     CdlSimpleValue      get_simple_value(  CdlTransaction, CdlValueSource = CdlValueSource_Current) const;
-    
+
     // -----------------------------------------------------------------
     // Modify access. There are two variants of all the functions:
     //
     // -----------------------------------------------------------------
     // Modify access. There are two variants of all the functions:
     //
@@ -4069,7 +4069,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     void set_value(CdlSimpleValue&, CdlValueSource);
     void set_enabled_and_value(bool, CdlSimpleValue&, CdlValueSource);
     void set(CdlSimpleValue&, CdlValueSource);
     void set_value(CdlSimpleValue&, CdlValueSource);
     void set_enabled_and_value(bool, CdlSimpleValue&, CdlValueSource);
     void set(CdlSimpleValue&, CdlValueSource);
-    
+
     void set_source(CdlTransaction, CdlValueSource);
     void invalidate_source(CdlTransaction, CdlValueSource);
     void set_enabled(CdlTransaction, bool, CdlValueSource);
     void set_source(CdlTransaction, CdlValueSource);
     void invalidate_source(CdlTransaction, CdlValueSource);
     void set_enabled(CdlTransaction, bool, CdlValueSource);
@@ -4077,146 +4077,146 @@ class CdlValuableBody : virtual public CdlNodeBody {
     void set_enabled_and_value(CdlTransaction, bool, CdlSimpleValue&, CdlValueSource);
     void set(CdlTransaction, CdlSimpleValue&, CdlValueSource);
     void set(CdlTransaction, const CdlValue&);
     void set_enabled_and_value(CdlTransaction, bool, CdlSimpleValue&, CdlValueSource);
     void set(CdlTransaction, CdlSimpleValue&, CdlValueSource);
     void set(CdlTransaction, const CdlValue&);
-    
+
     void enable(CdlValueSource source)
     {
     void enable(CdlValueSource source)
     {
-        set_enabled(true, source);
+       set_enabled(true, source);
     }
     void disable(CdlValueSource source)
     {
     }
     void disable(CdlValueSource source)
     {
-        set_enabled(false, source);
+       set_enabled(false, source);
     }
     void set_value(std::string data, CdlValueSource source)
     {
     }
     void set_value(std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_integer_value(cdl_int data, CdlValueSource source)
     {
     }
     void set_integer_value(cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_double_value(double data, CdlValueSource source)
     {
     }
     void set_double_value(double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(val, source);
+       CdlSimpleValue val(data);
+       set_value(val, source);
     }
     void set_enabled_and_value(bool enabled, std::string data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(bool enabled, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, cdl_int data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(bool enabled, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void set_enabled_and_value(bool enabled, double data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(bool enabled, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(enabled, val, source);
     }
     void enable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
     }
     void enable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(true, val, source);
+       set_enabled_and_value(true, val, source);
     }
     void enable_and_set_value(std::string data, CdlValueSource source)
     {
     }
     void enable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(cdl_int data, CdlValueSource source)
     {
     }
     void enable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void enable_and_set_value(double data, CdlValueSource source)
     {
     }
     void enable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(true, data, source);
+       set_enabled_and_value(true, data, source);
     }
     void disable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
     }
     void disable_and_set_value(CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(false, val, source);
+       set_enabled_and_value(false, val, source);
     }
     void disable_and_set_value(std::string data, CdlValueSource source)
     {
     }
     void disable_and_set_value(std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(cdl_int data, CdlValueSource source)
     {
     }
     void disable_and_set_value(cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void disable_and_set_value(double data, CdlValueSource source)
     {
     }
     void disable_and_set_value(double data, CdlValueSource source)
     {
-        set_enabled_and_value(false, data, source);
+       set_enabled_and_value(false, data, source);
     }
     void enable(CdlTransaction transaction, CdlValueSource source)
     {
     }
     void enable(CdlTransaction transaction, CdlValueSource source)
     {
-        set_enabled(transaction, true, source);
+       set_enabled(transaction, true, source);
     }
     void disable(CdlTransaction transaction, CdlValueSource source)
     {
     }
     void disable(CdlTransaction transaction, CdlValueSource source)
     {
-        set_enabled(transaction, false, source);
+       set_enabled(transaction, false, source);
     }
     void set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
     }
     void set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(transaction, val, source);
+       CdlSimpleValue val(data);
+       set_value(transaction, val, source);
     }
     void set_integer_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
     }
     void set_integer_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(transaction, val, source);
+       CdlSimpleValue val(data);
+       set_value(transaction, val, source);
     }
     void set_double_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
     }
     void set_double_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_value(transaction, val, source);
+       CdlSimpleValue val(data);
+       set_value(transaction, val, source);
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, std::string data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, std::string data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(transaction, enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(transaction, enabled, val, source);
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, cdl_int data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, cdl_int data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(transaction, enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(transaction, enabled, val, source);
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, double data, CdlValueSource source)
     {
     }
     void set_enabled_and_value(CdlTransaction transaction, bool enabled, double data, CdlValueSource source)
     {
-        CdlSimpleValue val(data);
-        set_enabled_and_value(transaction, enabled, val, source);
+       CdlSimpleValue val(data);
+       set_enabled_and_value(transaction, enabled, val, source);
     }
     void enable_and_set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSource source)
     {
     }
     void enable_and_set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, val, source);
+       set_enabled_and_value(transaction, true, val, source);
     }
     void enable_and_set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
     }
     void enable_and_set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, data, source);
+       set_enabled_and_value(transaction, true, data, source);
     }
     void enable_and_set_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
     }
     void enable_and_set_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, data, source);
+       set_enabled_and_value(transaction, true, data, source);
     }
     void enable_and_set_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
     }
     void enable_and_set_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, true, data, source);
+       set_enabled_and_value(transaction, true, data, source);
     }
     void disable_and_set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSource source)
     {
     }
     void disable_and_set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, val, source);
+       set_enabled_and_value(transaction, false, val, source);
     }
     void disable_and_set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
     }
     void disable_and_set_value(CdlTransaction transaction, std::string data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, data, source);
+       set_enabled_and_value(transaction, false, data, source);
     }
     void disable_and_set_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
     }
     void disable_and_set_value(CdlTransaction transaction, cdl_int data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, data, source);
+       set_enabled_and_value(transaction, false, data, source);
     }
     void disable_and_set_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
     }
     void disable_and_set_value(CdlTransaction transaction, double data, CdlValueSource source)
     {
-        set_enabled_and_value(transaction, false, data, source);
+       set_enabled_and_value(transaction, false, data, source);
     }
 
     // -----------------------------------------------------------------
     }
 
     // -----------------------------------------------------------------
@@ -4228,9 +4228,9 @@ class CdlValuableBody : virtual public CdlNodeBody {
     // because e.g. its parent is disabled then this may affect
     // requires conflicts etc.
     virtual void update(CdlTransaction, CdlUpdate);
     // because e.g. its parent is disabled then this may affect
     // requires conflicts etc.
     virtual void update(CdlTransaction, CdlUpdate);
-    
+
     virtual bool test_active(CdlTransaction);
     virtual bool test_active(CdlTransaction);
-    
+
     // -----------------------------------------------------------------
     // Property-related stuff.
     bool                                has_calculated_expression() const;
     // -----------------------------------------------------------------
     // Property-related stuff.
     bool                                has_calculated_expression() const;
@@ -4242,7 +4242,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     bool                                has_requires_goals() const;
     bool                                has_dialog() const;
     bool                                has_wizard() const;
     bool                                has_requires_goals() const;
     bool                                has_dialog() const;
     bool                                has_wizard() const;
-    
+
     CdlProperty_Expression              get_calculated_expression() const;
     CdlProperty_Expression              get_default_value_expression() const;
     CdlProperty_ListExpression          get_legal_values() const;
     CdlProperty_Expression              get_calculated_expression() const;
     CdlProperty_Expression              get_default_value_expression() const;
     CdlProperty_ListExpression          get_legal_values() const;
@@ -4253,7 +4253,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     CdlDialog                           get_dialog() const;
     CdlWizard                           get_wizard() const;
     void                                get_implemented_interfaces(std::vector<CdlInterface>&) const;
     CdlDialog                           get_dialog() const;
     CdlWizard                           get_wizard() const;
     void                                get_implemented_interfaces(std::vector<CdlInterface>&) const;
-    
+
     // Add property parsers and validation code appropriate for a
     // valuable object such as default_value and legal_values
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     // Add property parsers and validation code appropriate for a
     // valuable object such as default_value and legal_values
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
@@ -4280,7 +4280,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     static void         wizard_update_handler(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
 
     // Persistence suppot
     static void         wizard_update_handler(CdlTransaction, CdlNode, CdlProperty, CdlNode, CdlUpdate);
 
     // Persistence suppot
-    void save(CdlInterpreter, Tcl_Channel, int, bool /* modifiable */, bool /* minimal */);
+    void _save(CdlInterpreter, Tcl_Channel, int, bool /* modifiable */, bool /* minimal */);
     bool value_savefile_entry_needed() const;
     static void initialize_savefile_support(CdlToplevel, std::string);
     static int  savefile_value_source_command(CdlInterpreter, int, const char*[]);
     bool value_savefile_entry_needed() const;
     static void initialize_savefile_support(CdlToplevel, std::string);
     static int  savefile_value_source_command(CdlInterpreter, int, const char*[]);
@@ -4288,7 +4288,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
     static int  savefile_wizard_value_command(CdlInterpreter, int, const char*[]);
     static int  savefile_inferred_value_command(CdlInterpreter, int, const char*[]);
     static int  savefile_xxx_value_command(CdlInterpreter, int, const char*[], CdlValueSource);
     static int  savefile_wizard_value_command(CdlInterpreter, int, const char*[]);
     static int  savefile_inferred_value_command(CdlInterpreter, int, const char*[]);
     static int  savefile_xxx_value_command(CdlInterpreter, int, const char*[], CdlValueSource);
-    
+
     // Make sure that the current value is legal. This gets called automatically
     // by all the members that modify values. It has to be a virtual function
     // since some derived classes, e.g. hardware-related valuables, may impose
     // Make sure that the current value is legal. This gets called automatically
     // by all the members that modify values. It has to be a virtual function
     // since some derived classes, e.g. hardware-related valuables, may impose
@@ -4305,17 +4305,17 @@ class CdlValuableBody : virtual public CdlNodeBody {
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlValuableBody(CdlValueFlavor = CdlValueFlavor_Bool);
 
   protected:
     CdlValuableBody(CdlValueFlavor = CdlValueFlavor_Bool);
 
-    
+
   private:
 
   private:
 
-    
+
     enum {
     enum {
-        CdlValuableBody_Invalid = 0,
-        CdlValuableBody_Magic   = 0x2b2acc03
+       CdlValuableBody_Invalid = 0,
+       CdlValuableBody_Magic   = 0x2b2acc03
     } cdlvaluablebody_cookie;
 
     // Illegal operations
     } cdlvaluablebody_cookie;
 
     // Illegal operations
@@ -4324,9 +4324,9 @@ class CdlValuableBody : virtual public CdlNodeBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlTransaction etc.                              
+//{{{  CdlTransaction etc.
 
 
-//{{{  Description                      
+//{{{  Description
 
 // ----------------------------------------------------------------------------
 // Transactions. These are used for all changes to a configuration. In some
 
 // ----------------------------------------------------------------------------
 // Transactions. These are used for all changes to a configuration. In some
@@ -4371,7 +4371,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
 // Transaction objects are also used during load or unload operations,
 // but those are a little bit special. In particular it is not possible
 // to cancel such a transaction, there will have been updates to the
 // Transaction objects are also used during load or unload operations,
 // but those are a little bit special. In particular it is not possible
 // to cancel such a transaction, there will have been updates to the
-// toplevel. Using a transaction is convenient because there is a 
+// toplevel. Using a transaction is convenient because there is a
 // need for propagation.
 //
 // Currently a transaction should be deleted immediately after a
 // need for propagation.
 //
 // Currently a transaction should be deleted immediately after a
@@ -4411,7 +4411,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
 // allowing multiple changes to be processed in one go. There is
 // a utility function which combines the functionality from
 // the first propagate() call up to but not including the
 // allowing multiple changes to be processed in one go. There is
 // a utility function which combines the functionality from
 // the first propagate() call up to but not including the
-// transaction delete operator. 
+// transaction delete operator.
 //
 //
 // The inference engine itself is a complicated beast. There are
 //
 //
 // The inference engine itself is a complicated beast. There are
@@ -4444,7 +4444,7 @@ class CdlValuableBody : virtual public CdlNodeBody {
 // a future version.
 
 //}}}
 // a future version.
 
 //}}}
-//{{{  CdlTransactionCommitCancelOp     
+//{{{  CdlTransactionCommitCancelOp
 
 // ----------------------------------------------------------------------------
 // The CdlTransaction class has built-in knowledge of how to handle values,
 
 // ----------------------------------------------------------------------------
 // The CdlTransaction class has built-in knowledge of how to handle values,
@@ -4486,19 +4486,19 @@ class CdlTransactionCommitCancelOp {
     // Derived classes should override at least one of these
     // functions.
     virtual void commit(CdlTransaction transaction) {
     // Derived classes should override at least one of these
     // functions.
     virtual void commit(CdlTransaction transaction) {
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     virtual void cancel(CdlTransaction transaction) {
     }
     virtual void cancel(CdlTransaction transaction) {
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     }
-    
+
   protected:
 
   private:
 };
 
 //}}}
   protected:
 
   private:
 };
 
 //}}}
-//{{{  CdlTransaction class             
+//{{{  CdlTransaction class
 
 class CdlTransactionBody {
 
 
 class CdlTransactionBody {
 
@@ -4506,20 +4506,20 @@ class CdlTransactionBody {
 
     friend class CdlConflictBody;
     friend class CdlValuableBody;
 
     friend class CdlConflictBody;
     friend class CdlValuableBody;
-    
+
   public:
 
     // Create a toplevel transaction
     static CdlTransaction make(CdlToplevel);
     virtual ~CdlTransactionBody();
     CdlToplevel get_toplevel() const;
   public:
 
     // Create a toplevel transaction
     static CdlTransaction make(CdlToplevel);
     virtual ~CdlTransactionBody();
     CdlToplevel get_toplevel() const;
-    
+
     // Or a sub-transaction. Usually these are created in the context of
     // a conflict that is being resolved.
     CdlTransaction make(CdlConflict = 0);
     CdlTransaction get_parent() const;
     CdlConflict    get_conflict() const;
     // Or a sub-transaction. Usually these are created in the context of
     // a conflict that is being resolved.
     CdlTransaction make(CdlConflict = 0);
     CdlTransaction get_parent() const;
     CdlConflict    get_conflict() const;
-    
+
     // Commit all the changes. Essentially this means transferring
     // all of the per-transaction data to the toplevel, and then
     // invoking the transaction callback. All propagation, inference,
     // Commit all the changes. Essentially this means transferring
     // all of the per-transaction data to the toplevel, and then
     // invoking the transaction callback. All propagation, inference,
@@ -4547,10 +4547,10 @@ class CdlTransactionBody {
     // A variant which is used for checking the hierarchy when disabling
     // a container
     bool        subnode_changed_by_user(CdlContainer) const;
     // A variant which is used for checking the hierarchy when disabling
     // a container
     bool        subnode_changed_by_user(CdlContainer) const;
-    
+
     // Is one transaction preferable to another?
     bool        is_preferable_to(CdlTransaction) const;
     // Is one transaction preferable to another?
     bool        is_preferable_to(CdlTransaction) const;
-    
+
     // Find out about per-transaction conflicts. This is particularly
     // useful for the inference callback. The other containers can
     // be accessed as well, for completeness.
     // Find out about per-transaction conflicts. This is particularly
     // useful for the inference callback. The other containers can
     // be accessed as well, for completeness.
@@ -4564,12 +4564,12 @@ class CdlTransactionBody {
     const std::set<CdlNode>&            get_activated() const;
     const std::set<CdlNode>&            get_deactivated() const;
     const std::set<CdlValuable>&        get_legal_values_changes() const;
     const std::set<CdlNode>&            get_activated() const;
     const std::set<CdlNode>&            get_deactivated() const;
     const std::set<CdlValuable>&        get_legal_values_changes() const;
-    
+
     // Manipulate the current set of conflicts, allowing for nested
     // transactions and toplevel conflicts as well.
     void        clear_conflict(CdlConflict);
     bool        has_conflict_been_cleared(CdlConflict);
     // Manipulate the current set of conflicts, allowing for nested
     // transactions and toplevel conflicts as well.
     void        clear_conflict(CdlConflict);
     bool        has_conflict_been_cleared(CdlConflict);
-    
+
     bool        has_conflict(CdlNode, bool (*)(CdlConflict));
     CdlConflict get_conflict(CdlNode, bool (*)(CdlConflict));
     void        get_conflicts(CdlNode, bool (*)(CdlConflict), std::vector<CdlConflict>&);
     bool        has_conflict(CdlNode, bool (*)(CdlConflict));
     CdlConflict get_conflict(CdlNode, bool (*)(CdlConflict));
     void        get_conflicts(CdlNode, bool (*)(CdlConflict), std::vector<CdlConflict>&);
@@ -4593,7 +4593,7 @@ class CdlTransactionBody {
     void        apply_solution(CdlConflict);
     void        apply_solutions(const std::vector<CdlConflict>&);
     void        apply_all_solutions();
     void        apply_solution(CdlConflict);
     void        apply_solutions(const std::vector<CdlConflict>&);
     void        apply_all_solutions();
-    
+
     // Cancel all the changes done in this transaction. Essentially
     // this just involves clearing out all the STL containers.
     void        cancel();
     // Cancel all the changes done in this transaction. Essentially
     // this just involves clearing out all the STL containers.
     void        cancel();
@@ -4604,25 +4604,25 @@ class CdlTransactionBody {
     void        cancel_last_commit_cancel_op();
     CdlTransactionCommitCancelOp* get_last_commit_cancel_op() const;
     const std::vector<CdlTransactionCommitCancelOp*>& get_commit_cancel_ops() const;
     void        cancel_last_commit_cancel_op();
     CdlTransactionCommitCancelOp* get_last_commit_cancel_op() const;
     const std::vector<CdlTransactionCommitCancelOp*>& get_commit_cancel_ops() const;
-    
+
     // Propagation support
     void        add_active_change(CdlNode);
     void        add_legal_values_change(CdlValuable);
     void        propagate();
     bool        is_propagation_required() const;
     // Propagation support
     void        add_active_change(CdlNode);
     void        add_legal_values_change(CdlValuable);
     void        propagate();
     bool        is_propagation_required() const;
-    
+
     // Inference engine support.
     void        resolve(int = 0); // Process the new conflicts raised by this transaction
     void        resolve(CdlConflict, int = 0);
     void        resolve(const std::vector<CdlConflict>&, int = 0);
     // Inference engine support.
     void        resolve(int = 0); // Process the new conflicts raised by this transaction
     void        resolve(CdlConflict, int = 0);
     void        resolve(const std::vector<CdlConflict>&, int = 0);
-    
+
     // An auxiliary function called by the inference engine to perform recursion
     bool        resolve_recursion(int);
     // An auxiliary function called by the inference engine to perform recursion
     bool        resolve_recursion(int);
-    
+
     // This function combines propagation, inference, and commit
     // in one easy-to-use package
     void        body();
     // This function combines propagation, inference, and commit
     // in one easy-to-use package
     void        body();
-    
+
     // Changes.
     // There is a call to get hold of a CdlValue reference. Modifications
     // should happen via a sequence of the form:
     // Changes.
     // There is a call to get hold of a CdlValue reference. Modifications
     // should happen via a sequence of the form:
@@ -4646,7 +4646,7 @@ class CdlTransactionBody {
     // transactions
     bool                is_active(CdlNode) const;
     void                set_active(CdlNode, bool);
     // transactions
     bool                is_active(CdlNode) const;
     void                set_active(CdlNode, bool);
-    
+
     // Callback and parameter settings
     static void (*get_callback_fn())(const CdlTransactionCallback&);
     static void                 set_callback_fn(void (*)(const CdlTransactionCallback&));
     // Callback and parameter settings
     static void (*get_callback_fn())(const CdlTransactionCallback&);
     static void                 set_callback_fn(void (*)(const CdlTransactionCallback&));
@@ -4664,10 +4664,10 @@ class CdlTransactionBody {
     // wizard or user values.
     static void                 set_inference_override(CdlValueSource);
     static CdlValueSource       get_inference_override();
     // wizard or user values.
     static void                 set_inference_override(CdlValueSource);
     static CdlValueSource       get_inference_override();
-    
+
     bool        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     bool        check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -4679,7 +4679,7 @@ class CdlTransactionBody {
     CdlToplevel         toplevel;
     CdlTransaction      parent;
     CdlConflict         conflict;
     CdlToplevel         toplevel;
     CdlTransaction      parent;
     CdlConflict         conflict;
-    
+
     // Per-transaction information. All value changes, new conflicts
     // etc. first live in the context of a transaction. The global
     // configuration only gets updated if the transaction is commited.
     // Per-transaction information. All value changes, new conflicts
     // etc. first live in the context of a transaction. The global
     // configuration only gets updated if the transaction is commited.
@@ -4696,7 +4696,7 @@ class CdlTransactionBody {
     std::set<CdlNode>               deactivated;
     std::set<CdlValuable>           legal_values_changes;
     bool                            dirty;
     std::set<CdlNode>               deactivated;
     std::set<CdlValuable>           legal_values_changes;
     bool                            dirty;
-    
+
     // Change propagation. It is necessary to keep track of all
     // pending value changes, active changes, and of things being
     // loaded or unloaded. The set_value() call is used to update the
     // Change propagation. It is necessary to keep track of all
     // pending value changes, active changes, and of things being
     // loaded or unloaded. The set_value() call is used to update the
@@ -4711,10 +4711,10 @@ class CdlTransactionBody {
     static int                  inference_recursion_limit;
     static CdlValueSource       inference_override;
     static void (*callback_fn)(const CdlTransactionCallback&);
     static int                  inference_recursion_limit;
     static CdlValueSource       inference_override;
     static void (*callback_fn)(const CdlTransactionCallback&);
-    
+
     enum {
     enum {
-        CdlTransactionBody_Invalid = 0,
-        CdlTransactionBody_Magic   = 0x3f91e4df
+       CdlTransactionBody_Invalid = 0,
+       CdlTransactionBody_Magic   = 0x3f91e4df
     } cdltransactionbody_cookie;
 
     // Illegal operations
     } cdltransactionbody_cookie;
 
     // Illegal operations
@@ -4724,7 +4724,7 @@ class CdlTransactionBody {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlTransactionCallback           
+//{{{  CdlTransactionCallback
 
 // ----------------------------------------------------------------------------
 // The callback class is used to inform applications about all the
 
 // ----------------------------------------------------------------------------
 // The callback class is used to inform applications about all the
@@ -4737,10 +4737,10 @@ class CdlTransactionBody {
 // configurations.
 
 class CdlTransactionCallback {
 // configurations.
 
 class CdlTransactionCallback {
-    
+
     friend class CdlTest;
     friend class CdlTransactionBody;
     friend class CdlTest;
     friend class CdlTransactionBody;
-    
+
   public:
     ~CdlTransactionCallback();
     static void (*get_callback_fn())(const CdlTransactionCallback&);
   public:
     ~CdlTransactionCallback();
     static void (*get_callback_fn())(const CdlTransactionCallback&);
@@ -4751,7 +4751,7 @@ class CdlTransactionCallback {
     // of statics.
     CdlTransaction              get_transaction() const;
     CdlToplevel                 get_toplevel() const;
     // of statics.
     CdlTransaction              get_transaction() const;
     CdlToplevel                 get_toplevel() const;
-    
+
     // active_changes and legal_values_changes get updated as the
     // transaction proceeds, so a set implementation is more
     // efficient. The others get filled in during a commit operation.
     // active_changes and legal_values_changes get updated as the
     // transaction proceeds, so a set implementation is more
     // efficient. The others get filled in during a commit operation.
@@ -4766,9 +4766,9 @@ class CdlTransactionCallback {
     std::vector<CdlConflict>    new_structural_conflicts;
     std::vector<CdlNode>        nodes_with_resolved_conflicts;
     std::vector<CdlNode>        nodes_with_resolved_structural_conflicts;
     std::vector<CdlConflict>    new_structural_conflicts;
     std::vector<CdlNode>        nodes_with_resolved_conflicts;
     std::vector<CdlNode>        nodes_with_resolved_structural_conflicts;
-    
+
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
     bool check_this(cyg_assert_class_zeal = cyg_quick) const;
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -4777,65 +4777,65 @@ class CdlTransactionCallback {
 
     // Illegal operation.
     CdlTransactionCallback();
 
     // Illegal operation.
     CdlTransactionCallback();
-    
+
     enum {
     enum {
-        CdlTransactionCallback_Invalid     = 0,
-        CdlTransactionCallback_Magic       = 0x0cec3a95
+       CdlTransactionCallback_Invalid     = 0,
+       CdlTransactionCallback_Magic       = 0x0cec3a95
     } cdltransactioncallback_cookie;
 };
 
 //}}}
     } cdltransactioncallback_cookie;
 };
 
 //}}}
-//{{{  CdlLocalTransaction              
+//{{{  CdlLocalTransaction
 
 // ----------------------------------------------------------------------------
 // A utility class to create a per-function transaction object which gets
 // cleaned up automatically should an exception happen.
 
 class CdlLocalTransaction {
 
 // ----------------------------------------------------------------------------
 // A utility class to create a per-function transaction object which gets
 // cleaned up automatically should an exception happen.
 
 class CdlLocalTransaction {
-    
+
     friend class CdlTrest;
     friend class CdlTrest;
-    
+
   public:
     CdlLocalTransaction(CdlToplevel toplevel) {
   public:
     CdlLocalTransaction(CdlToplevel toplevel) {
-        transaction = CdlTransactionBody::make(toplevel);
+       transaction = CdlTransactionBody::make(toplevel);
     }
     ~CdlLocalTransaction() {
     }
     ~CdlLocalTransaction() {
-        // The destructor may get invoked during exception handling.
-        // It is assumed that cancelling the transaction would be a
-        // good thing when that happens. Normal operation should
-        // go through the body() or commit() members, which clear
-        // the transaction field.
-        // There is a slight consistency here. Normally after a
-        // transaction commit the transaction object is still
-        // around. Here the transaction object get deleted. This
-        // is unlikely to matter in practice.
-        if (0 != transaction) {
-            transaction->cancel();
-            delete transaction;
-        }
+       // The destructor may get invoked during exception handling.
+       // It is assumed that cancelling the transaction would be a
+       // good thing when that happens. Normal operation should
+       // go through the body() or commit() members, which clear
+       // the transaction field.
+       // There is a slight consistency here. Normally after a
+       // transaction commit the transaction object is still
+       // around. Here the transaction object get deleted. This
+       // is unlikely to matter in practice.
+       if (0 != transaction) {
+           transaction->cancel();
+           delete transaction;
+       }
     }
     CdlTransaction get() {
     }
     CdlTransaction get() {
-        return transaction;
+       return transaction;
     }
     void body() {
     }
     void body() {
-        transaction->body();
-        delete transaction;
-        transaction = 0;
+       transaction->body();
+       delete transaction;
+       transaction = 0;
     }
     void commit() {
     }
     void commit() {
-        transaction->commit();
-        delete transaction;
-        transaction = 0;
+       transaction->commit();
+       delete transaction;
+       transaction = 0;
     }
     void propagate() {
     }
     void propagate() {
-        transaction->propagate();
+       transaction->propagate();
     }
     void destroy() {
     }
     void destroy() {
-        if (0 != transaction) {
-            transaction->cancel();
-            delete transaction;
-            transaction = 0;
-        }
+       if (0 != transaction) {
+           transaction->cancel();
+           delete transaction;
+           transaction = 0;
+       }
     }
 
   private:
     }
 
   private:
@@ -4846,9 +4846,9 @@ class CdlLocalTransaction {
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  Build and define information                     
+//{{{  Build and define information
 
 
-//{{{  Description                      
+//{{{  Description
 
 // ----------------------------------------------------------------------------
 // There are two related concepts: buildable components, and
 
 // ----------------------------------------------------------------------------
 // There are two related concepts: buildable components, and
@@ -4935,7 +4935,7 @@ class CdlLocalTransaction {
 //
 //    Hardware packages have an implicit "define_header hardware.h"
 //    property.
 //
 //    Hardware packages have an implicit "define_header hardware.h"
 //    property.
-//  
+//
 // A buildable has the following properties:
 //
 // 1) compile [-library xyz] <file1> <file2> ...
 // A buildable has the following properties:
 //
 // 1) compile [-library xyz] <file1> <file2> ...
@@ -5110,7 +5110,7 @@ class CdlLocalTransaction {
 //    The latter will only be generated if the resulting symbol is
 //    a valid C preprocessor symbol, and is intended to allow the
 //    use of #ifdef as well as #ifdef (useful if the value is
 //    The latter will only be generated if the resulting symbol is
 //    a valid C preprocessor symbol, and is intended to allow the
 //    use of #ifdef as well as #ifdef (useful if the value is
-//    non-numerical). 
+//    non-numerical).
 //
 //    The define_format property provides control over the first of
 //    these two #defines. The net result is that the #define will be
 //
 //    The define_format property provides control over the first of
 //    these two #defines. The net result is that the #define will be
@@ -5155,7 +5155,7 @@ class CdlLocalTransaction {
 //    not affected by no_define.
 
 //}}}
 //    not affected by no_define.
 
 //}}}
-//{{{  The build process                
+//{{{  The build process
 
 // ----------------------------------------------------------------------------
 // For command-line operation the steps involved in doing a build are:
 
 // ----------------------------------------------------------------------------
 // For command-line operation the steps involved in doing a build are:
@@ -5247,7 +5247,7 @@ class CdlLocalTransaction {
 // be in the form of relative pathnames to facilitate this.
 
 //}}}
 // be in the form of relative pathnames to facilitate this.
 
 //}}}
-//{{{  CdlBuildInfo class               
+//{{{  CdlBuildInfo class
 
 // ----------------------------------------------------------------------------
 // Extracting the build information.
 
 // ----------------------------------------------------------------------------
 // Extracting the build information.
@@ -5306,12 +5306,12 @@ struct CdlBuildInfo_MakeObject {
     /*
       A typical value for "rules" might be:
 
     /*
       A typical value for "rules" might be:
 
-        yacc toyslock.y
-        $(CC) $(CFLAGS) -o toyslock.o y.tab.c
-        
+       yacc toyslock.y
+       $(CC) $(CFLAGS) -o toyslock.o y.tab.c
+
       Leading white space is not significant. Newlines are significant.
       Backslash escapes in the text will not have been processed yet.
       Leading white space is not significant. Newlines are significant.
       Backslash escapes in the text will not have been processed yet.
-    */  
+    */
 };
 
 struct CdlBuildInfo_Make {
 };
 
 struct CdlBuildInfo_Make {
@@ -5321,14 +5321,14 @@ struct CdlBuildInfo_Make {
     std::string         rules;
     /*
       Something like:
     std::string         rules;
     /*
       Something like:
-      
+
   $(CC) $(ARCHFLAGS) $(LDARCHFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive $(PREFIX)/lib/libextras.a -o $(PREFIX)/lib/extras.o
   $(CC) $(ARCHFLAGS) $(LDARCHFLAGS) -nostdlib -Wl,-r -Wl,--whole-archive $(PREFIX)/lib/libextras.a -o $(PREFIX)/lib/extras.o
-  
+
     */
 };
 
 class CdlBuildInfo_Loadable {
     */
 };
 
 class CdlBuildInfo_Loadable {
-    
+
     friend class CdlTest;
 
   public:
     friend class CdlTest;
 
   public:
@@ -5339,7 +5339,7 @@ class CdlBuildInfo_Loadable {
     std::vector<CdlBuildInfo_Object>            objects;
     std::vector<CdlBuildInfo_MakeObject>        make_objects;
     std::vector<CdlBuildInfo_Make>              makes;
     std::vector<CdlBuildInfo_Object>            objects;
     std::vector<CdlBuildInfo_MakeObject>        make_objects;
     std::vector<CdlBuildInfo_Make>              makes;
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -5359,7 +5359,7 @@ class CdlBuildInfo {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlBuildLoadable                 
+//{{{  CdlBuildLoadable
 
 // ----------------------------------------------------------------------------
 // BuildLoadables are derived from Loadables and are appropriate for
 
 // ----------------------------------------------------------------------------
 // BuildLoadables are derived from Loadables and are appropriate for
@@ -5385,7 +5385,7 @@ class CdlBuildLoadableBody : virtual public CdlLoadableBody
 
     // An alternative which ignores the active and enabled states.
     void        update_all_build_info(CdlBuildInfo&) const;
 
     // An alternative which ignores the active and enabled states.
     void        update_all_build_info(CdlBuildInfo&) const;
-    
+
     // Property parsers and validation code appropriate for a
     // build-loadable object such as makefile
     static void add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     // Property parsers and validation code appropriate for a
     // build-loadable object such as makefile
     static void add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
@@ -5394,29 +5394,29 @@ class CdlBuildLoadableBody : virtual public CdlLoadableBody
     static int  parse_makefile(CdlInterpreter, int, const char*[]);
     static int  parse_include_dir(CdlInterpreter, int, const char*[]);
     static int  parse_include_files(CdlInterpreter, int, const char*[]);
     static int  parse_makefile(CdlInterpreter, int, const char*[]);
     static int  parse_include_dir(CdlInterpreter, int, const char*[]);
     static int  parse_include_files(CdlInterpreter, int, const char*[]);
-    
+
     // By default any compiled files will go into libtarget.a, which
     // is the default value for this variable. Individual applications may
     // specify an alternative default library.
     // By default any compiled files will go into libtarget.a, which
     // is the default value for this variable. Individual applications may
     // specify an alternative default library.
-    static char*        default_library_name;
+    static const char*        default_library_name;
 
     // When filling in a build_info structure the library needs to know
     // what constitutes a header file. A glob pattern can be used for this.
     // NOTE: in the long term this should come out of a data file.
 
     // When filling in a build_info structure the library needs to know
     // what constitutes a header file. A glob pattern can be used for this.
     // NOTE: in the long term this should come out of a data file.
-    static char*        default_headers_glob_pattern;
-    
+    static const char*        default_headers_glob_pattern;
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlBuildLoadableBody();
 
   private:
 
     enum {
   protected:
     CdlBuildLoadableBody();
 
   private:
 
     enum {
-        CdlBuildLoadableBody_Invalid    = 0,
-        CdlBuildLoadableBody_Magic      = 0x55776643
+       CdlBuildLoadableBody_Invalid    = 0,
+       CdlBuildLoadableBody_Magic      = 0x55776643
     } cdlbuildloadablebody_cookie;
 
     // Illegal operations
     } cdlbuildloadablebody_cookie;
 
     // Illegal operations
@@ -5425,7 +5425,7 @@ class CdlBuildLoadableBody : virtual public CdlLoadableBody
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlBuildable                     
+//{{{  CdlBuildable
 
 // ----------------------------------------------------------------------------
 // Buildable objects can have properties such as compile and
 
 // ----------------------------------------------------------------------------
 // Buildable objects can have properties such as compile and
@@ -5453,7 +5453,7 @@ class CdlBuildableBody : virtual public CdlNodeBody
 
     // An alternative which ignores the active and enabled states.
     void        update_all_build_info(CdlBuildInfo_Loadable&, std::string) const;
 
     // An alternative which ignores the active and enabled states.
     void        update_all_build_info(CdlBuildInfo_Loadable&, std::string) const;
-    
+
     // Add property parsers and validation code appropriate for a
     // buildable object such as compile and make_object
     static void add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     // Add property parsers and validation code appropriate for a
     // buildable object such as compile and make_object
     static void add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
@@ -5465,20 +5465,20 @@ class CdlBuildableBody : virtual public CdlNodeBody
     static int  parse_make_object(CdlInterpreter, int, const char*[]);
     static int  parse_object(CdlInterpreter, int, const char*[]);
     static bool split_custom_build_step(std::string /* data */, std::string& /* target */, std::string& /* deps */,
     static int  parse_make_object(CdlInterpreter, int, const char*[]);
     static int  parse_object(CdlInterpreter, int, const char*[]);
     static bool split_custom_build_step(std::string /* data */, std::string& /* target */, std::string& /* deps */,
-                                        std::string& /* rules*/, std::string& /* error_msg */);
+                                       std::string& /* rules*/, std::string& /* error_msg */);
 
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
 
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlBuildableBody();
 
   private:
 
     enum {
   protected:
     CdlBuildableBody();
 
   private:
 
     enum {
-        CdlBuildableBody_Invalid        = 0,
-        CdlBuildableBody_Magic          = 0x16eb1c04
+       CdlBuildableBody_Invalid        = 0,
+       CdlBuildableBody_Magic          = 0x16eb1c04
     } cdlbuildablebody_cookie;
 
     // Illegal operations
     } cdlbuildablebody_cookie;
 
     // Illegal operations
@@ -5487,7 +5487,7 @@ class CdlBuildableBody : virtual public CdlNodeBody
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlDefineLoadable                
+//{{{  CdlDefineLoadable
 
 // ----------------------------------------------------------------------------
 // DefineLoadables are derived from Loadables and are appropriate for
 
 // ----------------------------------------------------------------------------
 // DefineLoadables are derived from Loadables and are appropriate for
@@ -5511,7 +5511,7 @@ class CdlDefineLoadableBody : virtual public CdlLoadableBody
 
     // What header file should be generated for this loadable?
     virtual std::string get_config_header() const;
 
     // What header file should be generated for this loadable?
     virtual std::string get_config_header() const;
-    
+
     // Add property parsers and validation code.
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     void                check_properties(CdlInterpreter);
     // Add property parsers and validation code.
     static void         add_property_parsers(std::vector<CdlInterpreterCommandEntry>& parsers);
     void                check_properties(CdlInterpreter);
@@ -5520,15 +5520,15 @@ class CdlDefineLoadableBody : virtual public CdlLoadableBody
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlDefineLoadableBody();
 
   private:
 
     enum {
   protected:
     CdlDefineLoadableBody();
 
   private:
 
     enum {
-        CdlDefineLoadableBody_Invalid   = 0,
-        CdlDefineLoadableBody_Magic     = 0x7e211709
+       CdlDefineLoadableBody_Invalid   = 0,
+       CdlDefineLoadableBody_Magic     = 0x7e211709
     } cdldefineloadablebody_cookie;
 
     // Illegal operations
     } cdldefineloadablebody_cookie;
 
     // Illegal operations
@@ -5537,7 +5537,7 @@ class CdlDefineLoadableBody : virtual public CdlLoadableBody
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlDefinable                     
+//{{{  CdlDefinable
 
 // ----------------------------------------------------------------------------
 // Definables are derived from Valuables and provide support for
 
 // ----------------------------------------------------------------------------
 // Definables are derived from Valuables and provide support for
@@ -5568,15 +5568,15 @@ class CdlDefinableBody : virtual public CdlValuableBody
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
-    
+
   protected:
     CdlDefinableBody();
 
   private:
 
     enum {
   protected:
     CdlDefinableBody();
 
   private:
 
     enum {
-        CdlDefinableBody_Invalid        = 0,
-        CdlDefinableBody_Magic          = 0x65a2c95a
+       CdlDefinableBody_Invalid        = 0,
+       CdlDefinableBody_Magic          = 0x65a2c95a
     } cdldefinablebody_cookie;
 
     // Illegal operations
     } cdldefinablebody_cookie;
 
     // Illegal operations
@@ -5587,7 +5587,7 @@ class CdlDefinableBody : virtual public CdlValuableBody
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlDialog                                        
+//{{{  CdlDialog
 
 // ----------------------------------------------------------------------------
 // A dialog simply inherits from CdlUserVisible and provides convenient
 
 // ----------------------------------------------------------------------------
 // A dialog simply inherits from CdlUserVisible and provides convenient
@@ -5617,15 +5617,15 @@ class CdlDialogBody :
     const cdl_tcl_code& get_display_proc() const;
     const cdl_tcl_code& get_confirm_proc() const;
     const cdl_tcl_code& get_cancel_proc() const;
     const cdl_tcl_code& get_display_proc() const;
     const cdl_tcl_code& get_confirm_proc() const;
     const cdl_tcl_code& get_cancel_proc() const;
-    
+
     static int          parse_dialog(CdlInterpreter, int, const char*[]);
     static int          parse_display_proc(CdlInterpreter, int, const char*[]);
     static int          parse_update_proc(CdlInterpreter, int, const char*[]);
     static int          parse_dialog(CdlInterpreter, int, const char*[]);
     static int          parse_display_proc(CdlInterpreter, int, const char*[]);
     static int          parse_update_proc(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support. Dialogs should just be ignored when it
     // comes to saving and restoring files.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     // Persistence support. Dialogs should just be ignored when it
     // comes to saving and restoring files.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
-                                                
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -5635,12 +5635,12 @@ class CdlDialogBody :
     CdlDialogBody(std::string);
 
     static bool         dialogs_enabled;
     CdlDialogBody(std::string);
 
     static bool         dialogs_enabled;
-    
+
     enum {
     enum {
-        CdlDialogBody_Invalid   = 0,
-        CdlDialogBody_Magic     = 0x3f4df391
+       CdlDialogBody_Invalid   = 0,
+       CdlDialogBody_Magic     = 0x3f4df391
     } cdldialogbody_cookie;
     } cdldialogbody_cookie;
-    
+
     // Illegal operations. The dialog name must be known at the time
     // that the object is constructed.
     CdlDialogBody();
     // Illegal operations. The dialog name must be known at the time
     // that the object is constructed.
     CdlDialogBody();
@@ -5649,7 +5649,7 @@ class CdlDialogBody :
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlWizard                                        
+//{{{  CdlWizard
 
 // ----------------------------------------------------------------------------
 // A wizard is very much like a dialog, just a different set of properties.
 
 // ----------------------------------------------------------------------------
 // A wizard is very much like a dialog, just a different set of properties.
@@ -5680,11 +5680,11 @@ class CdlWizardBody :
     static int          parse_decoration_proc(CdlInterpreter, int, const char*[]);
     static int          parse_init_proc(CdlInterpreter, int, const char*[]);
     static int          parse_screen(CdlInterpreter, int, const char*[]);
     static int          parse_decoration_proc(CdlInterpreter, int, const char*[]);
     static int          parse_init_proc(CdlInterpreter, int, const char*[]);
     static int          parse_screen(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support. Wizards should just be ignored when it
     // comes to saving and restoring files.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
     // Persistence support. Wizards should just be ignored when it
     // comes to saving and restoring files.
     virtual void        save(CdlInterpreter, Tcl_Channel, int, bool);
-    
+
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
     virtual std::string get_class_name() const;
     bool                check_this(cyg_assert_class_zeal = cyg_quick) const;
     CYGDBG_DECLARE_MEMLEAK_COUNTER();
@@ -5697,25 +5697,25 @@ class CdlWizardBody :
     CdlWizardBody();
     CdlWizardBody(const CdlWizardBody&);
     CdlWizardBody& operator=(const CdlWizardBody&);
     CdlWizardBody();
     CdlWizardBody(const CdlWizardBody&);
     CdlWizardBody& operator=(const CdlWizardBody&);
-    
+
     enum {
     enum {
-        CdlWizardBody_Invalid   = 0,
-        CdlWizardBody_Magic     = 0x4ec1c39a
+       CdlWizardBody_Invalid   = 0,
+       CdlWizardBody_Magic     = 0x4ec1c39a
     } cdlwizardbody_cookie;
 };
 
 //}}}
     } cdlwizardbody_cookie;
 };
 
 //}}}
-//{{{  CdlInterface class                               
+//{{{  CdlInterface class
 
 // ----------------------------------------------------------------------------
 // Similarly for interfaces.
 
 class CdlInterfaceBody : public virtual CdlNodeBody,
 
 // ----------------------------------------------------------------------------
 // Similarly for interfaces.
 
 class CdlInterfaceBody : public virtual CdlNodeBody,
-                         public virtual CdlUserVisibleBody,
-                         public virtual CdlValuableBody,
-                         public virtual CdlParentableBody,
-                         public virtual CdlBuildableBody,
-                         public virtual CdlDefinableBody
+                        public virtual CdlUserVisibleBody,
+                        public virtual CdlValuableBody,
+                        public virtual CdlParentableBody,
+                        public virtual CdlBuildableBody,
+                        public virtual CdlDefinableBody
 {
     friend class CdlTest;
 
 {
     friend class CdlTest;
 
@@ -5725,9 +5725,9 @@ class CdlInterfaceBody : public virtual CdlNodeBody,
 
     void                get_implementers(std::vector<CdlValuable>&) const;
     void                recalculate(CdlTransaction);
 
     void                get_implementers(std::vector<CdlValuable>&) const;
     void                recalculate(CdlTransaction);
-    
+
     static int          parse_interface(CdlInterpreter, int, const char*[]);
     static int          parse_interface(CdlInterpreter, int, const char*[]);
-    
+
     // Persistence support. The interface data cannot sensibly be modified
     // by users, it is all calculated. However it is useful to have the
     // interface data present in the saved file so that users can examine
     // Persistence support. The interface data cannot sensibly be modified
     // by users, it is all calculated. However it is useful to have the
     // interface data present in the saved file so that users can examine
@@ -5745,10 +5745,10 @@ class CdlInterfaceBody : public virtual CdlNodeBody,
   private:
     CdlInterfaceBody(std::string, bool /* generated */);
     bool        generated;
   private:
     CdlInterfaceBody(std::string, bool /* generated */);
     bool        generated;
-    
+
     enum {
     enum {
-        CdlInterfaceBody_Invalid   = 0,
-        CdlInterfaceBody_Magic     = 0x67f7fbe5
+       CdlInterfaceBody_Invalid   = 0,
+       CdlInterfaceBody_Magic     = 0x67f7fbe5
     } cdlinterfacebody_cookie;
     CdlInterfaceBody();
     CdlInterfaceBody(const CdlInterfaceBody&);
     } cdlinterfacebody_cookie;
     CdlInterfaceBody();
     CdlInterfaceBody(const CdlInterfaceBody&);
index f6ecc281ea39c5866784b83bcb757e47f941f4d0..febdfae0d7ddf9c8afba426aaaf418e1bbe5cdb4 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                                   
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,28 +8,28 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -43,7 +43,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                                               
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include <string.h>
 
 // ----------------------------------------------------------------------------
 #include <string.h>
@@ -79,7 +79,7 @@
 
 //}}}
 
 
 //}}}
 
-//{{{  Cdl::is_valid_xxx()                                      
+//{{{  Cdl::is_valid_xxx()
 
 // ---------------------------------------------------------------------------
 
 
 // ---------------------------------------------------------------------------
 
@@ -93,11 +93,11 @@ Cdl::is_valid_value_flavor(CdlValueFlavor data)
       case CdlValueFlavor_Bool     :
       case CdlValueFlavor_BoolData :
       case CdlValueFlavor_Data     :
       case CdlValueFlavor_Bool     :
       case CdlValueFlavor_BoolData :
       case CdlValueFlavor_Data     :
-        result = true;
-        break;
+       result = true;
+       break;
 
       default:
 
       default:
-        break;
+       break;
     }
 
     return result;
     }
 
     return result;
@@ -113,11 +113,11 @@ Cdl::is_valid_value_source(CdlValueSource data)
       case CdlValueSource_User            :
       case CdlValueSource_Wizard          :
       case CdlValueSource_Inferred        :
       case CdlValueSource_User            :
       case CdlValueSource_Wizard          :
       case CdlValueSource_Inferred        :
-        result = true;
-        break;
+       result = true;
+       break;
 
       default:
 
       default:
-        break;
+       break;
     }
 
     return result;
     }
 
     return result;
@@ -128,48 +128,48 @@ Cdl::is_valid_value_source(CdlValueSource data)
 // preprocessor. This may cause problems in future, e.g. i18n.
 
 bool
 // preprocessor. This may cause problems in future, e.g. i18n.
 
 bool
-Cdl::is_valid_cdl_name(const std::stringname)
+Cdl::is_valid_cdl_name(const std::string &name)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::is_valid_cdl_name", "result %d");
 
     bool result = is_valid_c_preprocessor_symbol(name);
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::is_valid_cdl_name", "result %d");
 
     bool result = is_valid_c_preprocessor_symbol(name);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
-Cdl::is_valid_c_preprocessor_symbol(const std::stringsymbol)
+Cdl::is_valid_c_preprocessor_symbol(const std::string &symbol)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::is_valid_c_preprocessor_symbol", "result %d");
 
     bool result = true;
     if ("" == symbol) {
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::is_valid_c_preprocessor_symbol", "result %d");
 
     bool result = true;
     if ("" == symbol) {
-        result = false;
+       result = false;
     } else {
     } else {
-        // A valid preprocessor symbol should begin with either an underscore
-        // or a letter. It should then be followed by some number of underscores,
-        // letters, or digits.
-        //
-        // In some locales isalpha() may succeed for characters which are not
-        // legal for C preprocessor symbols. Instead ASCII is assumed here.
-        if (('_' != symbol[0]) &&
-            !(('a' <= symbol[0]) && (symbol[0] <= 'z')) &&
-            !(('A' <= symbol[0]) && (symbol[0] <= 'Z'))) {
-            
-            result = false;
-        } else {
-            for (unsigned int i = 1; i < symbol.size(); i++) {
-                if (('_' != symbol[i]) &&
-                    !(('a' <= symbol[i]) && (symbol[i] <= 'z')) &&
-                    !(('A' <= symbol[i]) && (symbol[i] <= 'Z')) &&
-                    !(('0' <= symbol[i]) && (symbol[i] <= '9'))) {
-                    
-                    result = false;
-                    break;
-                }
-            }
-        }
+       // A valid preprocessor symbol should begin with either an underscore
+       // or a letter. It should then be followed by some number of underscores,
+       // letters, or digits.
+       //
+       // In some locales isalpha() may succeed for characters which are not
+       // legal for C preprocessor symbols. Instead ASCII is assumed here.
+       if (('_' != symbol[0]) &&
+           !(('a' <= symbol[0]) && (symbol[0] <= 'z')) &&
+           !(('A' <= symbol[0]) && (symbol[0] <= 'Z'))) {
+
+           result = false;
+       } else {
+           for (unsigned int i = 1; i < symbol.size(); i++) {
+               if (('_' != symbol[i]) &&
+                   !(('a' <= symbol[i]) && (symbol[i] <= 'z')) &&
+                   !(('A' <= symbol[i]) && (symbol[i] <= 'Z')) &&
+                   !(('0' <= symbol[i]) && (symbol[i] <= '9'))) {
+
+                   result = false;
+                   break;
+               }
+           }
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -177,7 +177,7 @@ Cdl::is_valid_c_preprocessor_symbol(const std::string& symbol)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Cdl::xxx_to_yyy() - strings, ints, doubles, ...          
+//{{{  Cdl::xxx_to_yyy() - strings, ints, doubles, ...
 
 // ---------------------------------------------------------------------------
 // Conversion routines between strings, integers, doubles, bools, ...
 
 // ---------------------------------------------------------------------------
 // Conversion routines between strings, integers, doubles, bools, ...
@@ -190,156 +190,156 @@ Cdl::is_valid_c_preprocessor_symbol(const std::string& symbol)
 // ASCII rather than EBCDIC is assumed.
 //
 // Some of the routines may fail, e.g. string to integer conversions.
 // ASCII rather than EBCDIC is assumed.
 //
 // Some of the routines may fail, e.g. string to integer conversions.
-// Others are guaranteed to succeed. 
+// Others are guaranteed to succeed.
 
 
-//{{{  string_to_integer()                      
+//{{{  string_to_integer()
 
 // ----------------------------------------------------------------------------
 bool
 
 // ----------------------------------------------------------------------------
 bool
-Cdl::string_to_integer(std::string data, cdl_inttarget)
+Cdl::string_to_integer(std::string data, cdl_int &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_integer", "success %d");
 
     bool negative       = false;
     bool seen_plus      = false;
     bool seen_minus     = false;
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_integer", "success %d");
 
     bool negative       = false;
     bool seen_plus      = false;
     bool seen_minus     = false;
-    
+
     // Life is a bit easier if I can check for '\0'
     // Life is a bit easier if I can check for '\0'
-    const charptr           = data.c_str();
+    const char *ptr           = data.c_str();
 
     // Not essential but harmless.
     while (isspace(*ptr))
 
     // Not essential but harmless.
     while (isspace(*ptr))
-        ptr++;
+       ptr++;
 
     if ('+' == *ptr) {
 
     if ('+' == *ptr) {
-        if (seen_plus) {
-            target = 0;
-            CYG_REPORT_RETVAL(false);
-            return false;
-        }
-        seen_plus = true;
-        ptr++;
+       if (seen_plus) {
+           target = 0;
+           CYG_REPORT_RETVAL(false);
+           return false;
+       }
+       seen_plus = true;
+       ptr++;
     }
     }
-    
+
     if ('-' == *ptr) {
     if ('-' == *ptr) {
-        if (seen_minus) {
-            target = 0;
-            CYG_REPORT_RETVAL(false);
-            return false;
-        }
-        seen_minus = true;
-        negative = true;
-        ptr++;
+       if (seen_minus) {
+           target = 0;
+           CYG_REPORT_RETVAL(false);
+           return false;
+       }
+       seen_minus = true;
+       negative = true;
+       ptr++;
     }
 
     cdl_int acc = 0;
     if ('0' == *ptr) {
     }
 
     cdl_int acc = 0;
     if ('0' == *ptr) {
-        // This happens sufficiently often to be worth a special case.
-        if ('\0' == ptr[1]) {
-            target = 0;
-            CYG_REPORT_RETVAL(true);
-            return true;
-        }
-        // Hex is always worth supporting. 
-        if (('x' == ptr[1]) || ('X' == ptr[1])) {
-            ptr++; ptr++;
-            if (!isxdigit(*ptr)) {
-                CYG_REPORT_RETVAL(false);
-                return false;
-            }
-            while (isxdigit(*ptr)) {
-                cdl_int new_acc = acc * 16;
-                if (isdigit(*ptr)) {
-                    new_acc += (*ptr - '0');
-                } else if (('a' <= *ptr) && (*ptr <= 'f')) {
-                    new_acc += (*ptr + 10 - 'a');
-                } else if (('A' <= *ptr) && (*ptr <= 'F')) {
-                    new_acc += (*ptr + 10 - 'A');
-                } else {
-                    CYG_FAIL("this platform's implementation of isxdigit() is broken");
-                }
-                if (new_acc < acc) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                }
-                acc = new_acc;
-                ptr++;
-            }
-            if ('\0' != *ptr) {
-                CYG_REPORT_RETVAL(false);
-                return false;
-            }
-            if (negative) {
-                cdl_int new_acc = 0 - acc;
-                if (new_acc > 0) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                } else {
-                    acc = new_acc;
-                }
-            }
-            target = acc;
-            CYG_REPORT_RETVAL(true);
-            return true;
-        }
-
-        // Octal? Oh well, might as well be complete.
-        if (('0' <= ptr[1]) && (ptr[1] <= '7')) {
-            ptr++;
-            do {
-                cdl_int new_acc = 8 * acc;
-                new_acc += (*ptr - '0');
-                if (new_acc < acc) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                }
-                acc = new_acc;
-                ptr++;
-            } while (('0' <= *ptr) && (*ptr <= '7'));
-            if ('\0' != *ptr) {
-                CYG_REPORT_RETVAL(false);
-                return false;
-            }
-            if (negative) {
-                cdl_int new_acc = 0 - acc;
-                if (new_acc > 0) {
-                    CYG_REPORT_RETVAL(false);
-                    return false;
-                }
-                else {
-                    acc = new_acc;
-                }
-            }
-            target = acc;
-            CYG_REPORT_RETVAL(true);
-            return true;
-        }
-
-        // Drop through for the case of a decimal.
+       // This happens sufficiently often to be worth a special case.
+       if ('\0' == ptr[1]) {
+           target = 0;
+           CYG_REPORT_RETVAL(true);
+           return true;
+       }
+       // Hex is always worth supporting.
+       if (('x' == ptr[1]) || ('X' == ptr[1])) {
+           ptr++; ptr++;
+           if (!isxdigit(*ptr)) {
+               CYG_REPORT_RETVAL(false);
+               return false;
+           }
+           while (isxdigit(*ptr)) {
+               cdl_int new_acc = acc * 16;
+               if (isdigit(*ptr)) {
+                   new_acc += (*ptr - '0');
+               } else if (('a' <= *ptr) && (*ptr <= 'f')) {
+                   new_acc += (*ptr + 10 - 'a');
+               } else if (('A' <= *ptr) && (*ptr <= 'F')) {
+                   new_acc += (*ptr + 10 - 'A');
+               } else {
+                   CYG_FAIL("this platform's implementation of isxdigit() is broken");
+               }
+               if (new_acc < acc) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               }
+               acc = new_acc;
+               ptr++;
+           }
+           if ('\0' != *ptr) {
+               CYG_REPORT_RETVAL(false);
+               return false;
+           }
+           if (negative) {
+               cdl_int new_acc = 0 - acc;
+               if (new_acc > 0) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               } else {
+                   acc = new_acc;
+               }
+           }
+           target = acc;
+           CYG_REPORT_RETVAL(true);
+           return true;
+       }
+
+       // Octal? Oh well, might as well be complete.
+       if (('0' <= ptr[1]) && (ptr[1] <= '7')) {
+           ptr++;
+           do {
+               cdl_int new_acc = 8 * acc;
+               new_acc += (*ptr - '0');
+               if (new_acc < acc) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               }
+               acc = new_acc;
+               ptr++;
+           } while (('0' <= *ptr) && (*ptr <= '7'));
+           if ('\0' != *ptr) {
+               CYG_REPORT_RETVAL(false);
+               return false;
+           }
+           if (negative) {
+               cdl_int new_acc = 0 - acc;
+               if (new_acc > 0) {
+                   CYG_REPORT_RETVAL(false);
+                   return false;
+               }
+               else {
+                   acc = new_acc;
+               }
+           }
+           target = acc;
+           CYG_REPORT_RETVAL(true);
+           return true;
+       }
+
+       // Drop through for the case of a decimal.
     }
 
     while(isdigit(*ptr)) {
     }
 
     while(isdigit(*ptr)) {
-        cdl_int new_acc = 10 * acc;
-        new_acc += (*ptr - '0');
-        if (new_acc < acc) {
-            CYG_REPORT_RETVAL(false);
-            return false;
-        }
-        acc = new_acc;
-        ptr++;
+       cdl_int new_acc = 10 * acc;
+       new_acc += (*ptr - '0');
+       if (new_acc < acc) {
+           CYG_REPORT_RETVAL(false);
+           return false;
+       }
+       acc = new_acc;
+       ptr++;
     }
     if ('\0' != *ptr) {
     }
     if ('\0' != *ptr) {
-        CYG_REPORT_RETVAL(false);
-        return false;
+       CYG_REPORT_RETVAL(false);
+       return false;
     }
     if (negative) {
     }
     if (negative) {
-        cdl_int new_acc = 0 - acc;
-        if (new_acc > 0) {
-            CYG_REPORT_RETVAL(false);
-            return false;
-        } else {
-            acc = new_acc;
-        }
+       cdl_int new_acc = 0 - acc;
+       if (new_acc > 0) {
+           CYG_REPORT_RETVAL(false);
+           return false;
+       } else {
+           acc = new_acc;
+       }
     }
     target = acc;
     CYG_REPORT_RETVAL(true);
     }
     target = acc;
     CYG_REPORT_RETVAL(true);
@@ -347,7 +347,7 @@ Cdl::string_to_integer(std::string data, cdl_int& target)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  string_to_double()                       
+//{{{  string_to_double()
 
 // ----------------------------------------------------------------------------
 // There is no point in doing this the hard way, just use standard
 
 // ----------------------------------------------------------------------------
 // There is no point in doing this the hard way, just use standard
@@ -361,41 +361,41 @@ Cdl::string_to_integer(std::string data, cdl_int& target)
 // tcl_precision variable.
 
 bool
 // tcl_precision variable.
 
 bool
-Cdl::string_to_double(std::string value, doubletarget)
+Cdl::string_to_double(std::string value, double &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_double", "success %d");
 
     bool        result      = true;
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_double", "success %d");
 
     bool        result      = true;
-    const charstart_ptr   = value.c_str();
-    char*       end_ptr;
+    const char *start_ptr   = value.c_str();
+    char       *end_ptr;
     int         old_errno   = errno;
     int         old_errno   = errno;
-    
+
     errno                   = 0;
     double conv             = strtod(start_ptr, &end_ptr);
     if (0 != errno) {
     errno                   = 0;
     double conv             = strtod(start_ptr, &end_ptr);
     if (0 != errno) {
-        CYG_ASSERT(ERANGE == errno, "standard-compliant C library");
-        result = false;
+       CYG_ASSERT(ERANGE == errno, "standard-compliant C library");
+       result = false;
     } else if ('\0' != *end_ptr) {
     } else if ('\0' != *end_ptr) {
-        result = false;
+       result = false;
     } else {
     } else {
-        target = conv;
-        result = true;
+       target = conv;
+       result = true;
     }
     }
-     
+
     errno = old_errno;
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     errno = old_errno;
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  string_to_bool()                         
+//{{{  string_to_bool()
 
 // ----------------------------------------------------------------------------
 // Conversions to and from bools. The only real issue here is exactly
 // what strings should be accepted as synonyms for true and false.
 // It is not actually clear that these functions are useful.
 bool
 
 // ----------------------------------------------------------------------------
 // Conversions to and from bools. The only real issue here is exactly
 // what strings should be accepted as synonyms for true and false.
 // It is not actually clear that these functions are useful.
 bool
-Cdl::string_to_bool(std::string data, booltarget)
+Cdl::string_to_bool(std::string data, bool &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_bool", "success %d");
 
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_bool", "success %d");
 
@@ -404,13 +404,13 @@ Cdl::string_to_bool(std::string data, bool& target)
 
     // What is truth ?
     if (( data == "1"   ) || (data == "true") ||
 
     // What is truth ?
     if (( data == "1"   ) || (data == "true") ||
-        ( data == "True") || (data == "TRUE") ) {
-        result = true;
-        target = true;
+       ( data == "True") || (data == "TRUE") ) {
+       result = true;
+       target = true;
     } else if ((data == "0"    ) || (data == "false") ||
     } else if ((data == "0"    ) || (data == "false") ||
-               (data == "False") || (data == "FALSE") ) {
-        result = true;
-        target = false;
+              (data == "False") || (data == "FALSE") ) {
+       result = true;
+       target = false;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -419,7 +419,7 @@ Cdl::string_to_bool(std::string data, bool& target)
 
 //}}}
 
 
 //}}}
 
-//{{{  integer_to_string()                      
+//{{{  integer_to_string()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -432,20 +432,20 @@ Cdl::integer_to_string(cdl_int value, CdlValueFormat format)
 }
 
 void
 }
 
 void
-Cdl::integer_to_string(cdl_int value, std::stringtarget, CdlValueFormat format)
+Cdl::integer_to_string(cdl_int value, std::string &target, CdlValueFormat format)
 {
     CYG_REPORT_FUNCNAME("Cdl::integer_to_string");
     CYG_REPORT_FUNCARG2XV((long) value, format);
 
     // Optimise this special case.
     if (0 == value) {
 {
     CYG_REPORT_FUNCNAME("Cdl::integer_to_string");
     CYG_REPORT_FUNCARG2XV((long) value, format);
 
     // Optimise this special case.
     if (0 == value) {
-        if (CdlValueFormat_Hex == format) {
-            target = "0x0";
-        } else {
-            target = "0";
-        }
-        CYG_REPORT_RETVAL(true);
-        return;
+       if (CdlValueFormat_Hex == format) {
+           target = "0x0";
+       } else {
+           target = "0";
+       }
+       CYG_REPORT_RETVAL(true);
+       return;
     }
 
     // A local buffer to construct partial strings. This avoids
     }
 
     // A local buffer to construct partial strings. This avoids
@@ -455,93 +455,93 @@ Cdl::integer_to_string(cdl_int value, std::string& target, CdlValueFormat format
     char local_buf[24];
     char *local_ptr = &(local_buf[23]);
     *local_ptr-- = '\0';
     char local_buf[24];
     char *local_ptr = &(local_buf[23]);
     *local_ptr-- = '\0';
-    
+
     if (CdlValueFormat_Hex == format) {
 
     if (CdlValueFormat_Hex == format) {
 
-        // Output the data as 0x... with either 8 or 16 digits,
-        // depending on the size.
-        int i;
-        for (i = 0; i < 8; i++) {
-            int tmp = (int) (value & 0x0F);
-            value   = value >> 4;
-            if (tmp < 10) {
-                *local_ptr-- = '0' + tmp;
-            } else {
-                *local_ptr-- = 'A' + (tmp - 10);
-            }
-        }
-        // Beware of right shifts that preserve the sign bit.
-        {
-            int tmp1 = (value & 0x0FFFF);
-            int tmp2 = ((value >> 16) & 0x0FFFF);
-            value    = (tmp2 << 16) + tmp1;
-        }
-        if (value != 0) {
-            for (i = 0; i < 8; i++) {
-                int tmp = (int) (value & 0x0F);
-                value   = value >> 4;
-                if (tmp < 10) {
-                    *local_ptr-- = '0' + tmp;
-                } else {
-                    *local_ptr-- = 'A' + (tmp - 10);
-                }
-            }
-        }
-        *local_ptr-- = 'x';
-        *local_ptr   = '0';
-        target = std::string(local_ptr);
-        
+       // Output the data as 0x... with either 8 or 16 digits,
+       // depending on the size.
+       int i;
+       for (i = 0; i < 8; i++) {
+           int tmp = (int) (value & 0x0F);
+           value   = value >> 4;
+           if (tmp < 10) {
+               *local_ptr-- = '0' + tmp;
+           } else {
+               *local_ptr-- = 'A' + (tmp - 10);
+           }
+       }
+       // Beware of right shifts that preserve the sign bit.
+       {
+           int tmp1 = (value & 0x0FFFF);
+           int tmp2 = ((value >> 16) & 0x0FFFF);
+           value    = (tmp2 << 16) + tmp1;
+       }
+       if (value != 0) {
+           for (i = 0; i < 8; i++) {
+               int tmp = (int) (value & 0x0F);
+               value   = value >> 4;
+               if (tmp < 10) {
+                   *local_ptr-- = '0' + tmp;
+               } else {
+                   *local_ptr-- = 'A' + (tmp - 10);
+               }
+           }
+       }
+       *local_ptr-- = 'x';
+       *local_ptr   = '0';
+       target = std::string(local_ptr);
+
     } else if (CdlValueFormat_Octal == format) {
 
     } else if (CdlValueFormat_Octal == format) {
 
-        // Simply output the data three bits at a time, do not worry about any
-        // particular width restrictions. However it is necessary to worry
-        // about masking.
-        cdl_int mask = 0x1FFFFFFF;
-        mask = (mask << 16) | 0x0FFFF;
-        mask = (mask << 16) | 0x0FFFF;
-
-        target = "";
-        while (value > 0) {
-            int tmp = value & 0x07;
-            value   = (value >> 3) & mask;
-            *local_ptr-- = '0' + tmp;
-        }
-        *local_ptr = '0';
-        target = std::string(local_ptr);
-        
+       // Simply output the data three bits at a time, do not worry about any
+       // particular width restrictions. However it is necessary to worry
+       // about masking.
+       cdl_int mask = 0x1FFFFFFF;
+       mask = (mask << 16) | 0x0FFFF;
+       mask = (mask << 16) | 0x0FFFF;
+
+       target = "";
+       while (value > 0) {
+           int tmp = value & 0x07;
+           value   = (value >> 3) & mask;
+           *local_ptr-- = '0' + tmp;
+       }
+       *local_ptr = '0';
+       target = std::string(local_ptr);
+
     } else {
     } else {
-        // A simple decimal number      
-        // Switch to positive arithmetic.
-        bool negative = false;
-        if (value < 0) {
-            negative = true;
-            value    = 0 - value;
-            // Only MININT cannot be converted using the above line
-            if (value < 0) {
-                target = "-9223372036854775808";
-                CYG_REPORT_RETVAL(true);
-                return;
-            }
-        }
-
-        while (value > 0) {
-            int rem = (int) (value % 10);
-            value   = value / 10;
-            *local_ptr-- = '0' + rem;
-        }
-        if (negative) {
-            *local_ptr-- = '-';
-        }
-        local_ptr++;
-        target = std::string(local_ptr);
+       // A simple decimal number
+       // Switch to positive arithmetic.
+       bool negative = false;
+       if (value < 0) {
+           negative = true;
+           value    = 0 - value;
+           // Only MININT cannot be converted using the above line
+           if (value < 0) {
+               target = "-9223372036854775808";
+               CYG_REPORT_RETVAL(true);
+               return;
+           }
+       }
+
+       while (value > 0) {
+           int rem = (int) (value % 10);
+           value   = value / 10;
+           *local_ptr-- = '0' + rem;
+       }
+       if (negative) {
+           *local_ptr-- = '-';
+       }
+       local_ptr++;
+       target = std::string(local_ptr);
     }
     }
-    
+
     CYG_REPORT_RETURN();
     return;
 }
 
 //}}}
     CYG_REPORT_RETURN();
     return;
 }
 
 //}}}
-//{{{  double_to_string()                       
+//{{{  double_to_string()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -554,7 +554,7 @@ Cdl::double_to_string(double value, CdlValueFormat format)
 }
 
 void
 }
 
 void
-Cdl::double_to_string(double value, std::stringresult, CdlValueFormat format)
+Cdl::double_to_string(double value, std::string &result, CdlValueFormat format)
 {
     CYG_REPORT_FUNCNAME("Cdl::double_to_String");
 
 {
     CYG_REPORT_FUNCNAME("Cdl::double_to_String");
 
@@ -567,7 +567,7 @@ Cdl::double_to_string(double value, std::string& result, CdlValueFormat format)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  bool_to_string()                         
+//{{{  bool_to_string()
 
 // ----------------------------------------------------------------------------
 // Should the string results be 1/0 or true/false? Not that
 
 // ----------------------------------------------------------------------------
 // Should the string results be 1/0 or true/false? Not that
@@ -581,22 +581,22 @@ Cdl::bool_to_string(bool value)
 }
 
 void
 }
 
 void
-Cdl::bool_to_string(bool value, std::stringtarget)
+Cdl::bool_to_string(bool value, std::string &target)
 {
     CYG_REPORT_FUNCNAME("Cdl::bool_to_string");
     CYG_REPORT_FUNCARG1( "value arg %ld", (long) value);
 
     if (value)
 {
     CYG_REPORT_FUNCNAME("Cdl::bool_to_string");
     CYG_REPORT_FUNCARG1( "value arg %ld", (long) value);
 
     if (value)
-        target = "1";
+       target = "1";
     else
     else
-        target = "0";
+       target = "0";
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
 
-//{{{  integer_to_double()                      
+//{{{  integer_to_double()
 
 // ----------------------------------------------------------------------------
 // Currently integer to double cannot fail, although there may well be loss
 
 // ----------------------------------------------------------------------------
 // Currently integer to double cannot fail, although there may well be loss
@@ -614,7 +614,7 @@ Cdl::integer_to_double(cdl_int value)
 }
 
 void
 }
 
 void
-Cdl::integer_to_double(cdl_int value, doubletarget)
+Cdl::integer_to_double(cdl_int value, double &target)
 {
     CYG_REPORT_FUNCNAME("Cdl::integer_to_double");
 
 {
     CYG_REPORT_FUNCNAME("Cdl::integer_to_double");
 
@@ -624,29 +624,29 @@ Cdl::integer_to_double(cdl_int value, double& target)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  double_to_integer()                      
+//{{{  double_to_integer()
 
 // Conversion from double to integer is only allowed if there is no loss
 // of data. modf() is useful here
 bool
 
 // Conversion from double to integer is only allowed if there is no loss
 // of data. modf() is useful here
 bool
-Cdl::double_to_integer(double value, cdl_inttarget)
+Cdl::double_to_integer(double value, cdl_int &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::double_to_integer", "result %d");
 
     bool   result = false;
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::double_to_integer", "result %d");
 
     bool   result = false;
-    
+
     double integral;
     double frac;
 
     frac = modf(value, &integral);
     if (0.0 == frac) {
     double integral;
     double frac;
 
     frac = modf(value, &integral);
     if (0.0 == frac) {
-        // Looking good, but integral may still be too big.
-        cdl_int tmp = (cdl_int) integral;
-        if (tmp == value) {
-            // No fraction, no loss of data, everything looking good
-            target = tmp;
-            result = true;
-        }
+       // Looking good, but integral may still be too big.
+       cdl_int tmp = (cdl_int) integral;
+       if (tmp == value) {
+           // No fraction, no loss of data, everything looking good
+           target = tmp;
+           result = true;
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -656,24 +656,24 @@ Cdl::double_to_integer(double value, cdl_int& target)
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  Cdl::xxx_to_yyy() - CDL-specific data types              
+//{{{  Cdl::xxx_to_yyy() - CDL-specific data types
 
 // ----------------------------------------------------------------------------
 // Conversions between strings and flavors.
 
 static struct {
 
 // ----------------------------------------------------------------------------
 // Conversions between strings and flavors.
 
 static struct {
-    char*               name;
-    CdlValueFlavor      flavor;
+    const char         *name;
+    CdlValueFlavor     flavor;
 } valid_flavors[] = {
 } valid_flavors[] = {
-    { "none",           CdlValueFlavor_None     },
-    { "bool",           CdlValueFlavor_Bool     },
-    { "booldata",       CdlValueFlavor_BoolData },
-    { "data",           CdlValueFlavor_Data     },
-    { 0,                CdlValueFlavor_Invalid  }
+    { "none",          CdlValueFlavor_None     },
+    { "bool",          CdlValueFlavor_Bool     },
+    { "booldata",      CdlValueFlavor_BoolData },
+    { "data",          CdlValueFlavor_Data     },
+    { 0,               CdlValueFlavor_Invalid  }
 };
 
 bool
 };
 
 bool
-Cdl::string_to_flavor(std::string name, CdlValueFlavortarget)
+Cdl::string_to_flavor(std::string name, CdlValueFlavor &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_flavor", "success %d");
 
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_flavor", "success %d");
 
@@ -683,51 +683,51 @@ Cdl::string_to_flavor(std::string name, CdlValueFlavor& target)
     // Tcl is a case-sensitive language, but the conversion is unlikely ever
     // to be harmfull.
     for (std::string::iterator str_i = name.begin(); str_i != name.end(); str_i++) {
     // Tcl is a case-sensitive language, but the conversion is unlikely ever
     // to be harmfull.
     for (std::string::iterator str_i = name.begin(); str_i != name.end(); str_i++) {
-        if (isupper(*str_i)) {
-            *str_i = tolower(*str_i);
-        }
+       if (isupper(*str_i)) {
+           *str_i = tolower(*str_i);
+       }
     }
     }
-           
+
     // Now look for a match in the table.
     int match           = -1;
     int i;
     // Now look for a match in the table.
     int match           = -1;
     int i;
-    const charc_str   = name.c_str();
+    const char *c_str   = name.c_str();
     int len             = strlen(c_str);
 
     for (i = 0; 0 != valid_flavors[i].name; i++) {
     int len             = strlen(c_str);
 
     for (i = 0; 0 != valid_flavors[i].name; i++) {
-        if (0 == strncmp(c_str, valid_flavors[i].name, len)) {
-            // Check for an ambiguous string match.
-            // This cannot actually happen with the current flavor names.
-            if ( -1 != match) {
-                break;
-            }
-            match = i;
-        }
-        
+       if (0 == strncmp(c_str, valid_flavors[i].name, len)) {
+           // Check for an ambiguous string match.
+           // This cannot actually happen with the current flavor names.
+           if ( -1 != match) {
+               break;
+           }
+           match = i;
+       }
+
     }
     if (-1 != match) {
     }
     if (-1 != match) {
-        target = valid_flavors[match].flavor;
-        result = true;
+       target = valid_flavors[match].flavor;
+       result = true;
     }
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
     }
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
-Cdl::flavor_to_string(CdlValueFlavor flavor, std::stringtarget)
+Cdl::flavor_to_string(CdlValueFlavor flavor, std::string &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::flavor_to_string", "success %d");
 
     bool result = false;
 
     for (int i = 0; 0 != valid_flavors[i].name; i++) {
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::flavor_to_string", "success %d");
 
     bool result = false;
 
     for (int i = 0; 0 != valid_flavors[i].name; i++) {
-        if (flavor == valid_flavors[i].flavor) {
-            target = valid_flavors[i].name;
-            result = true;
-            break;
-        }
+       if (flavor == valid_flavors[i].flavor) {
+           target = valid_flavors[i].name;
+           result = true;
+           break;
+       }
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -736,18 +736,18 @@ Cdl::flavor_to_string(CdlValueFlavor flavor, std::string& target)
 // Similar support for value sources.
 
 static struct {
 // Similar support for value sources.
 
 static struct {
-    char*               name;
-    CdlValueSource      source;
+    const char         *name;
+    CdlValueSource     source;
 } valid_sources[] = {
 } valid_sources[] = {
-    { "default",        CdlValueSource_Default  },
-    { "inferred",       CdlValueSource_Inferred },
-    { "wizard",         CdlValueSource_Wizard   },
-    { "user",           CdlValueSource_User     },
-    { 0,                CdlValueSource_Invalid  }
+    { "default",       CdlValueSource_Default  },
+    { "inferred",      CdlValueSource_Inferred },
+    { "wizard",                CdlValueSource_Wizard   },
+    { "user",          CdlValueSource_User     },
+    { 0,               CdlValueSource_Invalid  }
 };
 
 bool
 };
 
 bool
-Cdl::string_to_source(std::string name, CdlValueSourcetarget)
+Cdl::string_to_source(std::string name, CdlValueSource &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_source", "success %d");
 
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::string_to_source", "success %d");
 
@@ -757,57 +757,57 @@ Cdl::string_to_source(std::string name, CdlValueSource& target)
     // Tcl is a case-sensitive language, but the conversion is unlikely ever
     // to be harmfull.
     for (std::string::iterator str_i = name.begin(); str_i != name.end(); str_i++) {
     // Tcl is a case-sensitive language, but the conversion is unlikely ever
     // to be harmfull.
     for (std::string::iterator str_i = name.begin(); str_i != name.end(); str_i++) {
-        if (isupper(*str_i)) {
-            *str_i = tolower(*str_i);
-        }
+       if (isupper(*str_i)) {
+           *str_i = tolower(*str_i);
+       }
     }
     }
-           
+
     // Now look for a match in the table.
     int match           = -1;
     int i;
     // Now look for a match in the table.
     int match           = -1;
     int i;
-    const charc_str   = name.c_str();
+    const char *c_str   = name.c_str();
     int len             = strlen(c_str);
 
     for (i = 0; 0 != valid_sources[i].name; i++) {
     int len             = strlen(c_str);
 
     for (i = 0; 0 != valid_sources[i].name; i++) {
-        if (0 == strncmp(c_str, valid_sources[i].name, len)) {
-            // Check for an ambiguous string match.
-            // This cannot actually happen with the current source names.
-            if ( -1 != match) {
-                break;
-            }
-            match = i;
-        }
-        
+       if (0 == strncmp(c_str, valid_sources[i].name, len)) {
+           // Check for an ambiguous string match.
+           // This cannot actually happen with the current source names.
+           if ( -1 != match) {
+               break;
+           }
+           match = i;
+       }
+
     }
     if (-1 != match) {
     }
     if (-1 != match) {
-        target = valid_sources[match].source;
-        result = true;
+       target = valid_sources[match].source;
+       result = true;
     }
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
     }
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 bool
-Cdl::source_to_string(CdlValueSource source, std::stringtarget)
+Cdl::source_to_string(CdlValueSource source, std::string &target)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::source_to_string", "success %d");
 
     bool result = false;
 
     for (int i = 0; 0 != valid_sources[i].name; i++) {
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::source_to_string", "success %d");
 
     bool result = false;
 
     for (int i = 0; 0 != valid_sources[i].name; i++) {
-        if (source == valid_sources[i].source) {
-            target = valid_sources[i].name;
-            result = true;
-            break;
-        }
+       if (source == valid_sources[i].source) {
+           target = valid_sources[i].name;
+           result = true;
+           break;
+       }
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Cdl::get_library_version()                               
+//{{{  Cdl::get_library_version()
 
 // ----------------------------------------------------------------------------
 // The version of the library actually lives inside configure.in. It gets
 
 // ----------------------------------------------------------------------------
 // The version of the library actually lives inside configure.in. It gets
@@ -819,7 +819,7 @@ Cdl::get_library_version(void)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Cdl::set_interactive()                                   
+//{{{  Cdl::set_interactive()
 
 // ----------------------------------------------------------------------------
 // Some CDL scripts and some bits of the library may want to adapt depending
 
 // ----------------------------------------------------------------------------
 // Some CDL scripts and some bits of the library may want to adapt depending
@@ -847,7 +847,7 @@ Cdl::is_interactive(void)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  version support()                                        
+//{{{  version support()
 
 // ----------------------------------------------------------------------------
 // Packages may need to impose constraints on which versions of other
 
 // ----------------------------------------------------------------------------
 // Packages may need to impose constraints on which versions of other
@@ -881,134 +881,134 @@ is_separator(int ch)
 {
     return ('.' == ch) || ('-' == ch) || ('_' == ch);
 }
 {
     return ('.' == ch) || ('-' == ch) || ('_' == ch);
 }
-    
+
 int
 Cdl::compare_versions(std::string arg1, std::string arg2)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::compare_versions", "result %d");
 
     if (arg1 == arg2) {
 int
 Cdl::compare_versions(std::string arg1, std::string arg2)
 {
     CYG_REPORT_FUNCNAMETYPE("Cdl::compare_versions", "result %d");
 
     if (arg1 == arg2) {
-        CYG_REPORT_RETVAL(0);
-        return 0;
+       CYG_REPORT_RETVAL(0);
+       return 0;
     }
 
     // The version number "current" is special, it always indicates the most
     // recent version e.g. as checked out from a CVS repository.
     if ("current" == arg1) {
     }
 
     // The version number "current" is special, it always indicates the most
     // recent version e.g. as checked out from a CVS repository.
     if ("current" == arg1) {
-        CYG_REPORT_RETVAL(-1);
-        return -1;
+       CYG_REPORT_RETVAL(-1);
+       return -1;
     }
     if ("current" == arg2) {
     }
     if ("current" == arg2) {
-        CYG_REPORT_RETVAL(1);
-        return 1;
+       CYG_REPORT_RETVAL(1);
+       return 1;
     }
 
     }
 
-    const charptr1 = arg1.c_str();
-    const char* ptr2 = arg2.c_str();      
+    const char *ptr1 = arg1.c_str();
+    const char *ptr2 = arg2.c_str();
     int num1    = 0;
     int num2    = 0;
 
     // If both strings start with 'v' or 'V', skip this. A minor variation in
     // case at the start of a string should be ignored.
     if ((('v' == *ptr1) || ('V' == *ptr1)) &&
     int num1    = 0;
     int num2    = 0;
 
     // If both strings start with 'v' or 'V', skip this. A minor variation in
     // case at the start of a string should be ignored.
     if ((('v' == *ptr1) || ('V' == *ptr1)) &&
-        (('v' == *ptr2) || ('V' == *ptr2))) {
-        ptr1++;
-        ptr2++;
+       (('v' == *ptr2) || ('V' == *ptr2))) {
+       ptr1++;
+       ptr2++;
     }
 
     // Now process the rest of the version string, one unit at a time.
     while (1) {
 
     }
 
     // Now process the rest of the version string, one unit at a time.
     while (1) {
 
-        if (('\0' == *ptr1) && ('\0' == *ptr2)) {
-            // Both strings have terminated at the same time. There
-            // may have been some spurious leading zeroes in numbers,
-            // or irrelevant differences in the separators.
-            CYG_REPORT_RETVAL(0);
-            return 0;
-        }
-        
-        if ('\0' == *ptr1) {
-            // The first string has ended first. If the second string currently
-            // points at a separator then arg2 is a derived version, e.g.
-            // v0.3.p1, and hence newer. Otherwise arg2 is an experimental
-            // version v0.3beta and hence older.
-            if (is_separator(*ptr2)) {
-                CYG_REPORT_RETVAL(1);
-                return 1;
-            } else {
-                CYG_REPORT_RETVAL(-1);
-                return -1;
-            }
-        }
-
-        if ('\0' == *ptr2) {
-            // As per the previous test.
-            if (is_separator(*ptr1)) {
-                CYG_REPORT_RETVAL(-1);
-                return -1;
-            } else {
-                CYG_REPORT_RETVAL(1);
-                return 1;
-            }
-        }
-
-        // If both strings currently point at numerical data, do a conversion and
-        // a numerical comparison.
-        if (isdigit(*ptr1) && isdigit(*ptr2)) {
-            num1 = 0;
-            num2 = 0;
-            // Strictly speaking there should be some overflow tests here, but it
-            // is not worth the trouble.
-            do {
-                num1 = (10 * num1) + (*ptr1++ - '0');
-            } while(isdigit(*ptr1));
-            do {
-                num2 = (10 * num2) + (*ptr2++ - '0');
-            } while(isdigit(*ptr2));
-            // v2.0 is newer than v1.0
-            if (num1 < num2) {
-                CYG_REPORT_RETVAL(1);
-                return 1;
-            } else if (num1 > num2) {
-                CYG_REPORT_RETVAL(-1);
-                return -1;
-            } else {
-                continue;
-            }
-        }
-
-        // Non-numerical data. If the two characters are the same then
-        // move on. Note: this has to happen after numerical conversions
-        // to distinguish v10.0 and v1.0
-        if (*ptr1 == *ptr2) {
-            ptr1++; ptr2++;
-            continue;
-        }
-
-        // If both strings are currently at a separator then move on. All
-        // separators can be used interchangeably.
-        if (is_separator(*ptr1) && is_separator(*ptr2)) {
-            ptr1++; ptr2++;
-            continue;
-        }
-
-        // If only one string is at a separator, special action
-        // is needed. v1.1alpha is interpreted as earlier than
-        // v1.1, but v1.1.3 is a later release.
-        if (is_separator(*ptr1)) {
-            return -1;
-        } else if (is_separator(*ptr2)) {
-            return 1;
-        }
-        
-        // Two different characters, e.g. v1.0alpha vs. v1.0beta
-        if (*ptr1 < *ptr2) {
-            CYG_REPORT_RETVAL(1);
-            return 1;
-        } else {
-            CYG_REPORT_RETVAL(-1);
-            return -1;
-        }
+       if (('\0' == *ptr1) && ('\0' == *ptr2)) {
+           // Both strings have terminated at the same time. There
+           // may have been some spurious leading zeroes in numbers,
+           // or irrelevant differences in the separators.
+           CYG_REPORT_RETVAL(0);
+           return 0;
+       }
+
+       if ('\0' == *ptr1) {
+           // The first string has ended first. If the second string currently
+           // points at a separator then arg2 is a derived version, e.g.
+           // v0.3.p1, and hence newer. Otherwise arg2 is an experimental
+           // version v0.3beta and hence older.
+           if (is_separator(*ptr2)) {
+               CYG_REPORT_RETVAL(1);
+               return 1;
+           } else {
+               CYG_REPORT_RETVAL(-1);
+               return -1;
+           }
+       }
+
+       if ('\0' == *ptr2) {
+           // As per the previous test.
+           if (is_separator(*ptr1)) {
+               CYG_REPORT_RETVAL(-1);
+               return -1;
+           } else {
+               CYG_REPORT_RETVAL(1);
+               return 1;
+           }
+       }
+
+       // If both strings currently point at numerical data, do a conversion and
+       // a numerical comparison.
+       if (isdigit(*ptr1) && isdigit(*ptr2)) {
+           num1 = 0;
+           num2 = 0;
+           // Strictly speaking there should be some overflow tests here, but it
+           // is not worth the trouble.
+           do {
+               num1 = (10 * num1) + (*ptr1++ - '0');
+           } while(isdigit(*ptr1));
+           do {
+               num2 = (10 * num2) + (*ptr2++ - '0');
+           } while(isdigit(*ptr2));
+           // v2.0 is newer than v1.0
+           if (num1 < num2) {
+               CYG_REPORT_RETVAL(1);
+               return 1;
+           } else if (num1 > num2) {
+               CYG_REPORT_RETVAL(-1);
+               return -1;
+           } else {
+               continue;
+           }
+       }
+
+       // Non-numerical data. If the two characters are the same then
+       // move on. Note: this has to happen after numerical conversions
+       // to distinguish v10.0 and v1.0
+       if (*ptr1 == *ptr2) {
+           ptr1++; ptr2++;
+           continue;
+       }
+
+       // If both strings are currently at a separator then move on. All
+       // separators can be used interchangeably.
+       if (is_separator(*ptr1) && is_separator(*ptr2)) {
+           ptr1++; ptr2++;
+           continue;
+       }
+
+       // If only one string is at a separator, special action
+       // is needed. v1.1alpha is interpreted as earlier than
+       // v1.1, but v1.1.3 is a later release.
+       if (is_separator(*ptr1)) {
+           return -1;
+       } else if (is_separator(*ptr2)) {
+           return 1;
+       }
+
+       // Two different characters, e.g. v1.0alpha vs. v1.0beta
+       if (*ptr1 < *ptr2) {
+           CYG_REPORT_RETVAL(1);
+           return 1;
+       } else {
+           CYG_REPORT_RETVAL(-1);
+           return -1;
+       }
     }
 
     // Not reachable.
     }
 
     // Not reachable.
@@ -1020,32 +1020,32 @@ Cdl::compare_versions(std::string arg1, std::string arg2)
 // iterates through the string looking for sequences of numbers.
 
 static void
 // iterates through the string looking for sequences of numbers.
 
 static void
-version_extract_number(const std::string& version, unsigned int& index, std::string& result)
+version_extract_number(const std::string &version, unsigned int &index, std::string &result)
 {
     CYG_REPORT_FUNCNAME("version_extract_number");
 
     // The calling code is expected to supply a sensible default.
     // Search for a digit
     for ( ; index < version.size(); index++) {
 {
     CYG_REPORT_FUNCNAME("version_extract_number");
 
     // The calling code is expected to supply a sensible default.
     // Search for a digit
     for ( ; index < version.size(); index++) {
-        if (isdigit(version[index])) {
-            break;
-        }
+       if (isdigit(version[index])) {
+           break;
+       }
     }
     if (index != version.size()) {
     }
     if (index != version.size()) {
-        result = "";
-        if ((index > 0) && ('-' == version[index-1])) {
-            result = "-";
-        }
-        do {
-            result += version[index++];
-        } while ((index < version.size()) && isdigit(version[index]));
+       result = "";
+       if ((index > 0) && ('-' == version[index-1])) {
+           result = "-";
+       }
+       do {
+           result += version[index++];
+       } while ((index < version.size()) && isdigit(version[index]));
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 void
     CYG_REPORT_RETURN();
 }
 
 void
-Cdl::split_version_string(const std::string& version, std::string& major, std::string& minor, std::string& release)
+Cdl::split_version_string(const std::string &version, std::string &major, std::string &minor, std::string &release)
 {
     CYG_REPORT_FUNCNAME("CdlMisc::split_version_string");
 
 {
     CYG_REPORT_FUNCNAME("CdlMisc::split_version_string");
 
@@ -1053,12 +1053,12 @@ Cdl::split_version_string(const std::string& version, std::string& major, std::s
     version_extract_number(version, index, major);
     version_extract_number(version, index, minor);
     version_extract_number(version, index, release);
     version_extract_number(version, index, major);
     version_extract_number(version, index, minor);
     version_extract_number(version, index, release);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Cdl::get_short_form()                                    
+//{{{  Cdl::get_short_form()
 
 // ----------------------------------------------------------------------------
 // It is occasionally useful to take a full CDL name such as CYgpkg_KERNEL
 
 // ----------------------------------------------------------------------------
 // It is occasionally useful to take a full CDL name such as CYgpkg_KERNEL
@@ -1066,7 +1066,7 @@ Cdl::split_version_string(const std::string& version, std::string& major, std::s
 // everything up to and including the first underscore, then lowercasing
 // all subsequent characters.
 std::string
 // everything up to and including the first underscore, then lowercasing
 // all subsequent characters.
 std::string
-Cdl::get_short_form(const std::stringoriginal)
+Cdl::get_short_form(const std::string &original)
 {
     CYG_REPORT_FUNCNAME("CdlMisc::get_short_form");
 
 {
     CYG_REPORT_FUNCNAME("CdlMisc::get_short_form");
 
@@ -1074,21 +1074,21 @@ Cdl::get_short_form(const std::string& original)
     unsigned int size = original.size();
     unsigned int i;
     for (i = 0; i < size; i++) {
     unsigned int size = original.size();
     unsigned int i;
     for (i = 0; i < size; i++) {
-        if ('_' == original[i]) {
-            i++;
-            break;
-        }
+       if ('_' == original[i]) {
+           i++;
+           break;
+       }
     }
 
     // Either at end of string, or just past the first underscore
     for ( ; i < size; i++) {
     }
 
     // Either at end of string, or just past the first underscore
     for ( ; i < size; i++) {
-        if (isupper(original[i])) {
-            result += tolower(original[i]);
-        } else {
-            result += original[i];
-        }
+       if (isupper(original[i])) {
+           result += tolower(original[i]);
+       } else {
+           result += original[i];
+       }
     }
     }
-    
+
     CYG_REPORT_RETURN();
     return result;
 }
     CYG_REPORT_RETURN();
     return result;
 }
index 180fe7ff88c98b4b5cf35ca5ec66cc6a3c2767c5..a2e8b3838501a66bb9232599beb1cb8b1c5dd23e 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlComponentBody);
 
 //}}}
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlComponentBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 CdlComponentBody::CdlComponentBody(std::string name_arg)
 
 // ----------------------------------------------------------------------------
 CdlComponentBody::CdlComponentBody(std::string name_arg)
@@ -90,7 +90,7 @@ CdlComponentBody::CdlComponentBody(std::string name_arg)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -102,12 +102,12 @@ CdlComponentBody::~CdlComponentBody()
 
     cdlcomponentbody_cookie = CdlComponentBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdlcomponentbody_cookie = CdlComponentBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_component()                
+//{{{  parse_component()
 
 // ----------------------------------------------------------------------------
 // Parsing a component definition. This routine gets invoked directly from the
 
 // ----------------------------------------------------------------------------
 // Parsing a component definition. This routine gets invoked directly from the
@@ -119,12 +119,12 @@ CdlComponentBody::parse_component(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("CdlComponentBody::parse_component", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_REPORT_FUNCNAMETYPE("CdlComponentBody::parse_component", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL.
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL.
@@ -141,57 +141,57 @@ CdlComponentBody::parse_component(CdlInterpreter interp, int argc, const char* a
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
-    
-        // Currently there are no options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                         "'\nExpecting name and properties list.");
-            ok = false;
-            goto done;
-        }
-        if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Invalid property list for cdl_component `") + argv[1] + "'.");
-            ok = false;
-            goto done;
-        }
-
-        if (0 != toplevel->lookup(argv[1])) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Component `") + argv[1] +
-                                   "' cannot be loaded.\nThe name is already in use.");
-            ok = false;
-        } else {
-            new_component = new CdlComponentBody(argv[1]);
-            toplevel->add_node(package, parent, new_component);
-        }
+
+       // Currently there are no options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                        "'\nExpecting name and properties list.");
+           ok = false;
+           goto done;
+       }
+       if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Invalid property list for cdl_component `") + argv[1] + "'.");
+           ok = false;
+           goto done;
+       }
+
+       if (0 != toplevel->lookup(argv[1])) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Component `") + argv[1] +
+                                  "' cannot be loaded.\nThe name is already in use.");
+           ok = false;
+       } else {
+           new_component = new CdlComponentBody(argv[1]);
+           toplevel->add_node(package, parent, new_component);
+       }
 
       done:
 
       done:
-        if (!ok) {
-            // Just because this component cannot be created, that is no
-            // reason to abort the whole parsing process.
-            CYG_REPORT_RETVAL(TCL_OK);
-            return TCL_OK;
-        }
+       if (!ok) {
+           // Just because this component cannot be created, that is no
+           // reason to abort the whole parsing process.
+           CYG_REPORT_RETVAL(TCL_OK);
+           return TCL_OK;
+       }
     } catch(std::bad_alloc e) {
     } catch(std::bad_alloc e) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch(CdlParseException e) {
     } catch(CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     if (TCL_OK != result) {
     }
     if (TCL_OK != result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
 
     // At this stage new_component has been created and added to the hierarchy.
     // The main work now is to add the properties.
     }
 
     // At this stage new_component has been created and added to the hierarchy.
     // The main work now is to add the properties.
-    
+
     // Push the component as the current node early on. This aids
     // diagnostics. Also make it the new container.
     CdlNode      old_node       = interp->push_node(new_component);
     // Push the component as the current node early on. This aids
     // diagnostics. Also make it the new container.
     CdlNode      old_node       = interp->push_node(new_component);
@@ -206,122 +206,122 @@ CdlComponentBody::parse_component(CdlInterpreter interp, int argc, const char* a
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry commands[] =
     {
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("script",             &CdlComponentBody::parse_script    ),
-        CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
-        CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
-        CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
-        CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
-        CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                                  )
+       CdlInterpreterCommandEntry("script",             &CdlComponentBody::parse_script    ),
+       CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
+       CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
+       CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
+       CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
+       CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                                  )
     };
     static CdlInterpreterCommandEntry   script_commands[] =
     {
     };
     static CdlInterpreterCommandEntry   script_commands[] =
     {
-        CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
-        CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
-        CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
-        CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
-        CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                                  ),
+       CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
+       CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
+       CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
+       CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
+       CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                                  ),
     };
     int i;
     };
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
-        for (i = 0; 0 != commands[i].command; i++) {
-            new_commands.push_back(commands[i]);
-        }
-        CdlBuildableBody::add_property_parsers(new_commands);
-        CdlDefinableBody::add_property_parsers(new_commands);
-        CdlParentableBody::add_property_parsers(new_commands);
-        CdlValuableBody::add_property_parsers(new_commands);
-        CdlUserVisibleBody::add_property_parsers(new_commands);
-        CdlNodeBody::add_property_parsers(new_commands);
-    
-        // Now evaluate the body. If an error occurs then typically
-        // this will be reported via CdlParse::report_error(),
-        // but any exceptions will have been intercepted and
-        // turned into a Tcl error.
-        old_commands = interp->push_commands(new_commands);
-        result = interp->eval(argv[2], tcl_result);
-        interp->pop_commands(old_commands);
-        
-        if (TCL_OK != result) {
-            // No point in taking any further action, just go with the flow
-            goto done2;
-        }
-
-        // Even if there were errors, they were not fatal. There may
-        // now be a number of properties for this component, and some
-        // validation should take place. Start with the base classes.
-        new_component->CdlNodeBody::check_properties(interp);
-        new_component->CdlUserVisibleBody::check_properties(interp);
-        new_component->CdlValuableBody::check_properties(interp);
-        new_component->CdlParentableBody::check_properties(interp);
-        new_component->CdlBuildableBody::check_properties(interp);
-        new_component->CdlDefinableBody::check_properties(interp);
-
-        // There should be at most one each of wizard and script.
-        if (new_component->count_properties(CdlPropertyId_Wizard) > 1) {
-            CdlParse::report_error(interp, "", "A component should have at most one `wizard' property.");
-        }
-        if (new_component->count_properties(CdlPropertyId_Script) > 1) {
-            CdlParse::report_error(interp, "", "A component should have at most one `script' property.");
-        }
-
-        // If there is a script property, life gets more interesting.
-        if (new_component->has_property(CdlPropertyId_Script)) {
-            CdlProperty_String prop = dynamic_cast<CdlProperty_String>(new_component->get_property(CdlPropertyId_Script));
-            CYG_PRECONDITION_CLASSC(prop);
-            std::string script_name = prop->get_string();
-
-            // Try to locate this script.
-            std::string script_filename = package->find_absolute_file(script_name, "cdl", false);
-            if ("" == script_filename) {
-                CdlParse::report_error(interp, "", "Unable to find script `" + script_name + "'.");
-            } else {
-                // The script exists, so we need to try and execute it.
-                // The current container is still set correctly, but we need
-                // to change the filename and install a different set
-                // of commands.
-                old_context = interp->push_context(script_filename);
-                new_commands.clear();
-                for (i = 0; 0 != script_commands[i].command; i++) {
-                    new_commands.push_back(script_commands[i]);
-                }
-                old_commands = interp->push_commands(new_commands);
-                result = interp->eval_file(script_filename, tcl_result);
-                interp->pop_commands(old_commands);
-                interp->pop_context(old_context);
-            }
-        }
+       for (i = 0; 0 != commands[i].command; i++) {
+           new_commands.push_back(commands[i]);
+       }
+       CdlBuildableBody::add_property_parsers(new_commands);
+       CdlDefinableBody::add_property_parsers(new_commands);
+       CdlParentableBody::add_property_parsers(new_commands);
+       CdlValuableBody::add_property_parsers(new_commands);
+       CdlUserVisibleBody::add_property_parsers(new_commands);
+       CdlNodeBody::add_property_parsers(new_commands);
+
+       // Now evaluate the body. If an error occurs then typically
+       // this will be reported via CdlParse::report_error(),
+       // but any exceptions will have been intercepted and
+       // turned into a Tcl error.
+       old_commands = interp->push_commands(new_commands);
+       result = interp->eval(argv[2], tcl_result);
+       interp->pop_commands(old_commands);
+
+       if (TCL_OK != result) {
+           // No point in taking any further action, just go with the flow
+           goto done2;
+       }
+
+       // Even if there were errors, they were not fatal. There may
+       // now be a number of properties for this component, and some
+       // validation should take place. Start with the base classes.
+       new_component->CdlNodeBody::check_properties(interp);
+       new_component->CdlUserVisibleBody::check_properties(interp);
+       new_component->CdlValuableBody::check_properties(interp);
+       new_component->CdlParentableBody::check_properties(interp);
+       new_component->CdlBuildableBody::check_properties(interp);
+       new_component->CdlDefinableBody::check_properties(interp);
+
+       // There should be at most one each of wizard and script.
+       if (new_component->count_properties(CdlPropertyId_Wizard) > 1) {
+           CdlParse::report_error(interp, "", "A component should have at most one `wizard' property.");
+       }
+       if (new_component->count_properties(CdlPropertyId_Script) > 1) {
+           CdlParse::report_error(interp, "", "A component should have at most one `script' property.");
+       }
+
+       // If there is a script property, life gets more interesting.
+       if (new_component->has_property(CdlPropertyId_Script)) {
+           CdlProperty_String prop = dynamic_cast<CdlProperty_String>(new_component->get_property(CdlPropertyId_Script));
+           CYG_PRECONDITION_CLASSC(prop);
+           std::string script_name = prop->get_string();
+
+           // Try to locate this script.
+           std::string script_filename = package->find_absolute_file(script_name, "cdl", false);
+           if ("" == script_filename) {
+               CdlParse::report_error(interp, "", "Unable to find script `" + script_name + "'.");
+           } else {
+               // The script exists, so we need to try and execute it.
+               // The current container is still set correctly, but we need
+               // to change the filename and install a different set
+               // of commands.
+               old_context = interp->push_context(script_filename);
+               new_commands.clear();
+               for (i = 0; 0 != script_commands[i].command; i++) {
+                   new_commands.push_back(script_commands[i]);
+               }
+               old_commands = interp->push_commands(new_commands);
+               result = interp->eval_file(script_filename, tcl_result);
+               interp->pop_commands(old_commands);
+               interp->pop_context(old_context);
+           }
+       }
 
       done2:
 
       done2:
-        // Dummy command just to keep the compiler happy
-        old_context = "";
-        
+       // Dummy command just to keep the compiler happy
+       old_context = "";
+
     } catch (std::bad_alloc e) {
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++.
-        // However there is no point in continuing with the parsing operation,
-        // just give up.
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++.
+       // However there is no point in continuing with the parsing operation,
+       // just give up.
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     interp->pop_container(old_container);
     if (0 != old_commands) {
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     interp->pop_container(old_container);
     if (0 != old_commands) {
-        interp->pop_commands(old_commands);
+       interp->pop_commands(old_commands);
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -335,13 +335,13 @@ CdlComponentBody::parse_script(CdlInterpreter interp, int argc, const char* argv
     CYG_REPORT_FUNCNAMETYPE("parse_script", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Script, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_script", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Script, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Propagation support              
+//{{{  Propagation support
 
 // ----------------------------------------------------------------------------
 void
 
 // ----------------------------------------------------------------------------
 void
@@ -351,12 +351,12 @@ CdlComponentBody::update(CdlTransaction transaction, CdlUpdate update)
 
     this->CdlValuableBody::update(transaction, update);
     this->CdlContainerBody::update(transaction, update);
 
     this->CdlValuableBody::update(transaction, update);
     this->CdlContainerBody::update(transaction, update);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 void
 
 // ----------------------------------------------------------------------------
 void
@@ -379,31 +379,31 @@ CdlComponentBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation,
     CYG_PRECONDITION_CLASSC(interp);
 
     if (!minimal || this->has_additional_savefile_information() || this->value_savefile_entry_needed()) {
     CYG_PRECONDITION_CLASSC(interp);
 
     if (!minimal || this->has_additional_savefile_information() || this->value_savefile_entry_needed()) {
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_component <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_component " + get_name() + " {\n";
-        interp->write_data(chan, data);
-
-        // Deal with the value
-        bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
-            !this->has_property(CdlPropertyId_Calculated);
-        this->CdlValuableBody::save(interp, chan, indentation + 4, modifiable, minimal);
-
-        // And with any unrecognised data
-        this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
-    
-        // Close the cdl_component body. A blank line is added here.
-        interp->write_data(chan, "};\n\n");
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_component <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_component " + get_name() + " {\n";
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
+           !this->has_property(CdlPropertyId_Calculated);
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, modifiable, minimal);
+
+       // And with any unrecognised data
+       this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
+
+       // Close the cdl_component body. A blank line is added here.
+       interp->write_data(chan, "};\n\n");
     }
     }
-    
+
     // Packages are containers, so dump the contents as well.
     this->CdlContainerBody::save(interp, chan, indentation, minimal);
     // Packages are containers, so dump the contents as well.
     this->CdlContainerBody::save(interp, chan, indentation, minimal);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -422,41 +422,41 @@ CdlComponentBody::savefile_component_command(CdlInterpreter interp, int argc, co
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_component command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = config->lookup(argv[1]);
-            if (0 == current_node) {
-                // FIXME: save value in limbo
-                CdlParse::report_error(interp, "", 
-                                       std::string("The savefile contains a cdl_component command for an unknown component `")
-                                       + argv[1] + "'");
-            } else {
-                config->get_savefile_subcommands("cdl_component", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_component command in savefile, expecting two arguments.");
+       } else {
+
+           CdlNode current_node = config->lookup(argv[1]);
+           if (0 == current_node) {
+               // FIXME: save value in limbo
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_component command for an unknown component `")
+                                      + argv[1] + "'");
+           } else {
+               config->get_savefile_subcommands("cdl_component", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -464,7 +464,7 @@ CdlComponentBody::savefile_component_command(CdlInterpreter interp, int argc, co
 }
 
 //}}}
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -472,21 +472,21 @@ bool
 CdlComponentBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlComponentBody_Magic != cdlcomponentbody_cookie) {
 CdlComponentBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlComponentBody_Magic != cdlcomponentbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     return CdlNodeBody::check_this(zeal)        &&
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     return CdlNodeBody::check_this(zeal)        &&
-           CdlContainerBody::check_this(zeal)   &&
-           CdlUserVisibleBody::check_this(zeal) &&
-           CdlParentableBody::check_this(zeal)  &&
-           CdlValuableBody::check_this(zeal)    &&
-           CdlBuildableBody::check_this(zeal)   &&
-           CdlDefinableBody::check_this(zeal);
+          CdlContainerBody::check_this(zeal)   &&
+          CdlUserVisibleBody::check_this(zeal) &&
+          CdlParentableBody::check_this(zeal)  &&
+          CdlValuableBody::check_this(zeal)    &&
+          CdlBuildableBody::check_this(zeal)   &&
+          CdlDefinableBody::check_this(zeal);
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Misc                             
+//{{{  Misc
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
index 3aeb5c50bd92529d2a4d8ab65502445123527609..478a4d7da88ffef90b3623ad3b94bf1e837af861 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  CdlConfiguration constants and statics           
+//{{{  CdlConfiguration constants and statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlConfigurationBody);
 
 //}}}
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlConfigurationBody);
 
 //}}}
-//{{{  CdlConfiguration:: creation                      
+//{{{  CdlConfiguration:: creation
 
 // ----------------------------------------------------------------------------
 // The toplevel class will take care of just about everything.
 
 // ----------------------------------------------------------------------------
 // The toplevel class will take care of just about everything.
@@ -84,10 +84,10 @@ CdlConfigurationBody::CdlConfigurationBody(std::string name, CdlPackagesDatabase
     database            = db;
     save_file           = "";
     description         = "";
     database            = db;
     save_file           = "";
     description         = "";
-    
+
     cdlconfigurationbody_cookie = CdlConfigurationBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     cdlconfigurationbody_cookie = CdlConfigurationBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -110,7 +110,7 @@ CdlConfigurationBody::make(std::string name, CdlPackagesDatabase db, CdlInterpre
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlConfiguration:: destructor                    
+//{{{  CdlConfiguration:: destructor
 
 // ----------------------------------------------------------------------------
 CdlConfigurationBody::~CdlConfigurationBody()
 
 // ----------------------------------------------------------------------------
 CdlConfigurationBody::~CdlConfigurationBody()
@@ -135,27 +135,27 @@ CdlConfigurationBody::~CdlConfigurationBody()
     CdlLocalTransaction transaction(this);
     const std::vector<CdlLoadable>& loadables = this->get_loadables();
     for (int i = loadables.size() - 1; i >= 0; i--) {
     CdlLocalTransaction transaction(this);
     const std::vector<CdlLoadable>& loadables = this->get_loadables();
     for (int i = loadables.size() - 1; i >= 0; i--) {
-        CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[i]);
-        if (0 != pkg) {
-            this->unload_package(transaction.get(), pkg);
-        }
+       CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[i]);
+       if (0 != pkg) {
+           this->unload_package(transaction.get(), pkg);
+       }
     }
     transaction.propagate();
     transaction.commit();
     }
     transaction.propagate();
     transaction.commit();
-    
+
     cdlconfigurationbody_cookie = CdlConfigurationBody_Invalid;
     current_hardware            = "";
     current_template            = "";
     database                    = 0;
     save_file                   = "";
     cdlconfigurationbody_cookie = CdlConfigurationBody_Invalid;
     current_hardware            = "";
     current_template            = "";
     database                    = 0;
     save_file                   = "";
-    
+
     CYGDBG_MEMLEAK_DESTRUCTOR();
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::check_this()                   
+//{{{  CdlConfiguration::check_this()
 
 // ----------------------------------------------------------------------------
 // There is very little information associated with a configuration.
 
 // ----------------------------------------------------------------------------
 // There is very little information associated with a configuration.
@@ -164,38 +164,38 @@ bool
 CdlConfigurationBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlConfigurationBody_Magic != cdlconfigurationbody_cookie) {
 CdlConfigurationBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlConfigurationBody_Magic != cdlconfigurationbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     switch(zeal) {
       case cyg_system_test      :
       case cyg_extreme          :
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     switch(zeal) {
       case cyg_system_test      :
       case cyg_extreme          :
-          if ((0 == database) || !database->check_this(cyg_quick)) {
-              return false;
-          }
+         if ((0 == database) || !database->check_this(cyg_quick)) {
+             return false;
+         }
       case cyg_thorough         :
       case cyg_thorough         :
-          if (("" != current_hardware) && !database->is_known_target(current_hardware)) {
-              return false;
-          }
-          if (("" != current_template) && !database->is_known_template(current_template)) {
-              return false;
-          }
+         if (("" != current_hardware) && !database->is_known_target(current_hardware)) {
+             return false;
+         }
+         if (("" != current_template) && !database->is_known_template(current_template)) {
+             return false;
+         }
       case cyg_quick            :
       case cyg_quick            :
-          if (0 == database) {
-              return false;
-          }
+         if (0 == database) {
+             return false;
+         }
       case cyg_trivial          :
       case cyg_none             :
       default                   :
       case cyg_trivial          :
       case cyg_none             :
       default                   :
-          break;
+         break;
     }
 
     return CdlNodeBody::check_this(zeal) && CdlContainerBody::check_this(zeal) && CdlToplevelBody::check_this(zeal);
 }
 
 //}}}
     }
 
     return CdlNodeBody::check_this(zeal) && CdlContainerBody::check_this(zeal) && CdlToplevelBody::check_this(zeal);
 }
 
 //}}}
-//{{{  CdlConfiguration:: basic info                    
+//{{{  CdlConfiguration:: basic info
 
 // ----------------------------------------------------------------------------
 // Provide ready access to configuration-specific data.
 
 // ----------------------------------------------------------------------------
 // Provide ready access to configuration-specific data.
@@ -230,7 +230,7 @@ CdlConfigurationBody::set_hardware_name(std::string new_name)
     CYG_PRECONDITION_THISC();
 
     current_hardware = new_name;
     CYG_PRECONDITION_THISC();
 
     current_hardware = new_name;
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -253,7 +253,7 @@ CdlConfigurationBody::set_template_name(std::string new_name)
     CYG_PRECONDITION_THISC();
 
     current_template = new_name;
     CYG_PRECONDITION_THISC();
 
     current_template = new_name;
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -280,7 +280,7 @@ CdlConfigurationBody::get_class_name() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Load and unload operations - wrappers            
+//{{{  Load and unload operations - wrappers
 
 // ----------------------------------------------------------------------------
 // These members are basically wrappers for the functions that do the
 
 // ----------------------------------------------------------------------------
 // These members are basically wrappers for the functions that do the
@@ -289,7 +289,7 @@ CdlConfigurationBody::get_class_name() const
 
 void
 CdlConfigurationBody::load_package(std::string name, std::string version,
 
 void
 CdlConfigurationBody::load_package(std::string name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::load_package");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::load_package");
     CYG_REPORT_FUNCARG1XV(this);
@@ -349,7 +349,7 @@ CdlConfigurationBody::unload_package(CdlTransaction transaction, std::string nam
 
 void
 CdlConfigurationBody::change_package_version(std::string name, std::string version,
 
 void
 CdlConfigurationBody::change_package_version(std::string name, std::string version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG1XV(this);
@@ -363,7 +363,7 @@ CdlConfigurationBody::change_package_version(std::string name, std::string versi
 
 void
 CdlConfigurationBody::change_package_version(CdlPackage package, std::string version,
 
 void
 CdlConfigurationBody::change_package_version(CdlPackage package, std::string version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG1XV(this);
@@ -377,7 +377,7 @@ CdlConfigurationBody::change_package_version(CdlPackage package, std::string ver
 
 void
 CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::string name, std::string new_version,
 
 void
 CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::string name, std::string new_version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG2XV(this, transaction);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG2XV(this, transaction);
@@ -388,15 +388,15 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::st
     CdlPackage package = 0;
     CdlNode node = this->lookup(name);
     if (0 != node) {
     CdlPackage package = 0;
     CdlNode node = this->lookup(name);
     if (0 != node) {
-        package = dynamic_cast<CdlPackage>(node);
+       package = dynamic_cast<CdlPackage>(node);
     }
     // For now it is illegal to change the version of package that has
     // not been loaded yet
     if (0 == package) {
     }
     // For now it is illegal to change the version of package that has
     // not been loaded yet
     if (0 == package) {
-        throw CdlInputOutputException(std::string("Cannot change version of \"") + name + "\" , this package is not loaded");
+       throw CdlInputOutputException(std::string("Cannot change version of \"") + name + "\" , this package is not loaded");
     }
     CYG_ASSERT_CLASSC(package);
     }
     CYG_ASSERT_CLASSC(package);
-    
+
     this->change_package_version(transaction, package, new_version, error_fn, warn_fn, limbo);
 
     CYG_REPORT_RETURN();
     this->change_package_version(transaction, package, new_version, error_fn, warn_fn, limbo);
 
     CYG_REPORT_RETURN();
@@ -404,7 +404,7 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, std::st
 
 void
 CdlConfigurationBody::add(std::string filename,
 
 void
 CdlConfigurationBody::add(std::string filename,
-                          CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
+                         CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::add");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::add");
     CYG_REPORT_FUNCARG1XV(this);
@@ -418,7 +418,7 @@ CdlConfigurationBody::add(std::string filename,
 
 void
 CdlConfigurationBody::set_template(std::string name, std::string version,
 
 void
 CdlConfigurationBody::set_template(std::string name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template");
     CYG_REPORT_FUNCARG1XV(this);
@@ -432,7 +432,7 @@ CdlConfigurationBody::set_template(std::string name, std::string version,
 
 void
 CdlConfigurationBody::set_template_file(std::string filename,
 
 void
 CdlConfigurationBody::set_template_file(std::string filename,
-                                        CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                       CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template_file");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template_file");
     CYG_REPORT_FUNCARG1XV(this);
@@ -446,23 +446,23 @@ CdlConfigurationBody::set_template_file(std::string filename,
 
 void
 CdlConfigurationBody::set_template(CdlTransaction transaction, std::string template_name, std::string version,
 
 void
 CdlConfigurationBody::set_template(CdlTransaction transaction, std::string template_name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template");
     CYG_REPORT_FUNCARG2XV(this, transaction);
 
     // Some consistency checks before doing anything damaging
     if (!this->database->is_known_template(template_name)) {
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template");
     CYG_REPORT_FUNCARG2XV(this, transaction);
 
     // Some consistency checks before doing anything damaging
     if (!this->database->is_known_template(template_name)) {
-        throw CdlInputOutputException("Unknown template " + template_name);
+       throw CdlInputOutputException("Unknown template " + template_name);
     }
     std::string template_filename = this->database->get_template_filename(template_name, version);
     if ("" == template_filename) {
     }
     std::string template_filename = this->database->get_template_filename(template_name, version);
     if ("" == template_filename) {
-        if ("" == version) {
-            throw CdlInputOutputException("There is no template file corresponding to " + template_name);
-        } else {
-            throw CdlInputOutputException("There is no temmplate file corresponding to version "
-                                          + version + " of " + template_name);
-        }
+       if ("" == version) {
+           throw CdlInputOutputException("There is no template file corresponding to " + template_name);
+       } else {
+           throw CdlInputOutputException("There is no temmplate file corresponding to version "
+                                         + version + " of " + template_name);
+       }
     }
 
     // Now use set_template_file() to do the hard work.
     }
 
     // Now use set_template_file() to do the hard work.
@@ -487,7 +487,7 @@ CdlConfigurationBody::unload_template(bool limbo)
 
 void
 CdlConfigurationBody::set_hardware(std::string name,
 
 void
 CdlConfigurationBody::set_hardware(std::string name,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_hardware");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_hardware");
     CYG_REPORT_FUNCARG1XV(this);
@@ -513,7 +513,7 @@ CdlConfigurationBody::unload_hardware(bool limbo)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Load and unload - transaction support            
+//{{{  Load and unload - transaction support
 
 // ----------------------------------------------------------------------------
 // A number of commit/cancel auxiliary classes are needed to allow the
 
 // ----------------------------------------------------------------------------
 // A number of commit/cancel auxiliary classes are needed to allow the
@@ -527,30 +527,30 @@ class CdlConfiguration_CommitCancelLoad :
   public:
 
     CdlConfiguration_CommitCancelLoad(CdlPackage package_arg)
   public:
 
     CdlConfiguration_CommitCancelLoad(CdlPackage package_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
     {
-        CYG_ASSERT_CLASSC(package_arg);
-        package = package_arg;
+       CYG_ASSERT_CLASSC(package_arg);
+       package = package_arg;
     }
     ~CdlConfiguration_CommitCancelLoad()
     {
     }
     ~CdlConfiguration_CommitCancelLoad()
     {
-        package = 0;
+       package = 0;
     }
     void commit(CdlTransaction transaction)
     {
     }
     void commit(CdlTransaction transaction)
     {
-        CYG_ASSERT_CLASSC(package);
-        CdlLoadableBody::transaction_commit_load(transaction, package);
-        package = 0;
+       CYG_ASSERT_CLASSC(package);
+       CdlLoadableBody::transaction_commit_load(transaction, package);
+       package = 0;
     }
     void cancel(CdlTransaction transaction)
     {
     }
     void cancel(CdlTransaction transaction)
     {
-        CYG_ASSERT_CLASSC(package);
-        CdlLoadableBody::transaction_cancel_load(transaction, package);
-        package = 0;
+       CYG_ASSERT_CLASSC(package);
+       CdlLoadableBody::transaction_cancel_load(transaction, package);
+       package = 0;
     }
     }
-    
+
   protected:
   protected:
-    
+
   private:
     CdlConfiguration_CommitCancelLoad()
     {
   private:
     CdlConfiguration_CommitCancelLoad()
     {
@@ -565,26 +565,26 @@ class CdlConfiguration_CommitCancelUnload :
 
   public:
     CdlConfiguration_CommitCancelUnload(CdlPackage package_arg)
 
   public:
     CdlConfiguration_CommitCancelUnload(CdlPackage package_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
     {
-        CYG_ASSERT_CLASSC(package_arg);
-        package = package_arg;
+       CYG_ASSERT_CLASSC(package_arg);
+       package = package_arg;
     }
     ~CdlConfiguration_CommitCancelUnload()
     {
     }
     ~CdlConfiguration_CommitCancelUnload()
     {
-        package = 0;
+       package = 0;
     }
     void commit(CdlTransaction transaction)
     {
     }
     void commit(CdlTransaction transaction)
     {
-        CYG_PRECONDITION_CLASSC(package);
-        CdlLoadableBody::transaction_commit_unload(transaction, package);
-        package = 0;
+       CYG_PRECONDITION_CLASSC(package);
+       CdlLoadableBody::transaction_commit_unload(transaction, package);
+       package = 0;
     }
     void cancel(CdlTransaction transaction)
     {
     }
     void cancel(CdlTransaction transaction)
     {
-        CYG_PRECONDITION_CLASSC(package);
-        CdlLoadableBody::transaction_cancel_unload(transaction, package);
-        package = 0;
+       CYG_PRECONDITION_CLASSC(package);
+       CdlLoadableBody::transaction_cancel_unload(transaction, package);
+       package = 0;
     }
 
   protected:
     }
 
   protected:
@@ -603,34 +603,34 @@ class CdlConfiguration_CommitCancelHardwareName :
     public CdlTransactionCommitCancelOp
 {
     friend class CdlTest;
     public CdlTransactionCommitCancelOp
 {
     friend class CdlTest;
-    
+
   public:
     CdlConfiguration_CommitCancelHardwareName(std::string old_name_arg)
   public:
     CdlConfiguration_CommitCancelHardwareName(std::string old_name_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
     {
-        old_name = old_name_arg;
+       old_name = old_name_arg;
     }
     ~CdlConfiguration_CommitCancelHardwareName()
     {
     }
     ~CdlConfiguration_CommitCancelHardwareName()
     {
-        old_name = "";
+       old_name = "";
     }
     void commit(CdlTransaction transaction)
     {
     }
     void commit(CdlTransaction transaction)
     {
-        // The new name is already installed, nothing more needs to happen.
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       // The new name is already installed, nothing more needs to happen.
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     void cancel(CdlTransaction transaction)
     {
     }
     void cancel(CdlTransaction transaction)
     {
-        // Restore the old name
-        CdlToplevel toplevel = transaction->get_toplevel();
-        CYG_ASSERTC(0 != toplevel);
-        CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
-        CYG_ASSERT_CLASSC(configuration);
+       // Restore the old name
+       CdlToplevel toplevel = transaction->get_toplevel();
+       CYG_ASSERTC(0 != toplevel);
+       CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
+       CYG_ASSERT_CLASSC(configuration);
 
 
-        configuration->set_hardware_name(old_name);
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       configuration->set_hardware_name(old_name);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     }
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -644,34 +644,34 @@ class CdlConfiguration_CommitCancelTemplateName :
     public CdlTransactionCommitCancelOp
 {
     friend class CdlTest;
     public CdlTransactionCommitCancelOp
 {
     friend class CdlTest;
-    
+
   public:
     CdlConfiguration_CommitCancelTemplateName(std::string old_name_arg)
   public:
     CdlConfiguration_CommitCancelTemplateName(std::string old_name_arg)
-        : CdlTransactionCommitCancelOp()
+       : CdlTransactionCommitCancelOp()
     {
     {
-        old_name = old_name_arg;
+       old_name = old_name_arg;
     }
     ~CdlConfiguration_CommitCancelTemplateName()
     {
     }
     ~CdlConfiguration_CommitCancelTemplateName()
     {
-        old_name = "";
+       old_name = "";
     }
     void commit(CdlTransaction transaction)
     {
     }
     void commit(CdlTransaction transaction)
     {
-        // The new name is already installed, nothing more needs to happen.
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       // The new name is already installed, nothing more needs to happen.
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     void cancel(CdlTransaction transaction)
     {
     }
     void cancel(CdlTransaction transaction)
     {
-        // Restore the old name
-        CdlToplevel toplevel = transaction->get_toplevel();
-        CYG_ASSERTC(0 != toplevel);
-        CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
-        CYG_ASSERT_CLASSC(configuration);
+       // Restore the old name
+       CdlToplevel toplevel = transaction->get_toplevel();
+       CYG_ASSERTC(0 != toplevel);
+       CdlConfiguration configuration = dynamic_cast<CdlConfiguration>(toplevel);
+       CYG_ASSERT_CLASSC(configuration);
 
 
-        configuration->set_template_name(old_name);
-        CYG_UNUSED_PARAM(CdlTransaction, transaction);
+       configuration->set_template_name(old_name);
+       CYG_UNUSED_PARAM(CdlTransaction, transaction);
     }
     }
-    
+
   protected:
 
   private:
   protected:
 
   private:
@@ -682,7 +682,7 @@ class CdlConfiguration_CommitCancelTemplateName :
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlConfiguration::load_package()                 
+//{{{  CdlConfiguration::load_package()
 
 // ----------------------------------------------------------------------------
 // Loading a package into the current level. This involves the following
 
 // ----------------------------------------------------------------------------
 // Loading a package into the current level. This involves the following
@@ -726,7 +726,7 @@ class CdlConfiguration_CommitCancelTemplateName :
 
 void
 CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name, std::string version,
 
 void
 CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name, std::string version,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::load_package");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::load_package");
     CYG_REPORT_FUNCARG1XV(this);
@@ -737,15 +737,15 @@ CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name,
     // Locate the database entry. Also check the version (filling it in if necessary).
     // Get hold of the package directory and the initial script.
     if (!database->is_known_package(name)) {
     // Locate the database entry. Also check the version (filling it in if necessary).
     // Get hold of the package directory and the initial script.
     if (!database->is_known_package(name)) {
-        throw CdlInputOutputException("Unknown package " + name);
+       throw CdlInputOutputException("Unknown package " + name);
     }
     const std::vector<std::string>& versions = database->get_package_versions(name);
     if ("" == version) {
     }
     const std::vector<std::string>& versions = database->get_package_versions(name);
     if ("" == version) {
-        version = *(versions.begin());
+       version = *(versions.begin());
     } else {
     } else {
-        if (std::find(versions.begin(), versions.end(), version) == versions.end()) {
-            throw CdlInputOutputException("Package " + name + " does not have an installed version `" + version + "'.");
-        }
+       if (std::find(versions.begin(), versions.end(), version) == versions.end()) {
+           throw CdlInputOutputException("Package " + name + " does not have an installed version `" + version + "'.");
+       }
     }
     std::string directory       = database->get_package_directory(name);
     std::string script          = database->get_package_script(name);
     }
     std::string directory       = database->get_package_directory(name);
     std::string script          = database->get_package_script(name);
@@ -759,137 +759,137 @@ CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name,
     std::string tcl_cmd = "regsub -all -- {\\\\} [file join " + directory + " " + version + "] / result; return $result";
     std::string tcl_result;
     if (TCL_OK != interp->eval(tcl_cmd, tcl_result)) {
     std::string tcl_cmd = "regsub -all -- {\\\\} [file join " + directory + " " + version + "] / result; return $result";
     std::string tcl_result;
     if (TCL_OK != interp->eval(tcl_cmd, tcl_result)) {
-        throw CdlInputOutputException("Cannot load package `" + name + "', internal error constructing pathname.");
+       throw CdlInputOutputException("Cannot load package `" + name + "', internal error constructing pathname.");
     }
     directory = tcl_result;
     }
     directory = tcl_result;
-    
+
     tcl_cmd   = "file isdirectory [file join \"" + database->get_component_repository() + "\" " + directory + "]";
     if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
     tcl_cmd   = "file isdirectory [file join \"" + database->get_component_repository() + "\" " + directory + "]";
     if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
-        throw CdlInputOutputException("Cannot load package `" + name + "', there is no directory `" + directory + "'.");
+       throw CdlInputOutputException("Cannot load package `" + name + "', there is no directory `" + directory + "'.");
     }
     }
-    
+
     // Make sure that there is no name conflict. No resources have been allocated
     // yet, so this is a good time.
     CdlNode node = lookup(name);
     if (0 != node) {
     // Make sure that there is no name conflict. No resources have been allocated
     // yet, so this is a good time.
     CdlNode node = lookup(name);
     if (0 != node) {
-        if (0 != dynamic_cast<CdlPackage>(node)) {
-            throw CdlInputOutputException("Package `" + name + "' is already loaded.");
-        } else {
+       if (0 != dynamic_cast<CdlPackage>(node)) {
+           throw CdlInputOutputException("Package `" + name + "' is already loaded.");
+       } else {
 
 
-            std::string msg = "Name clash for package `" + name + "',there is a `" +
-                node->get_class_name() + " " + name + "' already loaded";
-            CdlLoadable owner_pkg = node->get_owner();
-            if (0 != owner_pkg) {
-                msg += " in package " + owner_pkg->get_name();
-            }
-            throw CdlInputOutputException(msg);
-        }
+           std::string msg = "Name clash for package `" + name + "',there is a `" +
+               node->get_class_name() + " " + name + "' already loaded";
+           CdlLoadable owner_pkg = node->get_owner();
+           if (0 != owner_pkg) {
+               msg += " in package " + owner_pkg->get_name();
+           }
+           throw CdlInputOutputException(msg);
+       }
     }
 
     // Now create the package object itself.
     CdlPackage package  = 0;
     bool       bound    = false;
     CdlConfiguration_CommitCancelLoad* load_op  = 0;
     }
 
     // Now create the package object itself.
     CdlPackage package  = 0;
     bool       bound    = false;
     CdlConfiguration_CommitCancelLoad* load_op  = 0;
-    
+
     try {
     try {
-        package = new CdlPackageBody(name, this, directory);
-
-        // The package should be added to the hierarchy immediately.
-        // All nodes will get added to the hierarchy as they are
-        // created, an operation that has to be undone during
-        // failure. 
-        this->add_node(package, this, package);
-        
-        // Load the package data. The various nodes will all end up
-        // in a hierarchy below the package, but without any checks
-        // for name conflicts etc and ignoring any re-parenting.
-        CdlInterpreter interp = package->get_interpreter();
-        CYG_ASSERT_CLASSC(interp);
-
-        interp->add_command("unknown",  &CdlParse::unknown_command);
-        CdlInterpreterBody::DiagSupport diag_support(interp, error_fn, warn_fn);
-        
-        // Next figure out the script name, and make sure that it exists.
-        std::string actual_script = package->find_absolute_file(script, "cdl");
-        if ("" == actual_script) {
-            throw CdlInputOutputException("Package " + name + ", unable to find initial script " + script);
-        }
-        tcl_cmd = "file isfile \"" + actual_script + "\"";
-        if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
-            throw CdlInputOutputException("Package " + name + ", " + actual_script + " is not a CDL script");
-        }
-
-        // The script is valid. Set up the interpreter appropriately.
-        CdlParse::clear_error_count(interp);
-        static CdlInterpreterCommandEntry commands[] =
-        {
-            CdlInterpreterCommandEntry("cdl_package",    &CdlPackageBody::parse_package     ),
-            CdlInterpreterCommandEntry("cdl_component",  &CdlComponentBody::parse_component ),
-            CdlInterpreterCommandEntry("cdl_option",     &CdlOptionBody::parse_option       ),
-            CdlInterpreterCommandEntry("cdl_interface",  &CdlInterfaceBody::parse_interface ),
-            CdlInterpreterCommandEntry("cdl_dialog",     &CdlDialogBody::parse_dialog       ),
-            CdlInterpreterCommandEntry("cdl_wizard",     &CdlWizardBody::parse_wizard       ),
-            CdlInterpreterCommandEntry("",               0                                  )
-        };
-        CdlInterpreterBody::CommandSupport   interp_cmds(interp, commands);
-        CdlInterpreterBody::ContainerSupport interp_container(interp, package);
-        CdlInterpreterBody::ContextSupport   interp_context(interp, actual_script);
-        
-        // The interpreter is now ready.
-        (void) interp->eval_file(actual_script);
-
-        // Clean out the commands etc. This interpreter may get used again
-        // in future, and it should not be possible to define new options
-        // etc. in that invocation.
-        interp->remove_command("unknown");
-        
-        // All the data has been read in without generating an
-        // exception. However there may have been errors reported via
-        // the parse_error_fn, and any errors at all should result
-        // in an exception.
-        int error_count = CdlParse::get_error_count(interp);
-        if (error_count > 0) {
-            std::string tmp;
-            Cdl::integer_to_string(error_count, tmp);
-            throw CdlParseException("Package " + name + ", " + tmp + " error" +
-                                    ((error_count > 1) ? "s" : "") +
-                                    " occurred while reading in the CDL data.");
-        }
-
-        // All the data has been read in, implying that there are no
-        // fatal problems with the data. Now try to bind all
-        // references to and from this loadable.
-        package->bind(transaction);
-        bound = true;
-
-        // Finally, create a suitable transaction commit/cancel object
-        // and add it to the transaction.
-        load_op = new CdlConfiguration_CommitCancelLoad(package);
-        transaction->add_commit_cancel_op(load_op);
-        
+       package = new CdlPackageBody(name, this, directory);
+
+       // The package should be added to the hierarchy immediately.
+       // All nodes will get added to the hierarchy as they are
+       // created, an operation that has to be undone during
+       // failure.
+       this->add_node(package, this, package);
+
+       // Load the package data. The various nodes will all end up
+       // in a hierarchy below the package, but without any checks
+       // for name conflicts etc and ignoring any re-parenting.
+       CdlInterpreter interp = package->get_interpreter();
+       CYG_ASSERT_CLASSC(interp);
+
+       interp->add_command("unknown",  &CdlParse::unknown_command);
+       CdlInterpreterBody::DiagSupport diag_support(interp, error_fn, warn_fn);
+
+       // Next figure out the script name, and make sure that it exists.
+       std::string actual_script = package->find_absolute_file(script, "cdl");
+       if ("" == actual_script) {
+           throw CdlInputOutputException("Package " + name + ", unable to find initial script " + script);
+       }
+       tcl_cmd = "file isfile \"" + actual_script + "\"";
+       if ((TCL_OK != interp->eval(tcl_cmd, tcl_result)) || ("1" != tcl_result)) {
+           throw CdlInputOutputException("Package " + name + ", " + actual_script + " is not a CDL script");
+       }
+
+       // The script is valid. Set up the interpreter appropriately.
+       CdlParse::clear_error_count(interp);
+       static CdlInterpreterCommandEntry commands[] =
+       {
+           CdlInterpreterCommandEntry("cdl_package",    &CdlPackageBody::parse_package     ),
+           CdlInterpreterCommandEntry("cdl_component",  &CdlComponentBody::parse_component ),
+           CdlInterpreterCommandEntry("cdl_option",     &CdlOptionBody::parse_option       ),
+           CdlInterpreterCommandEntry("cdl_interface",  &CdlInterfaceBody::parse_interface ),
+           CdlInterpreterCommandEntry("cdl_dialog",     &CdlDialogBody::parse_dialog       ),
+           CdlInterpreterCommandEntry("cdl_wizard",     &CdlWizardBody::parse_wizard       ),
+           CdlInterpreterCommandEntry("",               0                                  )
+       };
+       CdlInterpreterBody::CommandSupport   interp_cmds(interp, commands);
+       CdlInterpreterBody::ContainerSupport interp_container(interp, package);
+       CdlInterpreterBody::ContextSupport   interp_context(interp, actual_script);
+
+       // The interpreter is now ready.
+       (void) interp->eval_file(actual_script);
+
+       // Clean out the commands etc. This interpreter may get used again
+       // in future, and it should not be possible to define new options
+       // etc. in that invocation.
+       interp->remove_command("unknown");
+
+       // All the data has been read in without generating an
+       // exception. However there may have been errors reported via
+       // the parse_error_fn, and any errors at all should result
+       // in an exception.
+       int error_count = CdlParse::get_error_count(interp);
+       if (error_count > 0) {
+           std::string tmp;
+           Cdl::integer_to_string(error_count, tmp);
+           throw CdlParseException("Package " + name + ", " + tmp + " error" +
+                                   ((error_count > 1) ? "s" : "") +
+                                   " occurred while reading in the CDL data.");
+       }
+
+       // All the data has been read in, implying that there are no
+       // fatal problems with the data. Now try to bind all
+       // references to and from this loadable.
+       package->bind(transaction);
+       bound = true;
+
+       // Finally, create a suitable transaction commit/cancel object
+       // and add it to the transaction.
+       load_op = new CdlConfiguration_CommitCancelLoad(package);
+       transaction->add_commit_cancel_op(load_op);
+
     } catch (...) {
 
     } catch (...) {
 
-        // Something went wrong during the create or load. It is necessary
-        // to delete the package. Undo all the operations above, in
-        // reverse order. The add_commit_cancel_op() was the last step,
-        // so need not be undone here.
-        if (0 != load_op) {
-            delete load_op;
-        }
-        
-        if (0 != package) {
-            // Note: no attempt is made to recover from errors here
-            if (bound) {
-                package->unbind(transaction);
-            }
-            this->remove_loadable_from_toplevel(package);
-            delete package;
-        } 
-        throw;
+       // Something went wrong during the create or load. It is necessary
+       // to delete the package. Undo all the operations above, in
+       // reverse order. The add_commit_cancel_op() was the last step,
+       // so need not be undone here.
+       if (0 != load_op) {
+           delete load_op;
+       }
+
+       if (0 != package) {
+           // Note: no attempt is made to recover from errors here
+           if (bound) {
+               package->unbind(transaction);
+           }
+           this->remove_loadable_from_toplevel(package);
+           delete package;
+       }
+       throw;
     }
 
     // FIXME: implement limbo support
     }
 
     // FIXME: implement limbo support
-    
+
     // We also have a sensible value for the package as a whole.
     // Use this value for both default and user - after all the
     // user has selected the package.
     // We also have a sensible value for the package as a whole.
     // Use this value for both default and user - after all the
     // user has selected the package.
@@ -900,7 +900,7 @@ CdlConfigurationBody::load_package(CdlTransaction transaction, std::string name,
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlConfiguration::unload_package()               
+//{{{  CdlConfiguration::unload_package()
 
 // ----------------------------------------------------------------------------
 // Unloading a package is very simple. If requested, save all current
 
 // ----------------------------------------------------------------------------
 // Unloading a package is very simple. If requested, save all current
@@ -924,52 +924,52 @@ CdlConfigurationBody::unload_package(CdlTransaction transaction, CdlPackage pack
     CYG_PRECONDITION_CLASSC(package);
 
     if (limbo) {
     CYG_PRECONDITION_CLASSC(package);
 
     if (limbo) {
-        const std::vector<CdlNode>& pkg_contents = package->get_owned();
-        std::vector<CdlNode>::const_iterator node_i;
-
-        for (node_i = pkg_contents.begin(); node_i != pkg_contents.end(); node_i++) {
-            CdlValuable valuable = dynamic_cast<CdlValuable>(*node_i);
-            if (0 != valuable) {
-                if (valuable->has_source(CdlValueSource_Inferred) ||
-                    valuable->has_source(CdlValueSource_Wizard)   ||
-                    valuable->has_source(CdlValueSource_User)) {
-                    
-                    set_limbo_value(valuable);
-                }
-            }
-        }
+       const std::vector<CdlNode>& pkg_contents = package->get_owned();
+       std::vector<CdlNode>::const_iterator node_i;
+
+       for (node_i = pkg_contents.begin(); node_i != pkg_contents.end(); node_i++) {
+           CdlValuable valuable = dynamic_cast<CdlValuable>(*node_i);
+           if (0 != valuable) {
+               if (valuable->has_source(CdlValueSource_Inferred) ||
+                   valuable->has_source(CdlValueSource_Wizard)   ||
+                   valuable->has_source(CdlValueSource_User)) {
+
+                   set_limbo_value(valuable);
+               }
+           }
+       }
     }
 
     bool unbound = false;
     bool removed = false;
     CdlConfiguration_CommitCancelUnload* unload_op = 0;
     try {
     }
 
     bool unbound = false;
     bool removed = false;
     CdlConfiguration_CommitCancelUnload* unload_op = 0;
     try {
-        
-        package->unbind(transaction);
-        unbound = true;
-        this->remove_loadable_from_toplevel(package);
-        removed = true;
-        unload_op = new CdlConfiguration_CommitCancelUnload(package);
-        transaction->add_commit_cancel_op(unload_op);
-        
+
+       package->unbind(transaction);
+       unbound = true;
+       this->remove_loadable_from_toplevel(package);
+       removed = true;
+       unload_op = new CdlConfiguration_CommitCancelUnload(package);
+       transaction->add_commit_cancel_op(unload_op);
+
     } catch(...) {
     } catch(...) {
-        if (0 != unload_op) {
-            delete unload_op;
-        }
-        if (removed) {
-            this->add_loadable_to_toplevel(package);
-        }
-        if (unbound) {
-            package->bind(transaction);
-        }
-        throw;
-    }
-    
+       if (0 != unload_op) {
+           delete unload_op;
+       }
+       if (removed) {
+           this->add_loadable_to_toplevel(package);
+       }
+       if (unbound) {
+           package->bind(transaction);
+       }
+       throw;
+    }
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::change_package_version()       
+//{{{  CdlConfiguration::change_package_version()
 
 // ----------------------------------------------------------------------------
 // Changing a package version is just a case of unloading the old version
 
 // ----------------------------------------------------------------------------
 // Changing a package version is just a case of unloading the old version
@@ -979,7 +979,7 @@ CdlConfigurationBody::unload_package(CdlTransaction transaction, CdlPackage pack
 
 void
 CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPackage package, std::string new_version,
 
 void
 CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPackage package, std::string new_version,
-                                             CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                            CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG3XV(this, transaction, package);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::change_package_version");
     CYG_REPORT_FUNCARG3XV(this, transaction, package);
@@ -993,34 +993,34 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPack
     std::string name = package->get_name();
     const std::vector<std::string>& pkg_versions = database->get_package_versions(name);
     if ("" == new_version) {
     std::string name = package->get_name();
     const std::vector<std::string>& pkg_versions = database->get_package_versions(name);
     if ("" == new_version) {
-        new_version = *(pkg_versions.begin());
+       new_version = *(pkg_versions.begin());
     } else if (std::find(pkg_versions.begin(), pkg_versions.end(), new_version) == pkg_versions.end()) {
     } else if (std::find(pkg_versions.begin(), pkg_versions.end(), new_version) == pkg_versions.end()) {
-        throw CdlInputOutputException("Version " + new_version + " of package " + name + " is not installed.");
+       throw CdlInputOutputException("Version " + new_version + " of package " + name + " is not installed.");
     }
 
     bool unloaded = false;
     try {
     }
 
     bool unloaded = false;
     try {
-        this->unload_package(transaction, package, limbo);
-        unloaded = true;
-        this->load_package(transaction, name, new_version, error_fn, warn_fn, limbo);
+       this->unload_package(transaction, package, limbo);
+       unloaded = true;
+       this->load_package(transaction, name, new_version, error_fn, warn_fn, limbo);
     } catch(...) {
     } catch(...) {
-        if (unloaded) {
-            // There should be a commit/cancel op for the unload package step.
-            // This can be undone.
-            CdlTransactionCommitCancelOp* unload_op = transaction->get_last_commit_cancel_op();
-            CYG_ASSERTC(0 != unload_op);
-            CYG_ASSERTC(0 != dynamic_cast<CdlConfiguration_CommitCancelUnload*>(unload_op));
-            transaction->cancel_last_commit_cancel_op();
-            CYG_UNUSED_PARAM(CdlTransactionCommitCancelOp*, unload_op);
-        }
-        throw;
+       if (unloaded) {
+           // There should be a commit/cancel op for the unload package step.
+           // This can be undone.
+           CdlTransactionCommitCancelOp* unload_op = transaction->get_last_commit_cancel_op();
+           CYG_ASSERTC(0 != unload_op);
+           CYG_ASSERTC(0 != dynamic_cast<CdlConfiguration_CommitCancelUnload*>(unload_op));
+           transaction->cancel_last_commit_cancel_op();
+           CYG_UNUSED_PARAM(CdlTransactionCommitCancelOp*, unload_op);
+       }
+       throw;
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::set_hardware() etc.            
+//{{{  CdlConfiguration::set_hardware() etc.
 
 // ----------------------------------------------------------------------------
 // Setting the hardware involves unloading the old hardware, if any, and
 
 // ----------------------------------------------------------------------------
 // Setting the hardware involves unloading the old hardware, if any, and
@@ -1031,7 +1031,7 @@ CdlConfigurationBody::change_package_version(CdlTransaction transaction, CdlPack
 
 void
 CdlConfigurationBody::set_hardware(CdlTransaction transaction, std::string target_name,
 
 void
 CdlConfigurationBody::set_hardware(CdlTransaction transaction, std::string target_name,
-                                   CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                  CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_hardware");
     CYG_REPORT_FUNCARG2XV(this, transaction);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_hardware");
     CYG_REPORT_FUNCARG2XV(this, transaction);
@@ -1040,153 +1040,153 @@ CdlConfigurationBody::set_hardware(CdlTransaction transaction, std::string targe
 
     // Minimal consistency check before attempting anything complicated.
     if (!database->is_known_target(target_name)) {
 
     // Minimal consistency check before attempting anything complicated.
     if (!database->is_known_target(target_name)) {
-        throw CdlInputOutputException("Unknown target " + target_name);
+       throw CdlInputOutputException("Unknown target " + target_name);
     }
 
     CdlInterpreter interp = this->get_interpreter();
     CdlInterpreterBody::DiagSupport    diag_support(interp, error_fn, warn_fn);
     CdlInterpreterBody::ContextSupport context_support(interp, "Hardware selection");
     }
 
     CdlInterpreter interp = this->get_interpreter();
     CdlInterpreterBody::DiagSupport    diag_support(interp, error_fn, warn_fn);
     CdlInterpreterBody::ContextSupport context_support(interp, "Hardware selection");
-    
+
     CdlConfiguration_CommitCancelHardwareName* rename_op = new CdlConfiguration_CommitCancelHardwareName(current_hardware);
     try {
     CdlConfiguration_CommitCancelHardwareName* rename_op = new CdlConfiguration_CommitCancelHardwareName(current_hardware);
     try {
-        transaction->add_commit_cancel_op(rename_op);
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        int i;
-        for (i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_hardware()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
-        current_hardware = "";
-
-        if ("" != target_name) {
-            
-            const std::vector<std::string>& packages = database->get_target_packages(target_name);
-            std::vector<std::string>::const_iterator    name_i;
-            for (name_i = packages.begin(); name_i != packages.end(); name_i++) {
-                // Target specifications may refer to packages that are not
-                // installed. This is useful in e.g. an anoncvs environment.
-                if (database->is_known_package(*name_i)) {
-                    // It is possible for a hardware package to have been
-                    // loaded separately, in which case there is no point in
-                    // loading it again.
-                    if (0 == this->lookup(*name_i)) {
-                        this->load_package(transaction, *name_i, "",
-                                           error_fn, warn_fn, limbo);
-                        CdlPackage package = dynamic_cast<CdlPackage>(this->lookup(*name_i));
-                        CYG_LOOP_INVARIANT_CLASSC(package);
-                        package->loaded_for_hardware = true;
-                    }
-                } else {
-                    CdlParse::report_warning(interp, "",
-                                             std::string("The target specification lists a package `") + *name_i +
-                                             "' which is not present in the component repository.");
-                }
-            }
-        }
-        current_hardware = target_name;
-        
+       transaction->add_commit_cancel_op(rename_op);
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       int i;
+       for (i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_hardware()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
+       current_hardware = "";
+
+       if ("" != target_name) {
+
+           const std::vector<std::string>& packages = database->get_target_packages(target_name);
+           std::vector<std::string>::const_iterator    name_i;
+           for (name_i = packages.begin(); name_i != packages.end(); name_i++) {
+               // Target specifications may refer to packages that are not
+               // installed. This is useful in e.g. an anoncvs environment.
+               if (database->is_known_package(*name_i)) {
+                   // It is possible for a hardware package to have been
+                   // loaded separately, in which case there is no point in
+                   // loading it again.
+                   if (0 == this->lookup(*name_i)) {
+                       this->load_package(transaction, *name_i, "",
+                                          error_fn, warn_fn, limbo);
+                       CdlPackage package = dynamic_cast<CdlPackage>(this->lookup(*name_i));
+                       CYG_LOOP_INVARIANT_CLASSC(package);
+                       package->loaded_for_hardware = true;
+                   }
+               } else {
+                   CdlParse::report_warning(interp, "",
+                                            std::string("The target specification lists a package `") + *name_i +
+                                            "' which is not present in the component repository.");
+               }
+           }
+       }
+       current_hardware = target_name;
+
     } catch(...) {
     } catch(...) {
-        // Cancel all operations up to and including the rename_op
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
+       // Cancel all operations up to and including the rename_op
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
     }
 
     // There may have been enables/disables and value data for that target
     // FIXME: any problems get ignored quietly. There should at least
     // be some warnings.
     if ("" != target_name) {
     }
 
     // There may have been enables/disables and value data for that target
     // FIXME: any problems get ignored quietly. There should at least
     // be some warnings.
     if ("" != target_name) {
-        const std::vector<std::string>& enables  = database->get_target_enables(target_name);
-        const std::vector<std::string>& disables = database->get_target_disables(target_name);
-        const std::vector<std::pair<std::string, std::string> >& set_values = database->get_target_set_values(target_name);
-        
-        if ((0 != enables.size()) || (0 != disables.size()) || (0 != set_values.size())) {
-            std::vector<std::string>::const_iterator opt_i;
-            CdlNode     node;
-            CdlValuable valuable;
-            CdlValueFlavor flavor;
-            
-            for (opt_i = enables.begin(); opt_i != enables.end(); opt_i++) {
-                valuable = 0;
-                node     = this->lookup(*opt_i);
-                if (0 != node) {
-                    valuable = dynamic_cast<CdlValuable>(node);
-                    if (0 != valuable) {
-                    }
-                }
-                if (0 != valuable) {
-                    flavor = valuable->get_flavor();
-                    if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-                        valuable->enable(transaction, CdlValueSource_User);
-                    } else {
-                        CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                                 std::string("The option `") + *opt_i +
-                                                 "' is supposed to be enabled for this target.\n" +
-                                                 "However the option does not have a bool or booldata flavors.");
-                    }
-                } else {
-                    CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                             std::string("The option `") + *opt_i +
-                                             "' is supposed to be enabled for this target.\n" +
-                                             "However this option is not in the current configuration.");
-                }
-            }
-            for (opt_i = disables.begin(); opt_i != disables.end(); opt_i++) {
-                valuable = 0;
-                node = this->lookup(*opt_i);
-                if (0 != node) {
-                    valuable = dynamic_cast<CdlValuable>(node);
-                }
-                if (0 != valuable) {
-                    flavor = valuable->get_flavor();
-                    if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-                        valuable->disable(transaction, CdlValueSource_User);
-                    } else {
-                        CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                                 std::string("The option `") + *opt_i +
-                                                 "' is supposed to be disabled for this target.\n" +
-                                                 "However the option does not have a bool or booldata flavors.");
-                    }
-                } else {
-                    CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                             std::string("The option `") + *opt_i +
-                                             "' is supposed to be disabled for this target.\n" +
-                                             "However this option is not in the current configuration.");
-                }
-            }
-            std::vector<std::pair<std::string,std::string> >::const_iterator value_i;
-            for (value_i = set_values.begin(); value_i != set_values.end(); value_i++) {
-                valuable = 0;
-                node = this->lookup(value_i->first);
-                if (0 != node) {
-                    valuable = dynamic_cast<CdlValuable>(node);
-                }
-                if (0 != valuable) {
-                    flavor = valuable->get_flavor();
-                    if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
-                        valuable->set_value(transaction, value_i->second, CdlValueSource_User);
-                    } else {
-                        CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                                 std::string("The option `") + *opt_i +
-                                                 "' is supposed to be given the value `" + value_i->second +
-                                                 "' for this target.\n" +
-                                                 "However the option does not have a data or booldata flavor.");
-                    }
-                } else {
-                    CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
-                                             std::string("The option `") + *opt_i +
-                                             "' is supposed to be given the value `" + value_i->second +
-                                             "' for this target.\n" +
-                                             "However this option is not in the current configuration.");
-                }
-            }
-        }
+       const std::vector<std::string>& enables  = database->get_target_enables(target_name);
+       const std::vector<std::string>& disables = database->get_target_disables(target_name);
+       const std::vector<std::pair<std::string, std::string> >& set_values = database->get_target_set_values(target_name);
+
+       if ((0 != enables.size()) || (0 != disables.size()) || (0 != set_values.size())) {
+           std::vector<std::string>::const_iterator opt_i;
+           CdlNode     node;
+           CdlValuable valuable;
+           CdlValueFlavor flavor;
+
+           for (opt_i = enables.begin(); opt_i != enables.end(); opt_i++) {
+               valuable = 0;
+               node     = this->lookup(*opt_i);
+               if (0 != node) {
+                   valuable = dynamic_cast<CdlValuable>(node);
+                   if (0 != valuable) {
+                   }
+               }
+               if (0 != valuable) {
+                   flavor = valuable->get_flavor();
+                   if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+                       valuable->enable(transaction, CdlValueSource_User);
+                   } else {
+                       CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                                std::string("The option `") + *opt_i +
+                                                "' is supposed to be enabled for this target.\n" +
+                                                "However the option does not have a bool or booldata flavors.");
+                   }
+               } else {
+                   CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                            std::string("The option `") + *opt_i +
+                                            "' is supposed to be enabled for this target.\n" +
+                                            "However this option is not in the current configuration.");
+               }
+           }
+           for (opt_i = disables.begin(); opt_i != disables.end(); opt_i++) {
+               valuable = 0;
+               node = this->lookup(*opt_i);
+               if (0 != node) {
+                   valuable = dynamic_cast<CdlValuable>(node);
+               }
+               if (0 != valuable) {
+                   flavor = valuable->get_flavor();
+                   if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+                       valuable->disable(transaction, CdlValueSource_User);
+                   } else {
+                       CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                                std::string("The option `") + *opt_i +
+                                                "' is supposed to be disabled for this target.\n" +
+                                                "However the option does not have a bool or booldata flavors.");
+                   }
+               } else {
+                   CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                            std::string("The option `") + *opt_i +
+                                            "' is supposed to be disabled for this target.\n" +
+                                            "However this option is not in the current configuration.");
+               }
+           }
+           std::vector<std::pair<std::string,std::string> >::const_iterator value_i;
+           for (value_i = set_values.begin(); value_i != set_values.end(); value_i++) {
+               valuable = 0;
+               node = this->lookup(value_i->first);
+               if (0 != node) {
+                   valuable = dynamic_cast<CdlValuable>(node);
+               }
+               if (0 != valuable) {
+                   flavor = valuable->get_flavor();
+                   if ((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor)) {
+                       valuable->set_value(transaction, value_i->second, CdlValueSource_User);
+                   } else {
+                       CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                                std::string("The option `") + *opt_i +
+                                                "' is supposed to be given the value `" + value_i->second +
+                                                "' for this target.\n" +
+                                                "However the option does not have a data or booldata flavor.");
+                   }
+               } else {
+                   CdlParse::report_warning(interp, std::string("target `") + target_name + "'",
+                                            std::string("The option `") + *opt_i +
+                                            "' is supposed to be given the value `" + value_i->second +
+                                            "' for this target.\n" +
+                                            "However this option is not in the current configuration.");
+               }
+           }
+       }
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -1201,41 +1201,41 @@ CdlConfigurationBody::unload_hardware(CdlTransaction transaction, bool limbo)
 
     CdlConfiguration_CommitCancelHardwareName* rename_op = new CdlConfiguration_CommitCancelHardwareName(current_hardware);
     try {
 
     CdlConfiguration_CommitCancelHardwareName* rename_op = new CdlConfiguration_CommitCancelHardwareName(current_hardware);
     try {
-        transaction->add_commit_cancel_op(rename_op);
+       transaction->add_commit_cancel_op(rename_op);
     } catch(...) {
     } catch(...) {
-        delete rename_op;
-        throw;
+       delete rename_op;
+       throw;
     }
     current_hardware = "";
 
     try {
     }
     current_hardware = "";
 
     try {
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        for (int i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_hardware()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       for (int i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_hardware()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
     } catch(...) {
     } catch(...) {
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlConfiguration::set_template() etc             
+//{{{  CdlConfiguration::set_template() etc
 
 // ----------------------------------------------------------------------------
 void
 CdlConfigurationBody::set_template_file(CdlTransaction transaction, std::string filename,
 
 // ----------------------------------------------------------------------------
 void
 CdlConfigurationBody::set_template_file(CdlTransaction transaction, std::string filename,
-                                        CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
+                                       CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn, bool limbo)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template_file");
     CYG_REPORT_FUNCARG3XV(this, transaction, limbo);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::set_template_file");
     CYG_REPORT_FUNCARG3XV(this, transaction, limbo);
@@ -1258,46 +1258,46 @@ CdlConfigurationBody::set_template_file(CdlTransaction transaction, std::string
     // with savefiles.
     const std::vector<CdlLoadable>& loadables = this->get_loadables();
     unsigned int load_i = loadables.size();
     // with savefiles.
     const std::vector<CdlLoadable>& loadables = this->get_loadables();
     unsigned int load_i = loadables.size();
-    
+
     try {
     try {
-        transaction->add_commit_cancel_op(rename_op);
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        for (i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_template()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
-        current_template = "";
-
-        this->add(transaction, filename, error_fn, warn_fn);
-        this->current_template = filename;
-        this->set_name(saved_name);
-        this->description = saved_description;
-        this->current_hardware = saved_hardware;
-
-        for ( ; load_i < loadables.size(); load_i++) {
-            CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[load_i]);
-            CYG_ASSERT_CLASSC(pkg);
-            pkg->loaded_for_template = true;
-        }
-        
+       transaction->add_commit_cancel_op(rename_op);
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       for (i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_template()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
+       current_template = "";
+
+       this->add(transaction, filename, error_fn, warn_fn);
+       this->current_template = filename;
+       this->set_name(saved_name);
+       this->description = saved_description;
+       this->current_hardware = saved_hardware;
+
+       for ( ; load_i < loadables.size(); load_i++) {
+           CdlPackage pkg = dynamic_cast<CdlPackage>(loadables[load_i]);
+           CYG_ASSERT_CLASSC(pkg);
+           pkg->loaded_for_template = true;
+       }
+
     } catch(...) {
     } catch(...) {
-        
-        this->set_name(saved_name);
-        this->description = saved_description;
-        this->current_hardware = saved_hardware;
-        
-        // Cancel all operations up to and including the rename_op
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
-    }
-    
+
+       this->set_name(saved_name);
+       this->description = saved_description;
+       this->current_hardware = saved_hardware;
+
+       // Cancel all operations up to and including the rename_op
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
+    }
+
 
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
@@ -1312,38 +1312,38 @@ CdlConfigurationBody::unload_template(CdlTransaction transaction, bool limbo)
 
     CdlConfiguration_CommitCancelTemplateName* rename_op = new CdlConfiguration_CommitCancelTemplateName(current_template);
     try {
 
     CdlConfiguration_CommitCancelTemplateName* rename_op = new CdlConfiguration_CommitCancelTemplateName(current_template);
     try {
-        transaction->add_commit_cancel_op(rename_op);
+       transaction->add_commit_cancel_op(rename_op);
     } catch(...) {
     } catch(...) {
-        delete rename_op;
-        throw;
+       delete rename_op;
+       throw;
     }
     current_template = "";
 
     try {
     }
     current_template = "";
 
     try {
-        const std::vector<CdlLoadable>& loadables = this->get_loadables();
-        for (int i = (int) loadables.size() - 1; i >= 0; i--) {
-            CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
-            if ((0 != package) && package->belongs_to_template()) {
-                this->unload_package(transaction, package, limbo);
-            }
-        }
+       const std::vector<CdlLoadable>& loadables = this->get_loadables();
+       for (int i = (int) loadables.size() - 1; i >= 0; i--) {
+           CdlPackage package = dynamic_cast<CdlPackage>(loadables[i]);
+           if ((0 != package) && package->belongs_to_template()) {
+               this->unload_package(transaction, package, limbo);
+           }
+       }
     } catch(...) {
     } catch(...) {
-        CdlTransactionCommitCancelOp* cancel_op = 0;
-        do {
-            cancel_op = transaction->get_last_commit_cancel_op();
-            CYG_LOOP_INVARIANTC(0 != cancel_op);
-            transaction->cancel_last_commit_cancel_op();
-        } while(cancel_op != rename_op);
-        throw;
-    }
-    
+       CdlTransactionCommitCancelOp* cancel_op = 0;
+       do {
+           cancel_op = transaction->get_last_commit_cancel_op();
+           CYG_LOOP_INVARIANTC(0 != cancel_op);
+           transaction->cancel_last_commit_cancel_op();
+       } while(cancel_op != rename_op);
+       throw;
+    }
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Persistence support                              
+//{{{  Persistence support
 
 
-//{{{  initialize_savefile_support()                    
+//{{{  initialize_savefile_support()
 
 // ----------------------------------------------------------------------------
 // Initialization. The purpose of this code is to determine all the
 
 // ----------------------------------------------------------------------------
 // Initialization. The purpose of this code is to determine all the
@@ -1361,7 +1361,7 @@ CdlConfigurationBody::initialize_savefile_support()
     CYG_REPORT_FUNCNAME("CdlConfiguration::initialize_savefile_support");
     CYG_REPORT_FUNCARG1XV(this);
     CYG_PRECONDITION_THISC();
     CYG_REPORT_FUNCNAME("CdlConfiguration::initialize_savefile_support");
     CYG_REPORT_FUNCARG1XV(this);
     CYG_PRECONDITION_THISC();
-    
+
     // Start with the generic stuff such as cdl_savefile_version and
     // cdl_command.
     this->CdlToplevelBody::initialize_savefile_support();
     // Start with the generic stuff such as cdl_savefile_version and
     // cdl_command.
     this->CdlToplevelBody::initialize_savefile_support();
@@ -1380,7 +1380,7 @@ CdlConfigurationBody::initialize_savefile_support()
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlConfiguration::save() - internal              
+//{{{  CdlConfiguration::save() - internal
 
 // ----------------------------------------------------------------------------
 // The exported interface is CdlConfiguration::save(). This takes a single
 
 // ----------------------------------------------------------------------------
 // The exported interface is CdlConfiguration::save(). This takes a single
@@ -1401,7 +1401,7 @@ CdlConfigurationBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentat
 
     std::string text = "";
     if (!minimal) {
 
     std::string text = "";
     if (!minimal) {
-      text = 
+      text =
 "# This section defines the toplevel configuration object. The only\n\
 # values that can be changed are the name of the configuration and\n\
 # the description field. It is not possible to modify the target,\n\
 "# This section defines the toplevel configuration object. The only\n\
 # values that can be changed are the name of the configuration and\n\
 # the description field. It is not possible to modify the target,\n\
@@ -1415,38 +1415,38 @@ CdlConfigurationBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentat
 
     std::string config_data = this->get_description();
     if (!minimal || ("" != text)) {
 
     std::string config_data = this->get_description();
     if (!minimal || ("" != text)) {
-        text += "    description " + CdlInterpreterBody::quote(config_data) + " ;\n";
+       text += "    description " + CdlInterpreterBody::quote(config_data) + " ;\n";
     }
 
     // Repeat the warning.
     if (!minimal) {
     }
 
     // Repeat the warning.
     if (!minimal) {
-        text += "\n    # These fields should not be modified.\n";
+       text += "\n    # These fields should not be modified.\n";
     }
     config_data = this->get_hardware();
     if ("" != config_data) {
     }
     config_data = this->get_hardware();
     if ("" != config_data) {
-        text += "    hardware    " + CdlInterpreterBody::quote(config_data) + " ;\n";
+       text += "    hardware    " + CdlInterpreterBody::quote(config_data) + " ;\n";
     }
     config_data = this->get_template();
     if ("" != config_data) {
     }
     config_data = this->get_template();
     if ("" != config_data) {
-        text += "    template    " + CdlInterpreterBody::quote(config_data) + " ;\n";
+       text += "    template    " + CdlInterpreterBody::quote(config_data) + " ;\n";
     }
     std::vector<CdlLoadable>::const_iterator load_i;
     const std::vector<CdlLoadable>& packages = get_loadables();
     for (load_i = packages.begin(); load_i != packages.end(); load_i++) {
     }
     std::vector<CdlLoadable>::const_iterator load_i;
     const std::vector<CdlLoadable>& packages = get_loadables();
     for (load_i = packages.begin(); load_i != packages.end(); load_i++) {
-        CdlPackage pkg = dynamic_cast<CdlPackage>(*load_i);
-        CYG_ASSERT_CLASSC(pkg);
-        text += "    package ";
-        if (pkg->belongs_to_template()) {
-            text += "-template ";
-        }
-        if (pkg->belongs_to_hardware()) {
-            text += "-hardware ";
-        }
-        text += CdlInterpreterBody::quote(pkg->get_name()) + " " + CdlInterpreterBody::quote(pkg->get_value()) + " ;\n";
+       CdlPackage pkg = dynamic_cast<CdlPackage>(*load_i);
+       CYG_ASSERT_CLASSC(pkg);
+       text += "    package ";
+       if (pkg->belongs_to_template()) {
+           text += "-template ";
+       }
+       if (pkg->belongs_to_hardware()) {
+           text += "-hardware ";
+       }
+       text += CdlInterpreterBody::quote(pkg->get_name()) + " " + CdlInterpreterBody::quote(pkg->get_value()) + " ;\n";
     }
 
     interp->write_data(chan, text);
     }
 
     interp->write_data(chan, text);
-    
+
     // If the package was loaded from a file then there may be additional
     // data associated with the configuration that is not currently
     // recognised. This call preserves that data.
     // If the package was loaded from a file then there may be additional
     // data associated with the configuration that is not currently
     // recognised. This call preserves that data.
@@ -1458,7 +1458,7 @@ CdlConfigurationBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentat
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlConfiguration::save() - exported interface    
+//{{{  CdlConfiguration::save() - exported interface
 
 // ----------------------------------------------------------------------------
 // This is the exported interface for saving a configuration. The specified
 
 // ----------------------------------------------------------------------------
 // This is the exported interface for saving a configuration. The specified
@@ -1478,7 +1478,7 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
     // This happens during the first save or load operation, or when
     // the application starts to register its own savefile extensions.
     if (!CdlToplevelBody::savefile_support_initialized()) {
     // This happens during the first save or load operation, or when
     // the application starts to register its own savefile extensions.
     if (!CdlToplevelBody::savefile_support_initialized()) {
-        this->initialize_savefile_support();
+       this->initialize_savefile_support();
     }
 
     // A Tcl interpreter is needed for the call to OpenFileChannel(),
     }
 
     // A Tcl interpreter is needed for the call to OpenFileChannel(),
@@ -1490,7 +1490,7 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
     // is not manipulated in any way. Instead just pass it to Tcl.
     Tcl_Channel chan = Tcl_OpenFileChannel(interp->get_tcl_interpreter(), const_cast<char*>(filename.c_str()), "w", 0666);
     if (0 == chan) {
     // is not manipulated in any way. Instead just pass it to Tcl.
     Tcl_Channel chan = Tcl_OpenFileChannel(interp->get_tcl_interpreter(), const_cast<char*>(filename.c_str()), "w", 0666);
     if (0 == chan) {
-        throw CdlInputOutputException("Unable to open file " + filename + "\n" + interp->get_result());
+       throw CdlInputOutputException("Unable to open file " + filename + "\n" + interp->get_result());
     }
 
     // The channel may end up being registered in various different
     }
 
     // The channel may end up being registered in various different
@@ -1504,37 +1504,37 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
     std::string tmp;
     try {
 
     std::string tmp;
     try {
 
-        if (!minimal) {
-            interp->write_data(chan, "# eCos saved configuration\n\n");
-        }
-        
-        CdlToplevelBody::save_separator(interp, chan, "commands", minimal);
-        this->CdlToplevelBody::save_command_details(interp, chan, 0, minimal);
-        CdlToplevelBody::save_separator(interp, chan, "toplevel", minimal);
-        this->save(interp, chan, 0, minimal);
-        CdlToplevelBody::save_separator(interp, chan, "conflicts", minimal);
-        this->CdlToplevelBody::save_conflicts(interp, chan, 0, minimal);
-        CdlToplevelBody::save_separator(interp, chan, "contents", minimal);
-        this->CdlContainerBody::save(interp, chan, 0, minimal);
-        this->save_unsupported_commands(interp, chan, 0, minimal);
-        
+       if (!minimal) {
+           interp->write_data(chan, "# eCos saved configuration\n\n");
+       }
+
+       CdlToplevelBody::save_separator(interp, chan, "commands", minimal);
+       this->CdlToplevelBody::save_command_details(interp, chan, 0, minimal);
+       CdlToplevelBody::save_separator(interp, chan, "toplevel", minimal);
+       this->save(interp, chan, 0, minimal);
+       CdlToplevelBody::save_separator(interp, chan, "conflicts", minimal);
+       this->CdlToplevelBody::save_conflicts(interp, chan, 0, minimal);
+       CdlToplevelBody::save_separator(interp, chan, "contents", minimal);
+       this->CdlContainerBody::save(interp, chan, 0, minimal);
+       this->save_unsupported_commands(interp, chan, 0, minimal);
+
     } catch(...) {
     } catch(...) {
-        Tcl_UnregisterChannel(0, chan);
-        // NOTE: deleting the file is necessary, it is a bad idea to
-        // end up with incomplete save files. It would be even better
-        // to write to a temporary file and only overwrite the old
-        // savefile on success.
-        //
-        // Tcl does not provide direct access to the file delete
-        // facility, so it is necessary to evaluate a script. This
-        // introduces quoting and security problems, since the
-        // filename might contain spaces, square brackets, braces...
-        // To avoid these problems a variable is used.
-        interp->set_variable("__cdlconfig_filename", filename);
-        interp->eval("file delete $__cdlconfig_filename", tmp);
-        interp->unset_variable("__cdlconfig_filename");
-        
-        throw;
+       Tcl_UnregisterChannel(0, chan);
+       // NOTE: deleting the file is necessary, it is a bad idea to
+       // end up with incomplete save files. It would be even better
+       // to write to a temporary file and only overwrite the old
+       // savefile on success.
+       //
+       // Tcl does not provide direct access to the file delete
+       // facility, so it is necessary to evaluate a script. This
+       // introduces quoting and security problems, since the
+       // filename might contain spaces, square brackets, braces...
+       // To avoid these problems a variable is used.
+       interp->set_variable("__cdlconfig_filename", filename);
+       interp->eval("file delete $__cdlconfig_filename", tmp);
+       interp->unset_variable("__cdlconfig_filename");
+
+       throw;
     }
 
     // This call will perform the appropriate close.
     }
 
     // This call will perform the appropriate close.
@@ -1542,32 +1542,32 @@ CdlConfigurationBody::save(std::string filename, bool minimal)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlConfiguration::load() and add()               
+//{{{  CdlConfiguration::load() and add()
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in add(). load() simply creates a new configuration
 // and then invokes add().
 CdlConfiguration
 CdlConfigurationBody::load(std::string filename, CdlPackagesDatabase db, CdlInterpreter interp,
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in add(). load() simply creates a new configuration
 // and then invokes add().
 CdlConfiguration
 CdlConfigurationBody::load(std::string filename, CdlPackagesDatabase db, CdlInterpreter interp,
-                           CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
+                          CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
 {
     CYG_REPORT_FUNCNAMETYPE("CdlConfiguration::load", "result %p");
     CYG_REPORT_FUNCARG4XV(db, interp, error_fn, warn_fn);
     CYG_PRECONDITION_CLASSC(db);
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAMETYPE("CdlConfiguration::load", "result %p");
     CYG_REPORT_FUNCARG4XV(db, interp, error_fn, warn_fn);
     CYG_PRECONDITION_CLASSC(db);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlConfiguration result = CdlConfigurationBody::make("eCos", db, interp);
     if (0 == result) {
     CdlConfiguration result = CdlConfigurationBody::make("eCos", db, interp);
     if (0 == result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
     }
-    
+
     try {
     try {
-        result->add(filename, error_fn, warn_fn);
-        result->save_file = filename;
+       result->add(filename, error_fn, warn_fn);
+       result->save_file = filename;
     } catch(...) {
     } catch(...) {
-        delete result;
-        throw;
+       delete result;
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1577,7 +1577,7 @@ CdlConfigurationBody::load(std::string filename, CdlPackagesDatabase db, CdlInte
 // ----------------------------------------------------------------------------
 void
 CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
 // ----------------------------------------------------------------------------
 void
 CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
-                          CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
+                         CdlDiagnosticFnPtr error_fn, CdlDiagnosticFnPtr warn_fn)
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::add");
     CYG_REPORT_FUNCARG3XV(this, error_fn, warn_fn);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::add");
     CYG_REPORT_FUNCARG3XV(this, error_fn, warn_fn);
@@ -1586,9 +1586,9 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
     // Initialize the savefile support, so that it is known what
     // commands can occur in a savefile.
     if (!CdlToplevelBody::savefile_support_initialized()) {
     // Initialize the savefile support, so that it is known what
     // commands can occur in a savefile.
     if (!CdlToplevelBody::savefile_support_initialized()) {
-        this->initialize_savefile_support();
+       this->initialize_savefile_support();
     }
     }
-    
+
     // The interpreter should not have any left-over junk.
     CdlInterpreter interp = this->get_interpreter();
     CYG_PRECONDITION_CLASSC(interp);
     // The interpreter should not have any left-over junk.
     CdlInterpreter interp = this->get_interpreter();
     CYG_PRECONDITION_CLASSC(interp);
@@ -1603,30 +1603,30 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
     CdlInterpreterBody::ContextSupport context_support(interp, filename);
 
     try {
     CdlInterpreterBody::ContextSupport context_support(interp, filename);
 
     try {
-        interp->set_transaction(transaction);
-
-        std::vector<CdlInterpreterCommandEntry> commands;
-        this->get_savefile_commands(commands);
-        CdlInterpreterBody::CommandSupport interp_cmds(interp, commands);
-
-        interp->eval_file(filename);
-        
-        // All the data has been read in without generating an
-        // exception. However there may have been errors reported via
-        // the error_fn handling, and any errors at all should result
-        // in an exception.
-        int error_count = CdlParse::get_error_count(interp);
-        if (error_count > 0) {
-            std::string tmp;
-            Cdl::integer_to_string(error_count, tmp);
-            throw CdlInputOutputException("Invalid savefile \"" + filename + "\".\n" +
-                                          tmp + " error" + ((error_count > 1) ? "s" : "") +
-                                          " occurred while reading in the savefile data.");
-        }
-        
+       interp->set_transaction(transaction);
+
+       std::vector<CdlInterpreterCommandEntry> commands;
+       this->get_savefile_commands(commands);
+       CdlInterpreterBody::CommandSupport interp_cmds(interp, commands);
+
+       interp->eval_file(filename);
+
+       // All the data has been read in without generating an
+       // exception. However there may have been errors reported via
+       // the error_fn handling, and any errors at all should result
+       // in an exception.
+       int error_count = CdlParse::get_error_count(interp);
+       if (error_count > 0) {
+           std::string tmp;
+           Cdl::integer_to_string(error_count, tmp);
+           throw CdlInputOutputException("Invalid savefile \"" + filename + "\".\n" +
+                                         tmp + " error" + ((error_count > 1) ? "s" : "") +
+                                         " occurred while reading in the savefile data.");
+       }
+
     } catch(...) {
     } catch(...) {
-        interp->set_transaction(0);
-        throw;
+       interp->set_transaction(0);
+       throw;
     }
 
     interp->set_transaction(0);
     }
 
     interp->set_transaction(0);
@@ -1635,7 +1635,7 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
 }
 
 //}}}
 }
 
 //}}}
-//{{{  savefile commands                                
+//{{{  savefile commands
 
 // ----------------------------------------------------------------------------
 // A cdl_configuration command does not actually do very much. It acts as
 
 // ----------------------------------------------------------------------------
 // A cdl_configuration command does not actually do very much. It acts as
@@ -1645,7 +1645,7 @@ CdlConfigurationBody::add(CdlTransaction transaction, std::string filename,
 // This is not done, to allow multiple savefiles to be loaded into
 // a single configuration in future.
 int
 // This is not done, to allow multiple savefiles to be loaded into
 // a single configuration in future.
 int
-CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAMETYPE("CdlConfiguration::savefile_configuration_command", "result %d");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAMETYPE("CdlConfiguration::savefile_configuration_command", "result %d");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1658,32 +1658,32 @@ CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int
 
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
 
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
-    
+
     try {
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, "cdl_configuration command", 0, argc, argv, 1, options);
-
-        // A broken cdl_configuration command is pretty fatal, chances are
-        // that the entire load is going to fail.
-        if (data_index != (argc - 2)) {
-            CdlParse::report_error(interp, "", "Invalid cdl_configuration command in savefile, expecting two arguments.");
-        } else {
-            config->set_name(argv[1]);
-            config->get_savefile_subcommands("cdl_configuration", subcommands);
-            toplevel_commands = interp->push_commands(subcommands);
-
-            std::string tcl_result;
-            result = interp->eval(argv[2], tcl_result);
-            
-            interp->pop_commands(toplevel_commands);
-            toplevel_commands = 0;
-        }
-        
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, "cdl_configuration command", 0, argc, argv, 1, options);
+
+       // A broken cdl_configuration command is pretty fatal, chances are
+       // that the entire load is going to fail.
+       if (data_index != (argc - 2)) {
+           CdlParse::report_error(interp, "", "Invalid cdl_configuration command in savefile, expecting two arguments.");
+       } else {
+           config->set_name(argv[1]);
+           config->get_savefile_subcommands("cdl_configuration", subcommands);
+           toplevel_commands = interp->push_commands(subcommands);
+
+           std::string tcl_result;
+           result = interp->eval(argv[2], tcl_result);
+
+           interp->pop_commands(toplevel_commands);
+           toplevel_commands = 0;
+       }
+
     } catch(...) {
     } catch(...) {
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1692,7 +1692,7 @@ CdlConfigurationBody::savefile_configuration_command(CdlInterpreter interp, int
 
 // ----------------------------------------------------------------------------
 int
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_description_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_description_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_description_command");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_description_command");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1704,19 +1704,19 @@ CdlConfigurationBody::savefile_description_command(CdlInterpreter interp, int ar
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/description command", 0, argc, argv, 1, options);
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/description command", 0, argc, argv, 1, options);
-        
+
     if (data_index != (argc - 1)) {
     if (data_index != (argc - 1)) {
-        CdlParse::report_warning(interp, "",
-                                 "Ignoring invalid configuration description command, expecting a single argument.");
+       CdlParse::report_warning(interp, "",
+                                "Ignoring invalid configuration description command, expecting a single argument.");
     } else {
     } else {
-        config->description = argv[1];
-    }    
+       config->description = argv[1];
+    }
     return TCL_OK;
 }
 
 // ----------------------------------------------------------------------------
 int
     return TCL_OK;
 }
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_hardware_command");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_hardware_command");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1728,11 +1728,11 @@ CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc,
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/hardware command", 0, argc, argv, 1, options);
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/hardware command", 0, argc, argv, 1, options);
-        
+
     if (data_index != (argc - 1)) {
     if (data_index != (argc - 1)) {
-        CdlParse::report_warning(interp, "", "Ignoring invalid configuration hardware command, expecting a single argument.");
+       CdlParse::report_warning(interp, "", "Ignoring invalid configuration hardware command, expecting a single argument.");
     } else {
     } else {
-        config->current_hardware = argv[1];
+       config->current_hardware = argv[1];
     }
 
     return TCL_OK;
     }
 
     return TCL_OK;
@@ -1740,7 +1740,7 @@ CdlConfigurationBody::savefile_hardware_command(CdlInterpreter interp, int argc,
 
 // ----------------------------------------------------------------------------
 int
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_template_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_template_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_template_command");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_template_command");
     CYG_PRECONDITION_CLASSC(interp);
@@ -1752,23 +1752,23 @@ CdlConfigurationBody::savefile_template_command(CdlInterpreter interp, int argc,
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/template command", 0, argc, argv, 1, options);
 
     std::vector<std::pair<std::string,std::string> > options;
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/template command", 0, argc, argv, 1, options);
-        
+
     if (data_index != (argc - 1)) {
     if (data_index != (argc - 1)) {
-        CdlParse::report_warning(interp, "", "Ignoring invalid configuration template command, expecting a single argument.");
+       CdlParse::report_warning(interp, "", "Ignoring invalid configuration template command, expecting a single argument.");
     } else {
     } else {
-        config->current_template = argv[1];
+       config->current_template = argv[1];
     }
     }
-    
+
     return TCL_OK;
 }
 
 // ----------------------------------------------------------------------------
 int
     return TCL_OK;
 }
 
 // ----------------------------------------------------------------------------
 int
-CdlConfigurationBody::savefile_package_command(CdlInterpreter interp, int argc, const charargv[])
+CdlConfigurationBody::savefile_package_command(CdlInterpreter interp, int argc, const char *argv[])
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_package_command");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("CdlConfiguration::savefile_package_command");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlToplevel toplevel = interp->get_toplevel();
     CYG_ASSERT_CLASSC(toplevel);
     CdlConfiguration config = dynamic_cast<CdlConfiguration>(toplevel);
     CdlToplevel toplevel = interp->get_toplevel();
     CYG_ASSERT_CLASSC(toplevel);
     CdlConfiguration config = dynamic_cast<CdlConfiguration>(toplevel);
@@ -1779,86 +1779,85 @@ CdlConfigurationBody::savefile_package_command(CdlInterpreter interp, int argc,
     std::string pkgname;
     std::string pkgversion;
     CdlPackage  pkg = 0;
     std::string pkgname;
     std::string pkgversion;
     CdlPackage  pkg = 0;
-    
+
     std::vector<std::pair<std::string,std::string> > options;
     std::vector<std::pair<std::string,std::string> > options;
-    static char* optlist[] = {
-        "template:f",
-        "hardware:f",
-        0
+    static const char *optlist[] = {
+       "template:f",
+       "hardware:f",
+       0
     };
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/package command", optlist, argc, argv, 1, options);
 
     if (data_index == (argc - 1)) {
     };
     int data_index = CdlParse::parse_options(interp, "cdl_configuration/package command", optlist, argc, argv, 1, options);
 
     if (data_index == (argc - 1)) {
-        CdlParse::report_warning(interp, "", std::string("Missing version information for package `")
-                                 + argv[argc - 1] + "'.");
-        pkgname = argv[argc - 1];
-        pkgversion = "";
+       CdlParse::report_warning(interp, "", std::string("Missing version information for package `")
+                                + argv[argc - 1] + "'.");
+       pkgname = argv[argc - 1];
+       pkgversion = "";
     } else if (data_index == (argc - 2)) {
     } else if (data_index == (argc - 2)) {
-        pkgname = argv[argc - 2];
-        pkgversion = argv[argc - 1];
+       pkgname = argv[argc - 2];
+       pkgversion = argv[argc - 1];
     } else {
     } else {
-        // If we cannot load all the packages then much of the
-        // savefile is likely to be problematical.
-        CdlParse::report_error(interp, "", "Invalid cdl_configuration/package command, expecting name and version");
-        CYG_REPORT_RETURN();
-        return TCL_OK;
+       // If we cannot load all the packages then much of the
+       // savefile is likely to be problematical.
+       CdlParse::report_error(interp, "", "Invalid cdl_configuration/package command, expecting name and version");
+       CYG_REPORT_RETURN();
+       return TCL_OK;
     }
 
     if (0 != config->lookup(pkgname)) {
     }
 
     if (0 != config->lookup(pkgname)) {
-        // If the package was already loaded, check the version string. If the versions
-        // are identical then we do not need to worry any further. Otherwise a mismatch
-        // warning is appropriate.
-        CdlNode node = config->lookup(pkgname);
-        CYG_ASSERT_CLASSC(node);
-        pkg = dynamic_cast<CdlPackage>(node);
-        if (0 == pkg) {
-            // The name is in use, but it is not a package
-            CdlParse::report_error(interp, "",
-                                   std::string("Unable to load package `") + pkgname + "', the name is already in use.");
-        } else if (pkgversion != pkg->get_value()) {
-            CdlParse::report_warning(interp, "",
-                                     std::string("Cannot load version `") + pkgversion + "' of package `" +
-                                     pkgname + "', version `" + pkg->get_value() + "' is already loaded.");
-        }
+       // If the package was already loaded, check the version string. If the versions
+       // are identical then we do not need to worry any further. Otherwise a mismatch
+       // warning is appropriate.
+       CdlNode node = config->lookup(pkgname);
+       CYG_ASSERT_CLASSC(node);
+       pkg = dynamic_cast<CdlPackage>(node);
+       if (0 == pkg) {
+           // The name is in use, but it is not a package
+           CdlParse::report_error(interp, "",
+                                  std::string("Unable to load package `") + pkgname + "', the name is already in use.");
+       } else if (pkgversion != pkg->get_value()) {
+           CdlParse::report_warning(interp, "",
+                                    std::string("Cannot load version `") + pkgversion + "' of package `" +
+                                    pkgname + "', version `" + pkg->get_value() + "' is already loaded.");
+       }
     } else if (!db->is_known_package(pkgname)) {
     } else if (!db->is_known_package(pkgname)) {
-        CdlParse::report_error(interp, "",
-                               std::string("Attempt to load an unknown package `") + pkgname + "'.");
+       CdlParse::report_error(interp, "",
+                              std::string("Attempt to load an unknown package `") + pkgname + "'.");
     } else {
     } else {
-        if ("" != pkgversion) {
-            const std::vector<std::string>& versions = db->get_package_versions(pkgname);
-            if (versions.end() == std::find(versions.begin(), versions.end(), pkgversion)) {
-                CdlParse::report_warning(interp, "",
-                                         std::string("The savefile specifies version `") + pkgversion +
-                                         "' for package `" + pkgname + "'\nThis version is not available.\n" +
-                                         "Using the most recent version instead.");
-                pkgversion = "";
-            }
-        }
-        CdlDiagnosticFnPtr error_fn    = interp->get_error_fn_ptr();
-        CdlDiagnosticFnPtr warn_fn     = interp->get_warning_fn_ptr();
-        CdlTransaction     transaction = interp->get_transaction();
-        config->load_package(transaction, pkgname, pkgversion, error_fn, warn_fn, false);
-        CdlNode pkg_node = config->lookup(pkgname);
-        CYG_ASSERTC(0 != pkg_node);
-        pkg = dynamic_cast<CdlPackage>(pkg_node);
-        CYG_ASSERT_CLASSC(pkg);
+       if ("" != pkgversion) {
+           const std::vector<std::string>& versions = db->get_package_versions(pkgname);
+           if (versions.end() == std::find(versions.begin(), versions.end(), pkgversion)) {
+               CdlParse::report_warning(interp, "",
+                                        std::string("The savefile specifies version `") + pkgversion +
+                                        "' for package `" + pkgname + "'\nThis version is not available.\n" +
+                                        "Using the most recent version instead.");
+               pkgversion = "";
+           }
+       }
+       CdlDiagnosticFnPtr error_fn    = interp->get_error_fn_ptr();
+       CdlDiagnosticFnPtr warn_fn     = interp->get_warning_fn_ptr();
+       CdlTransaction     transaction = interp->get_transaction();
+       config->load_package(transaction, pkgname, pkgversion, error_fn, warn_fn, false);
+       CdlNode pkg_node = config->lookup(pkgname);
+       CYG_ASSERTC(0 != pkg_node);
+       pkg = dynamic_cast<CdlPackage>(pkg_node);
+       CYG_ASSERT_CLASSC(pkg);
     }
 
     if ((0 != pkg) && (0 != options.size())) {
     }
 
     if ((0 != pkg) && (0 != options.size())) {
-        std::vector<std::pair<std::string,std::string> >::const_iterator opt_i;
-        for (opt_i = options.begin(); opt_i != options.end(); opt_i++) {
-            if (opt_i->first == "template") {
-                pkg->loaded_for_template = true;
-            } else if (opt_i->first == "hardware") {
-                pkg->loaded_for_hardware = true;
-            } 
-        }
-    }
-        
+       std::vector<std::pair<std::string,std::string> >::const_iterator opt_i;
+       for (opt_i = options.begin(); opt_i != options.end(); opt_i++) {
+           if (opt_i->first == "template") {
+               pkg->loaded_for_template = true;
+           } else if (opt_i->first == "hardware") {
+               pkg->loaded_for_hardware = true;
+           }
+       }
+    }
+
     return TCL_OK;
 }
 
 //}}}
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
 
 //}}}
-
index 1ff986d893779d80a0689363be74a9cfa8473151..d5efdabf69923294fc95e6af98747cf482576a5d 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                                   
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -46,7 +46,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                                               
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                                                  
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 // Some test cases may want to read in a file other than
 // "ecos.db", e.g. to facilitate testing the error conditions.
 
 // ----------------------------------------------------------------------------
 // Some test cases may want to read in a file other than
 // "ecos.db", e.g. to facilitate testing the error conditions.
-char*
+const char*
 CdlPackagesDatabaseBody::database_name = "ecos.db";
 
 // Should warnings be issued for minor database inconsistencies?
 CdlPackagesDatabaseBody::database_name = "ecos.db";
 
 // Should warnings be issued for minor database inconsistencies?
@@ -96,9 +96,9 @@ static std::string diag_target  = std::string("target ");
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlPackagesDatabaseBody);
 
 //}}}
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlPackagesDatabaseBody);
 
 //}}}
-//{{{  Tcl commands for the parser                              
+//{{{  Tcl commands for the parser
 
 
-//{{{  CdlDbParser class                                
+//{{{  CdlDbParser class
 
 // ----------------------------------------------------------------------------
 // Commands that get invoked from inside the Tcl interpreter. These
 
 // ----------------------------------------------------------------------------
 // Commands that get invoked from inside the Tcl interpreter. These
@@ -124,7 +124,7 @@ class CdlDbParser {
 };
 
 //}}}
 };
 
 //}}}
-//{{{  CdlDbParser::package-related                     
+//{{{  CdlDbParser::package-related
 
 // ----------------------------------------------------------------------------
 // package <name> <body>
 
 // ----------------------------------------------------------------------------
 // package <name> <body>
@@ -138,125 +138,125 @@ CdlDbParser::new_package(CdlInterpreter interp, int argc, const char* argv[])
 
     CdlPackagesDatabase db      = static_cast<CdlPackagesDatabase>(interp->get_assoc_data(dbparser_database_key));
     CYG_INVARIANT_CLASSC(CdlPackagesDatabaseBody, db);
 
     CdlPackagesDatabase db      = static_cast<CdlPackagesDatabase>(interp->get_assoc_data(dbparser_database_key));
     CYG_INVARIANT_CLASSC(CdlPackagesDatabaseBody, db);
-    
+
     if (3 != argc) {
     if (3 != argc) {
-        if (argc < 2) {
-            CdlParse::report_error(interp, "", "Invalid package command, missing name and contents.");
-        } else if (argc == 2) {
-            CdlParse::report_error(interp, diag_package + argv[1], "Invalid package command, missing body.");
-        } else {
-            CdlParse::report_error(interp, diag_package + argv[1],
-                                   "Invalid package command, expecting just name and body.");
-        }
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       if (argc < 2) {
+           CdlParse::report_error(interp, "", "Invalid package command, missing name and contents.");
+       } else if (argc == 2) {
+           CdlParse::report_error(interp, diag_package + argv[1], "Invalid package command, missing body.");
+       } else {
+           CdlParse::report_error(interp, diag_package + argv[1],
+                                  "Invalid package command, expecting just name and body.");
+       }
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
     std::string pkg_name        = argv[1];
 
     // Better make sure that this is not a duplicate definition.
     if (std::find(db->package_names.begin(), db->package_names.end(), pkg_name) != db->package_names.end()) {
     }
     std::string pkg_name        = argv[1];
 
     // Better make sure that this is not a duplicate definition.
     if (std::find(db->package_names.begin(), db->package_names.end(), pkg_name) != db->package_names.end()) {
-        CdlParse::report_warning(interp, diag_package + pkg_name, "Duplicate package entry, ignoring second occurence.");
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       CdlParse::report_warning(interp, diag_package + pkg_name, "Duplicate package entry, ignoring second occurence.");
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
     }
-    
+
     // The package data is constructed locally. It only gets added to
     // the database in the absence of errors.
     bool package_ok      = true;
     int  old_error_count = CdlParse::get_error_count(interp);
     // The package data is constructed locally. It only gets added to
     // the database in the absence of errors.
     bool package_ok      = true;
     int  old_error_count = CdlParse::get_error_count(interp);
-        
+
     CdlPackagesDatabaseBody::package_data package;
     package.description = "";
     package.directory   = "";
     package.script      = "";
     package.hardware    = false;
     CdlPackagesDatabaseBody::package_data package;
     package.description = "";
     package.directory   = "";
     package.script      = "";
     package.hardware    = false;
-    
+
     // aliases and versions are vectors and will take care of themselves
     // And the name had better be valid as well.
     if (!Cdl::is_valid_cdl_name(pkg_name)) {
     // aliases and versions are vectors and will take care of themselves
     // And the name had better be valid as well.
     if (!Cdl::is_valid_cdl_name(pkg_name)) {
-        CdlParse::report_error(interp, diag_package + pkg_name, "This is not a valid CDL name.");
+       CdlParse::report_error(interp, diag_package + pkg_name, "This is not a valid CDL name.");
     }
     }
-    
+
     // Sort out the commands, then invoke the script in argv[2]. There is
     // no need to worry about error recovery here, any errors will be
     // fatal anyway.
     CdlInterpreterCommandEntry commands[] = {
     // Sort out the commands, then invoke the script in argv[2]. There is
     // no need to worry about error recovery here, any errors will be
     // fatal anyway.
     CdlInterpreterCommandEntry commands[] = {
-        CdlInterpreterCommandEntry("description", &CdlDbParser::package_description ),
-        CdlInterpreterCommandEntry("alias",       &CdlDbParser::package_alias       ),
-        CdlInterpreterCommandEntry("directory",   &CdlDbParser::package_directory   ),
-        CdlInterpreterCommandEntry("script",      &CdlDbParser::package_script      ),
-        CdlInterpreterCommandEntry("hardware",    &CdlDbParser::package_hardware    ),
-        CdlInterpreterCommandEntry("",            0                                 )
+       CdlInterpreterCommandEntry("description", &CdlDbParser::package_description ),
+       CdlInterpreterCommandEntry("alias",       &CdlDbParser::package_alias       ),
+       CdlInterpreterCommandEntry("directory",   &CdlDbParser::package_directory   ),
+       CdlInterpreterCommandEntry("script",      &CdlDbParser::package_script      ),
+       CdlInterpreterCommandEntry("hardware",    &CdlDbParser::package_hardware    ),
+       CdlInterpreterCommandEntry("",            0                                 )
     };
     CdlInterpreterBody::CommandSupport  cmds(interp, commands);
     CdlInterpreterBody::VariableSupport interp_name(interp, dbparser_pkgname, pkg_name);
     CdlInterpreterBody::AssocSupport    interp_data(interp, dbparser_pkgdata, static_cast<ClientData>(&package));
     int result = interp->eval(argv[2]);
     if (TCL_OK == result) {
     };
     CdlInterpreterBody::CommandSupport  cmds(interp, commands);
     CdlInterpreterBody::VariableSupport interp_name(interp, dbparser_pkgname, pkg_name);
     CdlInterpreterBody::AssocSupport    interp_data(interp, dbparser_pkgdata, static_cast<ClientData>(&package));
     int result = interp->eval(argv[2]);
     if (TCL_OK == result) {
-        
-        // The body has been parsed OK. Check that it is valid.
-        if ("" == package.directory) {
-            CdlParse::report_error(interp, diag_package + pkg_name, "Missing directory specification.");
-        }
-        if ("" == package.script) {
-            CdlParse::report_error(interp, diag_package + pkg_name, "Missing script specification.");
-        }
-        if (0 == package.aliases.size()) {
-            CdlParse::report_error(interp, diag_package + pkg_name, "At least one alias should be supplied.");
-        }
-
-        // Additional checks. Is the package directory actually present?
-        // Note that there are scenarios where a package may be listed
-        // in the database but not installed, e.g. an anoncvs checkout
-        // of selected modules.
-        if ("" != package.directory) {
-            std::string repo = interp->get_variable(dbparser_component_repository);
-            CYG_ASSERTC("" != repo);
-
-            std::string pkgdir = repo + "/" + package.directory;
-            if (!interp->is_directory(pkgdir)) {
-                if (CdlPackagesDatabaseBody::verbose_mode) {
-                    CdlParse::report_warning(interp, diag_package + pkg_name,
-                                             std::string("This package is not present in the component repository.\n"
-                                                         "There is no directory `") + pkgdir + "'.");
-                }
-                package_ok = false;
-            } else {
-                
-                // Now look for version subdirectories. There should be at least one.
-                std::vector<std::string> subdirs;
-                unsigned int i;
-                interp->locate_subdirs(pkgdir, subdirs);
-                std::sort(subdirs.begin(), subdirs.end(), Cdl::version_cmp());
-                
-                for (i = 0; i < subdirs.size(); i++) {
-                    if (("CVS" == subdirs[i]) || ("cvs" == subdirs[i])) {
-                        continue;
-                    }
-                    if ("" != package.script) {
-                        if (!(interp->is_file(pkgdir + "/" + subdirs[i] + "/cdl/" + package.script) ||
-                              interp->is_file(pkgdir + "/" + subdirs[i] + "/" + package.script))) {
-                            CdlParse::report_warning(interp, diag_package + pkg_name,
-                                                     std::string("Version subdirectory `") + subdirs[i] +
-                                                     "' does not have a CDL script `" + package.script + "'.");
-                            continue;
-                        }
-                    }
-                    package.versions.push_back(subdirs[i]);
-                }
-                if (0 == package.versions.size()) {
-                    CdlParse::report_warning(interp, diag_package + pkg_name,
-                                             "This package does not have any valid version subdirectories.");
-                    package_ok = false;
-                }
-            }
-        }
+
+       // The body has been parsed OK. Check that it is valid.
+       if ("" == package.directory) {
+           CdlParse::report_error(interp, diag_package + pkg_name, "Missing directory specification.");
+       }
+       if ("" == package.script) {
+           CdlParse::report_error(interp, diag_package + pkg_name, "Missing script specification.");
+       }
+       if (0 == package.aliases.size()) {
+           CdlParse::report_error(interp, diag_package + pkg_name, "At least one alias should be supplied.");
+       }
+
+       // Additional checks. Is the package directory actually present?
+       // Note that there are scenarios where a package may be listed
+       // in the database but not installed, e.g. an anoncvs checkout
+       // of selected modules.
+       if ("" != package.directory) {
+           std::string repo = interp->get_variable(dbparser_component_repository);
+           CYG_ASSERTC("" != repo);
+
+           std::string pkgdir = repo + "/" + package.directory;
+           if (!interp->is_directory(pkgdir)) {
+               if (CdlPackagesDatabaseBody::verbose_mode) {
+                   CdlParse::report_warning(interp, diag_package + pkg_name,
+                                            std::string("This package is not present in the component repository.\n"
+                                                        "There is no directory `") + pkgdir + "'.");
+               }
+               package_ok = false;
+           } else {
+
+               // Now look for version subdirectories. There should be at least one.
+               std::vector<std::string> subdirs;
+               unsigned int i;
+               interp->locate_subdirs(pkgdir, subdirs);
+               std::sort(subdirs.begin(), subdirs.end(), Cdl::version_cmp());
+
+               for (i = 0; i < subdirs.size(); i++) {
+                   if (("CVS" == subdirs[i]) || ("cvs" == subdirs[i])) {
+                       continue;
+                   }
+                   if ("" != package.script) {
+                       if (!(interp->is_file(pkgdir + "/" + subdirs[i] + "/cdl/" + package.script) ||
+                             interp->is_file(pkgdir + "/" + subdirs[i] + "/" + package.script))) {
+                           CdlParse::report_warning(interp, diag_package + pkg_name,
+                                                    std::string("Version subdirectory `") + subdirs[i] +
+                                                    "' does not have a CDL script `" + package.script + "'.");
+                           continue;
+                       }
+                   }
+                   package.versions.push_back(subdirs[i]);
+               }
+               if (0 == package.versions.size()) {
+                   CdlParse::report_warning(interp, diag_package + pkg_name,
+                                            "This package does not have any valid version subdirectories.");
+                   package_ok = false;
+               }
+           }
+       }
     }
 
     // If the package is still ok, now is the time to add it to the database.
     if (package_ok && (old_error_count == CdlParse::get_error_count(interp))) {
     }
 
     // If the package is still ok, now is the time to add it to the database.
     if (package_ok && (old_error_count == CdlParse::get_error_count(interp))) {
-        db->package_names.push_back(pkg_name);
-        db->packages[pkg_name] = package;
+       db->package_names.push_back(pkg_name);
+       db->packages[pkg_name] = package;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -274,16 +274,16 @@ CdlDbParser::package_description(CdlInterpreter interp, int argc, const char* ar
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     if (2 != argc) {
 
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "Invalid description, expecting a single string.");
+       CdlParse::report_error(interp, diag_package + name, "Invalid description, expecting a single string.");
     } else if ("" != package->description) {
     } else if ("" != package->description) {
-        CdlParse::report_warning(interp, diag_package + name, "A package should have only one description.");
+       CdlParse::report_warning(interp, diag_package + name, "A package should have only one description.");
     } else {
     } else {
-        package->description = argv[1];
+       package->description = argv[1];
     }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -300,33 +300,33 @@ CdlDbParser::package_alias(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     // There should be one argument, a list of valid packages.
     // Also, the alias command should be used only once
     if (2 != argc) {
 
     // There should be one argument, a list of valid packages.
     // Also, the alias command should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name,
-                               "The alias command should be followed by a list of known aliases.");
+       CdlParse::report_error(interp, diag_package + name,
+                              "The alias command should be followed by a list of known aliases.");
     } else if (0 < package->aliases.size()) {
     } else if (0 < package->aliases.size()) {
-        CdlParse::report_warning(interp, diag_package + name, "There should be only one list of aliases.");
+       CdlParse::report_warning(interp, diag_package + name, "There should be only one list of aliases.");
     } else {
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_package + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            if (0 == list_count) {
-                CdlParse::report_error(interp, diag_package + name, "At least one alias should be supplied.");
-            } else {
-                for (int i = 0; i < list_count; i++) {
-                    package->aliases.push_back(list_entries[i]);
-                }
-            }
-            Tcl_Free((char*)list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_package + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           if (0 == list_count) {
+               CdlParse::report_error(interp, diag_package + name, "At least one alias should be supplied.");
+           } else {
+               for (int i = 0; i < list_count; i++) {
+                   package->aliases.push_back(list_entries[i]);
+               }
+           }
+           Tcl_Free((char*)list_entries);
+       }
     }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -343,16 +343,16 @@ CdlDbParser::package_directory(CdlInterpreter interp, int argc, const char* argv
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     // There should be exactly one argument, and the directory command
     // should be used only once.
     if (2 != argc) {
 
     // There should be exactly one argument, and the directory command
     // should be used only once.
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "Only one directory can be specified.");
+       CdlParse::report_error(interp, diag_package + name, "Only one directory can be specified.");
     } else if ("" != package->directory) {
     } else if ("" != package->directory) {
-        CdlParse::report_warning(interp, diag_package + name, "A package can be located in only one directory.");
+       CdlParse::report_warning(interp, diag_package + name, "A package can be located in only one directory.");
     } else {
     } else {
-        package->directory = argv[1];
+       package->directory = argv[1];
     }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
     }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
@@ -370,16 +370,16 @@ CdlDbParser::package_hardware(CdlInterpreter interp, int argc, const char* argv[
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     if (1 != argc) {
 
     if (1 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "There should be no further data after hardware.");
+       CdlParse::report_error(interp, diag_package + name, "There should be no further data after hardware.");
     } else if (package->hardware) {
     } else if (package->hardware) {
-        CdlParse::report_warning(interp, diag_package + name, "The hardware property should be specified only once");
+       CdlParse::report_warning(interp, diag_package + name, "The hardware property should be specified only once");
     } else {
     } else {
-        package->hardware    = true;
+       package->hardware    = true;
     }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -395,16 +395,16 @@ CdlDbParser::package_script(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
     std::string name = interp->get_variable(dbparser_pkgname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::package_data* package =
-        static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
+       static_cast<CdlPackagesDatabaseBody::package_data*>(interp->get_assoc_data(dbparser_pkgdata));
 
     // There should be exactly one argument, and the script command
     // should be used only once
     if (2 != argc) {
 
     // There should be exactly one argument, and the script command
     // should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_package + name, "Only one CDL script can be specified.");
+       CdlParse::report_error(interp, diag_package + name, "Only one CDL script can be specified.");
     } else if ("" != package->script) {
     } else if ("" != package->script) {
-        CdlParse::report_warning(interp, diag_package + name, "A package can have only one starting CDL script.");
+       CdlParse::report_warning(interp, diag_package + name, "A package can have only one starting CDL script.");
     } else {
     } else {
-        package->script = argv[1];
+       package->script = argv[1];
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
@@ -412,7 +412,7 @@ CdlDbParser::package_script(CdlInterpreter interp, int argc, const char* argv[])
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlDbParser::target-related                      
+//{{{  CdlDbParser::target-related
 
 // ----------------------------------------------------------------------------
 // target <name> <body>
 
 // ----------------------------------------------------------------------------
 // target <name> <body>
@@ -426,27 +426,27 @@ CdlDbParser::new_target(CdlInterpreter interp, int argc, const char* argv[])
 
     CdlPackagesDatabase db      = static_cast<CdlPackagesDatabase>(interp->get_assoc_data(dbparser_database_key));
     CYG_INVARIANT_CLASSC(CdlPackagesDatabaseBody, db);
 
     CdlPackagesDatabase db      = static_cast<CdlPackagesDatabase>(interp->get_assoc_data(dbparser_database_key));
     CYG_INVARIANT_CLASSC(CdlPackagesDatabaseBody, db);
-    
+
     if (3 != argc) {
     if (3 != argc) {
-        if (argc < 2) {
-            CdlParse::report_error(interp, "", "Invalid target command, missing name and contents.");
-        } else if (argc == 2) {
-            CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, missing body.");
-        } else {
-            CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, expecting just name and body.");
-        }
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       if (argc < 2) {
+           CdlParse::report_error(interp, "", "Invalid target command, missing name and contents.");
+       } else if (argc == 2) {
+           CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, missing body.");
+       } else {
+           CdlParse::report_error(interp, diag_target + argv[1], "Invalid target command, expecting just name and body.");
+       }
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
     }
-    
+
     std::string target_name     = argv[1];
 
     // Better make sure that this is not a duplicate definition.
     if (std::find(db->target_names.begin(), db->target_names.end(), target_name) != db->target_names.end()) {
     std::string target_name     = argv[1];
 
     // Better make sure that this is not a duplicate definition.
     if (std::find(db->target_names.begin(), db->target_names.end(), target_name) != db->target_names.end()) {
-        CdlParse::report_warning(interp, diag_target + target_name,
-                                 "Duplicate target entry, ignoring second occurence.");
-        CYG_REPORT_RETVAL(TCL_OK);
-        return TCL_OK;
+       CdlParse::report_warning(interp, diag_target + target_name,
+                                "Duplicate target entry, ignoring second occurence.");
+       CYG_REPORT_RETVAL(TCL_OK);
+       return TCL_OK;
     }
 
     // The target data is constructed locally. It only gets added to the
     }
 
     // The target data is constructed locally. It only gets added to the
@@ -462,34 +462,34 @@ CdlDbParser::new_target(CdlInterpreter interp, int argc, const char* argv[])
     // no need to worry about error recovery here, any errors will be
     // fatal anyway.
     CdlInterpreterCommandEntry commands[] = {
     // no need to worry about error recovery here, any errors will be
     // fatal anyway.
     CdlInterpreterCommandEntry commands[] = {
-        CdlInterpreterCommandEntry("description",    &CdlDbParser::target_description    ),
-        CdlInterpreterCommandEntry("alias",          &CdlDbParser::target_alias          ),
-        CdlInterpreterCommandEntry("packages",       &CdlDbParser::target_packages       ),
-        CdlInterpreterCommandEntry("enable",         &CdlDbParser::target_enable         ),
-        CdlInterpreterCommandEntry("disable",        &CdlDbParser::target_disable        ),
-        CdlInterpreterCommandEntry("set_value",      &CdlDbParser::target_set_value      ),
-        CdlInterpreterCommandEntry("",               0                                   )
+       CdlInterpreterCommandEntry("description",    &CdlDbParser::target_description    ),
+       CdlInterpreterCommandEntry("alias",          &CdlDbParser::target_alias          ),
+       CdlInterpreterCommandEntry("packages",       &CdlDbParser::target_packages       ),
+       CdlInterpreterCommandEntry("enable",         &CdlDbParser::target_enable         ),
+       CdlInterpreterCommandEntry("disable",        &CdlDbParser::target_disable        ),
+       CdlInterpreterCommandEntry("set_value",      &CdlDbParser::target_set_value      ),
+       CdlInterpreterCommandEntry("",               0                                   )
     };
     CdlInterpreterBody::CommandSupport  interp_cmds(interp, commands);
     CdlInterpreterBody::VariableSupport interp_name(interp, dbparser_targetname, target_name);
     CdlInterpreterBody::AssocSupport    interp_data(interp, dbparser_targetdata, static_cast<ClientData>(&target));
     int result = interp->eval(argv[2]);
     if (TCL_OK == result) {
     };
     CdlInterpreterBody::CommandSupport  interp_cmds(interp, commands);
     CdlInterpreterBody::VariableSupport interp_name(interp, dbparser_targetname, target_name);
     CdlInterpreterBody::AssocSupport    interp_data(interp, dbparser_targetdata, static_cast<ClientData>(&target));
     int result = interp->eval(argv[2]);
     if (TCL_OK == result) {
-        
-        if (0 == target.aliases.size()) {
-            CdlParse::report_error(interp, diag_target + target_name, "At least one alias should be supplied.");
-        }
-        
-        // There is no check for > 0 hardware packages. This is an unlikely
-        // scenario but should be allowed for.
-        // Add this target to the list.
+
+       if (0 == target.aliases.size()) {
+           CdlParse::report_error(interp, diag_target + target_name, "At least one alias should be supplied.");
+       }
+
+       // There is no check for > 0 hardware packages. This is an unlikely
+       // scenario but should be allowed for.
+       // Add this target to the list.
     }
 
     if (target_ok && (old_error_count == CdlParse::get_error_count(interp))) {
     }
 
     if (target_ok && (old_error_count == CdlParse::get_error_count(interp))) {
-        db->target_names.push_back(target_name);
-        db->targets[target_name] = target;
+       db->target_names.push_back(target_name);
+       db->targets[target_name] = target;
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -505,16 +505,16 @@ CdlDbParser::target_description(CdlInterpreter interp, int argc, const char* arg
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     if (2 != argc) {
 
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "The target description should be a single string.");
+       CdlParse::report_error(interp, diag_target + name, "The target description should be a single string.");
     } else if ("" != target->description) {
     } else if ("" != target->description) {
-        CdlParse::report_warning(interp, diag_target + name, "A target should have only one description.");
+       CdlParse::report_warning(interp, diag_target + name, "A target should have only one description.");
     } else {
     } else {
-        target->description = argv[1];
+       target->description = argv[1];
     }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -531,32 +531,32 @@ CdlDbParser::target_alias(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid aliases
     // The alias command should be used only once
     if (2 != argc) {
 
     // There should be one argument, a list of valid aliases
     // The alias command should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "The alias command should be followed by a list of known aliases");
+       CdlParse::report_error(interp, diag_target + name, "The alias command should be followed by a list of known aliases");
     } else if (0 < target->aliases.size()) {
     } else if (0 < target->aliases.size()) {
-        CdlParse::report_warning(interp, diag_target + name, "There should be only one list of aliases.");
+       CdlParse::report_warning(interp, diag_target + name, "There should be only one list of aliases.");
     } else {
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            if (0 == list_count) {
-                CdlParse::report_error(interp, diag_target + name, "At least one alias should be supplied.");
-            } else {
-                for (int i = 0; i < list_count; i++) {
-                    target->aliases.push_back(list_entries[i]);
-                }
-            }
-            Tcl_Free((char*)list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           if (0 == list_count) {
+               CdlParse::report_error(interp, diag_target + name, "At least one alias should be supplied.");
+           } else {
+               for (int i = 0; i < list_count; i++) {
+                   target->aliases.push_back(list_entries[i]);
+               }
+           }
+           Tcl_Free((char*)list_entries);
+       }
     }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -573,31 +573,31 @@ CdlDbParser::target_packages(CdlInterpreter interp, int argc, const char* argv[]
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid packages.
     // The packages command should be used only once
     if (2 != argc) {
 
     // There should be one argument, a list of valid packages.
     // The packages command should be used only once
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`packages' should be followed by a list of known packages.");
+       CdlParse::report_error(interp, diag_target + name, "`packages' should be followed by a list of known packages.");
     } else if (0 < target->packages.size()) {
     } else if (0 < target->packages.size()) {
-        CdlParse::report_warning(interp, diag_target + name, "There should be only one list of packages.");
+       CdlParse::report_warning(interp, diag_target + name, "There should be only one list of packages.");
     } else {
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            // Allow for a dummy target spec, just in case it proves useful.
-            if (0 != list_count) {
-                for (int i = 0; i < list_count; i++) {
-                    target->packages.push_back(list_entries[i]);
-                }
-            }
-            Tcl_Free((char*)list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           // Allow for a dummy target spec, just in case it proves useful.
+           if (0 != list_count) {
+               for (int i = 0; i < list_count; i++) {
+                   target->packages.push_back(list_entries[i]);
+               }
+           }
+           Tcl_Free((char*)list_entries);
+       }
     }
     }
-    
+
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
@@ -614,30 +614,30 @@ CdlDbParser::target_enable(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid flags.
     if (2 != argc) {
 
     // There should be one argument, a list of valid flags.
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`enable' should be followed by a list of CDL options.");
+       CdlParse::report_error(interp, diag_target + name, "`enable' should be followed by a list of CDL options.");
     } else {
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            for (int i = 0; i < list_count; i++) {
-                target->enable.push_back(list_entries[i]);
-            }
-            Tcl_Free((char *) list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           for (int i = 0; i < list_count; i++) {
+               target->enable.push_back(list_entries[i]);
+           }
+           Tcl_Free((char *) list_entries);
+       }
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
 
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
     return TCL_OK;
 }
 
-                           
+
 // Syntax: disable { opt1 opt2 ... }
 // For example: disable { CYGPKG_HAL_ARM_CL7xxx_7111 }
 int
 // Syntax: disable { opt1 opt2 ... }
 // For example: disable { CYGPKG_HAL_ARM_CL7xxx_7111 }
 int
@@ -650,23 +650,23 @@ CdlDbParser::target_disable(CdlInterpreter interp, int argc, const char* argv[])
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid flags.
     if (2 != argc) {
 
     // There should be one argument, a list of valid flags.
     if (2 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`disable' should be followed by a list of CDL options.");
+       CdlParse::report_error(interp, diag_target + name, "`disable' should be followed by a list of CDL options.");
     } else {
     } else {
-        int          list_count     = 0;
-        const char** list_entries   = 0;
-        Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
-        if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
-            CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
-        } else {
-            for (int i = 0; i < list_count; i++) {
-                target->disable.push_back(list_entries[i]);
-            }
-            Tcl_Free((char *) list_entries);
-        }
+       int          list_count     = 0;
+       const char** list_entries   = 0;
+       Tcl_Interp* tcl_interp      = interp->get_tcl_interpreter();
+       if (TCL_OK != Tcl_SplitList(tcl_interp, CDL_TCL_CONST_CAST(char*, argv[1]), &list_count, CDL_TCL_CONST_CAST(char***, &list_entries))) {
+           CdlParse::report_error(interp, diag_target + name, Tcl_GetStringResult(tcl_interp));
+       } else {
+           for (int i = 0; i < list_count; i++) {
+               target->disable.push_back(list_entries[i]);
+           }
+           Tcl_Free((char *) list_entries);
+       }
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
@@ -685,13 +685,13 @@ CdlDbParser::target_set_value(CdlInterpreter interp, int argc, const char* argv[
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
     std::string name = interp->get_variable(dbparser_targetname);
     CYG_ASSERTC("" != name);
     CdlPackagesDatabaseBody::target_data* target =
-        static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
+       static_cast<CdlPackagesDatabaseBody::target_data*>(interp->get_assoc_data(dbparser_targetdata));
 
     // There should be one argument, a list of valid flags.
     if (3 != argc) {
 
     // There should be one argument, a list of valid flags.
     if (3 != argc) {
-        CdlParse::report_error(interp, diag_target + name, "`set_value' should be followed by an option name and its value.");
+       CdlParse::report_error(interp, diag_target + name, "`set_value' should be followed by an option name and its value.");
     } else {
     } else {
-        target->set_values.push_back(std::make_pair(std::string(argv[1]), std::string(argv[2])));
+       target->set_values.push_back(std::make_pair(std::string(argv[1]), std::string(argv[2])));
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
     }
 
     CYG_REPORT_RETVAL(TCL_OK);
@@ -701,7 +701,7 @@ CdlDbParser::target_set_value(CdlInterpreter interp, int argc, const char* argv[
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlPackagesDatabase:: creation                           
+//{{{  CdlPackagesDatabase:: creation
 
 // ----------------------------------------------------------------------------
 // The exported interface is make(). The hard work is done inside the
 
 // ----------------------------------------------------------------------------
 // The exported interface is make(). The hard work is done inside the
@@ -715,22 +715,22 @@ CdlPackagesDatabaseBody::make(std::string repo, CdlDiagnosticFnPtr error_fn, Cdl
     // Where is the component repository? The location may come from the
     // parent or from an environment variable ECOS_REPOSITORY
     if ("" == repo) {
     // Where is the component repository? The location may come from the
     // parent or from an environment variable ECOS_REPOSITORY
     if ("" == repo) {
-        char *env = getenv("ECOS_REPOSITORY");
-        if (0 == env) {
-            throw CdlInputOutputException(std::string("No component repository specified and no ") +
-                                          std::string("ECOS_REPOSITORY environment variable"));
-        } else {
-            repo = env;
-        }
+       char *env = getenv("ECOS_REPOSITORY");
+       if (0 == env) {
+           throw CdlInputOutputException(std::string("No component repository specified and no ") +
+                                         std::string("ECOS_REPOSITORY environment variable"));
+       } else {
+           repo = env;
+       }
     }
 
     // Replace any backslashes in the repository with forward slashes.
     // The latter are used throughout the library
     // NOTE: this is not i18n-friendly.
     for (unsigned int i = 0; i < repo.size(); i++) {
     }
 
     // Replace any backslashes in the repository with forward slashes.
     // The latter are used throughout the library
     // NOTE: this is not i18n-friendly.
     for (unsigned int i = 0; i < repo.size(); i++) {
-        if ('\\' == repo[i]) {
-            repo[i] = '/';
-        }
+       if ('\\' == repo[i]) {
+           repo[i] = '/';
+       }
     }
     CdlPackagesDatabase result = new CdlPackagesDatabaseBody(repo, error_fn, warn_fn);
     CYG_REPORT_RETVAL(result);
     }
     CdlPackagesDatabase result = new CdlPackagesDatabaseBody(repo, error_fn, warn_fn);
     CYG_REPORT_RETVAL(result);
@@ -748,7 +748,7 @@ CdlPackagesDatabaseBody::CdlPackagesDatabaseBody(std::string repo, CdlDiagnostic
     // so make sure that the database is valid first.
     component_repository                = repo;
     cdlpackagesdatabasebody_cookie      = CdlPackagesDatabaseBody_Magic;
     // so make sure that the database is valid first.
     component_repository                = repo;
     cdlpackagesdatabasebody_cookie      = CdlPackagesDatabaseBody_Magic;
-    
+
     // We want to read in the entire packages file. Portability problems
     // can be largely eliminated by using a Tcl interpreter for this, but
     // under Windows there is a problem if the pathname is a cygwin one.
     // We want to read in the entire packages file. Portability problems
     // can be largely eliminated by using a Tcl interpreter for this, but
     // under Windows there is a problem if the pathname is a cygwin one.
@@ -767,104 +767,104 @@ CdlPackagesDatabaseBody::CdlPackagesDatabaseBody(std::string repo, CdlDiagnostic
     CdlInterpreter interp = CdlInterpreterBody::make();
 
     try {
     CdlInterpreter interp = CdlInterpreterBody::make();
 
     try {
-        
-        CdlInterpreterBody::ContextSupport context(interp, database_name);
-        CdlInterpreterCommandEntry commands[] =
-        {
-            CdlInterpreterCommandEntry("package",  &CdlDbParser::new_package  ),
-            CdlInterpreterCommandEntry("target",   &CdlDbParser::new_target   ),
-            CdlInterpreterCommandEntry("",         0                          )
-        };
-        CdlInterpreterBody::CommandSupport cmds(interp, commands);
-        CdlInterpreterBody::DiagSupport diag(interp, error_fn, warn_fn);
-        CdlInterpreterBody::AssocSupport assoc(interp, dbparser_database_key, static_cast<ClientData>(this));
-        CdlInterpreterBody::VariableSupport var(interp, dbparser_component_repository, repo);
-        interp->add_command("unknown", &CdlParse::unknown_command);
-        CdlParse::clear_error_count(interp);
-
-        // Ignore errors at this stage, instead check error count at the end.
-        (void) interp->eval_file(component_repository + "/" + database_name);
-    
-        // Now start looking for templates. These should reside in the
-        // templates subdirectory of the component repository. Each template
-        // should be in its own directory, and inside each directory should
-        // be versioned template files with a .ect extension.
-        std::string templates_dir = repo + "/" + "templates";
-        std::vector<std::string> subdirs;
-        interp->locate_subdirs(templates_dir, subdirs);
-
-        unsigned int i;
-        for (i = 0; i < subdirs.size(); i++) {
-            // Do not add the template to the known ones until we are sure there is
-            // at least one valid template.
-            std::vector<std::string> files;
-            interp->locate_files(templates_dir + "/" + subdirs[i], files);
-            unsigned int j;
-            for (j = 0; j < files.size(); j++) {
-                if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
-                    break;
-                }
-            }
-            if (j != files.size()) {
-                this->template_names.push_back(subdirs[i]);
-                for ( ; j < files.size(); j++) {
-                    if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
-                        this->templates[subdirs[i]].versions.push_back(files[j].substr(0, files[j].size() - 4));
-                    }
-                }
-            }
-        }
-
-        // Consistency checks. All target-specific packages should
-        // have the hardware attribute. Also, all the packages should
-        // exist. Problems only result in warnings and only when
-        // operating in verbose mode, to allow for somewhat
-        // inconsistent repositories e.g. an anoncvs tree.
-        if (CdlPackagesDatabaseBody::verbose_mode) {
-            std::vector<std::string>::const_iterator name_i;
-            std::vector<std::string>::const_iterator name_j;
-            for (name_i = target_names.begin(); name_i != target_names.end(); name_i++) {
-                for (name_j = targets[*name_i].packages.begin(); name_j != targets[*name_i].packages.end(); name_j++) {
-                    if (std::find(package_names.begin(), package_names.end(), *name_j) == package_names.end()) {
-                        CdlParse::report_warning(interp, diag_target + *name_i,
-                                                 std::string("This target refers to an unknown package `") + *name_j + "'.");
-                    }
-                    if (!packages[*name_j].hardware) {
-                        CdlParse::report_warning(interp, diag_target + *name_i,
-                                                 std::string("This target refers to a package `") + *name_j +
-                                                 "' that is not hardware-specific.");
-                    }
-                }
-            }
-        }
-        // Now, were there any errors while reading in the database?
-        // If so it is necessary to throw an exception here, to make sure
-        // that things get cleaned up properly.
-        int error_count = CdlParse::get_error_count(interp);
-        if (0 != error_count) {
-            throw CdlInputOutputException("Invalid package database.");
-        }
+
+       CdlInterpreterBody::ContextSupport context(interp, database_name);
+       CdlInterpreterCommandEntry commands[] =
+       {
+           CdlInterpreterCommandEntry("package",  &CdlDbParser::new_package  ),
+           CdlInterpreterCommandEntry("target",   &CdlDbParser::new_target   ),
+           CdlInterpreterCommandEntry("",         0                          )
+       };
+       CdlInterpreterBody::CommandSupport cmds(interp, commands);
+       CdlInterpreterBody::DiagSupport diag(interp, error_fn, warn_fn);
+       CdlInterpreterBody::AssocSupport assoc(interp, dbparser_database_key, static_cast<ClientData>(this));
+       CdlInterpreterBody::VariableSupport var(interp, dbparser_component_repository, repo);
+       interp->add_command("unknown", &CdlParse::unknown_command);
+       CdlParse::clear_error_count(interp);
+
+       // Ignore errors at this stage, instead check error count at the end.
+       (void) interp->eval_file(component_repository + "/" + database_name);
+
+       // Now start looking for templates. These should reside in the
+       // templates subdirectory of the component repository. Each template
+       // should be in its own directory, and inside each directory should
+       // be versioned template files with a .ect extension.
+       std::string templates_dir = repo + "/" + "templates";
+       std::vector<std::string> subdirs;
+       interp->locate_subdirs(templates_dir, subdirs);
+
+       unsigned int i;
+       for (i = 0; i < subdirs.size(); i++) {
+           // Do not add the template to the known ones until we are sure there is
+           // at least one valid template.
+           std::vector<std::string> files;
+           interp->locate_files(templates_dir + "/" + subdirs[i], files);
+           unsigned int j;
+           for (j = 0; j < files.size(); j++) {
+               if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
+                   break;
+               }
+           }
+           if (j != files.size()) {
+               this->template_names.push_back(subdirs[i]);
+               for ( ; j < files.size(); j++) {
+                   if ((4 < files[j].size()) && (".ect" == files[j].substr(files[j].size() - 4))) {
+                       this->templates[subdirs[i]].versions.push_back(files[j].substr(0, files[j].size() - 4));
+                   }
+               }
+           }
+       }
+
+       // Consistency checks. All target-specific packages should
+       // have the hardware attribute. Also, all the packages should
+       // exist. Problems only result in warnings and only when
+       // operating in verbose mode, to allow for somewhat
+       // inconsistent repositories e.g. an anoncvs tree.
+       if (CdlPackagesDatabaseBody::verbose_mode) {
+           std::vector<std::string>::const_iterator name_i;
+           std::vector<std::string>::const_iterator name_j;
+           for (name_i = target_names.begin(); name_i != target_names.end(); name_i++) {
+               for (name_j = targets[*name_i].packages.begin(); name_j != targets[*name_i].packages.end(); name_j++) {
+                   if (std::find(package_names.begin(), package_names.end(), *name_j) == package_names.end()) {
+                       CdlParse::report_warning(interp, diag_target + *name_i,
+                                                std::string("This target refers to an unknown package `") + *name_j + "'.");
+                   }
+                   if (!packages[*name_j].hardware) {
+                       CdlParse::report_warning(interp, diag_target + *name_i,
+                                                std::string("This target refers to a package `") + *name_j +
+                                                "' that is not hardware-specific.");
+                   }
+               }
+           }
+       }
+       // Now, were there any errors while reading in the database?
+       // If so it is necessary to throw an exception here, to make sure
+       // that things get cleaned up properly.
+       int error_count = CdlParse::get_error_count(interp);
+       if (0 != error_count) {
+           throw CdlInputOutputException("Invalid package database.");
+       }
     } catch(...) {
     } catch(...) {
-        // Something has gone wrong. Clear out all of the data accumulated so far, as well
-        // as the interpreter.
-        delete interp;
-        package_names.clear();
-        target_names.clear();
-        template_names.clear();
-        packages.clear();
-        targets.clear();
-        templates.clear();
-        throw;
+       // Something has gone wrong. Clear out all of the data accumulated so far, as well
+       // as the interpreter.
+       delete interp;
+       package_names.clear();
+       target_names.clear();
+       template_names.clear();
+       packages.clear();
+       targets.clear();
+       templates.clear();
+       throw;
     }
 
     delete interp;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     }
 
     delete interp;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: destructor                         
+//{{{  CdlPackagesDatabase:: destructor
 
 // ----------------------------------------------------------------------------
 CdlPackagesDatabaseBody::~CdlPackagesDatabaseBody()
 
 // ----------------------------------------------------------------------------
 CdlPackagesDatabaseBody::~CdlPackagesDatabaseBody()
@@ -883,12 +883,12 @@ CdlPackagesDatabaseBody::~CdlPackagesDatabaseBody()
     templates.clear();
 
     CYGDBG_MEMLEAK_DESTRUCTOR();
     templates.clear();
 
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: check_this()                       
+//{{{  CdlPackagesDatabase:: check_this()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -896,7 +896,7 @@ bool
 CdlPackagesDatabaseBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlPackagesDatabaseBody_Magic != cdlpackagesdatabasebody_cookie) {
 CdlPackagesDatabaseBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlPackagesDatabaseBody_Magic != cdlpackagesdatabasebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
@@ -904,68 +904,68 @@ CdlPackagesDatabaseBody::check_this(cyg_assert_class_zeal zeal) const
       case cyg_system_test :
       case cyg_extreme :
       {
       case cyg_system_test :
       case cyg_extreme :
       {
-          std::vector<std::string>::const_iterator              names_i;
-          std::map<std::string,package_data>::const_iterator    pkgs_i;
-          
-          // Every entry in the names vector should have an entry in the packages vector.
-          for (names_i = package_names.begin(); names_i != package_names.end(); names_i++) {
-              if (packages.find(*names_i) == packages.end()) {
-                  return false;
-              }
-          }
-          // The inverse should be true as well
-          for (pkgs_i = packages.begin(); pkgs_i != packages.end(); pkgs_i++) {
-              if (std::find(package_names.begin(), package_names.end(), pkgs_i->first) == package_names.end()) {
-                  return false;
-              }
-          }
-          
-          // Repeat for targets.
-          std::map<std::string,target_data>::const_iterator     targets_i;
-          for (names_i = target_names.begin(); names_i != target_names.end(); names_i++) {
-              if (targets.find(*names_i) == targets.end()) {
-                  return false;
-              }
-          }
-          for (targets_i = targets.begin(); targets_i != targets.end(); targets_i++) {
-              if (std::find(target_names.begin(), target_names.end(), targets_i->first) == target_names.end()) {
-                  return false;
-              }
-          }
-
-          // And for templates
-          std::map<std::string,template_data>::const_iterator    templates_i;
-          for (names_i = template_names.begin(); names_i != template_names.end(); names_i++) {
-              if (templates.find(*names_i) == templates.end()) {
-                  return false;
-              }
-          }
-          // The inverse should be true as well
-          for (templates_i = templates.begin(); templates_i != templates.end(); templates_i++) {
-              if (std::find(template_names.begin(), template_names.end(), templates_i->first) == template_names.end()) {
-                  return false;
-              }
-          }
-          
-          // Possibly the package directories should be validated as
-          // well, not to mention the various version subdirectories,
-          // but doing file I/O inside an assertion is excessive.
+         std::vector<std::string>::const_iterator              names_i;
+         std::map<std::string,package_data>::const_iterator    pkgs_i;
+
+         // Every entry in the names vector should have an entry in the packages vector.
+         for (names_i = package_names.begin(); names_i != package_names.end(); names_i++) {
+             if (packages.find(*names_i) == packages.end()) {
+                 return false;
+             }
+         }
+         // The inverse should be true as well
+         for (pkgs_i = packages.begin(); pkgs_i != packages.end(); pkgs_i++) {
+             if (std::find(package_names.begin(), package_names.end(), pkgs_i->first) == package_names.end()) {
+                 return false;
+             }
+         }
+
+         // Repeat for targets.
+         std::map<std::string,target_data>::const_iterator     targets_i;
+         for (names_i = target_names.begin(); names_i != target_names.end(); names_i++) {
+             if (targets.find(*names_i) == targets.end()) {
+                 return false;
+             }
+         }
+         for (targets_i = targets.begin(); targets_i != targets.end(); targets_i++) {
+             if (std::find(target_names.begin(), target_names.end(), targets_i->first) == target_names.end()) {
+                 return false;
+             }
+         }
+
+         // And for templates
+         std::map<std::string,template_data>::const_iterator    templates_i;
+         for (names_i = template_names.begin(); names_i != template_names.end(); names_i++) {
+             if (templates.find(*names_i) == templates.end()) {
+                 return false;
+             }
+         }
+         // The inverse should be true as well
+         for (templates_i = templates.begin(); templates_i != templates.end(); templates_i++) {
+             if (std::find(template_names.begin(), template_names.end(), templates_i->first) == template_names.end()) {
+                 return false;
+             }
+         }
+
+         // Possibly the package directories should be validated as
+         // well, not to mention the various version subdirectories,
+         // but doing file I/O inside an assertion is excessive.
       }
       case cyg_thorough :
       case cyg_quick:
       }
       case cyg_thorough :
       case cyg_quick:
-          if ("" == component_repository) {
-              return false;
-          }
+         if ("" == component_repository) {
+             return false;
+         }
       case cyg_trivial:
       case cyg_none :
       case cyg_trivial:
       case cyg_none :
-        break;
+       break;
     }
 
     return true;
 }
 
 //}}}
     }
 
     return true;
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: misc                               
+//{{{  CdlPackagesDatabase:: misc
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -987,12 +987,12 @@ CdlPackagesDatabaseBody::set_verbose(bool new_mode)
     CYG_REPORT_FUNCARG1XV(new_mode);
 
     verbose_mode = new_mode;
     CYG_REPORT_FUNCARG1XV(new_mode);
 
     verbose_mode = new_mode;
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get package information            
+//{{{  CdlPackagesDatabase:: get package information
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1016,7 +1016,7 @@ CdlPackagesDatabaseBody::is_known_package(std::string name) const
 
     bool result = false;
     if (std::find(package_names.begin(), package_names.end(), name) != package_names.end()) {
 
     bool result = false;
     if (std::find(package_names.begin(), package_names.end(), name) != package_names.end()) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1032,10 +1032,10 @@ CdlPackagesDatabaseBody::get_package_description(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.description;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.description;
     }
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_description()");
     static std::string dummy = "";
     return dummy;
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_description()");
     static std::string dummy = "";
     return dummy;
@@ -1050,10 +1050,10 @@ CdlPackagesDatabaseBody::get_package_aliases(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.aliases;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.aliases;
     }
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_aliases()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_aliases()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1068,10 +1068,10 @@ CdlPackagesDatabaseBody::get_package_versions(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.versions;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.versions;
     }
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_versions()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_versions()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1086,10 +1086,10 @@ CdlPackagesDatabaseBody::get_package_directory(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.directory;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.directory;
     }
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_directory()");
     static std::string dummy = "";
     return dummy;
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_directory()");
     static std::string dummy = "";
     return dummy;
@@ -1104,10 +1104,10 @@ CdlPackagesDatabaseBody::get_package_script(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.script;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.script;
     }
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_script()");
     static std::string dummy = "";
     return dummy;
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::get_package_script()");
     static std::string dummy = "";
     return dummy;
@@ -1122,16 +1122,16 @@ CdlPackagesDatabaseBody::is_hardware_package(std::string pkg_name) const
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
 
     std::map<std::string,package_data>::const_iterator pkgs_i = packages.find(pkg_name);
     if (pkgs_i != packages.end()) {
-        CYG_REPORT_RETURN();
-        return pkgs_i->second.hardware;
+       CYG_REPORT_RETURN();
+       return pkgs_i->second.hardware;
     }
     }
-    
+
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::is_hardware_package()");
     return false;
 }
 
 //}}}
     CYG_FAIL("Invalid package name passed to CdlPackagesDatabase::is_hardware_package()");
     return false;
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get target information             
+//{{{  CdlPackagesDatabase:: get target information
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1154,7 +1154,7 @@ CdlPackagesDatabaseBody::is_known_target(std::string name) const
 
     bool result = false;
     if (std::find(target_names.begin(), target_names.end(), name) != target_names.end()) {
 
     bool result = false;
     if (std::find(target_names.begin(), target_names.end(), name) != target_names.end()) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1169,10 +1169,10 @@ CdlPackagesDatabaseBody::get_target_description(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.description;
+       CYG_REPORT_RETURN();
+       return target_i->second.description;
     }
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_description()");
     static std::string dummy = "";
     return dummy;
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_description()");
     static std::string dummy = "";
     return dummy;
@@ -1186,10 +1186,10 @@ CdlPackagesDatabaseBody::get_target_aliases(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.aliases;
+       CYG_REPORT_RETURN();
+       return target_i->second.aliases;
     }
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_aliases()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_aliases()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1203,10 +1203,10 @@ CdlPackagesDatabaseBody::get_target_packages(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
 
     std::map<std::string,target_data>::const_iterator target_i = targets.find(target_name);
     if (target_i != targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.packages;
+       CYG_REPORT_RETURN();
+       return target_i->second.packages;
     }
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_packages()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_packages()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1220,10 +1220,10 @@ CdlPackagesDatabaseBody::get_target_enables(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.enable;
+       CYG_REPORT_RETURN();
+       return target_i->second.enable;
     }
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_enables()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_enables()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1237,10 +1237,10 @@ CdlPackagesDatabaseBody::get_target_disables(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.disable;
+       CYG_REPORT_RETURN();
+       return target_i->second.disable;
     }
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_disables()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_disables()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1254,17 +1254,17 @@ CdlPackagesDatabaseBody::get_target_set_values(std::string target_name) const
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
 
     std::map<std::string,target_data>::const_iterator target_i = this->targets.find(target_name);
     if (target_i != this->targets.end()) {
-        CYG_REPORT_RETURN();
-        return target_i->second.set_values;
+       CYG_REPORT_RETURN();
+       return target_i->second.set_values;
     }
     }
-    
+
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_values()");
     static std::vector<std::pair<std::string, std::string> > dummy;
     return dummy;
 }
 
 //}}}
     CYG_FAIL("Invalid target name passed to CdlPackagesDatabase::get_target_values()");
     static std::vector<std::pair<std::string, std::string> > dummy;
     return dummy;
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get template information           
+//{{{  CdlPackagesDatabase:: get template information
 
 // ----------------------------------------------------------------------------
 // Templates are different from packages and targets. The ecos.db file
 
 // ----------------------------------------------------------------------------
 // Templates are different from packages and targets. The ecos.db file
@@ -1292,7 +1292,7 @@ CdlPackagesDatabaseBody::is_known_template(std::string name) const
 
     bool result = false;
     if (std::find(template_names.begin(), template_names.end(), name) != template_names.end()) {
 
     bool result = false;
     if (std::find(template_names.begin(), template_names.end(), name) != template_names.end()) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1308,10 +1308,10 @@ CdlPackagesDatabaseBody::get_template_versions(std::string template_name) const
 
     std::map<std::string,template_data>::const_iterator template_i = templates.find(template_name);
     if (template_i != templates.end()) {
 
     std::map<std::string,template_data>::const_iterator template_i = templates.find(template_name);
     if (template_i != templates.end()) {
-        CYG_REPORT_RETURN();
-        return template_i->second.versions;
+       CYG_REPORT_RETURN();
+       return template_i->second.versions;
     }
     }
-    
+
     CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_versions()");
     static std::vector<std::string> dummy;
     return dummy;
     CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_versions()");
     static std::vector<std::string> dummy;
     return dummy;
@@ -1330,21 +1330,21 @@ CdlPackagesDatabaseBody::get_template_filename(std::string template_name, std::s
     // version should be used.
     std::map<std::string,template_data>::const_iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
     // version should be used.
     std::map<std::string,template_data>::const_iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
-        CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_filename");
-        CYG_REPORT_RETURN();
-        return "";
+       CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_filename");
+       CYG_REPORT_RETURN();
+       return "";
     }
     if ("" == version_name) {
     }
     if ("" == version_name) {
-        CYG_ASSERTC(0 != template_i->second.versions.size());
-        version_name = template_i->second.versions[0];
+       CYG_ASSERTC(0 != template_i->second.versions.size());
+       version_name = template_i->second.versions[0];
     } else {
     } else {
-        std::vector<std::string>::const_iterator vsn_i = std::find(template_i->second.versions.begin(),
-                                                                   template_i->second.versions.end(), version_name);
-        if (vsn_i == template_i->second.versions.end()) {
-            CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_filename");
-            CYG_REPORT_RETURN();
-            return "";
-        }
+       std::vector<std::string>::const_iterator vsn_i = std::find(template_i->second.versions.begin(),
+                                                                  template_i->second.versions.end(), version_name);
+       if (vsn_i == template_i->second.versions.end()) {
+           CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_filename");
+           CYG_REPORT_RETURN();
+           return "";
+       }
     }
 
     std::string result = component_repository + "/templates/" + template_name + "/" + version_name + ".ect";
     }
 
     std::string result = component_repository + "/templates/" + template_name + "/" + version_name + ".ect";
@@ -1367,23 +1367,23 @@ CdlPackagesDatabaseBody::get_template_description(std::string template_name, std
     // Is this a known template?
     std::map<std::string, struct template_data>::iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
     // Is this a known template?
     std::map<std::string, struct template_data>::iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
-        CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_description");
-        CYG_REPORT_RETURN();
-        return "";
+       CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_description");
+       CYG_REPORT_RETURN();
+       return "";
     }
 
     // Is it a known version of the template?
     if ("" == version_name) {
     }
 
     // Is it a known version of the template?
     if ("" == version_name) {
-        CYG_ASSERTC(0 != template_i->second.versions.size());
-        version_name = template_i->second.versions[0];
+       CYG_ASSERTC(0 != template_i->second.versions.size());
+       version_name = template_i->second.versions[0];
     } else {
     } else {
-        if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
-            template_i->second.versions.end()) {
+       if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
+           template_i->second.versions.end()) {
 
 
-            CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_description");
-            CYG_REPORT_RETURN();
-            return "";
-        }
+           CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_template_description");
+           CYG_REPORT_RETURN();
+           return "";
+       }
     }
 
     // We have a valid template and version. Has the version file in
     }
 
     // We have a valid template and version. Has the version file in
@@ -1391,17 +1391,17 @@ CdlPackagesDatabaseBody::get_template_description(std::string template_name, std
     std::map<std::string, struct template_version_data>::iterator version_i;
     version_i = template_i->second.version_details.find(version_name);
     if (version_i != template_i->second.version_details.end()) {
     std::map<std::string, struct template_version_data>::iterator version_i;
     version_i = template_i->second.version_details.find(version_name);
     if (version_i != template_i->second.version_details.end()) {
-        CYG_REPORT_RETURN();
-        return version_i->second.description;
+       CYG_REPORT_RETURN();
+       return version_i->second.description;
     }
     }
-    
+
     std::string filename = this->get_template_filename(template_name, version_name);
     if ("" == filename) {
     std::string filename = this->get_template_filename(template_name, version_name);
     if ("" == filename) {
-        CYG_REPORT_RETURN();
-        return "";
-    } 
+       CYG_REPORT_RETURN();
+       return "";
+    }
     extract_template_details(filename, template_i->second.version_details[version_name].description,
     extract_template_details(filename, template_i->second.version_details[version_name].description,
-                             template_i->second.version_details[version_name].packages);
+                            template_i->second.version_details[version_name].packages);
     CYG_REPORT_RETURN();
     return template_i->second.version_details[version_name].description;
 }
     CYG_REPORT_RETURN();
     return template_i->second.version_details[version_name].description;
 }
@@ -1417,27 +1417,27 @@ CdlPackagesDatabaseBody::get_template_packages(std::string template_name, std::s
     CYG_PRECONDITION_THISC();
 
     static std::vector<std::string> dummy;
     CYG_PRECONDITION_THISC();
 
     static std::vector<std::string> dummy;
-    
+
     // Is this a known template?
     std::map<std::string, struct template_data>::iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
     // Is this a known template?
     std::map<std::string, struct template_data>::iterator template_i = templates.find(template_name);
     if (template_i == templates.end()) {
-        CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_packages");
-        CYG_REPORT_RETURN();
-        return dummy;
+       CYG_FAIL("Invalid template name passed to CdlPackagesDatabase::get_template_packages");
+       CYG_REPORT_RETURN();
+       return dummy;
     }
 
     // Is it a known version of the template?
     if ("" == version_name) {
     }
 
     // Is it a known version of the template?
     if ("" == version_name) {
-        CYG_ASSERTC(0 != template_i->second.versions.size());
-        version_name = template_i->second.versions[0];
+       CYG_ASSERTC(0 != template_i->second.versions.size());
+       version_name = template_i->second.versions[0];
     } else {
     } else {
-        if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
-            template_i->second.versions.end()) {
+       if (std::find(template_i->second.versions.begin(), template_i->second.versions.end(), version_name) ==
+           template_i->second.versions.end()) {
 
 
-            CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_packages");
-            CYG_REPORT_RETURN();
-            return dummy;
-        }
+           CYG_FAIL("Invalid template version passed to CdlPackagesDatabase::get_packages");
+           CYG_REPORT_RETURN();
+           return dummy;
+       }
     }
 
     // We have a valid template and version. Has the version file in
     }
 
     // We have a valid template and version. Has the version file in
@@ -1445,17 +1445,17 @@ CdlPackagesDatabaseBody::get_template_packages(std::string template_name, std::s
     std::map<std::string, struct template_version_data>::iterator version_i;
     version_i = template_i->second.version_details.find(version_name);
     if (version_i != template_i->second.version_details.end()) {
     std::map<std::string, struct template_version_data>::iterator version_i;
     version_i = template_i->second.version_details.find(version_name);
     if (version_i != template_i->second.version_details.end()) {
-        CYG_REPORT_RETURN();
-        return version_i->second.packages;
+       CYG_REPORT_RETURN();
+       return version_i->second.packages;
     }
     }
-    
+
     std::string filename = this->get_template_filename(template_name, version_name);
     if ("" == filename) {
     std::string filename = this->get_template_filename(template_name, version_name);
     if ("" == filename) {
-        CYG_REPORT_RETURN();
-        return dummy;
-    } 
+       CYG_REPORT_RETURN();
+       return dummy;
+    }
     extract_template_details(filename, template_i->second.version_details[version_name].description,
     extract_template_details(filename, template_i->second.version_details[version_name].description,
-                             template_i->second.version_details[version_name].packages);
+                            template_i->second.version_details[version_name].packages);
     CYG_REPORT_RETURN();
     return template_i->second.version_details[version_name].packages;
 }
     CYG_REPORT_RETURN();
     return template_i->second.version_details[version_name].packages;
 }
@@ -1481,23 +1481,23 @@ extract_cdl_configuration(CdlInterpreter interp, int argc, const char* argv[])
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
-    
+
     // usage: cdl_configuration <name> <body>
     if (3 != argc) {
     // usage: cdl_configuration <name> <body>
     if (3 != argc) {
-        interp->set_result("Invalid cdl_configuration command in template, expecting two arguments");
-        result = TCL_ERROR;
+       interp->set_result("Invalid cdl_configuration command in template, expecting two arguments");
+       result = TCL_ERROR;
     } else {
     } else {
-        // Ignore the first argument for now.
-        std::string tmp;
-        result = interp->eval(argv[2], tmp);
-        
-        // After processing the cdl_configuration command the description and
-        // package information should be known. There is no point in processing
-        // the rest of the file.
-        if (TCL_OK == result) {
-            interp->set_result("OK");
-            result = TCL_ERROR;
-        }
+       // Ignore the first argument for now.
+       std::string tmp;
+       result = interp->eval(argv[2], tmp);
+
+       // After processing the cdl_configuration command the description and
+       // package information should be known. There is no point in processing
+       // the rest of the file.
+       if (TCL_OK == result) {
+           interp->set_result("OK");
+           result = TCL_ERROR;
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1512,16 +1512,16 @@ extract_cdl_description(CdlInterpreter interp, int argc, const char* argv[])
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
-    
+
     // usage: package <name>
     if (2 != argc) {
     // usage: package <name>
     if (2 != argc) {
-        interp->set_result("Invalid description command in template, expecting just one argument");
-        result = TCL_ERROR;
+       interp->set_result("Invalid description command in template, expecting just one argument");
+       result = TCL_ERROR;
     } else {
     } else {
-        ClientData client_data = interp->get_assoc_data(template_description_key);
-        CYG_ASSERTC(0 != client_data);
-        std::string* result_ptr = static_cast<std::string*>(client_data);
-        *result_ptr = argv[1];
+       ClientData client_data = interp->get_assoc_data(template_description_key);
+       CYG_ASSERTC(0 != client_data);
+       std::string* result_ptr = static_cast<std::string*>(client_data);
+       *result_ptr = argv[1];
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1536,16 +1536,16 @@ extract_cdl_package(CdlInterpreter interp, int argc, const char* argv[])
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
     CYG_PRECONDITION_CLASSC(interp);
 
     int result = TCL_OK;
-    
+
     // usage: package <name> <version>
     if (2 > argc) {
     // usage: package <name> <version>
     if (2 > argc) {
-        interp->set_result("Invalid package command in template, expecting two arguments");
-        result = TCL_ERROR;
+       interp->set_result("Invalid package command in template, expecting two arguments");
+       result = TCL_ERROR;
     } else {
     } else {
-        ClientData client_data = interp->get_assoc_data(template_packages_key);
-        CYG_ASSERTC(0 != client_data);
-        std::vector<std::string>* result_ptr = static_cast<std::vector<std::string>*>(client_data);
-        result_ptr->push_back(argv[1]);
+       ClientData client_data = interp->get_assoc_data(template_packages_key);
+       CYG_ASSERTC(0 != client_data);
+       std::vector<std::string>* result_ptr = static_cast<std::vector<std::string>*>(client_data);
+       result_ptr->push_back(argv[1]);
     }
     CYG_REPORT_RETVAL(result);
     return result;
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -1554,7 +1554,7 @@ extract_cdl_package(CdlInterpreter interp, int argc, const char* argv[])
 
 void
 CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::string& description,
 
 void
 CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::string& description,
-                                                      std::vector<std::string>& packages)
+                                                     std::vector<std::string>& packages)
 {
     CYG_REPORT_FUNCNAME("CdlPackagesDatabase::extract_template_description");
 
 {
     CYG_REPORT_FUNCNAME("CdlPackagesDatabase::extract_template_description");
 
@@ -1563,19 +1563,19 @@ CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::str
     interp->set_assoc_data(template_packages_key,    static_cast<ClientData>(&packages));
     static CdlInterpreterCommandEntry extract_commands[] =
     {
     interp->set_assoc_data(template_packages_key,    static_cast<ClientData>(&packages));
     static CdlInterpreterCommandEntry extract_commands[] =
     {
-        CdlInterpreterCommandEntry("cdl_savefile_version",  &extract_ignore                 ),
-        CdlInterpreterCommandEntry("cdl_savefile_command",  &extract_ignore                 ),
-        CdlInterpreterCommandEntry("cdl_configuration",     &extract_cdl_configuration      ),
-        CdlInterpreterCommandEntry("hardware",              &extract_ignore                 ),
-        CdlInterpreterCommandEntry("template",              &extract_ignore                 ),
-        CdlInterpreterCommandEntry("description",           &extract_cdl_description        ),
-        CdlInterpreterCommandEntry("package",               &extract_cdl_package            ),
-        CdlInterpreterCommandEntry("unknown",               &extract_ignore                 ),
-        CdlInterpreterCommandEntry("",                      0                               )
+       CdlInterpreterCommandEntry("cdl_savefile_version",  &extract_ignore                 ),
+       CdlInterpreterCommandEntry("cdl_savefile_command",  &extract_ignore                 ),
+       CdlInterpreterCommandEntry("cdl_configuration",     &extract_cdl_configuration      ),
+       CdlInterpreterCommandEntry("hardware",              &extract_ignore                 ),
+       CdlInterpreterCommandEntry("template",              &extract_ignore                 ),
+       CdlInterpreterCommandEntry("description",           &extract_cdl_description        ),
+       CdlInterpreterCommandEntry("package",               &extract_cdl_package            ),
+       CdlInterpreterCommandEntry("unknown",               &extract_ignore                 ),
+       CdlInterpreterCommandEntry("",                      0                               )
     };
     std::vector<CdlInterpreterCommandEntry> new_commands;
     for (int i = 0; 0 != extract_commands[i].command; i++) {
     };
     std::vector<CdlInterpreterCommandEntry> new_commands;
     for (int i = 0; 0 != extract_commands[i].command; i++) {
-        new_commands.push_back(extract_commands[i]);
+       new_commands.push_back(extract_commands[i]);
     }
     interp->push_commands(new_commands);
 
     }
     interp->push_commands(new_commands);
 
@@ -1583,20 +1583,20 @@ CdlPackagesDatabaseBody::extract_template_details(std::string filename, std::str
     int result = interp->eval_file(filename, tmp);
     // Special escape mechanism, see extract_cdl_configuration() above
     if ((TCL_ERROR == result) && ("OK" == tmp)) {
     int result = interp->eval_file(filename, tmp);
     // Special escape mechanism, see extract_cdl_configuration() above
     if ((TCL_ERROR == result) && ("OK" == tmp)) {
-        result = TCL_OK;
+       result = TCL_OK;
     }
     }
-#if 0    
+#if 0
     if (TCL_OK != result) {
     if (TCL_OK != result) {
-        // No obvious way of recovering just yet
+       // No obvious way of recovering just yet
     }
 #endif
     delete interp;
     }
 #endif
     delete interp;
-                           
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlPackagesDatabase:: get_valid_cflags()                 
+//{{{  CdlPackagesDatabase:: get_valid_cflags()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1607,18 +1607,18 @@ CdlPackagesDatabaseBody::get_valid_cflags()
 
     static std::vector<std::string> result_vec;
     static const char* valid_flags[] = {
 
     static std::vector<std::string> result_vec;
     static const char* valid_flags[] = {
-        "ARCHFLAGS",  "CARCHFLAGS",  "CXXARCHFLAGS",  "LDARCHFLAGS",
-        "ERRFLAGS",   "CERRFLAGS",   "CXXERRFLAGS",   "LDERRFLAGS",
-        "LANGFLAGS",  "CLANGFLAGS",  "CXXLANGFLAGS",  "LDLANGFLAGS",
-        "DBGFLAGS",   "CDBGFLAGS",   "CXXDBGFLAGS",   "LDDBGFLAGS",
-        "EXTRAFLAGS", "CEXTRAFLAGS", "CXXEXTRAFLAGS", "LDEXTRAFLAGS",
-        0
+       "ARCHFLAGS",  "CARCHFLAGS",  "CXXARCHFLAGS",  "LDARCHFLAGS",
+       "ERRFLAGS",   "CERRFLAGS",   "CXXERRFLAGS",   "LDERRFLAGS",
+       "LANGFLAGS",  "CLANGFLAGS",  "CXXLANGFLAGS",  "LDLANGFLAGS",
+       "DBGFLAGS",   "CDBGFLAGS",   "CXXDBGFLAGS",   "LDDBGFLAGS",
+       "EXTRAFLAGS", "CEXTRAFLAGS", "CXXEXTRAFLAGS", "LDEXTRAFLAGS",
+       0
     };
 
     if (0 == result_vec.size()) {
     };
 
     if (0 == result_vec.size()) {
-        for (int i = 0; 0 != valid_flags[i]; i++) {
-            result_vec.push_back(valid_flags[i]);
-        }
+       for (int i = 0; 0 != valid_flags[i]; i++) {
+           result_vec.push_back(valid_flags[i]);
+       }
     }
     CYG_REPORT_RETURN();
     return result_vec;
     }
     CYG_REPORT_RETURN();
     return result_vec;
index fcf91c644218be8c9f17348fe1cc91fafe477d2d..b8ab38103f83cc92f504c2abef7c49a3c4e843ea 100644 (file)
@@ -106,8 +106,8 @@ CdlDialogBody::dialogs_are_enabled()
 // There is no data associated with a custom dialog object.
 CdlDialogBody::CdlDialogBody(std::string name_arg)
     : CdlNodeBody(name_arg),
 // There is no data associated with a custom dialog object.
 CdlDialogBody::CdlDialogBody(std::string name_arg)
     : CdlNodeBody(name_arg),
-      CdlParentableBody(),
-      CdlUserVisibleBody()
+      CdlUserVisibleBody(),
+      CdlParentableBody()
 {
     CYG_REPORT_FUNCNAME("CdlDialogBody:: constructor");
     CYG_REPORT_FUNCARG1XV(this);
 {
     CYG_REPORT_FUNCNAME("CdlDialogBody:: constructor");
     CYG_REPORT_FUNCARG1XV(this);
index 20a7224c30be15b153c4a13aa96a525d6197c92e..8e57e5f41889f298f7e10a7bbd630e73e6c4a4a3 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterfaceBody);
 
 //}}}
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterfaceBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 CdlInterfaceBody::CdlInterfaceBody(std::string name_arg, bool generated_arg)
 
 // ----------------------------------------------------------------------------
 CdlInterfaceBody::CdlInterfaceBody(std::string name_arg, bool generated_arg)
@@ -90,7 +90,7 @@ CdlInterfaceBody::CdlInterfaceBody(std::string name_arg, bool generated_arg)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 CdlInterfaceBody::~CdlInterfaceBody()
 
 // ----------------------------------------------------------------------------
 CdlInterfaceBody::~CdlInterfaceBody()
@@ -101,12 +101,12 @@ CdlInterfaceBody::~CdlInterfaceBody()
 
     cdlinterfacebody_cookie = CdlInterfaceBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdlinterfacebody_cookie = CdlInterfaceBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_interface()                
+//{{{  parse_interface()
 
 // ----------------------------------------------------------------------------
 // Parsing an interface definition. This is basically the same as parsing
 
 // ----------------------------------------------------------------------------
 // Parsing an interface definition. This is basically the same as parsing
@@ -118,11 +118,11 @@ CdlInterfaceBody::parse_interface(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("CdlInterface::parse_interface", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_REPORT_FUNCNAMETYPE("CdlInterface::parse_interface", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(parent);
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(parent);
@@ -138,52 +138,52 @@ CdlInterfaceBody::parse_interface(CdlInterpreter interp, int argc, const char* a
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
-    
-        // Currently there are no command-line options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                   "'\nExpecting name and properties list.");
-            ok = false;
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_interface `") + argv[1] + "'.");
-            ok = false;
-        } else if (0 != toplevel->lookup(argv[1])) {
-            // FIXME: interfaces can be generated implicitly because of an
-            // unresolved implements property. This code should look for
-            // an existing auto-generated interface object and replace it
-            // if necessary.
-            CdlParse::report_error(interp, "", std::string("Interface `") + argv[1] +
-                                   "' cannot be loaded.\nThe name is already in use.");
-            ok = false;
-        } else {
-            new_interface = new CdlInterfaceBody(argv[1], false);
-            toplevel->add_node(loadable, parent, new_interface);
-        }
-
-        if (!ok) {
-            // Just because this component cannot be created, that is no
-            // reason to abort the whole parsing process.
-            CYG_REPORT_RETVAL(TCL_OK);
-            return TCL_OK;
-        }
+
+       // Currently there are no command-line options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                  "'\nExpecting name and properties list.");
+           ok = false;
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_interface `") + argv[1] + "'.");
+           ok = false;
+       } else if (0 != toplevel->lookup(argv[1])) {
+           // FIXME: interfaces can be generated implicitly because of an
+           // unresolved implements property. This code should look for
+           // an existing auto-generated interface object and replace it
+           // if necessary.
+           CdlParse::report_error(interp, "", std::string("Interface `") + argv[1] +
+                                  "' cannot be loaded.\nThe name is already in use.");
+           ok = false;
+       } else {
+           new_interface = new CdlInterfaceBody(argv[1], false);
+           toplevel->add_node(loadable, parent, new_interface);
+       }
+
+       if (!ok) {
+           // Just because this component cannot be created, that is no
+           // reason to abort the whole parsing process.
+           CYG_REPORT_RETVAL(TCL_OK);
+           return TCL_OK;
+       }
     } catch(std::bad_alloc e) {
     } catch(std::bad_alloc e) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch(CdlParseException e) {
     } catch(CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     if (TCL_OK != result) {
     }
     if (TCL_OK != result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
 
     // At this stage new_interface has been created and added to the
     // hierarchy. The main work now is to add the properties.
     }
 
     // At this stage new_interface has been created and added to the
     // hierarchy. The main work now is to add the properties.
-    
+
     // Push the option as the current node early on. This aids
     // diagnostics.
     CdlNode old_node = interp->push_node(new_interface);
     // Push the option as the current node early on. This aids
     // diagnostics.
     CdlNode old_node = interp->push_node(new_interface);
@@ -195,120 +195,120 @@ CdlInterfaceBody::parse_interface(CdlInterpreter interp, int argc, const char* a
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry   commands[] =
     {
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry   commands[] =
     {
-        CdlInterpreterCommandEntry("", 0)
+       CdlInterpreterCommandEntry("", 0)
     };
     int i;
     };
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
-        for (i = 0; 0 != commands[i].command; i++) {
-            new_commands.push_back(commands[i]);
-        }
-        CdlDefinableBody::add_property_parsers(new_commands);
-        CdlBuildableBody::add_property_parsers(new_commands);
-        CdlParentableBody::add_property_parsers(new_commands);
-        CdlValuableBody::add_property_parsers(new_commands);
-        CdlUserVisibleBody::add_property_parsers(new_commands);
-        CdlNodeBody::add_property_parsers(new_commands);
-    
-        // Now evaluate the body. If an error occurs then typically
-        // this will be reported via CdlParse::report_error(),
-        // but any exceptions will have been intercepted and
-        // turned into a Tcl error.
-        old_commands = interp->push_commands(new_commands);
-        result = interp->eval(argv[2], tcl_result);
-        interp->pop_commands(old_commands);
-        
-        if (TCL_OK == result) {
-            // Even if there were errors, they were not fatal. There may
-            // now be a number of properties for this option, and some
-            // validation should take place. Start with the base classes.
-            new_interface->CdlNodeBody::check_properties(interp);
-            new_interface->CdlUserVisibleBody::check_properties(interp);
-            new_interface->CdlValuableBody::check_properties(interp);
-            new_interface->CdlParentableBody::check_properties(interp);
-            new_interface->CdlBuildableBody::check_properties(interp);
-            new_interface->CdlDefinableBody::check_properties(interp);
-
-            // The flavor "none" makes no sense for interfaces.
-            // The flavor "bool" makes very little sense, but may be useful
-            // in weird cases. Both booldata and data make sense.
-            // The default flavor is "data", because interfaces are
-            // essentially just counters.
-            if (new_interface->has_property(CdlPropertyId_Flavor)) {
-                if (CdlValueFlavor_None == new_interface->get_flavor()) {
-                    CdlParse::report_error(interp, "", "An interface should not have the `none' flavor.");
-                }
-            }
-            
-            // Interfaces cannot be modified directly by the user, so
-            // there is no point in entry_proc, check_proc, dialog or
-            // wizard
-            if (new_interface->has_property(CdlPropertyId_EntryProc)) {
-                CdlParse::report_error(interp, "", "An interface should not have an `entry_proc' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_CheckProc)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `check_proc' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_Dialog)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `dialog' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_Wizard)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `wizard' property.");
-            }
-            // Calculated does not make sense, an interface is implicitly calculated
-            // Nor does default_value.
-            if (new_interface->has_property(CdlPropertyId_Calculated)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `calculated' property.");
-            }
-            if (new_interface->has_property(CdlPropertyId_DefaultValue)) {
-                CdlParse::report_error(interp, "", "An interface should not have a `default_value' property.");
-            }
-            // active_if might make sense, as a way of controlling
-            // whether or not a #define will be generated.
-            
-            // legal_values, requires and implements are all sensible
-            // properties for an interface.
-
-            // group may or may not make sense, allow it for now.
-
-            // For the uservisible base class, allow all of display,
-            // doc and description. At worst these are harmless
-
-            // For the parentable base class, allow parent. Again this
-            // is harmless.
-
-            // Also allow all of the definable and buildable
-            // properties.
-        }
+       for (i = 0; 0 != commands[i].command; i++) {
+           new_commands.push_back(commands[i]);
+       }
+       CdlDefinableBody::add_property_parsers(new_commands);
+       CdlBuildableBody::add_property_parsers(new_commands);
+       CdlParentableBody::add_property_parsers(new_commands);
+       CdlValuableBody::add_property_parsers(new_commands);
+       CdlUserVisibleBody::add_property_parsers(new_commands);
+       CdlNodeBody::add_property_parsers(new_commands);
+
+       // Now evaluate the body. If an error occurs then typically
+       // this will be reported via CdlParse::report_error(),
+       // but any exceptions will have been intercepted and
+       // turned into a Tcl error.
+       old_commands = interp->push_commands(new_commands);
+       result = interp->eval(argv[2], tcl_result);
+       interp->pop_commands(old_commands);
+
+       if (TCL_OK == result) {
+           // Even if there were errors, they were not fatal. There may
+           // now be a number of properties for this option, and some
+           // validation should take place. Start with the base classes.
+           new_interface->CdlNodeBody::check_properties(interp);
+           new_interface->CdlUserVisibleBody::check_properties(interp);
+           new_interface->CdlValuableBody::check_properties(interp);
+           new_interface->CdlParentableBody::check_properties(interp);
+           new_interface->CdlBuildableBody::check_properties(interp);
+           new_interface->CdlDefinableBody::check_properties(interp);
+
+           // The flavor "none" makes no sense for interfaces.
+           // The flavor "bool" makes very little sense, but may be useful
+           // in weird cases. Both booldata and data make sense.
+           // The default flavor is "data", because interfaces are
+           // essentially just counters.
+           if (new_interface->has_property(CdlPropertyId_Flavor)) {
+               if (CdlValueFlavor_None == new_interface->get_flavor()) {
+                   CdlParse::report_error(interp, "", "An interface should not have the `none' flavor.");
+               }
+           }
+
+           // Interfaces cannot be modified directly by the user, so
+           // there is no point in entry_proc, check_proc, dialog or
+           // wizard
+           if (new_interface->has_property(CdlPropertyId_EntryProc)) {
+               CdlParse::report_error(interp, "", "An interface should not have an `entry_proc' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_CheckProc)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `check_proc' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_Dialog)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `dialog' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_Wizard)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `wizard' property.");
+           }
+           // Calculated does not make sense, an interface is implicitly calculated
+           // Nor does default_value.
+           if (new_interface->has_property(CdlPropertyId_Calculated)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `calculated' property.");
+           }
+           if (new_interface->has_property(CdlPropertyId_DefaultValue)) {
+               CdlParse::report_error(interp, "", "An interface should not have a `default_value' property.");
+           }
+           // active_if might make sense, as a way of controlling
+           // whether or not a #define will be generated.
+
+           // legal_values, requires and implements are all sensible
+           // properties for an interface.
+
+           // group may or may not make sense, allow it for now.
+
+           // For the uservisible base class, allow all of display,
+           // doc and description. At worst these are harmless
+
+           // For the parentable base class, allow parent. Again this
+           // is harmless.
+
+           // Also allow all of the definable and buildable
+           // properties.
+       }
     } catch (std::bad_alloc e) {
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++.
-        // However there is no point in continuing with the parsing operation,
-        // just give up.
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++.
+       // However there is no point in continuing with the parsing operation,
+       // just give up.
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     if (0 != old_commands) {
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     if (0 != old_commands) {
-        interp->pop_commands(old_commands);
+       interp->pop_commands(old_commands);
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -334,46 +334,46 @@ CdlInterfaceBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation,
     // Interfaces contain only calculated data, so for a minimal save
     // there is no point in storing any of the data.
     if (!minimal || this->has_additional_savefile_information()) {
     // Interfaces contain only calculated data, so for a minimal save
     // there is no point in storing any of the data.
     if (!minimal || this->has_additional_savefile_information()) {
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_interface <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_interface " + get_name() + " {\n";
-
-        // Start with details of everything that implements this interface.
-        if (!minimal) {
-            const std::vector<CdlReferrer>& referrers = this->get_referrers();
-            std::vector<CdlReferrer>::const_iterator ref_i;
-            int real_referrers = 0;
-            for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
-                CdlNode     node = ref_i->get_source();
-                CdlProperty prop = ref_i->get_source_property();
-
-                CdlValuable valuable = dynamic_cast<CdlValuable>(node);
-                if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
-                    real_referrers++;
-                    data += std::string(indentation, ' ') + "    # Implemented by " + valuable->get_name() + ", " +
-                        (valuable->is_active()  ? "active"  : "inactive") + ", " +
-                        (valuable->is_enabled() ? "enabled" : "disabled") + '\n';
-                }
-            }
-            if (0 == real_referrers) {
-                data += std::string(indentation, ' ') + "    # No options implement this inferface\n";
-            }
-        }
-        interp->write_data(chan, data);
-
-        // Deal with the value
-        this->CdlValuableBody::save(interp, chan, indentation + 4, false, minimal);
-
-        // Close the cdl_interface body. A blank line is added here.
-        data = "};\n\n";
-        interp->write_data(chan, data);
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_interface <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_interface " + get_name() + " {\n";
+
+       // Start with details of everything that implements this interface.
+       if (!minimal) {
+           const std::vector<CdlReferrer>& referrers = this->get_referrers();
+           std::vector<CdlReferrer>::const_iterator ref_i;
+           int real_referrers = 0;
+           for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
+               CdlNode     node = ref_i->get_source();
+               CdlProperty prop = ref_i->get_source_property();
+
+               CdlValuable valuable = dynamic_cast<CdlValuable>(node);
+               if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
+                   real_referrers++;
+                   data += std::string(indentation, ' ') + "    # Implemented by " + valuable->get_name() + ", " +
+                       (valuable->is_active()  ? "active"  : "inactive") + ", " +
+                       (valuable->is_enabled() ? "enabled" : "disabled") + '\n';
+               }
+           }
+           if (0 == real_referrers) {
+               data += std::string(indentation, ' ') + "    # No options implement this inferface\n";
+           }
+       }
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, false, minimal);
+
+       // Close the cdl_interface body. A blank line is added here.
+       data = "};\n\n";
+       interp->write_data(chan, data);
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -390,41 +390,41 @@ CdlInterfaceBody::savefile_interface_command(CdlInterpreter interp, int argc, co
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_interface command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = toplevel->lookup(argv[1]);
-            if (0 == current_node) {
-                // FIXME: save value in limbo
-                CdlParse::report_error(interp, "",
-                                       std::string("The savefile contains a cdl_interface command for an unknown interface `")
-                                       + argv[1] + "'.");
-            } else {
-                toplevel->get_savefile_subcommands("cdl_interface", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_interface command in savefile, expecting two arguments.");
+       } else {
+
+           CdlNode current_node = toplevel->lookup(argv[1]);
+           if (0 == current_node) {
+               // FIXME: save value in limbo
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_interface command for an unknown interface `")
+                                      + argv[1] + "'.");
+           } else {
+               toplevel->get_savefile_subcommands("cdl_interface", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -432,7 +432,7 @@ CdlInterfaceBody::savefile_interface_command(CdlInterpreter interp, int argc, co
 }
 
 //}}}
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -440,19 +440,19 @@ bool
 CdlInterfaceBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlInterfaceBody_Magic != cdlinterfacebody_cookie) {
 CdlInterfaceBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlInterfaceBody_Magic != cdlinterfacebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal)        &&
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlNodeBody::check_this(zeal)        &&
-           CdlUserVisibleBody::check_this(zeal) &&
-           CdlValuableBody::check_this(zeal)    &&
-           CdlParentableBody::check_this(zeal)  &&
-           CdlBuildableBody::check_this(zeal)   &&
-           CdlDefinableBody::check_this(zeal);
+          CdlUserVisibleBody::check_this(zeal) &&
+          CdlValuableBody::check_this(zeal)    &&
+          CdlParentableBody::check_this(zeal)  &&
+          CdlBuildableBody::check_this(zeal)   &&
+          CdlDefinableBody::check_this(zeal);
 }
 
 //}}}
 }
 
 //}}}
-//{{{  recalculate()                    
+//{{{  recalculate()
 
 // ----------------------------------------------------------------------------
 // There has been a change in the configuration which may affect the value
 
 // ----------------------------------------------------------------------------
 // There has been a change in the configuration which may affect the value
@@ -472,57 +472,57 @@ CdlInterfaceBody::recalculate(CdlTransaction transaction)
     std::vector<CdlValuable>::const_iterator valuable_i;
     this->get_implementers(implementers);
     for (valuable_i = implementers.begin(); valuable_i != implementers.end(); valuable_i++) {
     std::vector<CdlValuable>::const_iterator valuable_i;
     this->get_implementers(implementers);
     for (valuable_i = implementers.begin(); valuable_i != implementers.end(); valuable_i++) {
-        if (transaction->is_active(*valuable_i)) {
-            const CdlValue& implementer_value = transaction->get_whole_value(*valuable_i);
-            if (implementer_value.is_enabled()) {
-                count++;
-            }
-        }
+       if (transaction->is_active(*valuable_i)) {
+           const CdlValue& implementer_value = transaction->get_whole_value(*valuable_i);
+           if (implementer_value.is_enabled()) {
+               count++;
+           }
+       }
     }
 
     // What to do with the count depends on the flavor.
     switch(this->get_flavor()) {
       case CdlValueFlavor_Bool :
     }
 
     // What to do with the count depends on the flavor.
     switch(this->get_flavor()) {
       case CdlValueFlavor_Bool :
-        {
-            bool new_bool = (count > 0);
-            if (new_bool != old_value.is_enabled()) {
-                CdlValue new_value = old_value;
-                new_value.set_enabled(new_bool, CdlValueSource_Default);
-                transaction->set_whole_value(this, old_value, new_value);
-            }
-            break;
-        }
+       {
+           bool new_bool = (count > 0);
+           if (new_bool != old_value.is_enabled()) {
+               CdlValue new_value = old_value;
+               new_value.set_enabled(new_bool, CdlValueSource_Default);
+               transaction->set_whole_value(this, old_value, new_value);
+           }
+           break;
+       }
       case CdlValueFlavor_BoolData:
       case CdlValueFlavor_BoolData:
-        {
-            // The only thing that actually needs checking is the count value.
-            // Iff that has changed then the boolean part may need changing as well.
-            if (count != old_value.get_integer_value()) {
-                CdlValue new_value = old_value;
-                new_value.set_enabled_and_value(count > 0, count, CdlValueSource_Default);
-                transaction->set_whole_value(this, old_value, new_value);
-            }
-
-            break;
-        }
+       {
+           // The only thing that actually needs checking is the count value.
+           // Iff that has changed then the boolean part may need changing as well.
+           if (count != old_value.get_integer_value()) {
+               CdlValue new_value = old_value;
+               new_value.set_enabled_and_value(count > 0, count, CdlValueSource_Default);
+               transaction->set_whole_value(this, old_value, new_value);
+           }
+
+           break;
+       }
       case CdlValueFlavor_Data:
       case CdlValueFlavor_Data:
-        {
-            if (count != old_value.get_integer_value()) {
-                CdlValue new_value = old_value;
-                new_value.set_integer_value(count, CdlValueSource_Default);
-                transaction->set_whole_value(this, old_value, new_value);
-            }
-            break;
-        }
-          
+       {
+           if (count != old_value.get_integer_value()) {
+               CdlValue new_value = old_value;
+               new_value.set_integer_value(count, CdlValueSource_Default);
+               transaction->set_whole_value(this, old_value, new_value);
+           }
+           break;
+       }
+
       default:
       default:
-        break;
+       break;
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  misc                             
+//{{{  misc
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -553,15 +553,15 @@ CdlInterfaceBody::get_implementers(std::vector<CdlValuable>& implementers) const
     const std::vector<CdlReferrer>& referrers = this->get_referrers();
     std::vector<CdlReferrer>::const_iterator ref_i;
     for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
     const std::vector<CdlReferrer>& referrers = this->get_referrers();
     std::vector<CdlReferrer>::const_iterator ref_i;
     for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
-        CdlNode     node = ref_i->get_source();
-        CdlProperty prop = ref_i->get_source_property();
+       CdlNode     node = ref_i->get_source();
+       CdlProperty prop = ref_i->get_source_property();
 
 
-        CdlValuable valuable = dynamic_cast<CdlValuable>(node);
-        if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
-            implementers.push_back(valuable);
-        }
+       CdlValuable valuable = dynamic_cast<CdlValuable>(node);
+       if ((0 != valuable) && (CdlPropertyId_Implements == prop->get_property_name())) {
+           implementers.push_back(valuable);
+       }
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
index 28408dd67cc98a097e463ba952572799a5492259..823b4c047c7c25b645a0ea1a346260f586b1527f 100644 (file)
@@ -67,7 +67,7 @@
 // ----------------------------------------------------------------------------
 // This key is used for accessing AssocData in the Tcl interpreters,
 // specifically the CdlInterpreter object.
 // ----------------------------------------------------------------------------
 // This key is used for accessing AssocData in the Tcl interpreters,
 // specifically the CdlInterpreter object.
-char* CdlInterpreterBody::cdlinterpreter_assoc_data_key = "__cdlinterpreter";
+const char* CdlInterpreterBody::cdlinterpreter_assoc_data_key = "__cdlinterpreter";
 
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterpreterBody);
 
 
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlInterpreterBody);
 
index e4b07059bf871ba06f25a7fb6b7f0077a14959cb..1d408a8745f0a9776819129f728478508df00e7b 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlOptionBody);
 
 //}}}
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlOptionBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 CdlOptionBody::CdlOptionBody(std::string name_arg)
 
 // ----------------------------------------------------------------------------
 CdlOptionBody::CdlOptionBody(std::string name_arg)
@@ -89,7 +89,7 @@ CdlOptionBody::CdlOptionBody(std::string name_arg)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -101,12 +101,12 @@ CdlOptionBody::~CdlOptionBody()
 
     cdloptionbody_cookie = CdlOptionBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdloptionbody_cookie = CdlOptionBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_option()                   
+//{{{  parse_option()
 
 // ----------------------------------------------------------------------------
 // Parsing an option definition. This is basically the same as
 
 // ----------------------------------------------------------------------------
 // Parsing an option definition. This is basically the same as
@@ -119,12 +119,12 @@ CdlOptionBody::parse_option(CdlInterpreter interp, int argc, const char* argv[])
     CYG_REPORT_FUNCNAMETYPE("CdlOptionBody::parse_option", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_REPORT_FUNCNAMETYPE("CdlOptionBody::parse_option", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL
@@ -141,50 +141,50 @@ CdlOptionBody::parse_option(CdlInterpreter interp, int argc, const char* argv[])
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
     bool         ok             = true;
     int          result         = TCL_OK;
     try {
-    
-        // Currently there are no command-line options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                         "'\nExpecting name and properties list.");
-            ok = false;
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Invalid property list for cdl_option `") + argv[1] + "'.");
-            ok = false;
-        } else if (0 != toplevel->lookup(argv[1])) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Option `") + argv[1] + "' cannot be loaded.\nThe name is already in use.");
-            ok = false;
-        } else {
-            new_option = new CdlOptionBody(argv[1]);
-            toplevel->add_node(package, parent, new_option);
-        }
-
-        if (!ok) {
-            // Just because this component cannot be created, that is no
-            // reason to abort the whole parsing process.
-            CYG_REPORT_RETVAL(TCL_OK);
-            return TCL_OK;
-        }
+
+       // Currently there are no command-line options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                        "'\nExpecting name and properties list.");
+           ok = false;
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Invalid property list for cdl_option `") + argv[1] + "'.");
+           ok = false;
+       } else if (0 != toplevel->lookup(argv[1])) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Option `") + argv[1] + "' cannot be loaded.\nThe name is already in use.");
+           ok = false;
+       } else {
+           new_option = new CdlOptionBody(argv[1]);
+           toplevel->add_node(package, parent, new_option);
+       }
+
+       if (!ok) {
+           // Just because this component cannot be created, that is no
+           // reason to abort the whole parsing process.
+           CYG_REPORT_RETVAL(TCL_OK);
+           return TCL_OK;
+       }
     } catch(std::bad_alloc e) {
     } catch(std::bad_alloc e) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch(CdlParseException e) {
     } catch(CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     if (TCL_OK != result) {
     }
     if (TCL_OK != result) {
-        CYG_REPORT_RETVAL(result);
-        return result;
+       CYG_REPORT_RETVAL(result);
+       return result;
     }
 
     // At this stage new_option has been created and added to the hierarchy.
     // The main work now is to add the properties.
     }
 
     // At this stage new_option has been created and added to the hierarchy.
     // The main work now is to add the properties.
-    
+
     // Push the option as the current node early on. This aids
     // diagnostics.
     CdlNode old_node = interp->push_node(new_option);
     // Push the option as the current node early on. This aids
     // diagnostics.
     CdlNode old_node = interp->push_node(new_option);
@@ -196,70 +196,70 @@ CdlOptionBody::parse_option(CdlInterpreter interp, int argc, const char* argv[])
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry commands[] =
     {
     std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("", 0 )
+       CdlInterpreterCommandEntry("", 0 )
     };
     int i;
     };
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     try {
 
-        for (i = 0; 0 != commands[i].command; i++) {
-            new_commands.push_back(commands[i]);
-        }
-        CdlDefinableBody::add_property_parsers(new_commands);
-        CdlBuildableBody::add_property_parsers(new_commands);
-        CdlParentableBody::add_property_parsers(new_commands);
-        CdlValuableBody::add_property_parsers(new_commands);
-        CdlUserVisibleBody::add_property_parsers(new_commands);
-        CdlNodeBody::add_property_parsers(new_commands);
-    
-        // Now evaluate the body. If an error occurs then typically
-        // this will be reported via CdlParse::report_error(),
-        // but any exceptions will have been intercepted and
-        // turned into a Tcl error.
-        old_commands = interp->push_commands(new_commands);
-        result = interp->eval(argv[2], tcl_result);
-        interp->pop_commands(old_commands);
-        
-        if (TCL_OK == result) {
-            // Even if there were errors, they were not fatal. There may
-            // now be a number of properties for this option, and some
-            // validation should take place. Start with the base classes.
-            new_option->CdlNodeBody::check_properties(interp);
-            new_option->CdlUserVisibleBody::check_properties(interp);
-            new_option->CdlValuableBody::check_properties(interp);
-            new_option->CdlParentableBody::check_properties(interp);
-            new_option->CdlBuildableBody::check_properties(interp);
-            new_option->CdlDefinableBody::check_properties(interp);
-        }
-        
+       for (i = 0; 0 != commands[i].command; i++) {
+           new_commands.push_back(commands[i]);
+       }
+       CdlDefinableBody::add_property_parsers(new_commands);
+       CdlBuildableBody::add_property_parsers(new_commands);
+       CdlParentableBody::add_property_parsers(new_commands);
+       CdlValuableBody::add_property_parsers(new_commands);
+       CdlUserVisibleBody::add_property_parsers(new_commands);
+       CdlNodeBody::add_property_parsers(new_commands);
+
+       // Now evaluate the body. If an error occurs then typically
+       // this will be reported via CdlParse::report_error(),
+       // but any exceptions will have been intercepted and
+       // turned into a Tcl error.
+       old_commands = interp->push_commands(new_commands);
+       result = interp->eval(argv[2], tcl_result);
+       interp->pop_commands(old_commands);
+
+       if (TCL_OK == result) {
+           // Even if there were errors, they were not fatal. There may
+           // now be a number of properties for this option, and some
+           // validation should take place. Start with the base classes.
+           new_option->CdlNodeBody::check_properties(interp);
+           new_option->CdlUserVisibleBody::check_properties(interp);
+           new_option->CdlValuableBody::check_properties(interp);
+           new_option->CdlParentableBody::check_properties(interp);
+           new_option->CdlBuildableBody::check_properties(interp);
+           new_option->CdlDefinableBody::check_properties(interp);
+       }
+
     } catch (std::bad_alloc e) {
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++.
-        // However there is no point in continuing with the parsing operation,
-        // just give up.
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++.
+       // However there is no point in continuing with the parsing operation,
+       // just give up.
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     if (0 != old_commands) {
     }
 
     // Restore the interpreter to its prior state.
     interp->pop_node(old_node);
     if (0 != old_commands) {
-        interp->pop_commands(old_commands);
+       interp->pop_commands(old_commands);
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 void
 
 // ----------------------------------------------------------------------------
 void
@@ -282,28 +282,28 @@ CdlOptionBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bo
     CYG_PRECONDITION_CLASSC(interp);
 
     if (!minimal || this->has_additional_savefile_information() || this->value_savefile_entry_needed()) {
     CYG_PRECONDITION_CLASSC(interp);
 
     if (!minimal || this->has_additional_savefile_information() || this->value_savefile_entry_needed()) {
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_option <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_option " + get_name() + " {\n";
-        interp->write_data(chan, data);
-
-        // Deal with the value
-        bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
-            !this->has_property(CdlPropertyId_Calculated);
-        this->CdlValuableBody::save(interp, chan, indentation + 4, modifiable, minimal);
-
-        // And with any unrecognised data
-        this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
-    
-        // Close the cdl_option body. A blank line is added here.
-        interp->write_data(chan, "};\n\n");
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_option <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_option " + get_name() + " {\n";
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       bool modifiable = !(CdlValueFlavor_None == this->get_flavor()) &&
+           !this->has_property(CdlPropertyId_Calculated);
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, modifiable, minimal);
+
+       // And with any unrecognised data
+       this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
+
+       // Close the cdl_option body. A blank line is added here.
+       interp->write_data(chan, "};\n\n");
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -322,41 +322,41 @@ CdlOptionBody::savefile_option_command(CdlInterpreter interp, int argc, const ch
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_option command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = config->lookup(argv[1]);
-            if (0 == current_node) {
-                // FIXME: save value in limbo
-                CdlParse::report_error(interp, "",
-                                       std::string("The savefile contains a cdl_option for an unknown option `")
-                                       + argv[1] + "'");
-            } else {
-                config->get_savefile_subcommands("cdl_option", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_option command in savefile, expecting two arguments.");
+       } else {
+
+           CdlNode current_node = config->lookup(argv[1]);
+           if (0 == current_node) {
+               // FIXME: save value in limbo
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_option for an unknown option `")
+                                      + argv[1] + "'");
+           } else {
+               config->get_savefile_subcommands("cdl_option", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -364,27 +364,27 @@ CdlOptionBody::savefile_option_command(CdlInterpreter interp, int argc, const ch
 }
 
 //}}}
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 bool
 CdlOptionBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlOptionBody_Magic != cdloptionbody_cookie) {
 
 // ----------------------------------------------------------------------------
 bool
 CdlOptionBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlOptionBody_Magic != cdloptionbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
-        
+
     return CdlNodeBody::check_this(zeal)        &&
     return CdlNodeBody::check_this(zeal)        &&
-           CdlUserVisibleBody::check_this(zeal) &&
-           CdlValuableBody::check_this(zeal)    &&
-           CdlParentableBody::check_this(zeal)  &&
-           CdlBuildableBody::check_this(zeal)   &&
-           CdlDefinableBody::check_this(zeal);
+          CdlUserVisibleBody::check_this(zeal) &&
+          CdlValuableBody::check_this(zeal)    &&
+          CdlParentableBody::check_this(zeal)  &&
+          CdlBuildableBody::check_this(zeal)   &&
+          CdlDefinableBody::check_this(zeal);
 }
 
 //}}}
 }
 
 //}}}
-//{{{  misc                             
+//{{{  misc
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
index 91e1879c50ba6ea7e8b11ee5b154e8cbf12a909f..c385f76473d6817cd213fdb080d8b5d019649292 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlPackageBody);
 
 //}}}
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlPackageBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 // Constructor. The real work is actually done in the base classes
 
 // ----------------------------------------------------------------------------
 // Constructor. The real work is actually done in the base classes
@@ -91,13 +91,13 @@ CdlPackageBody::CdlPackageBody(std::string name_arg, CdlConfiguration toplevel,
     loaded_for_hardware   = false;
     cdlpackagebody_cookie = CdlPackageBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     loaded_for_hardware   = false;
     cdlpackagebody_cookie = CdlPackageBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in the base classes.
 
 // ----------------------------------------------------------------------------
 // Most of the work is done in the base classes.
@@ -112,12 +112,12 @@ CdlPackageBody::~CdlPackageBody()
     loaded_for_hardware   = false;
     cdlpackagebody_cookie = CdlPackageBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
     loaded_for_hardware   = false;
     cdlpackagebody_cookie = CdlPackageBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_package()                  
+//{{{  parse_package()
 
 // ----------------------------------------------------------------------------
 // Parsing a package definition. This routine gets invoked directly from the
 
 // ----------------------------------------------------------------------------
 // Parsing a package definition. This routine gets invoked directly from the
@@ -145,15 +145,15 @@ CdlPackageBody::parse_package(CdlInterpreter interp, int argc, const char* argv[
     CYG_REPORT_FUNCNAMETYPE("CdlPackageBody::parse_package", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_REPORT_FUNCNAMETYPE("CdlPackageBody::parse_package", "result %d");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
     std::string  diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     CdlPackage   package        = dynamic_cast<CdlPackage>(loadable);
-    CdlContainer parent         = package->get_parent();       
+    CdlContainer parent         = package->get_parent();
     CdlToplevel  toplevel       = interp->get_toplevel();
     std::string filename        = interp->get_context();
     CdlToplevel  toplevel       = interp->get_toplevel();
     std::string filename        = interp->get_context();
+
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL
     CYG_ASSERT_CLASSC(toplevel);
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(package);         // And packages are the only loadable for software CDL
     CYG_ASSERT_CLASSC(toplevel);
@@ -166,10 +166,10 @@ CdlPackageBody::parse_package(CdlInterpreter interp, int argc, const char* argv[
     // can only exist at the toplevel of the original script courtesy
     // of commands being pushed and popped.
     CYG_ASSERTC(0 == interp->get_node());
     // can only exist at the toplevel of the original script courtesy
     // of commands being pushed and popped.
     CYG_ASSERTC(0 == interp->get_node());
-    
+
     // Also, the package should be the current container.
     CYG_ASSERTC(package == dynamic_cast<CdlPackage>(interp->get_container()));
     // Also, the package should be the current container.
     CYG_ASSERTC(package == dynamic_cast<CdlPackage>(interp->get_container()));
-    
+
     // Declare these outside the scope of the try statement, to allow
     // goto calls for the error handling.
     const std::vector<CdlProperty>& properties = package->get_properties();
     // Declare these outside the scope of the try statement, to allow
     // goto calls for the error handling.
     const std::vector<CdlProperty>& properties = package->get_properties();
@@ -177,133 +177,133 @@ CdlPackageBody::parse_package(CdlInterpreter interp, int argc, const char* argv[
     CdlInterpreterBody::NodeSupport interp_node(interp, package);
     static CdlInterpreterCommandEntry commands[] =
     {
     CdlInterpreterBody::NodeSupport interp_node(interp, package);
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("hardware",           &parse_hardware                    ),
-        CdlInterpreterCommandEntry("license_proc",       &parse_license_proc                ),
-        CdlInterpreterCommandEntry("install_proc",       &parse_install_proc                ),
-        CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
-        CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
-        CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
-        CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
-        CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                                  )
+       CdlInterpreterCommandEntry("hardware",           &parse_hardware                    ),
+       CdlInterpreterCommandEntry("license_proc",       &parse_license_proc                ),
+       CdlInterpreterCommandEntry("install_proc",       &parse_install_proc                ),
+       CdlInterpreterCommandEntry("cdl_component",      &CdlComponentBody::parse_component ),
+       CdlInterpreterCommandEntry("cdl_option",         &CdlOptionBody::parse_option       ),
+       CdlInterpreterCommandEntry("cdl_interface",      &CdlInterfaceBody::parse_interface ),
+       CdlInterpreterCommandEntry("cdl_dialog",         &CdlDialogBody::parse_dialog       ),
+       CdlInterpreterCommandEntry("cdl_wizard",         &CdlWizardBody::parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                                  )
     };
     std::vector<CdlInterpreterCommandEntry>  new_commands;
     int i;
     };
     std::vector<CdlInterpreterCommandEntry>  new_commands;
     int i;
-    
+
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     int result = TCL_OK;
     try {
 
     // All parsing errors may result in an exception, under the control of
     // application code. This exception must not pass through the Tcl interpreter.
     int result = TCL_OK;
     try {
 
-        // Currently there are no options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                   "'\nExpecting name and properties list.");
-        } else if (argv[1] != loadable->get_name()) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Incorrect package name in CDL script.\n") +
-                                   "This package is `" + loadable->get_name() + "'\n" +
-                                   "The CDL script `" + filename + "' defines a package `" + argv[1] + "'.");
-        } else if (0 != properties.size()) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Duplicate cdl_package commands for package `") + argv[1] + "'.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "",
-                                   std::string("Invalid property list for cdl_package `") + argv[1] + "'.");
-        } else {
-
-            for (i = 0; 0 != commands[i].command; i++) {
-                new_commands.push_back(commands[i]);
-            }
-        
-            CdlBuildLoadableBody::add_property_parsers(new_commands);
-            CdlBuildableBody::add_property_parsers(new_commands);
-            CdlDefineLoadableBody::add_property_parsers(new_commands);
-            CdlDefinableBody::add_property_parsers(new_commands);
-            CdlParentableBody::add_property_parsers(new_commands);
-            CdlValuableBody::add_property_parsers(new_commands);
-            CdlUserVisibleBody::add_property_parsers(new_commands);
-            CdlNodeBody::add_property_parsers(new_commands);
-
-            // Now evaluate the body. If an error occurs then typically
-            // this will be reported via CdlParse::report_error(),
-            // but any exceptions will have been intercepted and
-            // turned into a Tcl error.
-            CdlInterpreterBody::CommandSupport interp_cmds(interp, new_commands);
-            result = interp->eval(argv[2]);
-            if (TCL_OK == result) {
-
-                // Even if there were errors, they were not fatal. There may
-                // now be a number of properties for this package, and some
-                // validation should take place. Start with the base classes.
-                package->CdlNodeBody::check_properties(interp);
-                package->CdlUserVisibleBody::check_properties(interp);
-                package->CdlValuableBody::check_properties(interp);
-                package->CdlParentableBody::check_properties(interp);
-                package->CdlBuildableBody::check_properties(interp);
-                package->CdlBuildLoadableBody::check_properties(interp);
-                package->CdlDefinableBody::check_properties(interp);
-                package->CdlDefineLoadableBody::check_properties(interp);
-
-                // Some of the properties in the base classes are not actually
-                // appropriate. A package is valuable, but it can only be
-                // modified by loading and unloading. Many of the value-related
-                // properties do not make sense.
-                if (package->count_properties(CdlPropertyId_Flavor) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `flavor' property.");
-                }
-                if (package->count_properties(CdlPropertyId_EntryProc) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have an `entry_proc' property.");
-                }
-                if (package->count_properties(CdlPropertyId_CheckProc) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `check_proc' property.");
-                }
-                // BLV: this reasoning is faulty, it should be possible to
-                // control the enabled aspect via an expression. That would
-                // need option processing for the default_value property.
-                if (package->count_properties(CdlPropertyId_DefaultValue) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `default_value' property.");
-                }
-                if (package->count_properties(CdlPropertyId_LegalValues) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `legal_values' property.");
-                }
-                if (package->count_properties(CdlPropertyId_Calculated) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `calculated' property.");
-                }
-                if (package->count_properties(CdlPropertyId_Dialog) > 0) {
-                    CdlParse::report_error(interp, "", "A package should not have a `dialog' property.");
-                }
-
-                // There should be at most one each of license_proc, install_proc, include_dir,
-                // export_to, library, makefile, and wizard.
-                if (package->count_properties(CdlPropertyId_LicenseProc) > 1) {
-                    CdlParse::report_error(interp, "", "A package should have at most one `license_proc' property.");
-                }
-                if (package->count_properties(CdlPropertyId_InstallProc) > 1) {
-                    CdlParse::report_error(interp, "", "A package should have at most one `install_proc' property.");
-                }
-            }
-        }
-        
+       // Currently there are no options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                  "'\nExpecting name and properties list.");
+       } else if (argv[1] != loadable->get_name()) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Incorrect package name in CDL script.\n") +
+                                  "This package is `" + loadable->get_name() + "'\n" +
+                                  "The CDL script `" + filename + "' defines a package `" + argv[1] + "'.");
+       } else if (0 != properties.size()) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Duplicate cdl_package commands for package `") + argv[1] + "'.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "",
+                                  std::string("Invalid property list for cdl_package `") + argv[1] + "'.");
+       } else {
+
+           for (i = 0; 0 != commands[i].command; i++) {
+               new_commands.push_back(commands[i]);
+           }
+
+           CdlBuildLoadableBody::add_property_parsers(new_commands);
+           CdlBuildableBody::add_property_parsers(new_commands);
+           CdlDefineLoadableBody::add_property_parsers(new_commands);
+           CdlDefinableBody::add_property_parsers(new_commands);
+           CdlParentableBody::add_property_parsers(new_commands);
+           CdlValuableBody::add_property_parsers(new_commands);
+           CdlUserVisibleBody::add_property_parsers(new_commands);
+           CdlNodeBody::add_property_parsers(new_commands);
+
+           // Now evaluate the body. If an error occurs then typically
+           // this will be reported via CdlParse::report_error(),
+           // but any exceptions will have been intercepted and
+           // turned into a Tcl error.
+           CdlInterpreterBody::CommandSupport interp_cmds(interp, new_commands);
+           result = interp->eval(argv[2]);
+           if (TCL_OK == result) {
+
+               // Even if there were errors, they were not fatal. There may
+               // now be a number of properties for this package, and some
+               // validation should take place. Start with the base classes.
+               package->CdlNodeBody::check_properties(interp);
+               package->CdlUserVisibleBody::check_properties(interp);
+               package->CdlValuableBody::check_properties(interp);
+               package->CdlParentableBody::check_properties(interp);
+               package->CdlBuildableBody::check_properties(interp);
+               package->CdlBuildLoadableBody::check_properties(interp);
+               package->CdlDefinableBody::check_properties(interp);
+               package->CdlDefineLoadableBody::check_properties(interp);
+
+               // Some of the properties in the base classes are not actually
+               // appropriate. A package is valuable, but it can only be
+               // modified by loading and unloading. Many of the value-related
+               // properties do not make sense.
+               if (package->count_properties(CdlPropertyId_Flavor) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `flavor' property.");
+               }
+               if (package->count_properties(CdlPropertyId_EntryProc) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have an `entry_proc' property.");
+               }
+               if (package->count_properties(CdlPropertyId_CheckProc) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `check_proc' property.");
+               }
+               // BLV: this reasoning is faulty, it should be possible to
+               // control the enabled aspect via an expression. That would
+               // need option processing for the default_value property.
+               if (package->count_properties(CdlPropertyId_DefaultValue) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `default_value' property.");
+               }
+               if (package->count_properties(CdlPropertyId_LegalValues) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `legal_values' property.");
+               }
+               if (package->count_properties(CdlPropertyId_Calculated) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `calculated' property.");
+               }
+               if (package->count_properties(CdlPropertyId_Dialog) > 0) {
+                   CdlParse::report_error(interp, "", "A package should not have a `dialog' property.");
+               }
+
+               // There should be at most one each of license_proc, install_proc, include_dir,
+               // export_to, library, makefile, and wizard.
+               if (package->count_properties(CdlPropertyId_LicenseProc) > 1) {
+                   CdlParse::report_error(interp, "", "A package should have at most one `license_proc' property.");
+               }
+               if (package->count_properties(CdlPropertyId_InstallProc) > 1) {
+                   CdlParse::report_error(interp, "", "A package should have at most one `install_proc' property.");
+               }
+           }
+       }
+
     } catch (std::bad_alloc e) {
     } catch (std::bad_alloc e) {
-        // Errors at this stage should be reported via Tcl, not via C++
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
-        result = TCL_ERROR;
+       // Errors at this stage should be reported via Tcl, not via C++
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Out of memory"));
+       result = TCL_ERROR;
     } catch (CdlParseException e) {
     } catch (CdlParseException e) {
-        interp->set_result(e.get_message());
-        result = TCL_ERROR;
+       interp->set_result(e.get_message());
+       result = TCL_ERROR;
     } catch(...) {
     } catch(...) {
-        interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
-        result = TCL_ERROR;
+       interp->set_result(CdlParse::construct_diagnostic(interp, "internal error", "", "Unexpected C++ exception"));
+       result = TCL_ERROR;
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
     CYG_REPORT_RETVAL(result);
     return result;
 }
 
 //}}}
-//{{{  Package properties               
+//{{{  Package properties
 
 // ----------------------------------------------------------------------------
 // Syntax: hardware
 
 // ----------------------------------------------------------------------------
 // Syntax: hardware
@@ -313,7 +313,7 @@ CdlPackageBody::parse_hardware(CdlInterpreter interp, int argc, const char* argv
     CYG_REPORT_FUNCNAMETYPE("parse_hardware", "result %d");
 
     int result = CdlParse::parse_minimal_property(interp, argc, argv, CdlPropertyId_Hardware, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_hardware", "result %d");
 
     int result = CdlParse::parse_minimal_property(interp, argc, argv, CdlPropertyId_Hardware, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -326,7 +326,7 @@ CdlPackageBody::parse_install_proc(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_install_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_InstallProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_install_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_InstallProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -341,7 +341,7 @@ CdlPackageBody::parse_license_proc(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_license_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_LicenseProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_license_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_LicenseProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -357,7 +357,7 @@ CdlPackageBody::is_hardware_package() const
 
     bool result = false;
     if (has_property(CdlPropertyId_Hardware)) {
 
     bool result = false;
     if (has_property(CdlPropertyId_Hardware)) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -373,7 +373,7 @@ CdlPackageBody::has_install_proc() const
 
     bool result = false;
     if (has_property(CdlPropertyId_InstallProc)) {
 
     bool result = false;
     if (has_property(CdlPropertyId_InstallProc)) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -391,8 +391,8 @@ CdlPackageBody::get_install_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_InstallProc);
     if (0 != prop) {
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_InstallProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -408,7 +408,7 @@ CdlPackageBody::has_license_proc() const
 
     bool result = false;
     if (has_property(CdlPropertyId_LicenseProc)) {
 
     bool result = false;
     if (has_property(CdlPropertyId_LicenseProc)) {
-        result = true;
+       result = true;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -426,8 +426,8 @@ CdlPackageBody::get_license_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_LicenseProc);
     if (0 != prop) {
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_LicenseProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -435,7 +435,7 @@ CdlPackageBody::get_license_proc() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Propagation support              
+//{{{  Propagation support
 
 // ----------------------------------------------------------------------------
 void
 
 // ----------------------------------------------------------------------------
 void
@@ -445,12 +445,12 @@ CdlPackageBody::update(CdlTransaction transaction, CdlUpdate update)
 
     this->CdlValuableBody::update(transaction, update);
     this->CdlContainerBody::update(transaction, update);
 
     this->CdlValuableBody::update(transaction, update);
     this->CdlContainerBody::update(transaction, update);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Persistence support              
+//{{{  Persistence support
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -475,43 +475,42 @@ CdlPackageBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, b
     // to allow the package to be loaded. It is still necessary to output
     // a cdl_package command if there were additional savefile strings.
     if (!minimal || this->has_additional_savefile_information()) {
     // to allow the package to be loaded. It is still necessary to output
     // a cdl_package command if there were additional savefile strings.
     if (!minimal || this->has_additional_savefile_information()) {
-    
-        // Start with the UserVisible data, which will result in a suitable set
-        // of comments before the package definition itself.
-        this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
-
-        // Now output the line "cdl_package <name> {"
-        // The name is guaranteed to be a valid C preprocessor symbol, so it
-        // is not going to need any quoting.
-        std::string data = std::string(indentation, ' ') + "cdl_package " + get_name() + " {\n";
-        std::string indent_string = std::string(indentation + 4, ' ');
-
-        // The value associated with a package cannot be changed simply
-        // by editing the savefile. Add a comment to that effect.
-        if (!minimal) {
-            data += indent_string + "# Packages cannot be added or removed, nor can their version be changed,\n";
-            data += indent_string + "# simply by editing their value. Instead the appropriate configuration\n";
-            data += indent_string + "# should be used to perform these actions.\n\n";
-        }
-
-        // Output the command and the comment.
-        interp->write_data(chan, data);
-    
-        // Deal with the value
-        this->CdlValuableBody::save(interp, chan, indentation + 4, false, minimal);
-
-        // And with any unrecognised data
-        this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
-    
-        // Close the cdl_package body. A blank line is added here.
-        data = "};\n\n";
-        
-        interp->write_data(chan, data);
+       // Start with the UserVisible data, which will result in a suitable set
+       // of comments before the package definition itself.
+       this->CdlUserVisibleBody::save(interp, chan, indentation, minimal);
+
+       // Now output the line "cdl_package <name> {"
+       // The name is guaranteed to be a valid C preprocessor symbol, so it
+       // is not going to need any quoting.
+       std::string data = std::string(indentation, ' ') + "cdl_package " + get_name() + " {\n";
+       std::string indent_string = std::string(indentation + 4, ' ');
+
+       // The value associated with a package cannot be changed simply
+       // by editing the savefile. Add a comment to that effect.
+       if (!minimal) {
+           data += indent_string + "# Packages cannot be added or removed, nor can their version be changed,\n";
+           data += indent_string + "# simply by editing their value. Instead the appropriate configuration\n";
+           data += indent_string + "# should be used to perform these actions.\n\n";
+       }
+
+       // Output the command and the comment.
+       interp->write_data(chan, data);
+
+       // Deal with the value
+       this->CdlValuableBody::_save(interp, chan, indentation + 4, false, minimal);
+
+       // And with any unrecognised data
+       this->CdlNodeBody::save(interp, chan, indentation + 4, minimal);
+
+       // Close the cdl_package body. A blank line is added here.
+       data = "};\n\n";
+
+       interp->write_data(chan, data);
     }
     }
-    
+
     // Packages are containers, so dump the contents as well.
     this->CdlContainerBody::save(interp, chan, indentation, minimal);
     // Packages are containers, so dump the contents as well.
     this->CdlContainerBody::save(interp, chan, indentation, minimal);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -530,40 +529,38 @@ CdlPackageBody::savefile_package_command(CdlInterpreter interp, int argc, const
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
     std::vector<CdlInterpreterCommandEntry> subcommands;
     std::vector<CdlInterpreterCommandEntry>* toplevel_commands = 0;
     CdlNode old_node = 0;
-    
+
     try {
     try {
-        
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", "Invalid cdl_package command in savefile, expecting two arguments.");
-        } else {
-
-            CdlNode current_node = config->lookup(argv[1]);
-            if (0 == current_node) {
-                CdlParse::report_error(interp, "",
-                                       std::string("The savefile contains a cdl_package command for `") +
-                                       argv[1] + "' which has not been loaded.");
-            } else {
-                config->get_savefile_subcommands("cdl_package", subcommands);
-                toplevel_commands = interp->push_commands(subcommands);
-                old_node = interp->push_node(current_node);
-                
-                std::string tcl_result;
-                result = interp->eval(argv[2], tcl_result);
-            
-                interp->pop_commands(toplevel_commands);
-                toplevel_commands = 0;
-                interp->pop_node(old_node);
-                old_node = 0;
-            }
-        }
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", "Invalid cdl_package command in savefile, expecting two arguments.");
+       } else {
+           CdlNode current_node = config->lookup(argv[1]);
+           if (0 == current_node) {
+               CdlParse::report_error(interp, "",
+                                      std::string("The savefile contains a cdl_package command for `") +
+                                      argv[1] + "' which has not been loaded.");
+           } else {
+               config->get_savefile_subcommands("cdl_package", subcommands);
+               toplevel_commands = interp->push_commands(subcommands);
+               old_node = interp->push_node(current_node);
+
+               std::string tcl_result;
+               result = interp->eval(argv[2], tcl_result);
+
+               interp->pop_commands(toplevel_commands);
+               toplevel_commands = 0;
+               interp->pop_node(old_node);
+               old_node = 0;
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != old_node) {
-            interp->pop_node(old_node);
-        }
-        if (0 != toplevel_commands) {
-            interp->pop_commands(toplevel_commands);
-        }
-        throw;
+       if (0 != old_node) {
+           interp->pop_node(old_node);
+       }
+       if (0 != toplevel_commands) {
+           interp->pop_commands(toplevel_commands);
+       }
+       throw;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -571,7 +568,7 @@ CdlPackageBody::savefile_package_command(CdlInterpreter interp, int argc, const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -579,24 +576,24 @@ bool
 CdlPackageBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlPackageBody_Magic != cdlpackagebody_cookie) {
 CdlPackageBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlPackageBody_Magic != cdlpackagebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
+
     return CdlNodeBody::check_this(zeal)                &&
     return CdlNodeBody::check_this(zeal)                &&
-           CdlContainerBody::check_this(zeal)           &&
-           CdlLoadableBody::check_this(zeal)            &&
-           CdlUserVisibleBody::check_this(zeal)         &&
-           CdlValuableBody::check_this(zeal)            &&
-           CdlParentableBody::check_this(zeal)          &&
-           CdlBuildableBody::check_this(zeal)           &&
-           CdlBuildLoadableBody::check_this(zeal)       &&
-           CdlDefinableBody::check_this(zeal)           &&
-           CdlDefineLoadableBody::check_this(zeal);
+          CdlContainerBody::check_this(zeal)           &&
+          CdlLoadableBody::check_this(zeal)            &&
+          CdlUserVisibleBody::check_this(zeal)         &&
+          CdlValuableBody::check_this(zeal)            &&
+          CdlParentableBody::check_this(zeal)          &&
+          CdlBuildableBody::check_this(zeal)           &&
+          CdlBuildLoadableBody::check_this(zeal)       &&
+          CdlDefinableBody::check_this(zeal)           &&
+          CdlDefineLoadableBody::check_this(zeal);
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Misc                             
+//{{{  Misc
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -623,15 +620,15 @@ CdlPackageBody::get_config_header() const
     CYG_PRECONDITION_CLASSC(this);
 
     std::string result = "";
     CYG_PRECONDITION_CLASSC(this);
 
     std::string result = "";
-#if 0    
+#if 0
     if (has_property(CdlPropertyId_Hardware)) {
     if (has_property(CdlPropertyId_Hardware)) {
-        result = "hardware.h";
+       result = "hardware.h";
     } else {
     } else {
-        result = CdlDefineLoadableBody::get_config_header();
+       result = CdlDefineLoadableBody::get_config_header();
     }
 #else
     result = CdlDefineLoadableBody::get_config_header();
     }
 #else
     result = CdlDefineLoadableBody::get_config_header();
-#endif  
+#endif
 
     CYG_REPORT_RETURN();
     return result;
 
     CYG_REPORT_RETURN();
     return result;
@@ -645,7 +642,7 @@ CdlPackageBody::belongs_to_template() const
     CYG_PRECONDITION_THISC();
 
     bool result = loaded_for_template;
     CYG_PRECONDITION_THISC();
 
     bool result = loaded_for_template;
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -658,7 +655,7 @@ CdlPackageBody::belongs_to_hardware() const
     CYG_PRECONDITION_THISC();
 
     bool result = loaded_for_hardware;
     CYG_PRECONDITION_THISC();
 
     bool result = loaded_for_hardware;
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
index 2bcceee0eab48ab750ea06b2f97198f7f14525e9..e660ebffdf7e498c603fd42791d7b2feca936270 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                                   
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,43 +8,43 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //
-// Author(s):   bartv
-// Contact(s):  bartv
-// Date:        1999/02/23
-// Version:     0.02
+// Author(s):  bartv
+// Contact(s): bartv
+// Date:       1999/02/23
+// Version:    0.02
 //
 //####DESCRIPTIONEND####
 //============================================================================
 
 //}}}
 //
 //####DESCRIPTIONEND####
 //============================================================================
 
 //}}}
-//{{{  #include's                               
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include <string.h>
 
 // ----------------------------------------------------------------------------
 #include <string.h>
@@ -62,7 +62,7 @@
 
 //}}}
 
 
 //}}}
 
-//{{{  Description                              
+//{{{  Description
 
 // ----------------------------------------------------------------------------
 // All CDL data is read via a Tcl interpreter, so the parsing is done by
 
 // ----------------------------------------------------------------------------
 // All CDL data is read via a Tcl interpreter, so the parsing is done by
@@ -74,7 +74,7 @@
 // stays in a consistent state. In particular it is not possible to let
 // arbitrary C++ exceptions to go straight through the Tcl interpreter,
 // this is likely to result in a corrupted interpreter.
 // stays in a consistent state. In particular it is not possible to let
 // arbitrary C++ exceptions to go straight through the Tcl interpreter,
 // this is likely to result in a corrupted interpreter.
-// 
+//
 // Also, it is not a good idea to abort parsing as soon as anything
 // goes wrong. Instead there should be an error handling callback associated
 // with the interpreter, which can be used to report errors. This
 // Also, it is not a good idea to abort parsing as soon as anything
 // goes wrong. Instead there should be an error handling callback associated
 // with the interpreter, which can be used to report errors. This
@@ -98,7 +98,7 @@
 // will be intercepted by the CdlInterpreter class.
 
 //}}}
 // will be intercepted by the CdlInterpreter class.
 
 //}}}
-//{{{  Statics                                  
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 // The string "property " is needed in various places. Provide it as a static
 
 // ----------------------------------------------------------------------------
 // The string "property " is needed in various places. Provide it as a static
 static std::string property_string = "property ";
 
 //}}}
 static std::string property_string = "property ";
 
 //}}}
-//{{{  Generic parsing-related utilities        
+//{{{  Generic parsing-related utilities
 
 
-//{{{  argv manipulation                        
+//{{{  argv manipulation
 
 // ----------------------------------------------------------------------------
 // Some of the properties have aliases in the CDL data, so argv[0] has to be
 
 // ----------------------------------------------------------------------------
 // Some of the properties have aliases in the CDL data, so argv[0] has to be
@@ -118,11 +118,11 @@ std::string
 CdlParse::get_tcl_cmd_name(std::string name)
 {
     std::string result;
 CdlParse::get_tcl_cmd_name(std::string name)
 {
     std::string result;
-    
+
     if ((name[0] == ':') && (name[1] == ':')) {
     if ((name[0] == ':') && (name[1] == ':')) {
-        result = std::string(name, 2, name.size() - 2);
+       result = std::string(name, 2, name.size() - 2);
     } else {
     } else {
-        result = name;
+       result = name;
     }
     return result;
 }
     }
     return result;
 }
@@ -137,12 +137,12 @@ CdlParse::concatenate_argv(int argc, const char* argv[], int index)
 
     std::string result = "";
     for ( int i = index ; i < argc; i++) {
 
     std::string result = "";
     for ( int i = index ; i < argc; i++) {
-        if (i > index) {
-            result += ' ';
-        }
-        result += std::string(argv[i]);
+       if (i > index) {
+           result += ' ';
+       }
+       result += std::string(argv[i]);
     }
     }
-    
+
     CYG_REPORT_RETURN();
     return result;
 }
     CYG_REPORT_RETURN();
     return result;
 }
@@ -201,168 +201,168 @@ CdlParse::concatenate_argv(int argc, const char* argv[], int index)
 // flags consist of zero or more characters indicating how the option
 // should be interpreted. Valid flags are:
 //
 // flags consist of zero or more characters indicating how the option
 // should be interpreted. Valid flags are:
 //
-// f    - this option takes no data, it is just a boolean flag. The
-//        default behaviour assumes name/value pairs.
+// f   - this option takes no data, it is just a boolean flag. The
+//       default behaviour assumes name/value pairs.
 //
 //
-// m    - this option can occur multiple times. The default behaviour
-//        is that each option can only occur once.
+// m   - this option can occur multiple times. The default behaviour
+//       is that each option can only occur once.
 
 // Utility function to get hold of an option name without the colon
 // or terminating flags.
 
 static std::string
 
 // Utility function to get hold of an option name without the colon
 // or terminating flags.
 
 static std::string
-get_option_string(char* name)
+get_option_string(const char* name)
 {
     std::string result = "";
     while ((*name != ':') && (*name != '\0')) {
 {
     std::string result = "";
     while ((*name != ':') && (*name != '\0')) {
-        result += *name++;
+       result += *name++;
     }
     return result;
 }
 
 int
     }
     return result;
 }
 
 int
-CdlParse::parse_options(CdlInterpreter interp, std::string diag_prefix, char** options,
-                                 int argc, const char* argv[], int index,
-                                 std::vector<std::pair<std::string,std::string> >& result)
+CdlParse::parse_options(CdlInterpreter interp, std::string diag_prefix, const char** options,
+                                int argc, const char* argv[], int index,
+                                std::vector<std::pair<std::string,std::string> >& result)
 {
     CYG_REPORT_FUNCNAMETYPE("CdlParse::parse_options", "final index %d");
     CYG_REPORT_FUNCARG4XV(interp, options, argc, argv);
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAMETYPE("CdlParse::parse_options", "final index %d");
     CYG_REPORT_FUNCARG4XV(interp, options, argc, argv);
     CYG_PRECONDITION_CLASSC(interp);
-    CYG_PRECONDITIONC(argc > 0);        // The property name must be present.
+    CYG_PRECONDITIONC(argc > 0);       // The property name must be present.
     // It is possible for some of the arguments to have been processed already.
     CYG_PRECONDITIONC((index > 0) && (index <= argc));
 
     while((index < argc) && ('-' == argv[index][0])) {
 
     // It is possible for some of the arguments to have been processed already.
     CYG_PRECONDITIONC((index > 0) && (index <= argc));
 
     while((index < argc) && ('-' == argv[index][0])) {
 
-        std::string name  = "";
-        std::string value = "";
-
-        // The sequence -- should always terminate option processing.
-        if (0 == strcmp(argv[index], "--")) {
-            index++;
-            break;
-        }
-
-        const char* arg_ptr       = argv[index];
-        // Skip the initial -, and the second one as well if it is present.
-        if ('-' == *++arg_ptr) {
-            arg_ptr++;
-        }
-
-        // Construct the option name. This is the current argument up
-        // to but not including the '=' character or EOD.
-        while (('=' != *arg_ptr) && ('\0' != *arg_ptr)) {
-            name += *arg_ptr++;
-        }
-
-        if ("" == name) {
-            // One of "-", "-=xxx", or "--=x"
-            CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option string `") + argv[index] + "'.");
-        }
-
-        // Do not try to extract the value unless we are sure there
-        // should be one. Instead try to match the option name. The
-        // current value of name should be a unique substring of
-        // one of the known option strings.
-        //
-        // Note that the supplied options descriptor can be NULL,
-        // since most properties do not yet take any options.
-        // In that case opt_index will remain at -1, and we should
-        // get an "invalid option" diagnostic.
-        unsigned int i;
-        int opt_index = -1;
-        if (0 != options) {
-            for (i = 0; 0 != options[i]; i++) {
-                if (0 == strncmp(name.c_str(), options[i], name.size())) {
-                    if (-1 != opt_index) {
-                        CdlParse::report_warning(interp, diag_prefix,
-                                                 std::string("Ambiguous option name `") + name + "'.\n" +
-                                                 "It can match `" + get_option_string(options[opt_index]) + "'\n" +
-                                                 "or `" + get_option_string(options[i]) + "'.");
-                        index++;
-                        break;
-                    } else {
-                        opt_index = i;
-                    }
-                }
-            }
-        }
-        if (-1 == opt_index) {
-            CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option `") + name + "'.");
-            index++;
-            break;
-        }
-
-        // The option has been identified successfully. Extract the flags.
-        bool    flag_flag       = false;
-        bool    multiple_flag   = false;
-        char*   tmp = options[opt_index];
-        while (('\0' != *tmp) && (':' != *tmp)) {
-            tmp++;
-        }
-        if (':' == *tmp) {
-            do {
-                tmp++;
-                if ('f' == *tmp) {
-                    flag_flag = true;
-                } else if ('m' == *tmp) {
-                    multiple_flag = true;
-                } else if ('\0' != *tmp) {
-                    CYG_FAIL("Invalid property option");
-                }
-            } while ('\0' != *tmp);
-        }
-
-        // We now know the full option name. Use it for future diagnostics.
-        name = get_option_string(options[opt_index]);
-
-        // Take care of the value.
-        if (flag_flag) {
-            // There should not be a value. If the current argument is of the
-            // form x=y then this is an error.
-            if ('=' == *arg_ptr) {
-                CdlParse::report_warning(interp, diag_prefix,  std::string("Option `") + name + "' does not take any data.");
-            }
-            // Leave index pointing at the next argument to be processed.
-            index++;
-        } else {
-            if ('=' == *arg_ptr) {
-                value = std::string(++arg_ptr);
-            } else if (++index == argc) {
-                CdlParse::report_warning(interp, diag_prefix,  std::string("Missing data for option `") + name + "'.");
-            } else {
-                value = argv[index];
-            }
-            index++;
-        }
-        // At this stage index points at the next argument to be processed, and should not
-        // be updated again.
-        
-        // Unless the option can occur multiple times, make sure that it is not already
-        // present in the options vector.
-        if (!multiple_flag) {
-            for (i = 0; i < result.size(); i++) {
-                if (name == result[i].first) {
-                    CdlParse::report_warning(interp, diag_prefix, std::string("Option `") + name + "' can only be used once.");
-                    break;
-                }
-            }
-        }
-
-        // The name/value pair is valid, so add it to the result vector.
-        result.push_back(std::make_pair(name, value));
+       std::string name  = "";
+       std::string value = "";
+
+       // The sequence -- should always terminate option processing.
+       if (0 == strcmp(argv[index], "--")) {
+           index++;
+           break;
+       }
+
+       const char* arg_ptr       = argv[index];
+       // Skip the initial -, and the second one as well if it is present.
+       if ('-' == *++arg_ptr) {
+           arg_ptr++;
+       }
+
+       // Construct the option name. This is the current argument up
+       // to but not including the '=' character or EOD.
+       while (('=' != *arg_ptr) && ('\0' != *arg_ptr)) {
+           name += *arg_ptr++;
+       }
+
+       if ("" == name) {
+           // One of "-", "-=xxx", or "--=x"
+           CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option string `") + argv[index] + "'.");
+       }
+
+       // Do not try to extract the value unless we are sure there
+       // should be one. Instead try to match the option name. The
+       // current value of name should be a unique substring of
+       // one of the known option strings.
+       //
+       // Note that the supplied options descriptor can be NULL,
+       // since most properties do not yet take any options.
+       // In that case opt_index will remain at -1, and we should
+       // get an "invalid option" diagnostic.
+       unsigned int i;
+       int opt_index = -1;
+       if (options) {
+           for (i = 0; options[i] != NULL; i++) {
+               if (strncmp(name.c_str(), options[i], name.size()) == 0) {
+                   if (opt_index != -1) {
+                       CdlParse::report_warning(interp, diag_prefix,
+                                                std::string("Ambiguous option name `") + name + "'.\n" +
+                                                "It can match `" + get_option_string(options[opt_index]) + "'\n" +
+                                                "or `" + get_option_string(options[i]) + "'.");
+                       index++;
+                       break;
+                   } else {
+                       opt_index = i;
+                   }
+               }
+           }
+       }
+       if (opt_index == -1) {
+           CdlParse::report_warning(interp, diag_prefix, std::string("Invalid option `") + name + "'.");
+           index++;
+           break;
+       }
+
+       // The option has been identified successfully. Extract the flags.
+       bool    flag_flag       = false;
+       bool    multiple_flag   = false;
+       const char*     tmp = options[opt_index];
+       while (('\0' != *tmp) && (':' != *tmp)) {
+           tmp++;
+       }
+       if (':' == *tmp) {
+           do {
+               tmp++;
+               if ('f' == *tmp) {
+                   flag_flag = true;
+               } else if ('m' == *tmp) {
+                   multiple_flag = true;
+               } else if ('\0' != *tmp) {
+                   CYG_FAIL("Invalid property option");
+               }
+           } while ('\0' != *tmp);
+       }
+
+       // We now know the full option name. Use it for future diagnostics.
+       name = get_option_string(options[opt_index]);
+
+       // Take care of the value.
+       if (flag_flag) {
+           // There should not be a value. If the current argument is of the
+           // form x=y then this is an error.
+           if ('=' == *arg_ptr) {
+               CdlParse::report_warning(interp, diag_prefix,  std::string("Option `") + name + "' does not take any data.");
+           }
+           // Leave index pointing at the next argument to be processed.
+           index++;
+       } else {
+           if ('=' == *arg_ptr) {
+               value = std::string(++arg_ptr);
+           } else if (++index == argc) {
+               CdlParse::report_warning(interp, diag_prefix,  std::string("Missing data for option `") + name + "'.");
+           } else {
+               value = argv[index];
+           }
+           index++;
+       }
+       // At this stage index points at the next argument to be processed, and should not
+       // be updated again.
+
+       // Unless the option can occur multiple times, make sure that it is not already
+       // present in the options vector.
+       if (!multiple_flag) {
+           for (i = 0; i < result.size(); i++) {
+               if (name == result[i].first) {
+                   CdlParse::report_warning(interp, diag_prefix, std::string("Option `") + name + "' can only be used once.");
+                   break;
+               }
+           }
+       }
+
+       // The name/value pair is valid, so add it to the result vector.
+       result.push_back(std::make_pair(name, value));
     }
     }
-    
+
     CYG_REPORT_RETVAL(index);
     return index;
 }
 
 //}}}
     CYG_REPORT_RETVAL(index);
     return index;
 }
 
 //}}}
-//{{{  Diagnostic construction                  
+//{{{  Diagnostic construction
 
 // Construct a suitable diagnostic for a parsing error. This may occur
 // when reading in a CDL script, a savefile, a database, or anything
 
 // Construct a suitable diagnostic for a parsing error. This may occur
 // when reading in a CDL script, a savefile, a database, or anything
-// similar. 
+// similar.
 //
 // A diagnostic should take the following form:
 //
 //
 // A diagnostic should take the following form:
 //
@@ -409,67 +409,67 @@ CdlParse::construct_diagnostic(CdlInterpreter interp, std::string classification
     CYG_REPORT_FUNCNAME("CdlParse::construct_diagnostic");
     CYG_PRECONDITION_CLASSC(interp);
 
     CYG_REPORT_FUNCNAME("CdlParse::construct_diagnostic");
     CYG_PRECONDITION_CLASSC(interp);
 
-    std::string context      = interp->get_context();
-    CdlNode     current_node = interp->get_node();
+    std::string context             = interp->get_context();
+    CdlNode    current_node = interp->get_node();
 
     std::string result;
     if ("" == context) {
 
     std::string result;
     if ("" == context) {
-        result = "<unknown context>";
+       result = "<unknown context>";
     } else {
     } else {
-        result = context;
+       result = context;
     }
     }
-    if (0 != current_node) {
-        result += ", " + current_node->get_class_name() + " " + current_node->get_name();
+    if (current_node) {
+       result += ", " + current_node->get_class_name() + " " + current_node->get_name();
     }
     if ("" != sub_id) {
     }
     if ("" != sub_id) {
-        result += ", " + sub_id;
+       result += ", " + sub_id;
     }
     result += ": " + classification;
     }
     result += ": " + classification;
-    
+
     // Now it is time to start worrying about layout, indenting
     // subsequent lines, and so on.
     // Now it is time to start worrying about layout, indenting
     // subsequent lines, and so on.
-    int index        = result.length();
+    int index       = result.length();
     int message_len  = message.length();
     int message_index;
     bool indent_needed = false;
 
     // Find out how many characters there are in the message up to the first newline
     for (message_index = 0; (message_index < message_len) && ('\n' != message[message_index]); message_index++) {
     int message_len  = message.length();
     int message_index;
     bool indent_needed = false;
 
     // Find out how many characters there are in the message up to the first newline
     for (message_index = 0; (message_index < message_len) && ('\n' != message[message_index]); message_index++) {
-        ;
+       ;
     }
 
     // Should the message start on the next line, suitably indented?
     // This depends in part on whether or not there was a classification.
     if ("" == classification) {
     }
 
     // Should the message start on the next line, suitably indented?
     // This depends in part on whether or not there was a classification.
     if ("" == classification) {
-        // The current result ends with a colon and a space.
-        if ((index + message_index) <= 72) {
-            // The first line of the message can still fit. No need to do anything.
-        } else {
-            // Start indenting immediately, do not add anything else to the current line.
-            indent_needed = true;
-        }
+       // The current result ends with a colon and a space.
+       if ((index + message_index) <= 72) {
+           // The first line of the message can still fit. No need to do anything.
+       } else {
+           // Start indenting immediately, do not add anything else to the current line.
+           indent_needed = true;
+       }
     } else {
     } else {
-        // We may want a comma and a space after the classification
-        if ((index + 2 + message_index) <= 72) {
-            result += ", ";
-        } else {
-            indent_needed = true;
-        }
+       // We may want a comma and a space after the classification
+       if ((index + 2 + message_index) <= 72) {
+           result += ", ";
+       } else {
+           indent_needed = true;
+       }
     }
 
     // Now we can process the message one character at a time, adding
     // newlines and indentation just in time.
     for (message_index = 0; message_index < message_len; message_index++) {
     }
 
     // Now we can process the message one character at a time, adding
     // newlines and indentation just in time.
     for (message_index = 0; message_index < message_len; message_index++) {
-        if (indent_needed) {
-            result += "\n    ";
-            indent_needed = false;
-        }
-
-        if ('\n' == message[message_index]) {
-            indent_needed = true;
-        } else {
-            result += message[message_index];
-        }
+       if (indent_needed) {
+           result += "\n    ";
+           indent_needed = false;
+       }
+
+       if ('\n' == message[message_index]) {
+           indent_needed = true;
+       } else {
+           result += message[message_index];
+       }
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -477,13 +477,13 @@ CdlParse::construct_diagnostic(CdlInterpreter interp, std::string classification
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Error count tracking                     
+//{{{  Error count tracking
 
 // Keep track of the number of errors that have occurred while doing some
 // parsing. This functionality is not provided directly by the CdlInterpreter
 // class, instead it is implemented using assoc data.
 
 
 // Keep track of the number of errors that have occurred while doing some
 // parsing. This functionality is not provided directly by the CdlInterpreter
 // class, instead it is implemented using assoc data.
 
-static const char       error_count_key[]       = "CdlErrorCount";
+static const char      error_count_key[]       = "CdlErrorCount";
 
 static void
 error_count_delproc(ClientData data, Tcl_Interp* interp)
 
 static void
 error_count_delproc(ClientData data, Tcl_Interp* interp)
@@ -501,9 +501,9 @@ CdlParse::clear_error_count(CdlInterpreter interp)
     CYG_REPORT_FUNCARG1("interp %p", interp);
     CYG_PRECONDITION_CLASSC(interp);
 
     CYG_REPORT_FUNCARG1("interp %p", interp);
     CYG_PRECONDITION_CLASSC(interp);
 
-    int*        newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
-    if (0 != newed_ptr) {
-        *newed_ptr = 0;
+    int*       newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
+    if (newed_ptr) {
+       *newed_ptr = 0;
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -516,14 +516,14 @@ CdlParse::incr_error_count(CdlInterpreter interp, int how_much)
     CYG_REPORT_FUNCARG2("interp %p, how_much %d", interp, how_much);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION(how_much > 0, "previous errors cannot be undone");
     CYG_REPORT_FUNCARG2("interp %p, how_much %d", interp, how_much);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION(how_much > 0, "previous errors cannot be undone");
-    
+
     int* newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
     if (0 == newed_ptr) {
     int* newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
     if (0 == newed_ptr) {
-        newed_ptr = new int(how_much);
-        interp->set_assoc_data(error_count_key, static_cast<void*>(newed_ptr), &error_count_delproc);
+       newed_ptr = new int(how_much);
+       interp->set_assoc_data(error_count_key, static_cast<void*>(newed_ptr), &error_count_delproc);
     } else {
     } else {
-        CYG_ASSERT((*newed_ptr + how_much) > *newed_ptr, "number of parsing errors should not overflow");
-        *newed_ptr += how_much;
+       CYG_ASSERT((*newed_ptr + how_much) > *newed_ptr, "number of parsing errors should not overflow");
+       *newed_ptr += how_much;
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -538,8 +538,8 @@ CdlParse::get_error_count(CdlInterpreter interp)
 
     int result = 0;
     int* newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
 
     int result = 0;
     int* newed_ptr = static_cast<int*>(interp->get_assoc_data(error_count_key));
-    if (0 != newed_ptr) {
-        result = *newed_ptr;
+    if (newed_ptr) {
+       result = *newed_ptr;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -547,7 +547,7 @@ CdlParse::get_error_count(CdlInterpreter interp)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Error and warning reporting              
+//{{{  Error and warning reporting
 
 // Report errors and warnings. These will be called during parsing
 // operations, both of CDL and similar data scripts and for savefiles.
 
 // Report errors and warnings. These will be called during parsing
 // operations, both of CDL and similar data scripts and for savefiles.
@@ -560,7 +560,7 @@ CdlParse::get_error_count(CdlInterpreter interp)
 //     Tcl interpreter
 //     libcdl parsing code
 //     report_error()
 //     Tcl interpreter
 //     libcdl parsing code
 //     report_error()
-//     
+//
 // If the Tcl script is invalid then parsing errors may get reported
 // at the higher level code as well.
 //
 // If the Tcl script is invalid then parsing errors may get reported
 // at the higher level code as well.
 //
@@ -597,11 +597,11 @@ CdlParse::report_error(CdlInterpreter interp, std::string sub_id, std::string me
     // Now, either invoke the callback if it is provided, or throw the exception.
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     if (0 == fn) {
     // Now, either invoke the callback if it is provided, or throw the exception.
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     if (0 == fn) {
-        throw CdlParseException(full_message);
+       throw CdlParseException(full_message);
     } else {
     } else {
-        (*fn)(full_message);
+       (*fn)(full_message);
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -615,16 +615,16 @@ CdlParse::report_warning(CdlInterpreter interp, std::string sub_id, std::string
     // If there is no warning callback, do nothing. This is really a
     // bug in the calling application.
     CdlDiagnosticFnPtr fn = interp->get_warning_fn_ptr();
     // If there is no warning callback, do nothing. This is really a
     // bug in the calling application.
     CdlDiagnosticFnPtr fn = interp->get_warning_fn_ptr();
-    if (0 != fn) {
-        std::string full_message = construct_diagnostic(interp, "warning", sub_id, message);
-        (*fn)(full_message);
+    if (fn) {
+       std::string full_message = construct_diagnostic(interp, "warning", sub_id, message);
+       fn(full_message);
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  The "unknown" command                    
+//{{{  The "unknown" command
 
 // ----------------------------------------------------------------------------
 // This routine should be installed in interpreters that get used for
 
 // ----------------------------------------------------------------------------
 // This routine should be installed in interpreters that get used for
@@ -644,14 +644,14 @@ CdlParse::unknown_command(CdlInterpreter interp, int argc, const char* argv[])
 
     report_error(interp, "", std::string("Unknown command `") + argv[1] + "'.");
     CYG_UNUSED_PARAM(int, argc);
 
     report_error(interp, "", std::string("Unknown command `") + argv[1] + "'.");
     CYG_UNUSED_PARAM(int, argc);
-    
+
     return TCL_OK;
 }
 
 //}}}
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
 
 //}}}
-//{{{  Property-related parser utilities        
+//{{{  Property-related parser utilities
 
 // ----------------------------------------------------------------------------
 // Utilities related to parsing properties, rather than more general parsing.
 
 // ----------------------------------------------------------------------------
 // Utilities related to parsing properties, rather than more general parsing.
@@ -663,19 +663,19 @@ CdlParse::report_property_parse_error(CdlInterpreter interp, std::string argv0,
     CYG_REPORT_FUNCNAME("CdlPase::report_property_parse_error");
 
     incr_error_count(interp);
     CYG_REPORT_FUNCNAME("CdlPase::report_property_parse_error");
 
     incr_error_count(interp);
-    
+
     std::string diag = construct_diagnostic(interp, "error",
     std::string diag = construct_diagnostic(interp, "error",
-                                            std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
-                                            msg);
+                                           std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
+                                           msg);
 
     // Now, either invoke the callback if it is provided, or throw the exception.
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     if (0 == fn) {
 
     // Now, either invoke the callback if it is provided, or throw the exception.
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     if (0 == fn) {
-        throw CdlParseException(diag);
+       throw CdlParseException(diag);
     } else {
     } else {
-        (*fn)(diag);
+       (*fn)(diag);
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -694,13 +694,13 @@ CdlParse::report_property_parse_warning(CdlInterpreter interp, std::string argv0
     CYG_REPORT_FUNCNAME("CdlPase::report_property_parse_warning");
 
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
     CYG_REPORT_FUNCNAME("CdlPase::report_property_parse_warning");
 
     CdlDiagnosticFnPtr fn = interp->get_error_fn_ptr();
-    if (0 != fn) {
-        std::string diag = construct_diagnostic(interp, "error",
-                                                std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
-                                                msg);
-        (*fn)(diag);
+    if (fn) {
+       std::string diag = construct_diagnostic(interp, "error",
+                                               std::string("property ") + CdlParse::get_tcl_cmd_name(argv0),
+                                               msg);
+       fn(diag);
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -713,7 +713,7 @@ CdlParse::report_property_parse_warning(CdlInterpreter interp, CdlProperty prop,
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Generic property parsers                 
+//{{{  Generic property parsers
 
 // ----------------------------------------------------------------------------
 // Generic parsers
 
 // ----------------------------------------------------------------------------
 // Generic parsers
@@ -725,83 +725,78 @@ CdlParse::report_property_parse_warning(CdlInterpreter interp, CdlProperty prop,
 // function that performs a final sanity check before the property gets added
 // to the current entity.
 
 // function that performs a final sanity check before the property gets added
 // to the current entity.
 
-//{{{  parse_minimal_property()         
+//{{{  parse_minimal_property()
 
 // ----------------------------------------------------------------------------
 // A minimal property takes no arguments.
 
 int
 CdlParse::parse_minimal_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 // A minimal property takes no arguments.
 
 int
 CdlParse::parse_minimal_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                 char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Minimal))
+                                const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Minimal))
 {
     CYG_REPORT_FUNCNAME("parse_minimal_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_minimal_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_Minimal new_property = 0;
     try {
     CdlProperty_Minimal new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (data_index < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Unexpected data `") + argv[data_index] + "'.");
-        } else {
-        
-            // The command is valid, turn it into a property.
-            // The property has been parsed successfully. Add it to the current node
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_MinimalBody::make(current_node, name, argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Unexpected data `") + argv[data_index] + "'.");
+       } else {
+
+           // The command is valid, turn it into a property.
+           // The property has been parsed successfully. Add it to the current node
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_MinimalBody::make(current_node, name, argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
     } catch(...) {
     } catch(...) {
-        
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_string_property()          
+//{{{  parse_string_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_string_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_string_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_String))
+                               const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_String))
 {
     CYG_REPORT_FUNCNAME("parse_string_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_string_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_String new_property = 0;
     CdlProperty_String new_property = 0;
-    
+
     try {
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-
-        if (data_index == argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
-        } else if ((data_index + 1) < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Too many arguments, expecting just one."));
-        } else {
-        
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_StringBody::make(current_node, name, argv[data_index], argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index == argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
+       } else if ((data_index + 1) < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Too many arguments, expecting just one."));
+       } else {
+
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_StringBody::make(current_node, name, argv[data_index], argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -809,304 +804,275 @@ CdlParse::parse_string_property(CdlInterpreter interp, int argc, const char* arg
 }
 
 //}}}
 }
 
 //}}}
-//{{{  parse_tclcode_property()         
+//{{{  parse_tclcode_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_tclcode_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_tclcode_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                 char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_TclCode))
+                                const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_TclCode))
 {
     CYG_REPORT_FUNCNAME("parse_tclcode_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_tclcode_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_TclCode new_property = 0;
     try {
     CdlProperty_TclCode new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (data_index == argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing Tcl code.");
-        } else if ((data_index + 1) < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
-                                         "Expecting one argument, a Tcl code fragment.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index]))) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Incomplete Tcl code fragment.");
-        } else {
-        
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_TclCodeBody::make(current_node, name, argv[data_index], argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index == argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing Tcl code.");
+       } else if ((data_index + 1) < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
+                                        "Expecting one argument, a Tcl code fragment.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index]))) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Incomplete Tcl code fragment.");
+       } else {
+
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_TclCodeBody::make(current_node, name, argv[data_index], argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
      } catch(...) {
      } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_stringvector_property()    
+//{{{  parse_stringvector_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_stringvector_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_stringvector_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                      char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_StringVector),
-                                      bool allow_empty)
+                                     const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_StringVector),
+                                     bool allow_empty)
 {
     CYG_REPORT_FUNCNAME("parse_tclcode_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_tclcode_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_StringVector new_property = 0;
     try {
     CdlProperty_StringVector new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (!allow_empty && (data_index == argc)) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing arguments.");
-        } else {
-
-            // Creating the property requires a vector of strings.
-            std::vector<std::string>  strings;
-            for ( ; data_index < argc; data_index++) {
-                strings.push_back(argv[data_index]);
-            }
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_StringVectorBody::make(current_node, name, strings, argc, argv, options);
-            if (0 != final_parser) {
-                (*final_parser)(interp, new_property);
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index      = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (!allow_empty && (data_index == argc)) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing arguments.");
+       } else {
+
+           // Creating the property requires a vector of strings.
+           std::vector<std::string>  strings;
+           for ( ; data_index < argc; data_index++) {
+               strings.push_back(argv[data_index]);
+           }
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(current_node != NULL);
+           new_property = CdlProperty_StringVectorBody::make(current_node, name, strings, argc, argv, options);
+           if (final_parser) {
+               final_parser(interp, new_property);
+           }
+       }
     } catch(...) {
     } catch(...) {
-
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_reference_property()       
+//{{{  parse_reference_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_reference_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_reference_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                   char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference),
-                                   bool allow_empty, CdlUpdateHandler update_handler)
+                                  const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Reference),
+                                  bool allow_empty, CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAME("parse_reference_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_reference_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_Reference new_property = 0;
     try {
     CdlProperty_Reference new_property = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        if (data_index == argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
-        } else if ((data_index + 1) < argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Too many arguments, expecting just one.");
-        } else {
-            std::string refname = argv[data_index];
-            if (!(Cdl::is_valid_cdl_name(refname) || (allow_empty && ("" == refname)))) {
-                CdlParse::report_property_parse_error(interp, argv[0], "`" + refname + "' is not a valid CDL name");
-            } else {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_ReferenceBody::make(current_node, name, refname,
-                                                               update_handler, argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       if (data_index == argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing argument.");
+       } else if ((data_index + 1) < argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Too many arguments, expecting just one.");
+       } else {
+           std::string refname = argv[data_index];
+           if (!(Cdl::is_valid_cdl_name(refname) || (allow_empty && ("" == refname)))) {
+               CdlParse::report_property_parse_error(interp, argv[0], "`" + refname + "' is not a valid CDL name");
+           } else {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_ReferenceBody::make(current_node, name, refname,
+                                                              update_handler, argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       delete new_property;
+       throw;
     }
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_expression_property()      
+//{{{  parse_expression_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_expression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_expression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                    char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Expression),
-                                    CdlUpdateHandler update_handler)
+                                   const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_Expression),
+                                   CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAME("parse_expression_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_expression_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_Expression new_property = 0;
     CdlExpression expr = 0;
     try {
     CdlProperty_Expression new_property = 0;
     CdlExpression expr = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-        
-        std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
-        if ("" == all_args) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing expression data.");
-        } else {
-        
-            // The CdlExpression class has its own parsing routine. This
-            // will raise an exception if there are any problems. It is
-            // desirable to catch the exception and report the error via
-            // the normal reporting mechanisms, which may allow parsing to
-            // continue.
-            try {
-                expr = CdlExpressionBody::parse(all_args);
-            } catch(CdlParseException e) {
-                CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
-            }
-            if (0 != expr) {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_ExpressionBody::make(current_node, name, expr, update_handler, argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+       std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
+       if ("" == all_args) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing expression data.");
+       } else {
+
+           // The CdlExpression class has its own parsing routine. This
+           // will raise an exception if there are any problems. It is
+           // desirable to catch the exception and report the error via
+           // the normal reporting mechanisms, which may allow parsing to
+           // continue.
+           try {
+               expr = CdlExpressionBody::parse(all_args);
+           } catch(CdlParseException e) {
+               CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
+           }
+           if (expr) {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_ExpressionBody::make(current_node, name, expr, update_handler, argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != expr) {
-            delete expr;
-        }
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
-    }
-    
-    if (0 != expr) {
-        delete expr;
+       delete expr;
+       delete new_property;
+       throw;
     }
     }
+
+    delete expr;
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_list_expression_property() 
+//{{{  parse_list_expression_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_listexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_listexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                        char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_ListExpression),
-                                        CdlUpdateHandler update_handler)
+                                       const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_ListExpression),
+                                       CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAME("parse_list_expression_property");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAME("parse_list_expression_property");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_ListExpression new_property = 0;
     CdlListExpression expr = 0;
     try {
     CdlProperty_ListExpression new_property = 0;
     CdlListExpression expr = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-
-        std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
-        if ("" == all_args) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing list expression data.");
-        } else {
-        
-            try {
-                expr = CdlListExpressionBody::parse(all_args);
-            } catch(CdlParseException e) {
-                CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
-            }
-            if (0 != expr) {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_ListExpressionBody::make(current_node, name, expr, update_handler,
-                                                                    argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
+       if ("" == all_args) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing list expression data.");
+       } else {
+           try {
+               expr = CdlListExpressionBody::parse(all_args);
+           } catch(CdlParseException e) {
+               CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
+           }
+           if (expr) {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_ListExpressionBody::make(current_node, name, expr, update_handler,
+                                                                   argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != expr) {
-            delete expr;
-        }
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
-    }
-    if (0 != expr) {
-        delete expr;
+       delete expr;
+       delete new_property;
+       throw;
     }
     }
+    delete expr;
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  parse_goalexpression_property()  
+//{{{  parse_goalexpression_property()
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_goalexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
 
 // ----------------------------------------------------------------------------
 
 int
 CdlParse::parse_goalexpression_property(CdlInterpreter interp, int argc, const char* argv[], std::string name,
-                                        char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_GoalExpression),
-                                        CdlUpdateHandler update_handler)
+                                       const char** options_desc, void (*final_parser)(CdlInterpreter, CdlProperty_GoalExpression),
+                                       CdlUpdateHandler update_handler)
 {
     CYG_REPORT_FUNCNAMETYPE("parse_goal_expression_property", "result %d");
     CYG_PRECONDITION_CLASSC(interp);
 {
     CYG_REPORT_FUNCNAMETYPE("parse_goal_expression_property", "result %d");
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_GoalExpression new_property = 0;
     CdlGoalExpression expr = 0;
     try {
     CdlProperty_GoalExpression new_property = 0;
     CdlGoalExpression expr = 0;
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
-
-        std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
-        if ("" == all_args) {
-            CdlParse::report_property_parse_error(interp, argv[0], "Missing goal expression data.");
-        } else {
-
-            try {
-                expr = CdlGoalExpressionBody::parse(all_args);
-            } catch(CdlParseException e) {
-                CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
-            }
-            if (0 != expr) {
-                CdlNode current_node = interp->get_node();
-                CYG_ASSERTC(0 != current_node);
-                new_property = CdlProperty_GoalExpressionBody::make(current_node, name, expr, update_handler,
-                                                                    argc, argv, options);
-                if (0 != final_parser) {
-                    (*final_parser)(interp, new_property);
-                }
-            }
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index = CdlParse::parse_options(interp, property_string + argv[0], options_desc, argc, argv, 1, options);
+
+       std::string all_args = CdlParse::concatenate_argv(argc, argv, data_index);
+       if ("" == all_args) {
+           CdlParse::report_property_parse_error(interp, argv[0], "Missing goal expression data.");
+       } else {
+           try {
+               expr = CdlGoalExpressionBody::parse(all_args);
+           } catch(CdlParseException e) {
+               CdlParse::report_property_parse_error(interp, argv[0], e.get_message());
+           }
+           if (expr) {
+               CdlNode current_node = interp->get_node();
+               CYG_ASSERTC(current_node != NULL);
+               new_property = CdlProperty_GoalExpressionBody::make(current_node, name, expr, update_handler,
+                                                                   argc, argv, options);
+               if (final_parser) {
+                   final_parser(interp, new_property);
+               }
+           }
+       }
     } catch(...) {
     } catch(...) {
-
-        if (0 != expr) {
-            delete expr;
-        }
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
-    }
-    if (0 != expr) {
-        delete expr;
+       delete expr;
+       delete new_property;
+       throw;
     }
     }
+    delete expr;
 
     return TCL_OK;
 }
 
     return TCL_OK;
 }
index 610fffcb32af948e44790b2472ff8817058571e6..b7961de904aef6248e6d10fa1f3c3b456cabafd7 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000, 2001 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
@@ -61,7 +61,7 @@
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlValue);
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlValue);
@@ -69,9 +69,9 @@ CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlListValue);
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlValuableBody);
 
 //}}}
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlValuableBody);
 
 //}}}
-//{{{  CdlSimpleValue class             
+//{{{  CdlSimpleValue class
 
 
-//{{{  Constructors                     
+//{{{  Constructors
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -99,7 +99,7 @@ CdlSimpleValue::CdlSimpleValue(std::string val)
     double_value        = 0.0;
     valid_flags         = string_valid;
     format              = CdlValueFormat_Default;
     double_value        = 0.0;
     valid_flags         = string_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -113,7 +113,7 @@ CdlSimpleValue::CdlSimpleValue(cdl_int val)
     double_value        = 0.0;
     valid_flags         = int_valid;
     format              = CdlValueFormat_Default;
     double_value        = 0.0;
     valid_flags         = int_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -141,7 +141,7 @@ CdlSimpleValue::CdlSimpleValue(bool val)
     double_value        = 0.0;
     valid_flags         = string_valid | int_valid;
     format              = CdlValueFormat_Default;
     double_value        = 0.0;
     valid_flags         = string_valid | int_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -155,12 +155,12 @@ CdlSimpleValue::CdlSimpleValue(const CdlSimpleValue& original)
     double_value        = original.double_value;
     valid_flags         = original.valid_flags;
     format              = original.format;
     double_value        = original.double_value;
     valid_flags         = original.valid_flags;
     format              = original.format;
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -179,7 +179,7 @@ CdlSimpleValue::~CdlSimpleValue()
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Assignment operators             
+//{{{  Assignment operators
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -190,13 +190,13 @@ CdlSimpleValue::operator=(const CdlSimpleValue& original)
     CYG_REPORT_FUNCARG2XV(this, &original);
 
     if (this != &original) {
     CYG_REPORT_FUNCARG2XV(this, &original);
 
     if (this != &original) {
-        value           = original.value;
-        int_value       = original.int_value;
-        double_value    = original.double_value;
-        valid_flags     = original.valid_flags;
-        format          = original.format;
+       value           = original.value;
+       int_value       = original.int_value;
+       double_value    = original.double_value;
+       valid_flags     = original.valid_flags;
+       format          = original.format;
     }
     }
-    
+
     CYG_REPORT_RETURN();
     return *this;
 }
     CYG_REPORT_RETURN();
     return *this;
 }
@@ -228,7 +228,7 @@ CdlSimpleValue::operator=(cdl_int val)
     double_value        = 0.0;
     valid_flags         = int_valid;
     format              = CdlValueFormat_Default;
     double_value        = 0.0;
     valid_flags         = int_valid;
     format              = CdlValueFormat_Default;
-    
+
     CYG_REPORT_RETURN();
     return *this;
 }
     CYG_REPORT_RETURN();
     return *this;
 }
@@ -271,7 +271,7 @@ CdlSimpleValue::operator=(bool val)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlValuable -> CdlSimpleValue    
+//{{{  CdlValuable -> CdlSimpleValue
 
 // ----------------------------------------------------------------------------
 // This routine bridges the gap between the full data held in the CdlValuable
 
 // ----------------------------------------------------------------------------
 // This routine bridges the gap between the full data held in the CdlValuable
@@ -288,70 +288,70 @@ CdlSimpleValue::eval_valuable(CdlEvalContext& context, CdlValuable valuable, Cdl
     // always zero for the purposes of expression evaluation.
     // FIXME: this check should be on a per-transaction basis.
     if (((0 != context.transaction) && !context.transaction->is_active(valuable)) ||
     // always zero for the purposes of expression evaluation.
     // FIXME: this check should be on a per-transaction basis.
     if (((0 != context.transaction) && !context.transaction->is_active(valuable)) ||
-        ((0 == context.transaction) && !valuable->is_active())) {
-        
-        result.value           = "0";
-        result.int_value       = 0;
-        result.double_value    = 0.0;
-        result.valid_flags     = string_valid | int_valid;
-        result.format          = CdlValueFormat_Default;
-        CYG_REPORT_RETURN();
-        return;
+       ((0 == context.transaction) && !valuable->is_active())) {
+
+       result.value           = "0";
+       result.int_value       = 0;
+       result.double_value    = 0.0;
+       result.valid_flags     = string_valid | int_valid;
+       result.format          = CdlValueFormat_Default;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Get hold of the underlying CdlValue object
     const CdlValue& val = (0 != context.transaction) ?
     }
 
     // Get hold of the underlying CdlValue object
     const CdlValue& val = (0 != context.transaction) ?
-        context.transaction->get_whole_value(valuable) : valuable->get_whole_value();
-        
+       context.transaction->get_whole_value(valuable) : valuable->get_whole_value();
+
     // Otherwise the value depends on the flavor.
     switch(val.get_flavor()) {
       case CdlValueFlavor_None :
       {
     // Otherwise the value depends on the flavor.
     switch(val.get_flavor()) {
       case CdlValueFlavor_None :
       {
-        // This could be treated as an error, but since valuables with flavor
-        // none are permanently enabled a constant "1" is a better result.
-        result.value           = "1";
-        result.int_value       = 1;
-        result.double_value    = 0.0;
-        result.valid_flags     = string_valid | int_valid;
-        result.format          = CdlValueFormat_Default;
-        break;
+       // This could be treated as an error, but since valuables with flavor
+       // none are permanently enabled a constant "1" is a better result.
+       result.value           = "1";
+       result.int_value       = 1;
+       result.double_value    = 0.0;
+       result.valid_flags     = string_valid | int_valid;
+       result.format          = CdlValueFormat_Default;
+       break;
       }
       case CdlValueFlavor_Bool :
       {
       }
       case CdlValueFlavor_Bool :
       {
-        bool enabled           = val.is_enabled();
-        result.value           = (enabled) ? "1" : "0";
-        result.int_value       = (enabled) ?  1  :  0;
-        result.double_value    = 0.0;
-        result.valid_flags     = string_valid | int_valid;
-        result.format          = CdlValueFormat_Default;
-        break;
+       bool enabled           = val.is_enabled();
+       result.value           = (enabled) ? "1" : "0";
+       result.int_value       = (enabled) ?  1  :  0;
+       result.double_value    = 0.0;
+       result.valid_flags     = string_valid | int_valid;
+       result.format          = CdlValueFormat_Default;
+       break;
       }
       case CdlValueFlavor_BoolData :
       {
       }
       case CdlValueFlavor_BoolData :
       {
-        if (!val.is_enabled()) {
-                    
-            result.value        = "0";
-            result.int_value    = 0;
-            result.double_value = 0.0;
-            result.valid_flags  = string_valid | int_valid;
-            result.format       = CdlValueFormat_Default;
-                    
-        } else {
-
-            // Just use a copy constructor, let the compiler optimise things.
-            result = val.get_simple_value();
-        }
-        break;
+       if (!val.is_enabled()) {
+
+           result.value        = "0";
+           result.int_value    = 0;
+           result.double_value = 0.0;
+           result.valid_flags  = string_valid | int_valid;
+           result.format       = CdlValueFormat_Default;
+
+       } else {
+
+           // Just use a copy constructor, let the compiler optimise things.
+           result = val.get_simple_value();
+       }
+       break;
       }
       case CdlValueFlavor_Data :
       {
       }
       case CdlValueFlavor_Data :
       {
-        // Just like BoolData, but with no need to check the enabled flag.
-        result = val.get_simple_value();
-        break;
+       // Just like BoolData, but with no need to check the enabled flag.
+       result = val.get_simple_value();
+       break;
       }
       default:
       {
       }
       default:
       {
-        CYG_FAIL("Valuable object with an unknown flavor encountered.");
+       CYG_FAIL("Valuable object with an unknown flavor encountered.");
       }
     }
 
       }
     }
 
@@ -359,7 +359,7 @@ CdlSimpleValue::eval_valuable(CdlEvalContext& context, CdlValuable valuable, Cdl
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Getting the value                
+//{{{  Getting the value
 
 // ----------------------------------------------------------------------------
 // Some of these calls involve conversion operators.
 
 // ----------------------------------------------------------------------------
 // Some of these calls involve conversion operators.
@@ -371,14 +371,14 @@ CdlSimpleValue::get_value() const
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & string_valid)) {
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & string_valid)) {
-        if (valid_flags & int_valid) {
-            Cdl::integer_to_string(int_value, value, format);
-        } else if (valid_flags & double_valid) {
-            Cdl::double_to_string(double_value, value, format);
-        } else {
-            CYG_FAIL("Attempt to use uninitialized SimpleValue");
-        }
-        valid_flags |= string_valid;
+       if (valid_flags & int_valid) {
+           Cdl::integer_to_string(int_value, value, format);
+       } else if (valid_flags & double_valid) {
+           Cdl::double_to_string(double_value, value, format);
+       } else {
+           CYG_FAIL("Attempt to use uninitialized SimpleValue");
+       }
+       valid_flags |= string_valid;
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -392,23 +392,23 @@ CdlSimpleValue::has_integer_value() const
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & (int_valid | int_invalid))) {
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & (int_valid | int_invalid))) {
-        if (valid_flags & double_valid) {
-            if (Cdl::double_to_integer(double_value, int_value)) {
-                valid_flags |= int_valid;
-            } else {
-                valid_flags |= int_invalid;
-            }
-        } else if (valid_flags & string_valid) {
-            if (Cdl::string_to_integer(value, int_value)) {
-                valid_flags |= int_valid;
-            } else {
-                valid_flags |= int_invalid;
-            }
-        } else {
-            CYG_FAIL("Attempt to use uninitialized SimpleValue");
-        }
+       if (valid_flags & double_valid) {
+           if (Cdl::double_to_integer(double_value, int_value)) {
+               valid_flags |= int_valid;
+           } else {
+               valid_flags |= int_invalid;
+           }
+       } else if (valid_flags & string_valid) {
+           if (Cdl::string_to_integer(value, int_value)) {
+               valid_flags |= int_valid;
+           } else {
+               valid_flags |= int_invalid;
+           }
+       } else {
+           CYG_FAIL("Attempt to use uninitialized SimpleValue");
+       }
     }
     }
-    
+
     bool result = (valid_flags & int_valid);
     CYG_REPORT_RETVAL(result);
     return result;
     bool result = (valid_flags & int_valid);
     CYG_REPORT_RETVAL(result);
     return result;
@@ -422,7 +422,7 @@ CdlSimpleValue::get_integer_value() const
 
     cdl_int result = 0;
     if ((valid_flags & int_valid) || has_integer_value()) {
 
     cdl_int result = 0;
     if ((valid_flags & int_valid) || has_integer_value()) {
-        result = int_value;
+       result = int_value;
     }
 
     CYG_REPORT_RETVAL((int) result);
     }
 
     CYG_REPORT_RETVAL((int) result);
@@ -436,18 +436,18 @@ CdlSimpleValue::has_double_value() const
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & (double_valid | double_invalid))) {
     CYG_REPORT_FUNCARG1XV(this);
 
     if (!(valid_flags & (double_valid | double_invalid))) {
-        if (valid_flags & int_valid) {
-            Cdl::integer_to_double(int_value, double_value);
-            valid_flags |= double_valid;
-        } else if (valid_flags & string_valid) {
-            if (Cdl::string_to_double(value, double_value)) {
-                valid_flags |= double_valid;
-            } else {
-                valid_flags |= double_invalid;
-            }
-        } else {
-            CYG_FAIL("Attempt to use uninitialized SimpleValue");
-        }
+       if (valid_flags & int_valid) {
+           Cdl::integer_to_double(int_value, double_value);
+           valid_flags |= double_valid;
+       } else if (valid_flags & string_valid) {
+           if (Cdl::string_to_double(value, double_value)) {
+               valid_flags |= double_valid;
+           } else {
+               valid_flags |= double_invalid;
+           }
+       } else {
+           CYG_FAIL("Attempt to use uninitialized SimpleValue");
+       }
     }
     bool result = (valid_flags & double_valid);
     CYG_REPORT_RETVAL(result);
     }
     bool result = (valid_flags & double_valid);
     CYG_REPORT_RETVAL(result);
@@ -462,7 +462,7 @@ CdlSimpleValue::get_double_value() const
 
     double result = 0.0;
     if ((valid_flags & double_valid) || has_double_value()) {
 
     double result = 0.0;
     if ((valid_flags & double_valid) || has_double_value()) {
-        result = double_value;
+       result = double_value;
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -477,26 +477,26 @@ CdlSimpleValue::get_bool_value() const
 
     bool result = false;
     if (valid_flags & int_valid) {
 
     bool result = false;
     if (valid_flags & int_valid) {
-        if (0 != int_value) {
-            result = true;
-        }
+       if (0 != int_value) {
+           result = true;
+       }
     } else if (valid_flags & double_valid) {
     } else if (valid_flags & double_valid) {
-        // Leave it to the compiler to decide what is valid
-        result = double_value;
+       // Leave it to the compiler to decide what is valid
+       result = double_value;
     } else if (valid_flags & string_valid) {
     } else if (valid_flags & string_valid) {
-        // string_to_bool copes with "1", "true", and a few other cases.
-        // If the current value does not match any of these then
-        // true corresponds to a non-empty string.
-        if (!Cdl::string_to_bool(value, result)) {
-            if ("" == value) {
-                result = false;
-            } else {
-                result = true;
-            }
-        }
+       // string_to_bool copes with "1", "true", and a few other cases.
+       // If the current value does not match any of these then
+       // true corresponds to a non-empty string.
+       if (!Cdl::string_to_bool(value, result)) {
+           if ("" == value) {
+               result = false;
+           } else {
+               result = true;
+           }
+       }
     } else {
     } else {
-        // No value defined, default to false.
-        result = false;
+       // No value defined, default to false.
+       result = false;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -504,7 +504,7 @@ CdlSimpleValue::get_bool_value() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Updating the value               
+//{{{  Updating the value
 
 // ----------------------------------------------------------------------------
 // Normally the assignment operators will be used for this instead.
 
 // ----------------------------------------------------------------------------
 // Normally the assignment operators will be used for this instead.
@@ -555,7 +555,7 @@ CdlSimpleValue::set_double_value(double val, CdlValueFormat new_format)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Value format support             
+//{{{  Value format support
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -577,7 +577,7 @@ CdlSimpleValue::set_value_format(CdlValueFormat new_format)
     CYG_REPORT_FUNCARG2XV(this, new_format);
 
     format      = new_format;
     CYG_REPORT_FUNCARG2XV(this, new_format);
 
     format      = new_format;
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -612,7 +612,7 @@ CdlSimpleValue::set_value_format(CdlSimpleValue& val1, CdlSimpleValue& val2)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Comparison operators             
+//{{{  Comparison operators
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -623,25 +623,25 @@ CdlSimpleValue::operator==(const CdlSimpleValue& other) const
     CYG_REPORT_FUNCARG2XV(this, &other);
 
     bool result = false;
     CYG_REPORT_FUNCARG2XV(this, &other);
 
     bool result = false;
-    
+
     if (has_integer_value()) {
     if (has_integer_value()) {
-        if (other.has_integer_value()) {
-            cdl_int val1 = get_integer_value();
-            cdl_int val2 = other.get_integer_value();
-            result = (val1 == val2);
-        }
+       if (other.has_integer_value()) {
+           cdl_int val1 = get_integer_value();
+           cdl_int val2 = other.get_integer_value();
+           result = (val1 == val2);
+       }
     } else if (has_double_value()) {
     } else if (has_double_value()) {
-        if (other.has_double_value()) {
-            double val1 = get_double_value();
-            double val2 = other.get_double_value();
-            result = (val1 == val2);
-        }
+       if (other.has_double_value()) {
+           double val1 = get_double_value();
+           double val2 = other.get_double_value();
+           result = (val1 == val2);
+       }
     } else {
     } else {
-        std::string val1 = get_value();
-        std::string val2 = other.get_value();
-        result = (val1 == val2);
+       std::string val1 = get_value();
+       std::string val2 = other.get_value();
+       result = (val1 == val2);
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -654,21 +654,21 @@ CdlSimpleValue::operator!=(const CdlSimpleValue& other) const
 
     bool result = true;
     if (has_integer_value()) {
 
     bool result = true;
     if (has_integer_value()) {
-        if (other.has_integer_value()) {
-            cdl_int val1 = get_integer_value();
-            cdl_int val2 = other.get_integer_value();
-            result = (val1 != val2);
-        }
+       if (other.has_integer_value()) {
+           cdl_int val1 = get_integer_value();
+           cdl_int val2 = other.get_integer_value();
+           result = (val1 != val2);
+       }
     } else if (has_double_value()) {
     } else if (has_double_value()) {
-        if (other.has_double_value()) {
-            double val1 = get_double_value();
-            double val2 = other.get_double_value();
-            result = (val1 != val2);
-        }
+       if (other.has_double_value()) {
+           double val1 = get_double_value();
+           double val2 = other.get_double_value();
+           result = (val1 != val2);
+       }
     } else {
     } else {
-        std::string val1 = get_value();
-        std::string val2 = other.get_value();
-        result = (val1 != val2);
+       std::string val1 = get_value();
+       std::string val2 = other.get_value();
+       result = (val1 != val2);
     }
 
 
     }
 
 
@@ -679,7 +679,7 @@ CdlSimpleValue::operator!=(const CdlSimpleValue& other) const
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlValue class                   
+//{{{  CdlValue class
 
 // ----------------------------------------------------------------------------
 // This should really be a class static constant, but VC++ does not implement
 
 // ----------------------------------------------------------------------------
 // This should really be a class static constant, but VC++ does not implement
@@ -688,7 +688,7 @@ CdlSimpleValue::operator!=(const CdlSimpleValue& other) const
 
 static const int CdlValue_number_of_sources = 4;
 
 
 static const int CdlValue_number_of_sources = 4;
 
-//{{{  Constructors                             
+//{{{  Constructors
 
 // ----------------------------------------------------------------------------
 // The default flavor depends on the type of entity being created. For
 
 // ----------------------------------------------------------------------------
 // The default flavor depends on the type of entity being created. For
@@ -711,13 +711,13 @@ CdlValue::CdlValue(CdlValueFlavor flavor_arg)
     enabled[CdlValueSource_User]                = false;
 
     // The SimpleValues will initialize themselves.
     enabled[CdlValueSource_User]                = false;
 
     // The SimpleValues will initialize themselves.
-    
+
     cdlvalue_cookie         = CdlValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
 
     // This cannot happen until after the object is valid.
     set_flavor(flavor_arg);
     cdlvalue_cookie         = CdlValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
 
     // This cannot happen until after the object is valid.
     set_flavor(flavor_arg);
-        
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -736,14 +736,14 @@ CdlValue::CdlValue(const CdlValue& original)
     flavor              = original.flavor;
     current_source      = original.current_source;
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
     flavor              = original.flavor;
     current_source      = original.current_source;
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
-        source_valid[i] = original.source_valid[i];
-        enabled[i]      = original.enabled[i];
-        values[i]       = original.values[i];
+       source_valid[i] = original.source_valid[i];
+       enabled[i]      = original.enabled[i];
+       values[i]       = original.values[i];
     }
 
     cdlvalue_cookie = CdlValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     }
 
     cdlvalue_cookie = CdlValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -759,13 +759,13 @@ CdlValue& CdlValue::operator=(const CdlValue& original)
     CYG_INVARIANT_CLASSOC(CdlValue, original);
 
     if (this != &original) {
     CYG_INVARIANT_CLASSOC(CdlValue, original);
 
     if (this != &original) {
-        flavor          = original.flavor;
-        current_source  = original.current_source;
-        for (int i = 0; i < CdlValue_number_of_sources; i++) {
-            source_valid[i]     = original.source_valid[i];
-            enabled[i]          = original.enabled[i];
-            values[i]           = original.values[i];
-        }
+       flavor          = original.flavor;
+       current_source  = original.current_source;
+       for (int i = 0; i < CdlValue_number_of_sources; i++) {
+           source_valid[i]     = original.source_valid[i];
+           enabled[i]          = original.enabled[i];
+           values[i]           = original.values[i];
+       }
     }
 
     cdlvalue_cookie = CdlValue_Magic;
     }
 
     cdlvalue_cookie = CdlValue_Magic;
@@ -775,7 +775,7 @@ CdlValue& CdlValue::operator=(const CdlValue& original)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Destructor                               
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -789,9 +789,9 @@ CdlValue::~CdlValue()
     flavor              = CdlValueFlavor_Invalid;
     current_source      = CdlValueSource_Invalid;
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
     flavor              = CdlValueFlavor_Invalid;
     current_source      = CdlValueSource_Invalid;
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
-        source_valid[i]         = false;
-        enabled[i]              = false;
-        // The CdlSimpleValue array will take care of itself.
+       source_valid[i]         = false;
+       enabled[i]              = false;
+       // The CdlSimpleValue array will take care of itself.
     }
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     }
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
@@ -799,41 +799,41 @@ CdlValue::~CdlValue()
 }
 
 //}}}
 }
 
 //}}}
-//{{{  check_this()                             
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 bool
 CdlValue::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlValue_Magic != cdlvalue_cookie) {
 
 // ----------------------------------------------------------------------------
 bool
 CdlValue::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlValue_Magic != cdlvalue_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     if (!source_valid[CdlValueSource_Default]) {
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     if (!source_valid[CdlValueSource_Default]) {
-        return false;
+       return false;
     }
 
     if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Data == flavor)) {
     }
 
     if ((CdlValueFlavor_None == flavor) || (CdlValueFlavor_Data == flavor)) {
-        for (int i = 0; i < CdlValue_number_of_sources; i++) {
-            if (!enabled[i]) {
-                return false;
-            }
-        }
+       for (int i = 0; i < CdlValue_number_of_sources; i++) {
+           if (!enabled[i]) {
+               return false;
+           }
+       }
     }
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
     }
     for (int i = 0; i < CdlValue_number_of_sources; i++) {
-        if (source_valid[i]) {
-            if (!values[i].check_this(zeal)) {
-                return false;
-            }
-        }
+       if (source_valid[i]) {
+           if (!values[i].check_this(zeal)) {
+               return false;
+           }
+       }
     }
     }
-    
+
     return true;
 }
 
 //}}}
     return true;
 }
 
 //}}}
-//{{{  Flavor manipulation                      
+//{{{  Flavor manipulation
 
 // ----------------------------------------------------------------------------
 // Get hold of the current flavor.
 
 // ----------------------------------------------------------------------------
 // Get hold of the current flavor.
@@ -863,94 +863,94 @@ CdlValue::set_flavor(CdlValueFlavor flavor_arg)
 {
     CYG_REPORT_FUNCNAME("CdlValue:: set_flavor");
     CYG_REPORT_FUNCARG2XV(this, flavor_arg);
 {
     CYG_REPORT_FUNCNAME("CdlValue:: set_flavor");
     CYG_REPORT_FUNCARG2XV(this, flavor_arg);
-    
+
     // No precondition here, set_flavor() is called from inside the constructor
     CYG_PRECONDITIONC((CdlValueFlavor_None     == flavor_arg) || \
     // No precondition here, set_flavor() is called from inside the constructor
     CYG_PRECONDITIONC((CdlValueFlavor_None     == flavor_arg) || \
-                      (CdlValueFlavor_Bool     == flavor_arg) || \
-                      (CdlValueFlavor_BoolData == flavor_arg) || \
-                      (CdlValueFlavor_Data     == flavor_arg));
+                     (CdlValueFlavor_Bool     == flavor_arg) || \
+                     (CdlValueFlavor_BoolData == flavor_arg) || \
+                     (CdlValueFlavor_Data     == flavor_arg));
 
     flavor = flavor_arg;
     switch(flavor) {
       case CdlValueFlavor_None :
 
     flavor = flavor_arg;
     switch(flavor) {
       case CdlValueFlavor_None :
-        {
-            // All value sources are enabled, but "default" remains
-            // the only valid one. All data parts are set to "1",
-            // although that should not really matter.
-            enabled[CdlValueSource_Default]     = true;
-            enabled[CdlValueSource_Inferred]    = true;
-            enabled[CdlValueSource_Wizard]      = true;
-            enabled[CdlValueSource_User]        = true;
-            
-            CdlSimpleValue simple_val((cdl_int) 1);
-            values[CdlValueSource_Default]      = simple_val;
-            values[CdlValueSource_Inferred]     = simple_val;
-            values[CdlValueSource_Wizard]       = simple_val;
-            values[CdlValueSource_User]         = simple_val;
-            break;
-        }
-          
+       {
+           // All value sources are enabled, but "default" remains
+           // the only valid one. All data parts are set to "1",
+           // although that should not really matter.
+           enabled[CdlValueSource_Default]     = true;
+           enabled[CdlValueSource_Inferred]    = true;
+           enabled[CdlValueSource_Wizard]      = true;
+           enabled[CdlValueSource_User]        = true;
+
+           CdlSimpleValue simple_val((cdl_int) 1);
+           values[CdlValueSource_Default]      = simple_val;
+           values[CdlValueSource_Inferred]     = simple_val;
+           values[CdlValueSource_Wizard]       = simple_val;
+           values[CdlValueSource_User]         = simple_val;
+           break;
+       }
+
       case CdlValueFlavor_Bool :
       case CdlValueFlavor_Bool :
-        {
-            // All value sources start out as disabled, but with a
-            // constant data part of 1. Users can only control the
-            // boolean part. This is consistent with header file
-            // generation: no #define is generated for disabled
-            // options, but if the option is enabled then the data
-            // part will be used for the value.
-            enabled[CdlValueSource_Default]     = false;
-            enabled[CdlValueSource_Inferred]    = false;
-            enabled[CdlValueSource_Wizard]      = false;
-            enabled[CdlValueSource_User]        = false;
-
-            // BLV - keep the data part at 0 for now. There is too
-            // much confusion in the code between value as a string
-            // representation, and value as the data part of the
-            // bool/data pair. This needs to be fixed, but it requires
-            // significant API changes.
-#if 0            
-            CdlSimpleValue simple_val(cdl_int(1));
+       {
+           // All value sources start out as disabled, but with a
+           // constant data part of 1. Users can only control the
+           // boolean part. This is consistent with header file
+           // generation: no #define is generated for disabled
+           // options, but if the option is enabled then the data
+           // part will be used for the value.
+           enabled[CdlValueSource_Default]     = false;
+           enabled[CdlValueSource_Inferred]    = false;
+           enabled[CdlValueSource_Wizard]      = false;
+           enabled[CdlValueSource_User]        = false;
+
+           // BLV - keep the data part at 0 for now. There is too
+           // much confusion in the code between value as a string
+           // representation, and value as the data part of the
+           // bool/data pair. This needs to be fixed, but it requires
+           // significant API changes.
+#if 0
+           CdlSimpleValue simple_val(cdl_int(1));
 #else
 #else
-            CdlSimpleValue simple_val(cdl_int(0));
-#endif            
-            values[CdlValueSource_Default]      = simple_val;
-            values[CdlValueSource_Inferred]     = simple_val;
-            values[CdlValueSource_Wizard]       = simple_val;
-            values[CdlValueSource_User]         = simple_val;
-            break;
-        }
-          
+           CdlSimpleValue simple_val(cdl_int(0));
+#endif
+           values[CdlValueSource_Default]      = simple_val;
+           values[CdlValueSource_Inferred]     = simple_val;
+           values[CdlValueSource_Wizard]       = simple_val;
+           values[CdlValueSource_User]         = simple_val;
+           break;
+       }
+
       case CdlValueFlavor_BoolData :
       case CdlValueFlavor_BoolData :
-        {
-            // All value sources start out as disabled, just like
-            // booleans. Nothing is known about the data part.
-            enabled[CdlValueSource_Default]       = false;
-            enabled[CdlValueSource_Inferred]      = false;
-            enabled[CdlValueSource_Wizard]        = false;
-            enabled[CdlValueSource_User]          = false;
-            break;
-        }
-          
+       {
+           // All value sources start out as disabled, just like
+           // booleans. Nothing is known about the data part.
+           enabled[CdlValueSource_Default]       = false;
+           enabled[CdlValueSource_Inferred]      = false;
+           enabled[CdlValueSource_Wizard]        = false;
+           enabled[CdlValueSource_User]          = false;
+           break;
+       }
+
       case CdlValueFlavor_Data :
       case CdlValueFlavor_Data :
-        {
-            // All value sources start out as enabled, and cannot be
-            // changed. Nothing is known about the data part.
-            enabled[CdlValueSource_Default]       = true;
-            enabled[CdlValueSource_Inferred]      = true;
-            enabled[CdlValueSource_Wizard]        = true;
-            enabled[CdlValueSource_User]          = true;
-            break;
-        }
+       {
+           // All value sources start out as enabled, and cannot be
+           // changed. Nothing is known about the data part.
+           enabled[CdlValueSource_Default]       = true;
+           enabled[CdlValueSource_Inferred]      = true;
+           enabled[CdlValueSource_Wizard]        = true;
+           enabled[CdlValueSource_User]          = true;
+           break;
+       }
 
       default :
 
       default :
-        break;
+       break;
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Source manipulation                      
+//{{{  Source manipulation
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1007,25 +1007,25 @@ CdlValue::invalidate_source(CdlValueSource source)
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
 
     if (CdlValueSource_Default != source) {
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
 
     if (CdlValueSource_Default != source) {
-        source_valid[source]        = false;
-        if (current_source == source) {
-            if (source_valid[CdlValueSource_User]) {
-                current_source = CdlValueSource_User;
-            } else if (source_valid[CdlValueSource_Wizard]) {
-                current_source = CdlValueSource_Wizard;
-            } else if (source_valid[CdlValueSource_Inferred]) {
-                current_source = CdlValueSource_Inferred;
-            } else {
-                current_source = CdlValueSource_Default;
-            }
-        }
+       source_valid[source]        = false;
+       if (current_source == source) {
+           if (source_valid[CdlValueSource_User]) {
+               current_source = CdlValueSource_User;
+           } else if (source_valid[CdlValueSource_Wizard]) {
+               current_source = CdlValueSource_Wizard;
+           } else if (source_valid[CdlValueSource_Inferred]) {
+               current_source = CdlValueSource_Inferred;
+           } else {
+               current_source = CdlValueSource_Default;
+           }
+       }
     }
     }
-    
+
     CYG_POSTCONDITIONC(source_valid[current_source]);
 }
 
 //}}}
     CYG_POSTCONDITIONC(source_valid[current_source]);
 }
 
 //}}}
-//{{{  Retrieving the data                      
+//{{{  Retrieving the data
 
 // ----------------------------------------------------------------------------
 // Check the enabled flag for the appropriate source. The specified source
 
 // ----------------------------------------------------------------------------
 // Check the enabled flag for the appropriate source. The specified source
@@ -1044,7 +1044,7 @@ CdlValue::is_enabled(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1065,7 +1065,7 @@ CdlValue::get_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1083,7 +1083,7 @@ CdlValue::has_integer_value(CdlValueSource source) const
     CYG_INVARIANT_THISC(CdlValue);
 
     if (CdlValueSource_Current == source) {
     CYG_INVARIANT_THISC(CdlValue);
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1099,9 +1099,9 @@ CdlValue::has_double_value(CdlValueSource source) const
     CYG_REPORT_FUNCNAMETYPE("CdlValue::has_value", "result %d");
     CYG_REPORT_FUNCARG2XV(this, source);
     CYG_INVARIANT_THISC(CdlValue);
     CYG_REPORT_FUNCNAMETYPE("CdlValue::has_value", "result %d");
     CYG_REPORT_FUNCARG2XV(this, source);
     CYG_INVARIANT_THISC(CdlValue);
-    
+
     if (CdlValueSource_Current == source) {
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1119,7 +1119,7 @@ CdlValue::get_integer_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1137,7 +1137,7 @@ CdlValue::get_double_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1155,7 +1155,7 @@ CdlValue::get_simple_value(CdlValueSource source) const
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
     CYG_PRECONDITION_THISC();
 
     if (CdlValueSource_Current == source) {
-        source = current_source;
+       source = current_source;
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
     }
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_PRECONDITIONC(source_valid[source]);
@@ -1165,7 +1165,7 @@ CdlValue::get_simple_value(CdlValueSource source) const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  Value modification                       
+//{{{  Value modification
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -1181,9 +1181,9 @@ CdlValue::set_enabled(bool val, CdlValueSource source)
     enabled[source] = val;
     source_valid[source] = true;
     if (source > current_source) {
     enabled[source] = val;
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1195,13 +1195,13 @@ CdlValue::set_value(CdlSimpleValue& val, CdlValueSource source)
     CYG_INVARIANT_THISC(CdlValue);
     CYG_PRECONDITIONC((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor));
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
     CYG_INVARIANT_THISC(CdlValue);
     CYG_PRECONDITIONC((CdlValueFlavor_BoolData == flavor) || (CdlValueFlavor_Data == flavor));
     CYG_PRECONDITIONC((0 <= source) && (source < CdlValue_number_of_sources));
-    
+
     values[source] = val;
     source_valid[source] = true;
     if (source > current_source) {
     values[source] = val;
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1218,9 +1218,9 @@ CdlValue::set_enabled_and_value(bool enabled_arg, CdlSimpleValue& val, CdlValueS
     values[source]       = val;
     source_valid[source] = true;
     if (source > current_source) {
     values[source]       = val;
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1239,30 +1239,30 @@ CdlValue::set(CdlSimpleValue& val, CdlValueSource source)
 
     switch(flavor) {
       case CdlValueFlavor_Bool:
 
     switch(flavor) {
       case CdlValueFlavor_Bool:
-        enabled[source] = val.get_bool_value();
-        break;
+       enabled[source] = val.get_bool_value();
+       break;
 
       case CdlValueFlavor_BoolData:
 
       case CdlValueFlavor_BoolData:
-        if (!val.get_bool_value()) {
-            enabled[source] = false;
-            values[source]  = (cdl_int) 0;
-        } else {
-            enabled[source] = true;
-            values[source]  = val;
-        }
-        break;
-                    
+       if (!val.get_bool_value()) {
+           enabled[source] = false;
+           values[source]  = (cdl_int) 0;
+       } else {
+           enabled[source] = true;
+           values[source]  = val;
+       }
+       break;
+
       case CdlValueFlavor_Data:
       case CdlValueFlavor_Data:
-        values[source] = val;
-        break;
-                    
+       values[source] = val;
+       break;
+
       default:
       default:
-        CYG_FAIL("Unknown value flavor detected.");
+       CYG_FAIL("Unknown value flavor detected.");
     }
     }
-    
+
     source_valid[source] = true;
     if (source > current_source) {
     source_valid[source] = true;
     if (source > current_source) {
-        current_source = source;
+       current_source = source;
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -1271,7 +1271,7 @@ CdlValue::set(CdlSimpleValue& val, CdlValueSource source)
 //}}}
 
 //}}}
 //}}}
 
 //}}}
-//{{{  CdlListValue class               
+//{{{  CdlListValue class
 
 // ----------------------------------------------------------------------------
 // List values. Most of this is straightforward.
 
 // ----------------------------------------------------------------------------
 // List values. Most of this is straightforward.
@@ -1285,7 +1285,7 @@ CdlListValue::CdlListValue()
     // filled in already.
     cdllistvalue_cookie = CdlListValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     // filled in already.
     cdllistvalue_cookie = CdlListValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1295,14 +1295,14 @@ CdlListValue::CdlListValue(const CdlListValue& original)
     CYG_REPORT_FUNCNAME("CdlListValue:: copy constructor");
     CYG_REPORT_FUNCARG2XV(this, &original);
     CYG_INVARIANT_CLASSOC(CdlListValue, original);
     CYG_REPORT_FUNCNAME("CdlListValue:: copy constructor");
     CYG_REPORT_FUNCARG2XV(this, &original);
     CYG_INVARIANT_CLASSOC(CdlListValue, original);
-    
+
     // This may get expensive, but should not happen very often.
     table               = original.table;
     integer_ranges      = original.integer_ranges;
     double_ranges       = original.double_ranges;
     cdllistvalue_cookie = CdlListValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
     // This may get expensive, but should not happen very often.
     table               = original.table;
     integer_ranges      = original.integer_ranges;
     double_ranges       = original.double_ranges;
     cdllistvalue_cookie = CdlListValue_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -1314,14 +1314,14 @@ CdlListValue & CdlListValue::operator=(const CdlListValue& original)
     CYG_INVARIANT_CLASSOC(CdlListValue, original);
 
     if (this != &original) {
     CYG_INVARIANT_CLASSOC(CdlListValue, original);
 
     if (this != &original) {
-        table.clear();
-        integer_ranges.clear();
-        double_ranges.clear();
-        table          = original.table;
-        integer_ranges = original.integer_ranges;
-        double_ranges  = original.double_ranges;
+       table.clear();
+       integer_ranges.clear();
+       double_ranges.clear();
+       table          = original.table;
+       integer_ranges = original.integer_ranges;
+       double_ranges  = original.double_ranges;
     }
     }
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
     return *this;
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
     return *this;
@@ -1338,7 +1338,7 @@ CdlListValue::~CdlListValue()
     integer_ranges.clear();
     double_ranges.clear();
     CYGDBG_MEMLEAK_DESTRUCTOR();
     integer_ranges.clear();
     double_ranges.clear();
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -1418,15 +1418,15 @@ CdlListValue::is_member(CdlSimpleValue& val) const
 
     bool result = false;
     if (val.has_integer_value()) {
 
     bool result = false;
     if (val.has_integer_value()) {
-        result = is_member(val.get_integer_value(), false);
+       result = is_member(val.get_integer_value(), false);
     }
     if (!result && val.has_double_value()) {
     }
     if (!result && val.has_double_value()) {
-        result = is_member(val.get_double_value(), false);
+       result = is_member(val.get_double_value(), false);
     }
     if (!result) {
     }
     if (!result) {
-        result = is_member(val.get_value());
+       result = is_member(val.get_value());
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1440,23 +1440,23 @@ CdlListValue::is_member(std::string val, bool allow_conversions) const
 
     bool        result = false;
     if (allow_conversions) {
 
     bool        result = false;
     if (allow_conversions) {
-        cdl_int     integer_value;
-        double      double_value;
-
-        if (Cdl::string_to_integer(val, integer_value)) {
-            result = is_member(integer_value, false);
-        }
-        if (!result && Cdl::string_to_double(val, double_value)) {
-            result = is_member(double_value, false);
-        }
+       cdl_int     integer_value;
+       double      double_value;
+
+       if (Cdl::string_to_integer(val, integer_value)) {
+           result = is_member(integer_value, false);
+       }
+       if (!result && Cdl::string_to_double(val, double_value)) {
+           result = is_member(double_value, false);
+       }
     }
     if (!result) {
     }
     if (!result) {
-        for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
-            if (val_i->get_value() == val) {
-                result = true;
-                break;
-            }
-        }
+       for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
+           if (val_i->get_value() == val) {
+               result = true;
+               break;
+           }
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1472,23 +1472,23 @@ CdlListValue::is_member(cdl_int val, bool allow_conversions) const
 
     bool result = false;
     for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
 
     bool result = false;
     for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
-        if (val_i->has_integer_value() && (val_i->get_integer_value() == val)) {
-            result = true;
-            break;
-        }
+       if (val_i->has_integer_value() && (val_i->get_integer_value() == val)) {
+           result = true;
+           break;
+       }
     }
     if (!result) {
     }
     if (!result) {
-        for (std::vector<std::pair<cdl_int,cdl_int> >::const_iterator i = integer_ranges.begin();
-             i != integer_ranges.end(); i++) {
-            if ((val >= i->first) && (val <= i->second)) {
-                result = true;
-                break;
-            }
-        }
+       for (std::vector<std::pair<cdl_int,cdl_int> >::const_iterator i = integer_ranges.begin();
+            i != integer_ranges.end(); i++) {
+           if ((val >= i->first) && (val <= i->second)) {
+               result = true;
+               break;
+           }
+       }
     }
     if (!result && allow_conversions) {
     }
     if (!result && allow_conversions) {
-        double double_value = Cdl::integer_to_double(val);
-        result = is_member(double_value, false);
+       double double_value = Cdl::integer_to_double(val);
+       result = is_member(double_value, false);
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1504,25 +1504,25 @@ CdlListValue::is_member(double val, bool allow_conversions) const
 
     bool result = false;
     for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
 
     bool result = false;
     for (std::vector<CdlSimpleValue>::const_iterator val_i = table.begin(); val_i != table.end(); val_i++) {
-        if (val_i->has_double_value() && (val_i->get_double_value() == val)) {
-            result = true;
-            break;
-        }
+       if (val_i->has_double_value() && (val_i->get_double_value() == val)) {
+           result = true;
+           break;
+       }
     }
     if (!result) {
     }
     if (!result) {
-        for (std::vector<std::pair<double,double> >::const_iterator i = double_ranges.begin();
-             i != double_ranges.end(); i++) {
-            if ((val >= i->first) && (val <= i->second)) {
-                result = true;
-                break;
-            }
-        }
+       for (std::vector<std::pair<double,double> >::const_iterator i = double_ranges.begin();
+            i != double_ranges.end(); i++) {
+           if ((val >= i->first) && (val <= i->second)) {
+               result = true;
+               break;
+           }
+       }
     }
     if (!result && allow_conversions) {
     }
     if (!result && allow_conversions) {
-        cdl_int integer_value;
-        if (Cdl::double_to_integer(val, integer_value)) {
-            result = is_member(integer_value, false);
-        }
+       cdl_int integer_value;
+       if (Cdl::double_to_integer(val, integer_value)) {
+           result = is_member(integer_value, false);
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1535,7 +1535,7 @@ bool
 CdlListValue::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlListValue_Magic != cdllistvalue_cookie) {
 CdlListValue::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlListValue_Magic != cdllistvalue_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
@@ -1547,37 +1547,37 @@ CdlListValue::check_this(cyg_assert_class_zeal zeal) const
 
 //}}}
 
 
 //}}}
 
-//{{{  dialog property                  
+//{{{  dialog property
 
 // ----------------------------------------------------------------------------
 // Syntax: dialog <reference>
 
 void
 CdlValuableBody::dialog_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // Syntax: dialog <reference>
 
 void
 CdlValuableBody::dialog_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                       CdlUpdate change)
+                                      CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::dialog_update_handler");
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_PRECONDITION_CLASSC(source);
     CYG_PRECONDITION_CLASSC(prop);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::dialog_update_handler");
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_PRECONDITION_CLASSC(source);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     // The main update of interest is Loaded (iff dest != 0), and
     // Created. These updates indicate that the destination now exists,
     // so it is possible to check that the destination is a dialog.
     if (((CdlUpdate_Loaded == change) && (0 != dest)) ||
     // The main update of interest is Loaded (iff dest != 0), and
     // Created. These updates indicate that the destination now exists,
     // so it is possible to check that the destination is a dialog.
     if (((CdlUpdate_Loaded == change) && (0 != dest)) ||
-        (CdlUpdate_Created == change)) {
-
-        CYG_ASSERT_CLASSC(dest);
-        CdlDialog dialog = dynamic_cast<CdlDialog>(dest);
-        if (0 == dialog) {
-            std::string msg = dest->get_class_name() + " " + dest->get_name() +
-                " cannot be used in a dialog property, it is not a custom dialog.";
-            CdlConflict_DataBody::make(transaction, source, prop, msg);
-        }
-        
+       (CdlUpdate_Created == change)) {
+
+       CYG_ASSERT_CLASSC(dest);
+       CdlDialog dialog = dynamic_cast<CdlDialog>(dest);
+       if (0 == dialog) {
+           std::string msg = dest->get_class_name() + " " + dest->get_name() +
+               " cannot be used in a dialog property, it is not a custom dialog.";
+           CdlConflict_DataBody::make(transaction, source, prop, msg);
+       }
+
     } else if (CdlUpdate_Destroyed == change) {
     } else if (CdlUpdate_Destroyed == change) {
-        // If there was a data conflict object, it is no longer relevant
-        transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+       // If there was a data conflict object, it is no longer relevant
+       transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -1589,7 +1589,7 @@ CdlValuableBody::parse_dialog(CdlInterpreter interp, int argc, const char* argv[
     CYG_REPORT_FUNCNAMETYPE("parse_dialog", "result %d");
 
     int result = CdlParse::parse_reference_property(interp, argc, argv, CdlPropertyId_Dialog, 0, 0, false, &dialog_update_handler);
     CYG_REPORT_FUNCNAMETYPE("parse_dialog", "result %d");
 
     int result = CdlParse::parse_reference_property(interp, argc, argv, CdlPropertyId_Dialog, 0, 0, false, &dialog_update_handler);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1606,16 +1606,16 @@ CdlValuableBody::has_dialog() const
     bool        result          = false;
     CdlProperty property        = get_property(CdlPropertyId_Dialog);
     if (0 != property) {
     bool        result          = false;
     CdlProperty property        = get_property(CdlPropertyId_Dialog);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
-
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            CdlDialog dialog = dynamic_cast<CdlDialog>(destination);
-            if (0 != dialog) {
-                result = true;
-            }
-        }
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
+
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           CdlDialog dialog = dynamic_cast<CdlDialog>(destination);
+           if (0 != dialog) {
+               result = true;
+           }
+       }
     }
     CYG_REPORT_RETVAL(result);
     return result;
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -1632,13 +1632,13 @@ CdlValuableBody::get_dialog() const
     CdlDialog   result          = 0;
     CdlProperty property        = get_property(CdlPropertyId_Dialog);
     if (0 != property) {
     CdlDialog   result          = 0;
     CdlProperty property        = get_property(CdlPropertyId_Dialog);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
 
 
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            result = dynamic_cast<CdlDialog>(destination);
-        }
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           result = dynamic_cast<CdlDialog>(destination);
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1646,37 +1646,37 @@ CdlValuableBody::get_dialog() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  wizard property                  
+//{{{  wizard property
 
 // ----------------------------------------------------------------------------
 // Syntax: wizard <reference>
 
 void
 CdlValuableBody::wizard_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // Syntax: wizard <reference>
 
 void
 CdlValuableBody::wizard_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                       CdlUpdate change)
+                                      CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::wizard_update_handler");
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_PRECONDITION_CLASSC(source);
     CYG_PRECONDITION_CLASSC(prop);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::wizard_update_handler");
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_PRECONDITION_CLASSC(source);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     // The main update of interest is Loaded (iff dest != 0), and
     // Created. These updates indicate that the destination now exists,
     // so it is possible to check that the destination is a dialog.
     if (((CdlUpdate_Loaded == change) && (0 != dest)) ||
     // The main update of interest is Loaded (iff dest != 0), and
     // Created. These updates indicate that the destination now exists,
     // so it is possible to check that the destination is a dialog.
     if (((CdlUpdate_Loaded == change) && (0 != dest)) ||
-        (CdlUpdate_Created == change)) {
-
-        CYG_ASSERT_CLASSC(dest);
-        CdlWizard wizard = dynamic_cast<CdlWizard>(dest);
-        if (0 == wizard) {
-            std::string msg = dest->get_class_name() + " " + dest->get_name() +
-                " cannot be used in a wizard property, it is not a wizard.";
-            CdlConflict_DataBody::make(transaction, source, prop, msg);
-        }
-        
+       (CdlUpdate_Created == change)) {
+
+       CYG_ASSERT_CLASSC(dest);
+       CdlWizard wizard = dynamic_cast<CdlWizard>(dest);
+       if (0 == wizard) {
+           std::string msg = dest->get_class_name() + " " + dest->get_name() +
+               " cannot be used in a wizard property, it is not a wizard.";
+           CdlConflict_DataBody::make(transaction, source, prop, msg);
+       }
+
     } else if (CdlUpdate_Destroyed == change) {
     } else if (CdlUpdate_Destroyed == change) {
-        // If there was a data conflict object, it is no longer relevant
-        transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+       // If there was a data conflict object, it is no longer relevant
+       transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -1704,16 +1704,16 @@ CdlValuableBody::has_wizard() const
     bool        result          = false;
     CdlProperty property        = get_property(CdlPropertyId_Wizard);
     if (0 != property) {
     bool        result          = false;
     CdlProperty property        = get_property(CdlPropertyId_Wizard);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
-
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            CdlWizard wizard = dynamic_cast<CdlWizard>(destination);
-            CYG_ASSERTC(0 != wizard);
-            CYG_UNUSED_PARAM(CdlWizard, wizard);
-            result = true;
-        }
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
+
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           CdlWizard wizard = dynamic_cast<CdlWizard>(destination);
+           CYG_ASSERTC(0 != wizard);
+           CYG_UNUSED_PARAM(CdlWizard, wizard);
+           result = true;
+       }
     }
     CYG_REPORT_RETVAL(result);
     return result;
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -1729,14 +1729,14 @@ CdlValuableBody::get_wizard() const
     CdlWizard   result          = 0;
     CdlProperty property        = get_property(CdlPropertyId_Wizard);
     if (0 != property) {
     CdlWizard   result          = 0;
     CdlProperty property        = get_property(CdlPropertyId_Wizard);
     if (0 != property) {
-        CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
-        CYG_ASSERTC(0 != ref_prop);
-
-        CdlNode destination = ref_prop->get_destination();
-        if (0 != destination) {
-            result = dynamic_cast<CdlWizard>(destination);
-            CYG_ASSERTC(0 != result);
-        }
+       CdlProperty_Reference ref_prop = dynamic_cast<CdlProperty_Reference>(property);
+       CYG_ASSERTC(0 != ref_prop);
+
+       CdlNode destination = ref_prop->get_destination();
+       if (0 != destination) {
+           result = dynamic_cast<CdlWizard>(destination);
+           CYG_ASSERTC(0 != result);
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1744,14 +1744,14 @@ CdlValuableBody::get_wizard() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  legal_values property            
+//{{{  legal_values property
 
 // ----------------------------------------------------------------------------
 // Syntax: legal_values <list expression>
 
 void
 CdlValuableBody::legal_values_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // Syntax: legal_values <list expression>
 
 void
 CdlValuableBody::legal_values_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                             CdlUpdate change)
+                                            CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("legal_values_update_handler");
 
 {
     CYG_REPORT_FUNCNAME("legal_values_update_handler");
 
@@ -1761,8 +1761,8 @@ CdlValuableBody::legal_values_update_handler(CdlTransaction transaction, CdlNode
     // Any other change can affect the list expression and hence
     // invalidate the current value.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
     // Any other change can affect the list expression and hence
     // invalidate the current value.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     CdlValuable valuable = dynamic_cast<CdlValuable>(source);
     }
 
     CdlValuable valuable = dynamic_cast<CdlValuable>(source);
@@ -1783,7 +1783,7 @@ CdlValuableBody::parse_legal_values(CdlInterpreter interp, int argc, const char*
     CYG_REPORT_FUNCNAMETYPE("parse_legal_values", "result %d");
 
     int result = CdlParse::parse_listexpression_property(interp, argc, argv, CdlPropertyId_LegalValues, 0, 0,
     CYG_REPORT_FUNCNAMETYPE("parse_legal_values", "result %d");
 
     int result = CdlParse::parse_listexpression_property(interp, argc, argv, CdlPropertyId_LegalValues, 0, 0,
-                                                         &legal_values_update_handler);
+                                                        &legal_values_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1810,8 +1810,8 @@ CdlValuableBody::get_legal_values() const
     CdlProperty_ListExpression result = 0;
     CdlProperty       property          = get_property(CdlPropertyId_LegalValues);
     if (0 != property) {
     CdlProperty_ListExpression result = 0;
     CdlProperty       property          = get_property(CdlPropertyId_LegalValues);
     if (0 != property) {
-        result = dynamic_cast<CdlProperty_ListExpression>(property);
-        CYG_ASSERTC(0 != result);
+       result = dynamic_cast<CdlProperty_ListExpression>(property);
+       CYG_ASSERTC(0 != result);
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1819,22 +1819,22 @@ CdlValuableBody::get_legal_values() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  default_value property           
+//{{{  default_value property
 
 // ----------------------------------------------------------------------------
 // syntax: default_value <expr>
 
 void
 CdlValuableBody::default_value_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // syntax: default_value <expr>
 
 void
 CdlValuableBody::default_value_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                              CdlUpdate change)
+                                             CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::default_value_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 
     // Loaded and unloading should be ignored.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
 {
     CYG_REPORT_FUNCNAME("CdlValuable::default_value_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 
     // Loaded and unloading should be ignored.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Init, Created, Destroyed, ValueChange and ActiveChange should
     }
 
     // Init, Created, Destroyed, ValueChange and ActiveChange should
@@ -1844,25 +1844,25 @@ CdlValuableBody::default_value_update_handler(CdlTransaction transaction, CdlNod
     CYG_ASSERTC(0 != valuable);
     CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
     CYG_ASSERTC(0 != expr);
     CYG_ASSERTC(0 != valuable);
     CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
     CYG_ASSERTC(0 != expr);
-    
+
     CdlSimpleValue val;
 
     try {
     CdlSimpleValue val;
 
     try {
-        
-        CdlEvalContext context(transaction, source, prop);
-        expr->eval(context, val);
 
 
-        valuable->set(transaction, val, CdlValueSource_Default);
+       CdlEvalContext context(transaction, source, prop);
+       expr->eval(context, val);
+
+       valuable->set(transaction, val, CdlValueSource_Default);
 
     } catch(CdlEvalException e) {
 
 
     } catch(CdlEvalException e) {
 
-        
-        // An EvalException conflict will have been created, so the
-        // user knows that this default_value is not kosher. It is
-        // still a good idea to make sure that the object retains a
-        // sensible value.
-        val = (cdl_int) 0;
-        valuable->set(transaction, val, CdlValueSource_Default);
+
+       // An EvalException conflict will have been created, so the
+       // user knows that this default_value is not kosher. It is
+       // still a good idea to make sure that the object retains a
+       // sensible value.
+       val = (cdl_int) 0;
+       valuable->set(transaction, val, CdlValueSource_Default);
     }
 
     CYG_UNUSED_PARAM(CdlNode, dest);
     }
 
     CYG_UNUSED_PARAM(CdlNode, dest);
@@ -1874,7 +1874,7 @@ CdlValuableBody::parse_default_value(CdlInterpreter interp, int argc, const char
 {
     CYG_REPORT_FUNCNAMETYPE("parse_default_value", "result %d");
     int result = CdlParse::parse_expression_property(interp, argc, argv, CdlPropertyId_DefaultValue, 0, 0,
 {
     CYG_REPORT_FUNCNAMETYPE("parse_default_value", "result %d");
     int result = CdlParse::parse_expression_property(interp, argc, argv, CdlPropertyId_DefaultValue, 0, 0,
-                                                     &default_value_update_handler);
+                                                    &default_value_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1901,8 +1901,8 @@ CdlValuableBody::get_default_value_expression() const
     CdlProperty_Expression result = 0;
     CdlProperty property          = get_property(CdlPropertyId_DefaultValue);
     if (0 != property) {
     CdlProperty_Expression result = 0;
     CdlProperty property          = get_property(CdlPropertyId_DefaultValue);
     if (0 != property) {
-        result = dynamic_cast<CdlProperty_Expression>(property);
-        CYG_ASSERTC(0 != result);
+       result = dynamic_cast<CdlProperty_Expression>(property);
+       CYG_ASSERTC(0 != result);
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -1910,22 +1910,22 @@ CdlValuableBody::get_default_value_expression() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  calculated_property              
+//{{{  calculated_property
 
 // ----------------------------------------------------------------------------
 // Syntax: calculated <expression>
 
 void
 CdlValuableBody::calculated_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // Syntax: calculated <expression>
 
 void
 CdlValuableBody::calculated_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                           CdlUpdate change)
+                                          CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::default_value_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 
     // Loaded and unloading should be ignored.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
 {
     CYG_REPORT_FUNCNAME("CdlValuable::default_value_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 
     // Loaded and unloading should be ignored.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Init, Created, Destroyed, ValueChange and ActiveChange should
     }
 
     // Init, Created, Destroyed, ValueChange and ActiveChange should
@@ -1935,25 +1935,25 @@ CdlValuableBody::calculated_update_handler(CdlTransaction transaction, CdlNode s
     CYG_ASSERTC(0 != valuable);
     CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
     CYG_ASSERTC(0 != expr);
     CYG_ASSERTC(0 != valuable);
     CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
     CYG_ASSERTC(0 != expr);
-    
+
     CdlSimpleValue val;
 
     try {
     CdlSimpleValue val;
 
     try {
-        
-        CdlEvalContext context(transaction, source, prop);
-        expr->eval(context, val);
 
 
-        valuable->set(transaction, val, CdlValueSource_Default);
+       CdlEvalContext context(transaction, source, prop);
+       expr->eval(context, val);
+
+       valuable->set(transaction, val, CdlValueSource_Default);
 
     } catch(CdlEvalException e) {
 
 
     } catch(CdlEvalException e) {
 
-        
-        // An EvalException conflict will have been created, so the
-        // user knows that this default_value is not kosher. It is
-        // still a good idea to make sure that the object retains a
-        // sensible value.
-        val = (cdl_int) 0;
-        valuable->set(transaction, val, CdlValueSource_Default);
+
+       // An EvalException conflict will have been created, so the
+       // user knows that this default_value is not kosher. It is
+       // still a good idea to make sure that the object retains a
+       // sensible value.
+       val = (cdl_int) 0;
+       valuable->set(transaction, val, CdlValueSource_Default);
     }
 
     CYG_UNUSED_PARAM(CdlNode, dest);
     }
 
     CYG_UNUSED_PARAM(CdlNode, dest);
@@ -1967,7 +1967,7 @@ CdlValuableBody::parse_calculated(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_calculated", "result %d");
 
     int result = CdlParse::parse_expression_property(interp, argc, argv, CdlPropertyId_Calculated, 0, 0,
     CYG_REPORT_FUNCNAMETYPE("parse_calculated", "result %d");
 
     int result = CdlParse::parse_expression_property(interp, argc, argv, CdlPropertyId_Calculated, 0, 0,
-                                                     &calculated_update_handler);
+                                                    &calculated_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -1994,8 +1994,8 @@ CdlValuableBody::get_calculated_expression() const
     CdlProperty_Expression result   = 0;
     CdlProperty            property = get_property(CdlPropertyId_Calculated);
     if (0 != property) {
     CdlProperty_Expression result   = 0;
     CdlProperty            property = get_property(CdlPropertyId_Calculated);
     if (0 != property) {
-        result = dynamic_cast<CdlProperty_Expression>(property);
-        CYG_ASSERTC(0 != result);
+       result = dynamic_cast<CdlProperty_Expression>(property);
+       CYG_ASSERTC(0 != result);
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -2003,7 +2003,7 @@ CdlValuableBody::get_calculated_expression() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  active_if property               
+//{{{  active_if property
 
 // ----------------------------------------------------------------------------
 // Syntax:
 
 // ----------------------------------------------------------------------------
 // Syntax:
@@ -2011,7 +2011,7 @@ CdlValuableBody::get_calculated_expression() const
 
 void
 CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 void
 CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                      CdlUpdate change)
+                                     CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::active_if_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::active_if_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
@@ -2022,8 +2022,8 @@ CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode so
     // Loaded should be ignored here, the world is still getting sorted out.
     // Unloading is of no interest, the source is disappearing anyway.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
     // Loaded should be ignored here, the world is still getting sorted out.
     // Unloading is of no interest, the source is disappearing anyway.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Any other change warrants re-evaluating the active status of the source.
     }
 
     // Any other change warrants re-evaluating the active status of the source.
@@ -2034,9 +2034,9 @@ CdlValuableBody::active_if_update_handler(CdlTransaction transaction, CdlNode so
     bool old_state = transaction->is_active(source);
     bool new_state = source->test_active(transaction);
     if (old_state != new_state) {
     bool old_state = transaction->is_active(source);
     bool new_state = source->test_active(transaction);
     if (old_state != new_state) {
-        transaction->set_active(source, new_state);
+       transaction->set_active(source, new_state);
     }
     }
-    
+
     CYG_UNUSED_PARAM(CdlNode, dest);
     CYG_REPORT_RETURN();
 }
     CYG_UNUSED_PARAM(CdlNode, dest);
     CYG_REPORT_RETURN();
 }
@@ -2047,7 +2047,7 @@ CdlValuableBody::parse_active_if(CdlInterpreter interp, int argc, const char* ar
     CYG_REPORT_FUNCNAMETYPE("parse_active_if", "result %d");
 
     int result = CdlParse::parse_goalexpression_property(interp, argc, argv, CdlPropertyId_ActiveIf, 0, 0,
     CYG_REPORT_FUNCNAMETYPE("parse_active_if", "result %d");
 
     int result = CdlParse::parse_goalexpression_property(interp, argc, argv, CdlPropertyId_ActiveIf, 0, 0,
-                                                         &active_if_update_handler);
+                                                        &active_if_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2075,23 +2075,23 @@ CdlValuableBody::get_active_if_conditions(std::vector<CdlProperty_GoalExpression
     get_properties(CdlPropertyId_ActiveIf, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
     get_properties(CdlPropertyId_ActiveIf, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
-        CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
-        CYG_ASSERTC(0 != goal);
-        result.push_back(goal);
+       CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
+       CYG_ASSERTC(0 != goal);
+       result.push_back(goal);
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  requires property                
+//{{{  requires property
 
 // ----------------------------------------------------------------------------
 // Syntax: requires <goal expression>
 
 void
 CdlValuableBody::requires_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // Syntax: requires <goal expression>
 
 void
 CdlValuableBody::requires_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                         CdlUpdate change)
+                                        CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::requires_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::requires_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
@@ -2099,10 +2099,10 @@ CdlValuableBody::requires_update_handler(CdlTransaction transaction, CdlNode sou
 
     // Loaded and Unloading are not of interest.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
 
     // Loaded and Unloading are not of interest.
     if ((CdlUpdate_Loaded == change) || (CdlUpdate_Unloading == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
     }
-    
+
     // Any other change should cause normal handling. This happens in
     // a separate function because "requires" properties also need to
     // be checked when e.g. the source becomes inactive.
     // Any other change should cause normal handling. This happens in
     // a separate function because "requires" properties also need to
     // be checked when e.g. the source becomes inactive.
@@ -2123,7 +2123,7 @@ CdlValuableBody::parse_requires(CdlInterpreter interp, int argc, const char* arg
     CYG_REPORT_FUNCNAMETYPE("parse_requires", "result %d");
 
     int result = CdlParse::parse_goalexpression_property(interp, argc, argv, CdlPropertyId_Requires, 0, 0,
     CYG_REPORT_FUNCNAMETYPE("parse_requires", "result %d");
 
     int result = CdlParse::parse_goalexpression_property(interp, argc, argv, CdlPropertyId_Requires, 0, 0,
-                                                         &requires_update_handler);
+                                                        &requires_update_handler);
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2151,23 +2151,23 @@ CdlValuableBody::get_requires_goals(std::vector<CdlProperty_GoalExpression>& res
     get_properties(CdlPropertyId_Requires, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
     get_properties(CdlPropertyId_Requires, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
-        CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
-        CYG_ASSERTC(0 != goal);
-        result.push_back(goal);
+       CdlProperty_GoalExpression goal = dynamic_cast<CdlProperty_GoalExpression>(*i);
+       CYG_ASSERTC(0 != goal);
+       result.push_back(goal);
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  implements property              
+//{{{  implements property
 
 // ----------------------------------------------------------------------------
 // Syntax: implements <reference to interface>
 
 void
 CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
 
 // ----------------------------------------------------------------------------
 // Syntax: implements <reference to interface>
 
 void
 CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode source, CdlProperty prop, CdlNode dest,
-                                           CdlUpdate change)
+                                          CdlUpdate change)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::implements_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::implements_update_handler");
     CYG_REPORT_FUNCARG5XV(transaction, source, prop, dest, change);
@@ -2183,14 +2183,14 @@ CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode s
 
     // Any changes to the interface itself can be ignored.
     if ((CdlUpdate_ValueChange == change) || (CdlUpdate_ActiveChange == change)) {
 
     // Any changes to the interface itself can be ignored.
     if ((CdlUpdate_ValueChange == change) || (CdlUpdate_ActiveChange == change)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // The second stage init is irrelevant
     if (CdlUpdate_Init == change) {
     }
 
     // The second stage init is irrelevant
     if (CdlUpdate_Init == change) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // Possibilities:
     }
 
     // Possibilities:
@@ -2209,24 +2209,24 @@ CdlValuableBody::implements_update_handler(CdlTransaction transaction, CdlNode s
     //
     // If the dest is invalid, a structural conflict has to be created.
     if (CdlUpdate_Destroyed == change) {
     //
     // If the dest is invalid, a structural conflict has to be created.
     if (CdlUpdate_Destroyed == change) {
-        // There is no need to do any clean-ups in the dest.
-        dest = 0;
+       // There is no need to do any clean-ups in the dest.
+       dest = 0;
     }
     if (0 == dest) {
     }
     if (0 == dest) {
-        transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+       transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
     } else {
     } else {
-        CdlInterface interface = dynamic_cast<CdlInterface>(dest);
-
-        if (0 == interface) {
-            std::string msg = source->get_class_name() + " " + source->get_name() + " cannot implement " +
-                dest->get_name() + "\n    The latter is not an interface.";
-            CdlConflict_DataBody::make(transaction, source, prop, msg);
-        } else {
-            transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
-            interface->recalculate(transaction);
-        }
+       CdlInterface interface = dynamic_cast<CdlInterface>(dest);
+
+       if (0 == interface) {
+           std::string msg = source->get_class_name() + " " + source->get_name() + " cannot implement " +
+               dest->get_name() + "\n    The latter is not an interface.";
+           CdlConflict_DataBody::make(transaction, source, prop, msg);
+       } else {
+           transaction->clear_structural_conflicts(source, prop, &CdlConflict_DataBody::test);
+           interface->recalculate(transaction);
+       }
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -2236,8 +2236,8 @@ CdlValuableBody::parse_implements(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_implements", "result %d");
 
     int result = CdlParse::parse_reference_property(interp, argc, argv, CdlPropertyId_Implements, 0, 0, false,
     CYG_REPORT_FUNCNAMETYPE("parse_implements", "result %d");
 
     int result = CdlParse::parse_reference_property(interp, argc, argv, CdlPropertyId_Implements, 0, 0, false,
-                                                    &implements_update_handler);
-    
+                                                   &implements_update_handler);
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2253,21 +2253,21 @@ CdlValuableBody::get_implemented_interfaces(std::vector<CdlInterface>& result) c
     get_properties(CdlPropertyId_Implements, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
     get_properties(CdlPropertyId_Implements, properties);
     std::vector<CdlProperty>::const_iterator i;
     for (i = properties.begin(); i != properties.end(); i++) {
-        CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*i);
-        CYG_ASSERTC(0 != refprop);
-        CdlNode node = refprop->get_destination();
-        if (0 != node) {
-            CdlInterface interface = dynamic_cast<CdlInterface>(node);
-            CYG_ASSERT_CLASSC(interface);
-            result.push_back(interface);
-        }
+       CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*i);
+       CYG_ASSERTC(0 != refprop);
+       CdlNode node = refprop->get_destination();
+       if (0 != node) {
+           CdlInterface interface = dynamic_cast<CdlInterface>(node);
+           CYG_ASSERT_CLASSC(interface);
+           result.push_back(interface);
+       }
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
     }
 
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Other properties                 
+//{{{  Other properties
 
 // ----------------------------------------------------------------------------
 // Syntax: flavor <legal flavor>
 
 // ----------------------------------------------------------------------------
 // Syntax: flavor <legal flavor>
@@ -2278,15 +2278,15 @@ parse_flavor_final_check(CdlInterpreter interp, CdlProperty_String prop)
     CYG_REPORT_FUNCNAME("parse_flavor_final_check");
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION_CLASSC(prop);
     CYG_REPORT_FUNCNAME("parse_flavor_final_check");
     CYG_PRECONDITION_CLASSC(interp);
     CYG_PRECONDITION_CLASSC(prop);
-    
+
     const std::string& str = prop->get_string();
     std::string copy = std::string(str);
     CdlValueFlavor flavor;
 
     if (!Cdl::string_to_flavor(copy, flavor)) {
     const std::string& str = prop->get_string();
     std::string copy = std::string(str);
     CdlValueFlavor flavor;
 
     if (!Cdl::string_to_flavor(copy, flavor)) {
-        CdlParse::report_property_parse_error(interp, prop, str + " is not a valid CDL flavor.");
+       CdlParse::report_property_parse_error(interp, prop, str + " is not a valid CDL flavor.");
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -2309,7 +2309,7 @@ CdlValuableBody::parse_group(CdlInterpreter interp, int argc, const char* argv[]
     CYG_REPORT_FUNCNAMETYPE("parse_group", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Group, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_group", "result %d");
 
     int result = CdlParse::parse_string_property(interp, argc, argv, CdlPropertyId_Group, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2323,7 +2323,7 @@ CdlValuableBody::parse_check_proc(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_check_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_CheckProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_check_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_CheckProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2350,11 +2350,11 @@ CdlValuableBody::get_check_proc() const
     cdl_tcl_code result         = "";
     CdlProperty  property       = get_property(CdlPropertyId_CheckProc);
     if (0 != property) {
     cdl_tcl_code result         = "";
     CdlProperty  property       = get_property(CdlPropertyId_CheckProc);
     if (0 != property) {
-        CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
-        CYG_ASSERTC(0 != code_prop);
-        result = code_prop->get_code();
+       CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
+       CYG_ASSERTC(0 != code_prop);
+       result = code_prop->get_code();
     }
     }
-    
+
     CYG_REPORT_RETURN();
     return result;
 }
     CYG_REPORT_RETURN();
     return result;
 }
@@ -2368,7 +2368,7 @@ CdlValuableBody::parse_entry_proc(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_entry_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_EntryProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_entry_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_EntryProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -2394,9 +2394,9 @@ CdlValuableBody::get_entry_proc() const
     cdl_tcl_code result         = "";
     CdlProperty  property       = get_property(CdlPropertyId_EntryProc);
     if (0 != property) {
     cdl_tcl_code result         = "";
     CdlProperty  property       = get_property(CdlPropertyId_EntryProc);
     if (0 != property) {
-        CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
-        CYG_ASSERTC(0 != code_prop);
-        result = code_prop->get_code();
+       CdlProperty_TclCode code_prop = dynamic_cast<CdlProperty_TclCode>(property);
+       CYG_ASSERTC(0 != code_prop);
+       result = code_prop->get_code();
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -2405,7 +2405,7 @@ CdlValuableBody::get_entry_proc() const
 
 //}}}
 
 
 //}}}
 
-//{{{  CdlValuable misc                 
+//{{{  CdlValuable misc
 
 // ----------------------------------------------------------------------------
 // Objects with flavor none are not modifiable. Also, objects with the
 
 // ----------------------------------------------------------------------------
 // Objects with flavor none are not modifiable. Also, objects with the
@@ -2420,9 +2420,9 @@ CdlValuableBody::is_modifiable() const
 
     bool result = true;
     if (CdlValueFlavor_None == get_flavor()) {
 
     bool result = true;
     if (CdlValueFlavor_None == get_flavor()) {
-        result = false;
+       result = false;
     } else if (has_property(CdlPropertyId_Calculated)) {
     } else if (has_property(CdlPropertyId_Calculated)) {
-        result = false;
+       result = false;
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -2430,7 +2430,7 @@ CdlValuableBody::is_modifiable() const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlValuable::get_widget_hint()   
+//{{{  CdlValuable::get_widget_hint()
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------
 
@@ -2452,219 +2452,219 @@ CdlValuableBody::get_widget_hint(CdlWidgetHint& hint)
     // separate dialog, followed by a tree redisplay
     CdlConstLoadable loadable = dynamic_cast<CdlConstLoadable>(this);
     if (0 != loadable) {
     // separate dialog, followed by a tree redisplay
     CdlConstLoadable loadable = dynamic_cast<CdlConstLoadable>(this);
     if (0 != loadable) {
-        hint.value_widget = CdlValueWidget_Loadable;
-        CYG_REPORT_RETURN();
-        return;
+       hint.value_widget = CdlValueWidget_Loadable;
+       CYG_REPORT_RETURN();
+       return;
     }
     }
-    
+
     // If the valuable is not modifiable then we are already done.
     CdlValueFlavor flavor = this->get_flavor();
     if ((CdlValueFlavor_None == flavor) || !this->is_modifiable()) {
     // If the valuable is not modifiable then we are already done.
     CdlValueFlavor flavor = this->get_flavor();
     if ((CdlValueFlavor_None == flavor) || !this->is_modifiable()) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // If there is a custom dialog and dialogs are enabled, use it.
     if (this->has_dialog() && CdlDialogBody::dialogs_are_enabled()) {
     }
 
     // If there is a custom dialog and dialogs are enabled, use it.
     if (this->has_dialog() && CdlDialogBody::dialogs_are_enabled()) {
-        if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-            hint.bool_widget = CdlBoolWidget_CustomDialog;
-        }
-        if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-            hint.value_widget = CdlValueWidget_CustomDialog;
-        }
-        CYG_REPORT_RETURN();
-        return;
+       if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+           hint.bool_widget = CdlBoolWidget_CustomDialog;
+       }
+       if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
+           hint.value_widget = CdlValueWidget_CustomDialog;
+       }
+       CYG_REPORT_RETURN();
+       return;
     }
     }
-    
+
     // Process the bool part, if any
     if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
     // Process the bool part, if any
     if ((CdlValueFlavor_Bool == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-        
-        // Default to a CheckButton
-        hint.bool_widget = CdlBoolWidget_CheckButton;
-
-        // Under some circumstances it is appropriate to use a radio button instead.
-        // This is the case when there are several mutually exclusive entities.
-        // Most of the time radio buttons should actually be handled by a single
-        // option which has a list of legal values. There are a couple of cases
-        // where this is not appropriate:
-        //
-        // 1) grouping. Some of the mutually exclusive entities could be containers.
-        //    With clever use of a single option and some active_if properties it
-        //    would be possible to get almost the same effect, but not quite.
-        //
-        // 2) external packages. It should be possible to have a third party package
-        //    which could add e.g. a new scheduler.
-        //
-        // The implementation of this involves interfaces. Basically mutually
-        // exclusive entities should implement the same interface, and that
-        // interface should have an explicit requires $cdl_value == 1
-        // In addition all of the options involved should have the same parent.
-        // An entity may implement multiple interfaces, so they all have to be checked
-        CdlInterface radio_interface = 0;
-        std::vector<CdlProperty> implements = this->get_properties(CdlPropertyId_Implements);
-        std::vector<CdlProperty>::const_iterator imp_i;
-        for (imp_i = implements.begin(); (imp_i != implements.end()) && (0 == radio_interface); imp_i++) {
-            CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*imp_i);
-            CYG_ASSERT_CLASSC(refprop);
-
-            CdlNode destnode = refprop->get_destination();
-            if (0 == destnode) {
-                continue;
-            }
-            CdlInterface interface = dynamic_cast<CdlInterface>(destnode);
-            CYG_ASSERT_CLASSC(interface);
-            std::vector<CdlProperty_GoalExpression> requires;
-            std::vector<CdlProperty_GoalExpression>::const_iterator req_i;
-            interface->get_requires_goals(requires);
-            for (req_i = requires.begin(); req_i != requires.end(); req_i++) {
-
-                CdlExpression expr = (*req_i)->get_expression();
-                CdlSubexpression& subexpr = expr->sub_expressions[expr->first_subexpression];
-                if (CdlExprOp_Equal != subexpr.op) {
-                    continue;
-                }
-                CdlSubexpression& lhs = expr->sub_expressions[subexpr.lhs_index];
-                CdlSubexpression& rhs = expr->sub_expressions[subexpr.rhs_index];
-                CdlSubexpression* ref_operand = &lhs;
-
-                // Allow for "a == 1" or "1 == a"
-                if ((CdlExprOp_IntegerConstant == lhs.op) && (1 == lhs.constants.get_integer_value())) {
-                    ref_operand = &rhs;
-                } else if ((CdlExprOp_IntegerConstant == rhs.op) && (1 == rhs.constants.get_integer_value())) {
-                    ref_operand = &lhs;
-                } else {
-                    continue;
-                }
-
-                if (CdlExprOp_Reference != ref_operand->op) {
-                    continue;
-                }
-                CdlReference& ref = expr->references[ref_operand->reference_index];
-                if (ref.get_destination() == interface) {
-                    break;
-                }
-            }
-            if (req_i == requires.end()) {
-                continue;
-            }
-
-            CdlContainer parent = this->get_parent();
-            CYG_ASSERT_CLASSC(parent);
-            std::vector<CdlValuable> implementers;
-            std::vector<CdlValuable>::const_iterator imp_i;
-            interface->get_implementers(implementers);
-            for (imp_i = implementers.begin(); imp_i != implementers.end(); imp_i++) {
-                if (parent != (*imp_i)->get_parent()) {
-                    break;
-                }
-            }
-
-            if (imp_i == implementers.end()) {
-                // An interface has been found that matches the constraints.
-                radio_interface = interface;
-            }
-        }
-        if (0 != radio_interface) {
-            hint.bool_widget = CdlBoolWidget_Radio;
-            hint.radio_button_interface = radio_interface->get_name();
-        }
+
+       // Default to a CheckButton
+       hint.bool_widget = CdlBoolWidget_CheckButton;
+
+       // Under some circumstances it is appropriate to use a radio button instead.
+       // This is the case when there are several mutually exclusive entities.
+       // Most of the time radio buttons should actually be handled by a single
+       // option which has a list of legal values. There are a couple of cases
+       // where this is not appropriate:
+       //
+       // 1) grouping. Some of the mutually exclusive entities could be containers.
+       //    With clever use of a single option and some active_if properties it
+       //    would be possible to get almost the same effect, but not quite.
+       //
+       // 2) external packages. It should be possible to have a third party package
+       //    which could add e.g. a new scheduler.
+       //
+       // The implementation of this involves interfaces. Basically mutually
+       // exclusive entities should implement the same interface, and that
+       // interface should have an explicit requires $cdl_value == 1
+       // In addition all of the options involved should have the same parent.
+       // An entity may implement multiple interfaces, so they all have to be checked
+       CdlInterface radio_interface = 0;
+       std::vector<CdlProperty> implements = this->get_properties(CdlPropertyId_Implements);
+       std::vector<CdlProperty>::const_iterator imp_i;
+       for (imp_i = implements.begin(); (imp_i != implements.end()) && (0 == radio_interface); imp_i++) {
+           CdlProperty_Reference refprop = dynamic_cast<CdlProperty_Reference>(*imp_i);
+           CYG_ASSERT_CLASSC(refprop);
+
+           CdlNode destnode = refprop->get_destination();
+           if (0 == destnode) {
+               continue;
+           }
+           CdlInterface interface = dynamic_cast<CdlInterface>(destnode);
+           CYG_ASSERT_CLASSC(interface);
+
+           std::vector<CdlProperty_GoalExpression> requires;
+           std::vector<CdlProperty_GoalExpression>::const_iterator req_i;
+           interface->get_requires_goals(requires);
+           for (req_i = requires.begin(); req_i != requires.end(); req_i++) {
+
+               CdlExpression expr = (*req_i)->get_expression();
+               CdlSubexpression& subexpr = expr->sub_expressions[expr->first_subexpression];
+               if (CdlExprOp_Equal != subexpr.op) {
+                   continue;
+               }
+
+               CdlSubexpression& lhs = expr->sub_expressions[subexpr.lhs_index];
+               CdlSubexpression& rhs = expr->sub_expressions[subexpr.rhs_index];
+               CdlSubexpression* ref_operand = &lhs;
+
+               // Allow for "a == 1" or "1 == a"
+               if ((CdlExprOp_IntegerConstant == lhs.op) && (1 == lhs.constants.get_integer_value())) {
+                   ref_operand = &rhs;
+               } else if ((CdlExprOp_IntegerConstant == rhs.op) && (1 == rhs.constants.get_integer_value())) {
+                   ref_operand = &lhs;
+               } else {
+                   continue;
+               }
+
+               if (CdlExprOp_Reference != ref_operand->op) {
+                   continue;
+               }
+               CdlReference& ref = expr->references[ref_operand->reference_index];
+               if (ref.get_destination() == interface) {
+                   break;
+               }
+           }
+           if (req_i == requires.end()) {
+               continue;
+           }
+
+           CdlContainer parent = this->get_parent();
+           CYG_ASSERT_CLASSC(parent);
+
+           std::vector<CdlValuable> implementers;
+           std::vector<CdlValuable>::const_iterator imp_i;
+           interface->get_implementers(implementers);
+           for (imp_i = implementers.begin(); imp_i != implementers.end(); imp_i++) {
+               if (parent != (*imp_i)->get_parent()) {
+                   break;
+               }
+           }
+
+           if (imp_i == implementers.end()) {
+               // An interface has been found that matches the constraints.
+               radio_interface = interface;
+           }
+       }
+       if (0 != radio_interface) {
+           hint.bool_widget = CdlBoolWidget_Radio;
+           hint.radio_button_interface = radio_interface->get_name();
+       }
     }
 
     // Process the data part, if any
     if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
     }
 
     // Process the data part, if any
     if ((CdlValueFlavor_Data == flavor) || (CdlValueFlavor_BoolData == flavor)) {
-        
-        // Default to a simple entry box.
-        hint.value_widget = CdlValueWidget_EntryBox;
-        
-        // If there is a legal_values list, this will normally indicate
-        // which widget should be used.
-        if (this->has_legal_values()) {
-            // The legal_values expression needs to be evaluated and examined.
-            // If the result is a simple numerical range then all we need to
-            // figure out is whether to default to decimal, hex, octal or double.
-            // Otherwise if the result is a simple list and all of the entries
-            // are numerical, that is sufficient information. If a list with
-            // non-numerical entries that is fine as well. Anything more complicated
-            // needs to revert to an entry box.
-            CdlProperty_ListExpression lexpr = this->get_legal_values();
-            CdlEvalContext             context(0, this, lexpr);
-            CdlListValue               val;
-
-            try {
-                lexpr->eval(context, val);
-                const std::vector<CdlSimpleValue>& table = val.get_table();
-                const std::vector<std::pair<cdl_int, cdl_int> >& int_ranges = val.get_integer_ranges();
-                const std::vector<std::pair<double, double> >&   double_ranges = val.get_double_ranges();
-                
-                if ((0 == table.size()) && (0 == int_ranges.size()) && (1 == double_ranges.size())) {
-                    
-                    // A straightforward range of double precision numbers
-                    hint.value_widget = CdlValueWidget_DoubleRange;
-                    
-                } else if ((0 == table.size()) && (1 == int_ranges.size()) && (0 == double_ranges.size())) {
-
-                    // Bummer. The formatting information has been lost.
-                    // To fix this the two sets of ranges should be collapsed into pairs of
-                    // CdlSimpleValue's.
-                    hint.value_widget = CdlValueWidget_DecimalRange;
-                    
-                } else if ((1 <= table.size() && (0 == int_ranges.size()) && (0 == double_ranges.size()))) {
-
-                    // If all of the values are numerical, then we have a numeric set.
-                    // Otherwise we have a string set.
-                    bool all_numeric = true;
-                    std::vector<CdlSimpleValue>::const_iterator tab_i;
-                    for (tab_i = table.begin(); (tab_i != table.end()) && all_numeric; tab_i++) {
-                        if (!tab_i->has_double_value() && !tab_i->has_integer_value()) {
-                            all_numeric = false;
-                        }
-                    }
-                    if (all_numeric) {
-                        hint.value_widget = CdlValueWidget_NumericSet;
-                    } else {
-                        hint.value_widget = CdlValueWidget_StringSet;
-                    }
-                    
-                } else {
-                    // The list expression is a complex combination. Leave it as an entry box.
-                    // In some cases it would be possible to do better, for example
-                    //     legal_values -1 1 to 4 8 to 12
-                    // Support for cases like these may get added in future, if such cases
-                    // ever arise in practice.
-                }
-                
-            } catch(...) {
-                // Not a lot that can be done here, unfortunately
-            }
-        } else {
-            // There is no legal_values property, so an entry box is probably the
-            // right thing to use. There is a special case for multiline strings,
-            // identified by a default_value expression that contains a newline.
-            if (this->has_default_value_expression()) {
-                CdlProperty_Expression expr = this->get_default_value_expression();
-                CdlEvalContext         context(0, this, expr);
-                CdlSimpleValue         val;
-                try {
-                    expr->eval(context, val);
-                    std::string tmp = val.get_value();
-                    if (std::string::npos != tmp.find('\n')) {
-                        hint.value_widget = CdlValueWidget_MultilineString;
-                    }
-                } catch(...) {
-                    // Not a lot that can be done here, unfortunately
-                }
-            }
-        }
+
+       // Default to a simple entry box.
+       hint.value_widget = CdlValueWidget_EntryBox;
+
+       // If there is a legal_values list, this will normally indicate
+       // which widget should be used.
+       if (this->has_legal_values()) {
+           // The legal_values expression needs to be evaluated and examined.
+           // If the result is a simple numerical range then all we need to
+           // figure out is whether to default to decimal, hex, octal or double.
+           // Otherwise if the result is a simple list and all of the entries
+           // are numerical, that is sufficient information. If a list with
+           // non-numerical entries that is fine as well. Anything more complicated
+           // needs to revert to an entry box.
+           CdlProperty_ListExpression lexpr = this->get_legal_values();
+           CdlEvalContext             context(0, this, lexpr);
+           CdlListValue               val;
+
+           try {
+               lexpr->eval(context, val);
+               const std::vector<CdlSimpleValue>& table = val.get_table();
+               const std::vector<std::pair<cdl_int, cdl_int> >& int_ranges = val.get_integer_ranges();
+               const std::vector<std::pair<double, double> >&   double_ranges = val.get_double_ranges();
+
+               if ((0 == table.size()) && (0 == int_ranges.size()) && (1 == double_ranges.size())) {
+
+                   // A straightforward range of double precision numbers
+                   hint.value_widget = CdlValueWidget_DoubleRange;
+
+               } else if ((0 == table.size()) && (1 == int_ranges.size()) && (0 == double_ranges.size())) {
+
+                   // Bummer. The formatting information has been lost.
+                   // To fix this the two sets of ranges should be collapsed into pairs of
+                   // CdlSimpleValue's.
+                   hint.value_widget = CdlValueWidget_DecimalRange;
+
+               } else if ((1 <= table.size() && (0 == int_ranges.size()) && (0 == double_ranges.size()))) {
+
+                   // If all of the values are numerical, then we have a numeric set.
+                   // Otherwise we have a string set.
+                   bool all_numeric = true;
+                   std::vector<CdlSimpleValue>::const_iterator tab_i;
+                   for (tab_i = table.begin(); (tab_i != table.end()) && all_numeric; tab_i++) {
+                       if (!tab_i->has_double_value() && !tab_i->has_integer_value()) {
+                           all_numeric = false;
+                       }
+                   }
+                   if (all_numeric) {
+                       hint.value_widget = CdlValueWidget_NumericSet;
+                   } else {
+                       hint.value_widget = CdlValueWidget_StringSet;
+                   }
+
+               } else {
+                   // The list expression is a complex combination. Leave it as an entry box.
+                   // In some cases it would be possible to do better, for example
+                   //     legal_values -1 1 to 4 8 to 12
+                   // Support for cases like these may get added in future, if such cases
+                   // ever arise in practice.
+               }
+
+           } catch(...) {
+               // Not a lot that can be done here, unfortunately
+           }
+       } else {
+           // There is no legal_values property, so an entry box is probably the
+           // right thing to use. There is a special case for multiline strings,
+           // identified by a default_value expression that contains a newline.
+           if (this->has_default_value_expression()) {
+               CdlProperty_Expression expr = this->get_default_value_expression();
+               CdlEvalContext         context(0, this, expr);
+               CdlSimpleValue         val;
+               try {
+                   expr->eval(context, val);
+                   std::string tmp = val.get_value();
+                   if (std::string::npos != tmp.find('\n')) {
+                       hint.value_widget = CdlValueWidget_MultilineString;
+                   }
+               } catch(...) {
+                   // Not a lot that can be done here, unfortunately
+               }
+           }
+       }
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlValuable get operations       
+//{{{  CdlValuable get operations
 
 // ----------------------------------------------------------------------------
 const CdlValue&
 
 // ----------------------------------------------------------------------------
 const CdlValue&
@@ -2926,7 +2926,7 @@ CdlValuableBody::get_simple_value(CdlTransaction transaction, CdlValueSource sou
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlValuable internal modify ops  
+//{{{  CdlValuable internal modify ops
 
 // ----------------------------------------------------------------------------
 // There has been a change to either the value itself or to the
 
 // ----------------------------------------------------------------------------
 // There has been a change to either the value itself or to the
@@ -2944,46 +2944,46 @@ CdlValuableBody::check_value(CdlTransaction transaction)
     // values.
     CdlValueFlavor flavor = value.get_flavor();
     if ((CdlValueFlavor_BoolData != flavor) && (CdlValueFlavor_Data != flavor)) {
     // values.
     CdlValueFlavor flavor = value.get_flavor();
     if ((CdlValueFlavor_BoolData != flavor) && (CdlValueFlavor_Data != flavor)) {
-        CYG_REPORT_RETURN();
-        return;
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // If the valuable is not currently active and enabled then it
     // does not matter whether or not the value is legal. Any old
     // conflicts should be destroyed.
     if (!(transaction->is_active(this) && this->is_enabled(transaction))) {
     }
 
     // If the valuable is not currently active and enabled then it
     // does not matter whether or not the value is legal. Any old
     // conflicts should be destroyed.
     if (!(transaction->is_active(this) && this->is_enabled(transaction))) {
-        transaction->clear_conflicts(this, &CdlConflict_IllegalValueBody::test);
-        CYG_REPORT_RETURN();
-        return;
+       transaction->clear_conflicts(this, &CdlConflict_IllegalValueBody::test);
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // If there is a legal_values property, check membership.
     if (this->has_property(CdlPropertyId_LegalValues)) {
     }
 
     // If there is a legal_values property, check membership.
     if (this->has_property(CdlPropertyId_LegalValues)) {
-        CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(get_property(CdlPropertyId_LegalValues));
-        CYG_ASSERT_CLASSC(lexpr);
-
-        CdlSimpleValue val = this->get_simple_value(transaction);
-        CdlEvalContext context(transaction, this, lexpr);
-        try {
-            if (!lexpr->is_member(context, val)) {
-                if (!transaction->has_conflict(this, lexpr, &CdlConflict_IllegalValueBody::test)) {
-                    CdlConflict_IllegalValueBody::make(transaction, this, lexpr);
-                }
-            
-            } else {
-                // Tne current value is legal. Get rid of any old conflicts.
-                transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
-            }
-        } catch(CdlEvalException e) {
-            // There should now be an EvalException conflict for this
-            // node, so there is no point in having an IllegalValue conflict
-            // as well.
-            transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
-        }              
-
-        // FIXME: add support for check_proc
+       CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(get_property(CdlPropertyId_LegalValues));
+       CYG_ASSERT_CLASSC(lexpr);
+
+       CdlSimpleValue val = this->get_simple_value(transaction);
+       CdlEvalContext context(transaction, this, lexpr);
+       try {
+           if (!lexpr->is_member(context, val)) {
+               if (!transaction->has_conflict(this, lexpr, &CdlConflict_IllegalValueBody::test)) {
+                   CdlConflict_IllegalValueBody::make(transaction, this, lexpr);
+               }
+
+           } else {
+               // Tne current value is legal. Get rid of any old conflicts.
+               transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
+           }
+       } catch(CdlEvalException e) {
+           // There should now be an EvalException conflict for this
+           // node, so there is no point in having an IllegalValue conflict
+           // as well.
+           transaction->clear_conflicts(this, lexpr, &CdlConflict_IllegalValueBody::test);
+       }
+
+       // FIXME: add support for check_proc
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3004,9 +3004,9 @@ CdlValuableBody::check_requires(CdlTransaction transaction)
     get_properties(CdlPropertyId_Requires, requires_properties);
     for (prop_i = requires_properties.begin(); prop_i != requires_properties.end(); prop_i++) {
 
     get_properties(CdlPropertyId_Requires, requires_properties);
     for (prop_i = requires_properties.begin(); prop_i != requires_properties.end(); prop_i++) {
 
-        CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
-        CYG_ASSERT_CLASSC(gexpr);
-        this->check_requires(transaction, gexpr);
+       CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
+       CYG_ASSERT_CLASSC(gexpr);
+       this->check_requires(transaction, gexpr);
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -3024,29 +3024,29 @@ CdlValuableBody::check_requires(CdlTransaction transaction, CdlProperty_GoalExpr
     // If the valuable is not currently active and enabled then the "requires"
     // properties are irrelevant, and any old conflicts should be destroyed.
     if (!transaction->is_active(this) || !this->is_enabled(transaction)) {
     // If the valuable is not currently active and enabled then the "requires"
     // properties are irrelevant, and any old conflicts should be destroyed.
     if (!transaction->is_active(this) || !this->is_enabled(transaction)) {
-        transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
-        CYG_REPORT_RETURN();
-        return;
+       transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
+       CYG_REPORT_RETURN();
+       return;
     }
 
     // What is the current value of the goal expression?
     try {
     }
 
     // What is the current value of the goal expression?
     try {
-        CdlEvalContext context(transaction, this, gexpr);
-        if (gexpr->eval(context)) {
-            // The goal is satisfied.
-            transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
-        } else {
-            // The goal is not satisfied. Make sure there is a conflict object.
-            if (!transaction->has_conflict(this, gexpr, &CdlConflict_RequiresBody::test)) {
-                CdlConflict_RequiresBody::make(transaction, this, gexpr);
-            }
-        }
+       CdlEvalContext context(transaction, this, gexpr);
+       if (gexpr->eval(context)) {
+           // The goal is satisfied.
+           transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
+       } else {
+           // The goal is not satisfied. Make sure there is a conflict object.
+           if (!transaction->has_conflict(this, gexpr, &CdlConflict_RequiresBody::test)) {
+               CdlConflict_RequiresBody::make(transaction, this, gexpr);
+           }
+       }
     } catch(CdlEvalException e) {
     } catch(CdlEvalException e) {
-        // There should now be an EvalException conflict associated with this node,
-        // having a requires conflict as well serves no purpose
-        transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
+       // There should now be an EvalException conflict associated with this node,
+       // having a requires conflict as well serves no purpose
+       transaction->clear_conflicts(this, gexpr, &CdlConflict_RequiresBody::test);
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3063,10 +3063,10 @@ CdlValuableBody::update(CdlTransaction transaction, CdlUpdate update)
     CYG_PRECONDITION_CLASSC(transaction);
 
     if ((CdlUpdate_ValueChange == update) || (CdlUpdate_ActiveChange == update)) {
     CYG_PRECONDITION_CLASSC(transaction);
 
     if ((CdlUpdate_ValueChange == update) || (CdlUpdate_ActiveChange == update)) {
-        this->check_value(transaction);
-        this->check_requires(transaction);
+       this->check_value(transaction);
+       this->check_requires(transaction);
     }
     }
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3085,31 +3085,31 @@ CdlValuableBody::test_active(CdlTransaction transaction)
 
     bool result = true;
     if (!this->CdlNodeBody::test_active(transaction)) {
 
     bool result = true;
     if (!this->CdlNodeBody::test_active(transaction)) {
-        result = false;
+       result = false;
     }
 
     if (result) {
     }
 
     if (result) {
-        std::vector<CdlProperty> active_if_properties;
-        std::vector<CdlProperty>::const_iterator prop_i;
-        
-        this->get_properties(CdlPropertyId_ActiveIf, active_if_properties);
-        for (prop_i = active_if_properties.begin(); result && (prop_i != active_if_properties.end()); prop_i++) {
-            
-            CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
-            CYG_ASSERT_CLASSC(gexpr);
-            CdlEvalContext context(transaction, this, gexpr);
-            try {
-                if (!gexpr->eval(context)) {
-                    result = false;
-                }
-            } catch(CdlEvalException e) {
-                // Hmmm, an active_if property cannot be evaluated.
-                // Tricky. If the node is inactive then its conflicts
-                // are ignored, which would be a bad thing. For now
-                // assume that the node is active, unless it was already
-                // inactive for other reasons.
-            }
-        }
+       std::vector<CdlProperty> active_if_properties;
+       std::vector<CdlProperty>::const_iterator prop_i;
+
+       this->get_properties(CdlPropertyId_ActiveIf, active_if_properties);
+       for (prop_i = active_if_properties.begin(); result && (prop_i != active_if_properties.end()); prop_i++) {
+
+           CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(*prop_i);
+           CYG_ASSERT_CLASSC(gexpr);
+           CdlEvalContext context(transaction, this, gexpr);
+           try {
+               if (!gexpr->eval(context)) {
+                   result = false;
+               }
+           } catch(CdlEvalException e) {
+               // Hmmm, an active_if property cannot be evaluated.
+               // Tricky. If the node is inactive then its conflicts
+               // are ignored, which would be a bad thing. For now
+               // assume that the node is active, unless it was already
+               // inactive for other reasons.
+           }
+       }
     }
 
     CYG_REPORT_RETVAL(result);
     }
 
     CYG_REPORT_RETVAL(result);
@@ -3117,7 +3117,7 @@ CdlValuableBody::test_active(CdlTransaction transaction)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlValuable modify operations    
+//{{{  CdlValuable modify operations
 
 // ----------------------------------------------------------------------------
 // Start with the non-transaction versions. These allocate a new transaction,
 
 // ----------------------------------------------------------------------------
 // Start with the non-transaction versions. These allocate a new transaction,
@@ -3130,7 +3130,7 @@ CdlValuableBody::set_source(CdlValueSource source)
     CYG_REPORT_FUNCNAME("CdlValuable::set_source (no transaction)");
     CYG_REPORT_FUNCARG2XV(this, source);
     CYG_PRECONDITION_THISC();
     CYG_REPORT_FUNCNAME("CdlValuable::set_source (no transaction)");
     CYG_REPORT_FUNCARG2XV(this, source);
     CYG_PRECONDITION_THISC();
-    
+
     CdlTransaction transaction = CdlTransactionBody::make(get_toplevel());
     this->set_source(transaction, source);
     transaction->body();
     CdlTransaction transaction = CdlTransactionBody::make(get_toplevel());
     this->set_source(transaction, source);
     transaction->body();
@@ -3160,7 +3160,7 @@ CdlValuableBody::set_enabled(bool val, CdlValueSource source)
     CYG_REPORT_FUNCNAME("CdlValuable::set_enabled (no transaction)");
     CYG_REPORT_FUNCARG3XV(this, val, source);
     CYG_PRECONDITION_THISC();
     CYG_REPORT_FUNCNAME("CdlValuable::set_enabled (no transaction)");
     CYG_REPORT_FUNCARG3XV(this, val, source);
     CYG_PRECONDITION_THISC();
-    
+
     CdlTransaction transaction = CdlTransactionBody::make(get_toplevel());
     this->set_enabled(transaction, val, source);
     transaction->body();
     CdlTransaction transaction = CdlTransactionBody::make(get_toplevel());
     this->set_enabled(transaction, val, source);
     transaction->body();
@@ -3234,7 +3234,7 @@ CdlValuableBody::set_source(CdlTransaction transaction, CdlValueSource source)
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_source(source);
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_source(source);
@@ -3250,12 +3250,12 @@ CdlValuableBody::invalidate_source(CdlTransaction transaction, CdlValueSource so
     CYG_REPORT_FUNCARG3XV(this, transaction, source);
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_REPORT_FUNCARG3XV(this, transaction, source);
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.invalidate_source(source);
     transaction->set_whole_value(this, old_value, new_value);
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.invalidate_source(source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3272,7 +3272,7 @@ CdlValuableBody::set_enabled(CdlTransaction transaction, bool enabled_arg, CdlVa
     CdlValue        new_value = old_value;
     new_value.set_enabled(enabled_arg, source);
     transaction->set_whole_value(this, old_value, new_value);
     CdlValue        new_value = old_value;
     new_value.set_enabled(enabled_arg, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3284,30 +3284,30 @@ CdlValuableBody::set_value(CdlTransaction transaction, CdlSimpleValue& val, CdlV
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_value(val, source);
     transaction->set_whole_value(this, old_value, new_value);
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_value(val, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
 void
 CdlValuableBody::set_enabled_and_value(CdlTransaction transaction, bool enabled_arg, CdlSimpleValue& val,
     CYG_REPORT_RETURN();
 }
 
 void
 CdlValuableBody::set_enabled_and_value(CdlTransaction transaction, bool enabled_arg, CdlSimpleValue& val,
-                                       CdlValueSource source)
+                                      CdlValueSource source)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::set_enabled");
     CYG_REPORT_FUNCARG3XV(this, transaction, source);
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::set_enabled");
     CYG_REPORT_FUNCARG3XV(this, transaction, source);
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_enabled_and_value(enabled_arg, val, source);
     transaction->set_whole_value(this, old_value, new_value);
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set_enabled_and_value(enabled_arg, val, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3319,12 +3319,12 @@ CdlValuableBody::set(CdlTransaction transaction, CdlSimpleValue& val, CdlValueSo
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_ASSERTC((source == CdlValueSource_Default) || !has_property(CdlPropertyId_Calculated));
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set(val, source);
     transaction->set_whole_value(this, old_value, new_value);
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = old_value;
     new_value.set(val, source);
     transaction->set_whole_value(this, old_value, new_value);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3335,7 +3335,7 @@ CdlValuableBody::set(CdlTransaction transaction, const CdlValue& val)
     CYG_REPORT_FUNCARG2XV(this, transaction);
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
     CYG_REPORT_FUNCARG2XV(this, transaction);
     CYG_PRECONDITION_THISC();
     CYG_PRECONDITION_CLASSC(transaction);
-    
+
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = val;
     transaction->set_whole_value(this, old_value, new_value);
     const CdlValue& old_value = transaction->get_whole_value(this);
     CdlValue        new_value = val;
     transaction->set_whole_value(this, old_value, new_value);
@@ -3344,7 +3344,7 @@ CdlValuableBody::set(CdlTransaction transaction, const CdlValue& val)
 }
 
 //}}}
 }
 
 //}}}
-//{{{  CdlValuable basics               
+//{{{  CdlValuable basics
 
 // ----------------------------------------------------------------------------
 // The CdlValuable class implements the concept of CDL objects that take
 
 // ----------------------------------------------------------------------------
 // The CdlValuable class implements the concept of CDL objects that take
@@ -3358,7 +3358,7 @@ CdlValuableBody::CdlValuableBody(CdlValueFlavor flavor)
 
     cdlvaluablebody_cookie = CdlValuableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
 
     cdlvaluablebody_cookie = CdlValuableBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
@@ -3371,7 +3371,7 @@ CdlValuableBody::~CdlValuableBody()
 
     cdlvaluablebody_cookie = CdlValuableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdlvaluablebody_cookie = CdlValuableBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3391,20 +3391,20 @@ bool
 CdlValuableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlValuableBody_Magic != cdlvaluablebody_cookie) {
 CdlValuableBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlValuableBody_Magic != cdlvaluablebody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     if (has_property(CdlPropertyId_Calculated) && (CdlValueSource_Default != value.get_source())) {
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
 
     if (has_property(CdlPropertyId_Calculated) && (CdlValueSource_Default != value.get_source())) {
-        CYG_FAIL("Calculated valuables can only have a default value.");
-        return false;
+       CYG_FAIL("Calculated valuables can only have a default value.");
+       return false;
     }
     }
-    
+
     return CdlNodeBody::check_this(zeal) && value.check_this(zeal);
 }
 
 //}}}
     return CdlNodeBody::check_this(zeal) && value.check_this(zeal);
 }
 
 //}}}
-//{{{  CdlValuable parsing support      
+//{{{  CdlValuable parsing support
 
 // ----------------------------------------------------------------------------
 // Parsing support. Adding the appropriate parsers is straightforward.
 
 // ----------------------------------------------------------------------------
 // Parsing support. Adding the appropriate parsers is straightforward.
@@ -3416,37 +3416,37 @@ CdlValuableBody::add_property_parsers(std::vector<CdlInterpreterCommandEntry>& p
 
     static CdlInterpreterCommandEntry commands[] =
     {
 
     static CdlInterpreterCommandEntry commands[] =
     {
-        CdlInterpreterCommandEntry("active_if",          &parse_active_if    ),
-        CdlInterpreterCommandEntry("calculated",         &parse_calculated   ),
-        CdlInterpreterCommandEntry("check_proc",         &parse_check_proc   ),
-        CdlInterpreterCommandEntry("default_value",      &parse_default_value),
-        CdlInterpreterCommandEntry("dialog",             &parse_dialog       ),
-        CdlInterpreterCommandEntry("entry_proc",         &parse_entry_proc   ),
-        CdlInterpreterCommandEntry("flavor",             &parse_flavor       ),
-        CdlInterpreterCommandEntry("group",              &parse_group        ),
-        CdlInterpreterCommandEntry("implements",         &parse_implements   ),
-        CdlInterpreterCommandEntry("legal_values",       &parse_legal_values ),
-        CdlInterpreterCommandEntry("requires",           &parse_requires     ),
-        CdlInterpreterCommandEntry("wizard",             &parse_wizard       ),
-        CdlInterpreterCommandEntry("",                   0                   )
+       CdlInterpreterCommandEntry("active_if",          &parse_active_if    ),
+       CdlInterpreterCommandEntry("calculated",         &parse_calculated   ),
+       CdlInterpreterCommandEntry("check_proc",         &parse_check_proc   ),
+       CdlInterpreterCommandEntry("default_value",      &parse_default_value),
+       CdlInterpreterCommandEntry("dialog",             &parse_dialog       ),
+       CdlInterpreterCommandEntry("entry_proc",         &parse_entry_proc   ),
+       CdlInterpreterCommandEntry("flavor",             &parse_flavor       ),
+       CdlInterpreterCommandEntry("group",              &parse_group        ),
+       CdlInterpreterCommandEntry("implements",         &parse_implements   ),
+       CdlInterpreterCommandEntry("legal_values",       &parse_legal_values ),
+       CdlInterpreterCommandEntry("requires",           &parse_requires     ),
+       CdlInterpreterCommandEntry("wizard",             &parse_wizard       ),
+       CdlInterpreterCommandEntry("",                   0                   )
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
     };
 
     for (int i = 0; commands[i].command != 0; i++) {
-        std::vector<CdlInterpreterCommandEntry>::const_iterator j;
-        for (j = parsers.begin(); j != parsers.end(); j++) {
-            if (commands[i].name == j->name) {
-                if (commands[i].command != j->command) {
-                    CYG_FAIL("Property names are being re-used");
-                }
-                break;
-            }
-        }
-        if (j == parsers.end()) {
-            parsers.push_back(commands[i]);
-        }
+       std::vector<CdlInterpreterCommandEntry>::const_iterator j;
+       for (j = parsers.begin(); j != parsers.end(); j++) {
+           if (commands[i].name == j->name) {
+               if (commands[i].command != j->command) {
+                   CYG_FAIL("Property names are being re-used");
+               }
+               break;
+           }
+       }
+       if (j == parsers.end()) {
+           parsers.push_back(commands[i]);
+       }
     }
     CdlNodeBody::add_property_parsers(parsers);
     }
     CdlNodeBody::add_property_parsers(parsers);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3466,49 +3466,49 @@ CdlValuableBody::check_properties(CdlInterpreter interp)
     //       This could prove useful if there are a sensible number
     //       of library check_proc's.
     if (count_properties(CdlPropertyId_Flavor) > 1) {
     //       This could prove useful if there are a sensible number
     //       of library check_proc's.
     if (count_properties(CdlPropertyId_Flavor) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one flavor property.");
+       CdlParse::report_error(interp, "", "There should be at most one flavor property.");
     }
     if (count_properties(CdlPropertyId_EntryProc) > 1) {
     }
     if (count_properties(CdlPropertyId_EntryProc) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one entry_proc property.");
+       CdlParse::report_error(interp, "", "There should be at most one entry_proc property.");
     }
     if (count_properties(CdlPropertyId_CheckProc) > 1) {
     }
     if (count_properties(CdlPropertyId_CheckProc) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one check_proc property.");
+       CdlParse::report_error(interp, "", "There should be at most one check_proc property.");
     }
     if (count_properties(CdlPropertyId_DefaultValue) > 1) {
     }
     if (count_properties(CdlPropertyId_DefaultValue) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one default_value property.");
+       CdlParse::report_error(interp, "", "There should be at most one default_value property.");
     }
     if (count_properties(CdlPropertyId_LegalValues) > 1) {
     }
     if (count_properties(CdlPropertyId_LegalValues) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one legal_values property.");
+       CdlParse::report_error(interp, "", "There should be at most one legal_values property.");
     }
     if (count_properties(CdlPropertyId_Dialog) > 1) {
     }
     if (count_properties(CdlPropertyId_Dialog) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one dialog property.");
+       CdlParse::report_error(interp, "", "There should be at most one dialog property.");
     }
     if (count_properties(CdlPropertyId_Wizard) > 1) {
     }
     if (count_properties(CdlPropertyId_Wizard) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one wizard property.");
+       CdlParse::report_error(interp, "", "There should be at most one wizard property.");
     }
     if (count_properties(CdlPropertyId_Calculated) > 1) {
     }
     if (count_properties(CdlPropertyId_Calculated) > 1) {
-        CdlParse::report_error(interp, "", "There should be at most one calculated property.");
+       CdlParse::report_error(interp, "", "There should be at most one calculated property.");
     }
 
     // If there is a flavor property, update the flavor in the base class
     if (has_property(CdlPropertyId_Flavor)) {
     }
 
     // If there is a flavor property, update the flavor in the base class
     if (has_property(CdlPropertyId_Flavor)) {
-        CdlProperty_String flavor_property = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Flavor));
-        CYG_ASSERTC(0 != flavor_property);
-        
-        std::string flavor_string = flavor_property->get_string();
-        CdlValueFlavor flavor;
-        // The property parsing code should have caught any problems already.
-        if (!Cdl::string_to_flavor(flavor_string, flavor)) {
-            CdlParse::report_error(interp, "", "Invalid flavor " + flavor_string);
-        } else {
-            value.set_flavor(flavor);
-        }
-
-        // If the flavor is "none" then the entity is not modifiable,
-        // and most of the properties do not make sense. However this
-        // is not enforced at parse-time: temporarily switching to
-        // flavor none may make sense during debugging.
-        // FIXME: no longer correct
+       CdlProperty_String flavor_property = dynamic_cast<CdlProperty_String>(get_property(CdlPropertyId_Flavor));
+       CYG_ASSERTC(0 != flavor_property);
+
+       std::string flavor_string = flavor_property->get_string();
+       CdlValueFlavor flavor;
+       // The property parsing code should have caught any problems already.
+       if (!Cdl::string_to_flavor(flavor_string, flavor)) {
+           CdlParse::report_error(interp, "", "Invalid flavor " + flavor_string);
+       } else {
+           value.set_flavor(flavor);
+       }
+
+       // If the flavor is "none" then the entity is not modifiable,
+       // and most of the properties do not make sense. However this
+       // is not enforced at parse-time: temporarily switching to
+       // flavor none may make sense during debugging.
+       // FIXME: no longer correct
     }
 
     // For boolean entities legal_values does not make much sense.
     }
 
     // For boolean entities legal_values does not make much sense.
@@ -3519,14 +3519,14 @@ CdlValuableBody::check_properties(CdlInterpreter interp)
     // check_proc is allowed, this can be used to check programatically
     // that the current value is legal.
     if (CdlValueFlavor_Bool == get_flavor()) {
     // check_proc is allowed, this can be used to check programatically
     // that the current value is legal.
     if (CdlValueFlavor_Bool == get_flavor()) {
-        if (has_property(CdlPropertyId_LegalValues)) {
-            CdlParse::report_error(interp, "", "The \"legal_values\" property is not applicable to boolean entities."); 
-        }
+       if (has_property(CdlPropertyId_LegalValues)) {
+           CdlParse::report_error(interp, "", "The \"legal_values\" property is not applicable to boolean entities.");
+       }
     }
 
     // default_value and calculated are mutually exclusive
     if (has_property(CdlPropertyId_Calculated) && has_property(CdlPropertyId_DefaultValue)) {
     }
 
     // default_value and calculated are mutually exclusive
     if (has_property(CdlPropertyId_Calculated) && has_property(CdlPropertyId_DefaultValue)) {
-        CdlParse::report_error(interp, "", "The properties \"default_value\" and \"calculated\" cannot be used together.");
+       CdlParse::report_error(interp, "", "The properties \"default_value\" and \"calculated\" cannot be used together.");
     }
 
 #if 0
     }
 
 #if 0
@@ -3535,20 +3535,20 @@ CdlValuableBody::check_properties(CdlInterpreter interp)
     // a text entry widget will be used and an entry_proc may well be
     // applicable.
     if (has_property(CdlPropertyId_Dialog) && has_property(CdlPropertyId_EntryProc)) {
     // a text entry widget will be used and an entry_proc may well be
     // applicable.
     if (has_property(CdlPropertyId_Dialog) && has_property(CdlPropertyId_EntryProc)) {
-        CdlParse::report_error(interp, "", "The properties \"dialog\" and \"entry_proc\" cannot be used together.");
+       CdlParse::report_error(interp, "", "The properties \"dialog\" and \"entry_proc\" cannot be used together.");
     }
     }
-#endif    
+#endif
 
     // All of the expressions may be invalid because of unresolved references,
 
     // All of the expressions may be invalid because of unresolved references,
-    // ditto for implements and for dialog. 
-    
+    // ditto for implements and for dialog.
+
     CdlNodeBody::check_properties(interp);
     CdlNodeBody::check_properties(interp);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  CdlValuable persistence support  
+//{{{  CdlValuable persistence support
 
 // ----------------------------------------------------------------------------
 void
 
 // ----------------------------------------------------------------------------
 void
@@ -3580,14 +3580,14 @@ CdlValuableBody::value_savefile_entry_needed() const
     bool result = false;
 
     if (this->is_modifiable()) {
     bool result = false;
 
     if (this->is_modifiable()) {
-        if (this->has_source(CdlValueSource_User) ||
-            this->has_source(CdlValueSource_Wizard) ||
-            this->has_source(CdlValueSource_Inferred)) {
+       if (this->has_source(CdlValueSource_User) ||
+           this->has_source(CdlValueSource_Wizard) ||
+           this->has_source(CdlValueSource_Inferred)) {
 
 
-            result = true;
-        }
+           result = true;
+       }
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -3604,21 +3604,21 @@ value_to_string(CdlValuable valuable, CdlValueSource source)
     CYG_REPORT_FUNCNAME("value_to_string");
 
     std::string data = "";
     CYG_REPORT_FUNCNAME("value_to_string");
 
     std::string data = "";
-    
+
     switch(valuable->get_flavor()) {
       case CdlValueFlavor_Bool :
     switch(valuable->get_flavor()) {
       case CdlValueFlavor_Bool :
-        data += (valuable->is_enabled(source) ? one : zero);
-        break;
+       data += (valuable->is_enabled(source) ? one : zero);
+       break;
       case CdlValueFlavor_BoolData :
       case CdlValueFlavor_BoolData :
-        data += (valuable->is_enabled(source) ? one : zero) + " " +
-            CdlInterpreterBody::quote(valuable->get_value(source));
-        break;
+       data += (valuable->is_enabled(source) ? one : zero) + " " +
+           CdlInterpreterBody::quote(valuable->get_value(source));
+       break;
       case CdlValueFlavor_Data:
       case CdlValueFlavor_Data:
-        data += CdlInterpreterBody::quote(valuable->get_value(source));
-        break;
+       data += CdlInterpreterBody::quote(valuable->get_value(source));
+       break;
       default:
       default:
-        CYG_FAIL("Invalid value flavor detected");
-        break;
+       CYG_FAIL("Invalid value flavor detected");
+       break;
     }
     return data;
 }
     }
     return data;
 }
@@ -3632,13 +3632,13 @@ get_expected_source(CdlValuable valuable)
     CYG_REPORT_FUNCARG1XV(valuable);
 
     CdlValueSource expected_source = CdlValueSource_Default;
     CYG_REPORT_FUNCARG1XV(valuable);
 
     CdlValueSource expected_source = CdlValueSource_Default;
-        
+
     if (valuable->has_source(CdlValueSource_User)) {
     if (valuable->has_source(CdlValueSource_User)) {
-        expected_source = CdlValueSource_User;
+       expected_source = CdlValueSource_User;
     } else if (valuable->has_source(CdlValueSource_Wizard)) {
     } else if (valuable->has_source(CdlValueSource_Wizard)) {
-        expected_source = CdlValueSource_Wizard;
+       expected_source = CdlValueSource_Wizard;
     } else if (valuable->has_source(CdlValueSource_Inferred)) {
     } else if (valuable->has_source(CdlValueSource_Inferred)) {
-        expected_source = CdlValueSource_Inferred;
+       expected_source = CdlValueSource_Inferred;
     }
 
     CYG_REPORT_RETVAL((int) expected_source);
     }
 
     CYG_REPORT_RETVAL((int) expected_source);
@@ -3668,25 +3668,25 @@ follow_expr_references(CdlProperty property, CdlExpression expr)
     std::string    data = "";
     CdlSimpleValue simple_value;
     std::vector<CdlReference>::const_iterator ref_i;
     std::string    data = "";
     CdlSimpleValue simple_value;
     std::vector<CdlReference>::const_iterator ref_i;
-    
+
     for (ref_i = expr->references.begin(); ref_i != expr->references.end(); ref_i++) {
     for (ref_i = expr->references.begin(); ref_i != expr->references.end(); ref_i++) {
-        const std::string& refname = ref_i->get_destination_name();
-        CdlNode refnode = ref_i->get_destination();
-        CdlValuable refvaluable = 0;
-        if (0 != refnode) {
-            refvaluable = dynamic_cast<CdlValuable>(refnode);
-        }
-        data += refname + " ";
-        if (0 == refvaluable) {
-            data += "(unknown) == 0";
-        } else {
-            CdlEvalContext context(0, refvaluable, property);
-            CdlSimpleValue::eval_valuable(context, refvaluable, simple_value);
-            data += "== " + CdlInterpreterBody::quote(simple_value.get_value());
-        }
-        data += '\n';
+       const std::string& refname = ref_i->get_destination_name();
+       CdlNode refnode = ref_i->get_destination();
+       CdlValuable refvaluable = 0;
+       if (0 != refnode) {
+           refvaluable = dynamic_cast<CdlValuable>(refnode);
+       }
+       data += refname + " ";
+       if (0 == refvaluable) {
+           data += "(unknown) == 0";
+       } else {
+           CdlEvalContext context(0, refvaluable, property);
+           CdlSimpleValue::eval_valuable(context, refvaluable, simple_value);
+           data += "== " + CdlInterpreterBody::quote(simple_value.get_value());
+       }
+       data += '\n';
     }
     }
-    
+
     CYG_REPORT_RETURN();
     return data;
 }
     CYG_REPORT_RETURN();
     return data;
 }
@@ -3694,7 +3694,7 @@ follow_expr_references(CdlProperty property, CdlExpression expr)
 // ----------------------------------------------------------------------------
 
 void
 // ----------------------------------------------------------------------------
 
 void
-CdlValuableBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bool modifiable, bool minimal)
+CdlValuableBody::_save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bool modifiable, bool minimal)
 {
     CYG_REPORT_FUNCNAME("CdlValuable::save");
     CYG_REPORT_FUNCARG5XV(this, interp, chan, indentation, minimal);
 {
     CYG_REPORT_FUNCNAME("CdlValuable::save");
     CYG_REPORT_FUNCARG5XV(this, interp, chan, indentation, minimal);
@@ -3714,274 +3714,271 @@ CdlValuableBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation,
     // but the alternative is an awful lot of "if (minimal)" tests
     // in the main code.
     if (minimal) {
     // but the alternative is an awful lot of "if (minimal)" tests
     // in the main code.
     if (minimal) {
-        
-        if (modifiable) {
-            if (this->has_source(CdlValueSource_User)) {
-                data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
-            }
-            if (this->has_source(CdlValueSource_Wizard)) {
-                data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
-            }
-            if (this->has_source(CdlValueSource_Inferred)) {
-                data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
-            }
-            CdlValueSource expected_source = get_expected_source(this);
-            if (expected_source != this->get_source()) {
-                std::string current_source_string;
-                if (!Cdl::source_to_string(this->get_source(), current_source_string)) {
-                    CYG_FAIL("Invalid current value source detected");
-                }
-                data += indent_string + "value_source " + current_source_string + "\n";
-            }
-        }
-        
+       if (modifiable) {
+           if (this->has_source(CdlValueSource_User)) {
+               data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
+           }
+           if (this->has_source(CdlValueSource_Wizard)) {
+               data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
+           }
+           if (this->has_source(CdlValueSource_Inferred)) {
+               data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
+           }
+           CdlValueSource expected_source = get_expected_source(this);
+           if (expected_source != this->get_source()) {
+               std::string current_source_string;
+               if (!Cdl::source_to_string(this->get_source(), current_source_string)) {
+                   CYG_FAIL("Invalid current value source detected");
+               }
+               data += indent_string + "value_source " + current_source_string + "\n";
+           }
+       }
     } else {
     } else {
-    
-        // Right at the start, indicate whether or not this property is active.
-        if (!this->is_active()) {
-            data += indent_string + "# This option is not active\n";
-            // If the entity is inactive because the parent is inactive or disabled,
-            // say so here. This is in addition to any unsatisfied active_if
-            // conditions, which will be reported below.
-            CdlContainer parent = this->get_parent();
-            if (!parent->is_active()) {
-                data += indent_string + "# The parent " + parent->get_name() + " is not active\n";
-            }
-            CdlValuable tmp = dynamic_cast<CdlValuable>(parent);
-            if ((0 != tmp) && !tmp->is_enabled()) {
-                data += indent_string + "# The parent " + parent->get_name() + " is disabled\n";
-            }
-        }
-        if (this->has_active_if_conditions()) {
-            std::vector<CdlProperty_GoalExpression> active_if_conditions;
-            this->get_active_if_conditions(active_if_conditions);
-            std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
-            for (expr_i = active_if_conditions.begin(); expr_i != active_if_conditions.end(); expr_i++) {
-                data += indent_string + "# ActiveIf constraint: " +
-                    CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) +
-                    '\n';
-
-                CdlExpression expr = (*expr_i)->get_expression();
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
-                CdlEvalContext context(0, this, *expr_i);
-                bool active_if_value = false;
-                try {
-                    active_if_value = (*expr_i)->eval(context);
-                } catch(CdlEvalException e) {
-                    active_if_value = false;
-                } catch(std::bad_alloc) {
-                    throw;
-                }
-                data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
-            }
-        }
-        
-        // If there has been any information related to the active status,
-        // add a blank line before we start worrying about values.
-        if (0 < data.size()) {
-            data += '\n';
-        }
-
-        if (CdlValueFlavor_None == this->get_flavor()) {
-            data += indent_string + "# There is no associated value.\n";
-        } else if (this->has_property(CdlPropertyId_Calculated)) {
-            CdlProperty_Expression expr = this->get_calculated_expression();
-            data += indent_string + "# Calculated value: " +
-                CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + '\n';
-            data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
-        } else if (!modifiable) {
-            data += indent_string + "# This value cannot be modified here.\n";
-        }
-         
-        // Output the flavor. This clutters up the savefile a bit.
-        // However it is necessary so that the user can distinguish
-        // between bool, booldata and data items
-        switch(this->get_flavor()) {
-          case CdlValueFlavor_Bool:
-            data += indent_string + "# Flavor: bool\n";
-            break;
-          case CdlValueFlavor_BoolData:
-            data += indent_string + "# Flavor: booldata\n";
-            break;
-          case CdlValueFlavor_Data:
-            data += indent_string + "# Flavor: data\n";
-            break;
-          default:
-            break;
-        }
-            
-        // If the value is not modifiable, just list the current value.
-        // This is not in a form that allows users to change it easily.
-        if (!modifiable) {
-            switch(this->get_flavor()) {
-              case CdlValueFlavor_None :
-                break;
-              case CdlValueFlavor_Bool :
-                data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + '\n';
-                break;
-              case CdlValueFlavor_BoolData :
-                data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + " " +
-                    CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
-                break;
-              case CdlValueFlavor_Data :
-                data += indent_string + "# Current_value: " +
-                    CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
-                break;
-              default:
-                break;
-            }
-        
-        } else if (CdlValueFlavor_None != this->get_flavor()) {
-
-            // If there is a user value, output it. Otherwise output
-            // a comment that allows users to edit the user value conveniently.
-            // It is assumed that the user will want a value similar to the
-            // default one, so that is provided as the starting point
-            if (this->has_source(CdlValueSource_User)) {
-                data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
-            } else {
-                data += indent_string + "# No user value, uncomment the following line to provide one.\n" +
-                    indent_string + "# user_value " +
-                    CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 0) + "\n";
-            }
-        
-            // Output a wizard value iff there is one. There is little point
-            // in letting users edit a wizard value, they should be running
-            // the wizard itself.
-            if (this->has_source(CdlValueSource_Wizard)) {
-                data += indent_string + "# The wizard value should not be edited directly.\n" +
-                    indent_string + "# Instead the wizard should be run again if necessary.\n";
-                data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
-            }
-
-            // List the inferred value. This needs to be a command,
-            if (this->has_source(CdlValueSource_Inferred)) {
-                data += indent_string + "# The inferred value should not be edited directly.\n";
-                data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
-            }
-        
-            // Output the value source iff it is unusual. If the current
-            // source is the highest priority one then there is no point
-            // in outputting a command, but a comment is usual. The value
-            // source needs to come after wizard and inferred values
-            std::string    current_source_string;
-            CdlValueSource expected_source = get_expected_source(this);
-            CdlValueSource current_source  = this->get_source();
-            if (!Cdl::source_to_string(current_source, current_source_string)) {
-                CYG_FAIL("Invalid current value source detected");
-            }
-            if (this->get_source() == expected_source) {
-                data += indent_string + "# value_source " + current_source_string + "\n";
-            } else {
-                data += indent_string + "value_source " + current_source_string + "\n";
-            }
-
-            // Always output the default value as a comment.
-            data += indent_string + "# Default value: ";
-            
-            // If there is no default_value expression or if the expression involves
-            // only constants, just output the current default value. Otherwise
-            // output both the expression and the value
-            CdlProperty prop = this->get_property(CdlPropertyId_DefaultValue);
-            CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
-            if ((0 == expr) || (0 == expr->references.size())) {
-                // There is no default_value expression, so just output the current value
-                data += CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4)
-                    + "\n";
-            } else {
-                data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + "\n";
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
-                data += indent_string + "#   --> " +
-                    CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4) + "\n";
-            }
-        }
-
-        // If there is a legal_values property, add the details.
-        if (this->has_property(CdlPropertyId_LegalValues)) {
-            CdlProperty_ListExpression lexpr = this->get_legal_values();
-            data += indent_string + "# Legal values: " +
-                CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4) + '\n';
-        
-            std::vector<CdlExpression>::const_iterator expr_i;
-            std::vector<std::pair<CdlExpression,CdlExpression> >::const_iterator ranges_i;
-            for (expr_i = lexpr->data.begin(); expr_i != lexpr->data.end(); expr_i++) {
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, *expr_i), indentation, 4);
-            }
-            for (ranges_i = lexpr->ranges.begin(); ranges_i != lexpr->ranges.end(); ranges_i++) {
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->first), indentation, 4);
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->second), indentation, 4);
-            }
-        }
-    
-        // If there is a check_proc property, mention this.
-        if (this->has_property(CdlPropertyId_CheckProc)) {
-            data += indent_string + "# There is a check_proc routine that will check the value.\n";
-        }
-
-        // Output all requires properties
-        if (this->has_property(CdlPropertyId_Requires)) {
-            std::vector<CdlProperty_GoalExpression> requires_goals;
-            this->get_requires_goals(requires_goals);
-            std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
-            for (expr_i = requires_goals.begin(); expr_i != requires_goals.end(); expr_i++) {
-                data += indent_string + "# Requires: " +
-                    CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) + "\n";
-
-                CdlExpression expr = (*expr_i)->get_expression();
-                data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
-                CdlEvalContext context(0, this, *expr_i);
-                bool active_if_value = false;
-                try {
-                    active_if_value = (*expr_i)->eval(context);
-                } catch(CdlEvalException e) {
-                    active_if_value = false;
-                } catch(std::bad_alloc) {
-                    throw;
-                }
-                data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
-            }
-        }
-
-        // Output all dependencies that other entities may have on this one.
-        const std::vector<CdlReferrer>& referrers = this->get_referrers();
-        if (0 != referrers.size()) {
-            data += '\n' + indent_string + "# The following properties are affected by this value\n";
-            std::vector<CdlReferrer>::const_iterator ref_i;
-            for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
-            
-                CdlNode source = ref_i->get_source();
-                CdlProperty source_prop = ref_i->get_source_property();
-                std::string prop_id = source_prop->get_property_name();
-            
-                if ((prop_id == CdlPropertyId_ActiveIf)     ||
-                    (prop_id == CdlPropertyId_Calculated)   ||
-                    (prop_id == CdlPropertyId_DefaultValue) ||
-                    (prop_id == CdlPropertyId_LegalValues)  ||
-                    (prop_id == CdlPropertyId_Requires)) {
-                
-                    data += indent_string + "# " + source->get_class_name() + " " + source->get_name() + "\n";
-                    data += indent_string + "#     " + prop_id + ": ";
-                    if ((prop_id == CdlPropertyId_Calculated) || (prop_id == CdlPropertyId_DefaultValue)) {
-                        CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(source_prop);
-                        CYG_ASSERT_CLASSC(expr);
-                        data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4);
-                    } else if (prop_id == CdlPropertyId_LegalValues) {
-                        CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(source_prop);
-                        CYG_ASSERT_CLASSC(lexpr);
-                        data += CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4);
-                    } else if ((prop_id == CdlPropertyId_ActiveIf) || (prop_id == CdlPropertyId_Requires)) {
-                        CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(source_prop);
-                        CYG_ASSERT_CLASSC(gexpr);
-                        data += CdlInterpreterBody::extend_comment(gexpr->get_original_string(), indentation, 4);
-                    }
-                    data += '\n';
-                }
-            }
-        }
+       // Right at the start, indicate whether or not this property is active.
+       if (!this->is_active()) {
+           data += indent_string + "# This option is not active\n";
+           // If the entity is inactive because the parent is inactive or disabled,
+           // say so here. This is in addition to any unsatisfied active_if
+           // conditions, which will be reported below.
+           CdlContainer parent = this->get_parent();
+           if (!parent->is_active()) {
+               data += indent_string + "# The parent " + parent->get_name() + " is not active\n";
+           }
+           CdlValuable tmp = dynamic_cast<CdlValuable>(parent);
+           if ((0 != tmp) && !tmp->is_enabled()) {
+               data += indent_string + "# The parent " + parent->get_name() + " is disabled\n";
+           }
+       }
+       if (this->has_active_if_conditions()) {
+           std::vector<CdlProperty_GoalExpression> active_if_conditions;
+           this->get_active_if_conditions(active_if_conditions);
+           std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
+           for (expr_i = active_if_conditions.begin(); expr_i != active_if_conditions.end(); expr_i++) {
+               data += indent_string + "# ActiveIf constraint: " +
+                   CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) +
+                   '\n';
+
+               CdlExpression expr = (*expr_i)->get_expression();
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
+               CdlEvalContext context(0, this, *expr_i);
+               bool active_if_value = false;
+               try {
+                   active_if_value = (*expr_i)->eval(context);
+               } catch(CdlEvalException e) {
+                   active_if_value = false;
+               } catch(std::bad_alloc) {
+                   throw;
+               }
+               data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
+           }
+       }
+
+       // If there has been any information related to the active status,
+       // add a blank line before we start worrying about values.
+       if (0 < data.size()) {
+           data += '\n';
+       }
+
+       if (CdlValueFlavor_None == this->get_flavor()) {
+           data += indent_string + "# There is no associated value.\n";
+       } else if (this->has_property(CdlPropertyId_Calculated)) {
+           CdlProperty_Expression expr = this->get_calculated_expression();
+           data += indent_string + "# Calculated value: " +
+               CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + '\n';
+           data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
+       } else if (!modifiable) {
+           data += indent_string + "# This value cannot be modified here.\n";
+       }
+
+       // Output the flavor. This clutters up the savefile a bit.
+       // However it is necessary so that the user can distinguish
+       // between bool, booldata and data items
+       switch(this->get_flavor()) {
+       case CdlValueFlavor_Bool:
+           data += indent_string + "# Flavor: bool\n";
+           break;
+       case CdlValueFlavor_BoolData:
+           data += indent_string + "# Flavor: booldata\n";
+           break;
+       case CdlValueFlavor_Data:
+           data += indent_string + "# Flavor: data\n";
+           break;
+       default:
+           break;
+       }
+
+       // If the value is not modifiable, just list the current value.
+       // This is not in a form that allows users to change it easily.
+       if (!modifiable) {
+           switch(this->get_flavor()) {
+             case CdlValueFlavor_None :
+               break;
+             case CdlValueFlavor_Bool :
+               data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + '\n';
+               break;
+             case CdlValueFlavor_BoolData :
+               data += indent_string + "# Current value: " + (this->is_enabled() ? one : zero) + " " +
+                   CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
+               break;
+             case CdlValueFlavor_Data :
+               data += indent_string + "# Current_value: " +
+                   CdlInterpreterBody::extend_comment(this->get_value(), indentation, 4) + '\n';
+               break;
+             default:
+               break;
+           }
+
+       } else if (CdlValueFlavor_None != this->get_flavor()) {
+
+           // If there is a user value, output it. Otherwise output
+           // a comment that allows users to edit the user value conveniently.
+           // It is assumed that the user will want a value similar to the
+           // default one, so that is provided as the starting point
+           if (this->has_source(CdlValueSource_User)) {
+               data += indent_string + "user_value " + value_to_string(this, CdlValueSource_User) + "\n";
+           } else {
+               data += indent_string + "# No user value, uncomment the following line to provide one.\n" +
+                   indent_string + "# user_value " +
+                   CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 0) + "\n";
+           }
+
+           // Output a wizard value iff there is one. There is little point
+           // in letting users edit a wizard value, they should be running
+           // the wizard itself.
+           if (this->has_source(CdlValueSource_Wizard)) {
+               data += indent_string + "# The wizard value should not be edited directly.\n" +
+                   indent_string + "# Instead the wizard should be run again if necessary.\n";
+               data += indent_string + "wizard_value " + value_to_string(this, CdlValueSource_Wizard) + "\n";
+           }
+
+           // List the inferred value. This needs to be a command,
+           if (this->has_source(CdlValueSource_Inferred)) {
+               data += indent_string + "# The inferred value should not be edited directly.\n";
+               data += indent_string + "inferred_value " + value_to_string(this, CdlValueSource_Inferred) + "\n";
+           }
+
+           // Output the value source iff it is unusual. If the current
+           // source is the highest priority one then there is no point
+           // in outputting a command, but a comment is usual. The value
+           // source needs to come after wizard and inferred values
+           std::string    current_source_string;
+           CdlValueSource expected_source = get_expected_source(this);
+           CdlValueSource current_source  = this->get_source();
+           if (!Cdl::source_to_string(current_source, current_source_string)) {
+               CYG_FAIL("Invalid current value source detected");
+           }
+           if (this->get_source() == expected_source) {
+               data += indent_string + "# value_source " + current_source_string + "\n";
+           } else {
+               data += indent_string + "value_source " + current_source_string + "\n";
+           }
+
+           // Always output the default value as a comment.
+           data += indent_string + "# Default value: ";
+
+           // If there is no default_value expression or if the expression involves
+           // only constants, just output the current default value. Otherwise
+           // output both the expression and the value
+           CdlProperty prop = this->get_property(CdlPropertyId_DefaultValue);
+           CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(prop);
+           if ((0 == expr) || (0 == expr->references.size())) {
+               // There is no default_value expression, so just output the current value
+               data += CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4)
+                   + "\n";
+           } else {
+               data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4) + "\n";
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(expr, expr), indentation, 4);
+               data += indent_string + "#   --> " +
+                   CdlInterpreterBody::extend_comment(value_to_string(this, CdlValueSource_Default), indentation, 4) + "\n";
+           }
+       }
+
+       // If there is a legal_values property, add the details.
+       if (this->has_property(CdlPropertyId_LegalValues)) {
+           CdlProperty_ListExpression lexpr = this->get_legal_values();
+           data += indent_string + "# Legal values: " +
+               CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4) + '\n';
+
+           std::vector<CdlExpression>::const_iterator expr_i;
+           std::vector<std::pair<CdlExpression,CdlExpression> >::const_iterator ranges_i;
+           for (expr_i = lexpr->data.begin(); expr_i != lexpr->data.end(); expr_i++) {
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, *expr_i), indentation, 4);
+           }
+           for (ranges_i = lexpr->ranges.begin(); ranges_i != lexpr->ranges.end(); ranges_i++) {
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->first), indentation, 4);
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(lexpr, ranges_i->second), indentation, 4);
+           }
+       }
+
+       // If there is a check_proc property, mention this.
+       if (this->has_property(CdlPropertyId_CheckProc)) {
+           data += indent_string + "# There is a check_proc routine that will check the value.\n";
+       }
+
+       // Output all requires properties
+       if (this->has_property(CdlPropertyId_Requires)) {
+           std::vector<CdlProperty_GoalExpression> requires_goals;
+           this->get_requires_goals(requires_goals);
+           std::vector<CdlProperty_GoalExpression>::const_iterator expr_i;
+           for (expr_i = requires_goals.begin(); expr_i != requires_goals.end(); expr_i++) {
+               data += indent_string + "# Requires: " +
+                   CdlInterpreterBody::extend_comment((*expr_i)->get_original_string(), indentation, 4) + "\n";
+
+               CdlExpression expr = (*expr_i)->get_expression();
+               data += CdlInterpreterBody::multiline_comment(follow_expr_references(*expr_i, expr), indentation, 4);
+               CdlEvalContext context(0, this, *expr_i);
+               bool active_if_value = false;
+               try {
+                   active_if_value = (*expr_i)->eval(context);
+               } catch(CdlEvalException e) {
+                   active_if_value = false;
+               } catch(std::bad_alloc) {
+                   throw;
+               }
+               data += indent_string + "#   --> " + (active_if_value ? one : zero) + "\n";
+           }
+       }
+
+       // Output all dependencies that other entities may have on this one.
+       const std::vector<CdlReferrer>& referrers = this->get_referrers();
+       if (0 != referrers.size()) {
+           data += '\n' + indent_string + "# The following properties are affected by this value\n";
+           std::vector<CdlReferrer>::const_iterator ref_i;
+           for (ref_i = referrers.begin(); ref_i != referrers.end(); ref_i++) {
+
+               CdlNode source = ref_i->get_source();
+               CdlProperty source_prop = ref_i->get_source_property();
+               std::string prop_id = source_prop->get_property_name();
+
+               if ((prop_id == CdlPropertyId_ActiveIf)     ||
+                   (prop_id == CdlPropertyId_Calculated)   ||
+                   (prop_id == CdlPropertyId_DefaultValue) ||
+                   (prop_id == CdlPropertyId_LegalValues)  ||
+                   (prop_id == CdlPropertyId_Requires)) {
+
+                   data += indent_string + "# " + source->get_class_name() + " " + source->get_name() + "\n";
+                   data += indent_string + "#     " + prop_id + ": ";
+                   if ((prop_id == CdlPropertyId_Calculated) || (prop_id == CdlPropertyId_DefaultValue)) {
+                       CdlProperty_Expression expr = dynamic_cast<CdlProperty_Expression>(source_prop);
+                       CYG_ASSERT_CLASSC(expr);
+                       data += CdlInterpreterBody::extend_comment(expr->get_original_string(), indentation, 4);
+                   } else if (prop_id == CdlPropertyId_LegalValues) {
+                       CdlProperty_ListExpression lexpr = dynamic_cast<CdlProperty_ListExpression>(source_prop);
+                       CYG_ASSERT_CLASSC(lexpr);
+                       data += CdlInterpreterBody::extend_comment(lexpr->get_original_string(), indentation, 4);
+                   } else if ((prop_id == CdlPropertyId_ActiveIf) || (prop_id == CdlPropertyId_Requires)) {
+                       CdlProperty_GoalExpression gexpr = dynamic_cast<CdlProperty_GoalExpression>(source_prop);
+                       CYG_ASSERT_CLASSC(gexpr);
+                       data += CdlInterpreterBody::extend_comment(gexpr->get_original_string(), indentation, 4);
+                   }
+                   data += '\n';
+               }
+           }
+       }
     }
 
     interp->write_data(chan, data);
     }
 
     interp->write_data(chan, data);
-    
+
     CYG_REPORT_RETURN();
 }
 
     CYG_REPORT_RETURN();
 }
 
@@ -3999,18 +3996,18 @@ CdlValuableBody::savefile_value_source_command(CdlInterpreter interp, int argc,
 
     CdlValueSource source = CdlValueSource_Invalid;
     if ((2 != argc) || !Cdl::string_to_source(argv[1], source) || !valuable->has_source(transaction, source)) {
 
     CdlValueSource source = CdlValueSource_Invalid;
     if ((2 != argc) || !Cdl::string_to_source(argv[1], source) || !valuable->has_source(transaction, source)) {
-        std::string msg = "Invalid value_source command for ";
-        msg += valuable->get_class_name() + " " + valuable->get_name() + "\n";
-        if (CdlValueSource_Invalid == source) {
-            msg += "Expecting one argument, which should \"user\", \"wizard\", \"inferred\" or \"default\"";
-        } else {
-            msg += "The specified value source is not valid.";
-        }
-        CdlParse::report_error(interp, "", msg);
+       std::string msg = "Invalid value_source command for ";
+       msg += valuable->get_class_name() + " " + valuable->get_name() + "\n";
+       if (CdlValueSource_Invalid == source) {
+           msg += "Expecting one argument, which should \"user\", \"wizard\", \"inferred\" or \"default\"";
+       } else {
+           msg += "The specified value source is not valid.";
+       }
+       CdlParse::report_error(interp, "", msg);
     } else {
     } else {
-        valuable->set_source(transaction, source);
+       valuable->set_source(transaction, source);
     }
     }
-    
+
     return TCL_OK;
 }
 
     return TCL_OK;
 }
 
@@ -4030,55 +4027,55 @@ CdlValuableBody::savefile_xxx_value_command(CdlInterpreter interp, int argc, con
     bool warn  = false;
     std::string msg = "";
     if (CdlValueFlavor_None == valuable->get_flavor()) {
     bool warn  = false;
     std::string msg = "";
     if (CdlValueFlavor_None == valuable->get_flavor()) {
-        msg = "Options with flavor \"none\" cannot be modified.";
-        error = true;
+       msg = "Options with flavor \"none\" cannot be modified.";
+       error = true;
     } else if (!valuable->is_modifiable()) {
     } else if (!valuable->is_modifiable()) {
-        msg = "This option is not user-modifiable.";
-        error = true;
+       msg = "This option is not user-modifiable.";
+       error = true;
     } else {
     } else {
-        switch(valuable->get_flavor()) {
-          case CdlValueFlavor_Bool :
-              if (2 != argc) {
-                  msg = "Invalid boolean value, expecting 0 or 1";
-                  error = true;
-              } else {
-                  bool x;
-                  Cdl::string_to_bool(argv[1], x);
-                  valuable->set_enabled(transact, x, source);
-              }
-              break;
-          case CdlValueFlavor_Data :
-              if (2 != argc) {
-                  msg = "Invalid data value, expecting a single string";
-                  error = true;
-              } else {
-                  valuable->set_value(transact, argv[1], source);
-              }
-              break;
-          case CdlValueFlavor_BoolData:
-              if (3 != argc) {
-                  msg = "Invalid booldata value, expecting a boolean followed by a string";
-                  error = true;
-              } else {
-                  bool x;
-                  Cdl::string_to_bool(argv[1], x);
-                  valuable->set_enabled_and_value(transact, x, argv[2], source);
-              }
-              break;
-          default:
-            CYG_FAIL("Invalid value flavor detected");
-            break;
-        }
+       switch(valuable->get_flavor()) {
+         case CdlValueFlavor_Bool :
+             if (2 != argc) {
+                 msg = "Invalid boolean value, expecting 0 or 1";
+                 error = true;
+             } else {
+                 bool x;
+                 Cdl::string_to_bool(argv[1], x);
+                 valuable->set_enabled(transact, x, source);
+             }
+             break;
+         case CdlValueFlavor_Data :
+             if (2 != argc) {
+                 msg = "Invalid data value, expecting a single string";
+                 error = true;
+             } else {
+                 valuable->set_value(transact, argv[1], source);
+             }
+             break;
+         case CdlValueFlavor_BoolData:
+             if (3 != argc) {
+                 msg = "Invalid booldata value, expecting a boolean followed by a string";
+                 error = true;
+             } else {
+                 bool x;
+                 Cdl::string_to_bool(argv[1], x);
+                 valuable->set_enabled_and_value(transact, x, argv[2], source);
+             }
+             break;
+         default:
+           CYG_FAIL("Invalid value flavor detected");
+           break;
+       }
     }
 
     if (error || warn) {
     }
 
     if (error || warn) {
-        msg = std::string("Invalid value command for ") + valuable->get_class_name() + " " + valuable->get_name() + "\n"
-            + msg;
-        if (error) {
-            CdlParse::report_error(interp, "", msg);
-        } else {
-            CdlParse::report_warning(interp, "", msg);
-        }
+       msg = std::string("Invalid value command for ") + valuable->get_class_name() + " " + valuable->get_name() + "\n"
+           + msg;
+       if (error) {
+           CdlParse::report_error(interp, "", msg);
+       } else {
+           CdlParse::report_warning(interp, "", msg);
+       }
     }
 
     return TCL_OK;
     }
 
     return TCL_OK;
index 96833efa24510abce93ca7dcb128a9ecd9555b02..bb3fb686b5dbaa4cd9124ef8f42563ceca6d8cb7 100644 (file)
@@ -1,4 +1,4 @@
-//{{{  Banner                           
+//{{{  Banner
 
 //============================================================================
 //
 
 //============================================================================
 //
@@ -8,29 +8,29 @@
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
 //
 //============================================================================
 //####COPYRIGHTBEGIN####
-//                                                                          
+//
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
 // ----------------------------------------------------------------------------
 // Copyright (C) 2002 Bart Veer
 // Copyright (C) 1999, 2000 Red Hat, Inc.
 //
 // This file is part of the eCos host tools.
 //
-// This program is free software; you can redistribute it and/or modify it 
-// under the terms of the GNU General Public License as published by the Free 
-// Software Foundation; either version 2 of the License, or (at your option) 
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
 // any later version.
 // any later version.
-// 
-// This program is distributed in the hope that it will be useful, but WITHOUT 
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
-// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 // more details.
 // more details.
-// 
+//
 // You should have received a copy of the GNU General Public License along with
 // You should have received a copy of the GNU General Public License along with
-// this program; if not, write to the Free Software Foundation, Inc., 
+// this program; if not, write to the Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 //
 // ----------------------------------------------------------------------------
-//                                                                          
+//
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
 //####COPYRIGHTEND####
 //============================================================================
 //#####DESCRIPTIONBEGIN####
@@ -44,7 +44,7 @@
 //============================================================================
 
 //}}}
 //============================================================================
 
 //}}}
-//{{{  #include's                       
+//{{{  #include's
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 // ----------------------------------------------------------------------------
 #include "cdlconfig.h"
 
 //}}}
 
 
 //}}}
 
-//{{{  Statics                          
+//{{{  Statics
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlWizardBody);
 
 //}}}
 
 // ----------------------------------------------------------------------------
 CYGDBG_DEFINE_MEMLEAK_COUNTER(CdlWizardBody);
 
 //}}}
-//{{{  Constructor                      
+//{{{  Constructor
 
 // ----------------------------------------------------------------------------
 // Constructor. The real work is actually done in the parse routine.
 CdlWizardBody::CdlWizardBody(std::string name_arg)
     : CdlNodeBody(name_arg),
 
 // ----------------------------------------------------------------------------
 // Constructor. The real work is actually done in the parse routine.
 CdlWizardBody::CdlWizardBody(std::string name_arg)
     : CdlNodeBody(name_arg),
-      CdlParentableBody(),
-      CdlUserVisibleBody()
+      CdlUserVisibleBody(),
+      CdlParentableBody()
 {
     CYG_REPORT_FUNCNAME("CdlWizardBody:: constructor");
     CYG_REPORT_FUNCARG1XV(this);
 
     cdlwizardbody_cookie = CdlWizardBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
 {
     CYG_REPORT_FUNCNAME("CdlWizardBody:: constructor");
     CYG_REPORT_FUNCARG1XV(this);
 
     cdlwizardbody_cookie = CdlWizardBody_Magic;
     CYGDBG_MEMLEAK_CONSTRUCTOR();
-    
+
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_POSTCONDITION_THISC();
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Destructor                       
+//{{{  Destructor
 
 // ----------------------------------------------------------------------------
 // The real work is done in the base classes.
 
 // ----------------------------------------------------------------------------
 // The real work is done in the base classes.
@@ -99,12 +99,12 @@ CdlWizardBody::~CdlWizardBody()
 
     cdlwizardbody_cookie = CdlWizardBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
 
     cdlwizardbody_cookie = CdlWizardBody_Invalid;
     CYGDBG_MEMLEAK_DESTRUCTOR();
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  parse_wizard()                   
+//{{{  parse_wizard()
 
 // ----------------------------------------------------------------------------
 // Parsing a wizard definition.
 
 // ----------------------------------------------------------------------------
 // Parsing a wizard definition.
@@ -120,7 +120,7 @@ CdlWizardBody::parse_wizard(CdlInterpreter interp, int argc, const char* argv[])
     std::string diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
     std::string diag_argv0      = CdlParse::get_tcl_cmd_name(argv[0]);
 
     CdlLoadable  loadable       = interp->get_loadable();
-    CdlContainer parent         = interp->get_container();       
+    CdlContainer parent         = interp->get_container();
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(parent);
     CdlToplevel  toplevel       = interp->get_toplevel();
     CYG_ASSERT_CLASSC(loadable);        // There should always be a loadable during parsing
     CYG_ASSERT_CLASSC(parent);
@@ -134,128 +134,128 @@ CdlWizardBody::parse_wizard(CdlInterpreter interp, int argc, const char* argv[])
     // may result in an exception.
     CdlWizard    new_wizard     = 0;
     try {
     // may result in an exception.
     CdlWizard    new_wizard     = 0;
     try {
-    
-        // Currently there are no command-line options. This may change in future.
-        if (3 != argc) {
-            CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
-                                   "'\nExpecting name and properties list.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
-            CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_wizard `") + argv[1]+ "'.");
-        } else if (0 != toplevel->lookup(argv[1])) {
-            CdlParse::report_error(interp, "", std::string("Wizard `") + argv[1] +
-                                   "' cannot be loaded.\nThe name is already in use.");
-        } else {
-            new_wizard = new CdlWizardBody(argv[1]);
-            toplevel->add_node(loadable, parent, new_wizard);
-
-            // At this stage new_wizard has been created and added to the hierarchy.
-            // The main work now is to add the properties.
-    
-            // Push the wizard as the current base object early on.
-            // This aids diagnostics.
-            CdlNode old_node = 0;
-
-            std::string tcl_result;
-            std::vector<CdlInterpreterCommandEntry>  new_commands;
-            std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
-            static CdlInterpreterCommandEntry commands[] =
-            {
-                CdlInterpreterCommandEntry("init_proc",          &parse_init_proc       ),
-                CdlInterpreterCommandEntry("decoration_proc",    &parse_decoration_proc ),
-                CdlInterpreterCommandEntry("screen",             &parse_screen          ),
-                CdlInterpreterCommandEntry("confirm_proc",       &parse_confirm_proc    ),
-                CdlInterpreterCommandEntry("cancel_proc",        &parse_cancel_proc     ),
-                CdlInterpreterCommandEntry("",                   0                      ),
-            };
-            int i;
-            for (i = 0; 0 != commands[i].command; i++) {
-                new_commands.push_back(commands[i]);
-            }
-            CdlParentableBody::add_property_parsers(new_commands);
-            CdlUserVisibleBody::add_property_parsers(new_commands);
-            CdlNodeBody::add_property_parsers(new_commands);
-    
-            // Now evaluate the body. If an error occurs then typically
-            // this will be reported via CdlParse::report_error(),
-            // but any exceptions will have been intercepted and
-            // turned into a Tcl error.
-            old_node = interp->push_node(new_wizard);
-            old_commands = interp->push_commands(new_commands);
-            result = interp->eval(argv[2], tcl_result);
-            interp->pop_node(old_node);
-            interp->pop_commands(old_commands);
-        
-            if (TCL_OK == result) {
-                // Even if there were errors, they were not fatal. There may
-                // now be a number of properties for this option, and some
-                // validation should take place. Start with the base classes.
-                new_wizard->CdlNodeBody::check_properties(interp);
-                new_wizard->CdlUserVisibleBody::check_properties(interp);
-                new_wizard->CdlParentableBody::check_properties(interp);
-
-                // The init_proc and decoration_proc properties are
-                // optional. The confirm_proc and cancel_proc properties
-                // are compulsory, and there should be at least one screen
-                // definition.
-                if (new_wizard->count_properties(CdlPropertyId_InitProc) > 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have only one `init_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_DecorationProc) > 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have only one `decoration_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_ConfirmProc) != 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have one `confirm_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_CancelProc) != 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have one `cancel_proc' property.");
-                }
-                if (new_wizard->count_properties(CdlPropertyId_Screen) < 1) {
-                    CdlParse::report_error(interp, "", "A wizard should have at least one `screen' property.");
-                }
-
-                // It is necessary to check that all the screen properties have unique numbers
-                const std::vector<CdlProperty>& properties = new_wizard->get_properties();
-                std::vector<CdlProperty>::const_iterator prop_i, prop_j;
-                for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-                    if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-                        continue;
-                    }
-                    CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-                    CYG_ASSERT_CLASSC(tclprop);
-                    cdl_int num1 = tclprop->get_number();
-
-                    for (prop_j = ++prop_i; prop_j != properties.end(); prop_j++) {
-                        if (CdlPropertyId_Screen != (*prop_j)->get_property_name()) {
-                            continue;
-                        }
-                        CdlProperty_TclCode tclprop2 = dynamic_cast<CdlProperty_TclCode>(*prop_j);
-                        CYG_ASSERT_CLASSC(tclprop2);
-                        cdl_int num2 = tclprop2->get_number();
-
-                        if (num1 == num2) {
-                            std::string tmp = "";
-                            Cdl::integer_to_string(num1, tmp);
-                            CdlParse::report_error(interp, "", "Duplicate definition of screen `" + tmp + "'.");
-                            break;
-                        }
-                    } 
-               }
-
-                // There is no restriction on what screen numbers can be
-                // defined (screens may appear and disappear during
-                // development). It would be nice to validate that the
-                // Tcl fragments never switch to an invalid screen, but
-                // there is no easy way to do that.
-            }
-        }
-            
+
+       // Currently there are no command-line options. This may change in future.
+       if (3 != argc) {
+           CdlParse::report_error(interp, "", std::string("Incorrect number of arguments to `") + diag_argv0 +
+                                  "'\nExpecting name and properties list.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[2]))) {
+           CdlParse::report_error(interp, "", std::string("Invalid property list for cdl_wizard `") + argv[1]+ "'.");
+       } else if (0 != toplevel->lookup(argv[1])) {
+           CdlParse::report_error(interp, "", std::string("Wizard `") + argv[1] +
+                                  "' cannot be loaded.\nThe name is already in use.");
+       } else {
+           new_wizard = new CdlWizardBody(argv[1]);
+           toplevel->add_node(loadable, parent, new_wizard);
+
+           // At this stage new_wizard has been created and added to the hierarchy.
+           // The main work now is to add the properties.
+
+           // Push the wizard as the current base object early on.
+           // This aids diagnostics.
+           CdlNode old_node = 0;
+
+           std::string tcl_result;
+           std::vector<CdlInterpreterCommandEntry>  new_commands;
+           std::vector<CdlInterpreterCommandEntry>* old_commands = 0;
+           static CdlInterpreterCommandEntry commands[] =
+           {
+               CdlInterpreterCommandEntry("init_proc",          &parse_init_proc       ),
+               CdlInterpreterCommandEntry("decoration_proc",    &parse_decoration_proc ),
+               CdlInterpreterCommandEntry("screen",             &parse_screen          ),
+               CdlInterpreterCommandEntry("confirm_proc",       &parse_confirm_proc    ),
+               CdlInterpreterCommandEntry("cancel_proc",        &parse_cancel_proc     ),
+               CdlInterpreterCommandEntry("",                   0                      ),
+           };
+           int i;
+           for (i = 0; 0 != commands[i].command; i++) {
+               new_commands.push_back(commands[i]);
+           }
+           CdlParentableBody::add_property_parsers(new_commands);
+           CdlUserVisibleBody::add_property_parsers(new_commands);
+           CdlNodeBody::add_property_parsers(new_commands);
+
+           // Now evaluate the body. If an error occurs then typically
+           // this will be reported via CdlParse::report_error(),
+           // but any exceptions will have been intercepted and
+           // turned into a Tcl error.
+           old_node = interp->push_node(new_wizard);
+           old_commands = interp->push_commands(new_commands);
+           result = interp->eval(argv[2], tcl_result);
+           interp->pop_node(old_node);
+           interp->pop_commands(old_commands);
+
+           if (TCL_OK == result) {
+               // Even if there were errors, they were not fatal. There may
+               // now be a number of properties for this option, and some
+               // validation should take place. Start with the base classes.
+               new_wizard->CdlNodeBody::check_properties(interp);
+               new_wizard->CdlUserVisibleBody::check_properties(interp);
+               new_wizard->CdlParentableBody::check_properties(interp);
+
+               // The init_proc and decoration_proc properties are
+               // optional. The confirm_proc and cancel_proc properties
+               // are compulsory, and there should be at least one screen
+               // definition.
+               if (new_wizard->count_properties(CdlPropertyId_InitProc) > 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have only one `init_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_DecorationProc) > 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have only one `decoration_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_ConfirmProc) != 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have one `confirm_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_CancelProc) != 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have one `cancel_proc' property.");
+               }
+               if (new_wizard->count_properties(CdlPropertyId_Screen) < 1) {
+                   CdlParse::report_error(interp, "", "A wizard should have at least one `screen' property.");
+               }
+
+               // It is necessary to check that all the screen properties have unique numbers
+               const std::vector<CdlProperty>& properties = new_wizard->get_properties();
+               std::vector<CdlProperty>::const_iterator prop_i, prop_j;
+               for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
+                   if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+                       continue;
+                   }
+                   CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+                   CYG_ASSERT_CLASSC(tclprop);
+                   cdl_int num1 = tclprop->get_number();
+
+                   for (prop_j = ++prop_i; prop_j != properties.end(); prop_j++) {
+                       if (CdlPropertyId_Screen != (*prop_j)->get_property_name()) {
+                           continue;
+                       }
+                       CdlProperty_TclCode tclprop2 = dynamic_cast<CdlProperty_TclCode>(*prop_j);
+                       CYG_ASSERT_CLASSC(tclprop2);
+                       cdl_int num2 = tclprop2->get_number();
+
+                       if (num1 == num2) {
+                           std::string tmp = "";
+                           Cdl::integer_to_string(num1, tmp);
+                           CdlParse::report_error(interp, "", "Duplicate definition of screen `" + tmp + "'.");
+                           break;
+                       }
+                   }
+              }
+
+               // There is no restriction on what screen numbers can be
+               // defined (screens may appear and disappear during
+               // development). It would be nice to validate that the
+               // Tcl fragments never switch to an invalid screen, but
+               // there is no easy way to do that.
+           }
+       }
+
     } catch(...) {
     } catch(...) {
-        if (0 != new_wizard) {
-            delete new_wizard;
-        }
-        throw;
+       if (0 != new_wizard) {
+           delete new_wizard;
+       }
+       throw;
     }
     }
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -269,7 +269,7 @@ CdlWizardBody::parse_cancel_proc(CdlInterpreter interp, int argc, const char* ar
     CYG_REPORT_FUNCNAMETYPE("parse_cancel_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_CancelProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_cancel_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_CancelProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -283,7 +283,7 @@ CdlWizardBody::parse_confirm_proc(CdlInterpreter interp, int argc, const char* a
     CYG_REPORT_FUNCNAMETYPE("parse_confirm_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_ConfirmProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_confirm_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_ConfirmProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -297,7 +297,7 @@ CdlWizardBody::parse_decoration_proc(CdlInterpreter interp, int argc, const char
     CYG_REPORT_FUNCNAMETYPE("parse_decoration_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_DecorationProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_decoration_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_DecorationProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -311,7 +311,7 @@ CdlWizardBody::parse_init_proc(CdlInterpreter interp, int argc, const char* argv
     CYG_REPORT_FUNCNAMETYPE("parse_init_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_InitProc, 0, 0);
     CYG_REPORT_FUNCNAMETYPE("parse_init_proc", "result %d");
 
     int result = CdlParse::parse_tclcode_property(interp, argc, argv, CdlPropertyId_InitProc, 0, 0);
-    
+
     CYG_REPORT_RETVAL(result);
     return result;
 }
     CYG_REPORT_RETVAL(result);
     return result;
 }
@@ -326,39 +326,39 @@ CdlWizardBody::parse_screen(CdlInterpreter interp, int argc, const char* argv[])
     CYG_REPORT_FUNCNAME("CdlParse::parse_screen");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
     CYG_REPORT_FUNCNAME("CdlParse::parse_screen");
     CYG_REPORT_FUNCARG1("argc %d", argc);
     CYG_PRECONDITION_CLASSC(interp);
-    
+
     CdlProperty_TclCode new_property = 0;
     cdl_int number = 0;
     CdlProperty_TclCode new_property = 0;
     cdl_int number = 0;
-    
+
     try {
     try {
-        std::vector<std::pair<std::string,std::string> > options;
-        int data_index      = CdlParse::parse_options(interp, std::string("property ") + argv[0], 0, argc, argv, 1, options);
-        if ((data_index + 2) != argc) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
-                                         "    Expecting two arguments, a number and some Tcl code.");
-        } else if (!Cdl::string_to_integer(argv[data_index], number)) {
-            CdlParse::report_property_parse_error(interp, argv[0], std::string(argv[data_index]) + " is not a valid number.");
-        } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index + 1]))) {
-            CdlParse::report_property_parse_error(interp, argv[0], "incomplete Tcl code fragment.");
-        } else {
-            
-            CdlNode current_node = interp->get_node();
-            CYG_ASSERTC(0 != current_node);
-            new_property = CdlProperty_TclCodeBody::make(current_node, CdlPropertyId_Screen, number, argv[data_index + 1],
-                                                         argc, argv, options);
-        }
+       std::vector<std::pair<std::string,std::string> > options;
+       int data_index      = CdlParse::parse_options(interp, std::string("property ") + argv[0], 0, argc, argv, 1, options);
+       if ((data_index + 2) != argc) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string("Invalid number of arguments.\n") +
+                                        "    Expecting two arguments, a number and some Tcl code.");
+       } else if (!Cdl::string_to_integer(argv[data_index], number)) {
+           CdlParse::report_property_parse_error(interp, argv[0], std::string(argv[data_index]) + " is not a valid number.");
+       } else if (!Tcl_CommandComplete(CDL_TCL_CONST_CAST(char*, argv[data_index + 1]))) {
+           CdlParse::report_property_parse_error(interp, argv[0], "incomplete Tcl code fragment.");
+       } else {
+
+           CdlNode current_node = interp->get_node();
+           CYG_ASSERTC(0 != current_node);
+           new_property = CdlProperty_TclCodeBody::make(current_node, CdlPropertyId_Screen, number, argv[data_index + 1],
+                                                        argc, argv, options);
+       }
     } catch(...) {
     } catch(...) {
-        if (0 != new_property) {
-            delete new_property;
-        }
-        throw;
+       if (0 != new_property) {
+           delete new_property;
+       }
+       throw;
     }
     }
-    
+
     return TCL_OK;
 }
 
 //}}}
     return TCL_OK;
 }
 
 //}}}
-//{{{  Persistence                      
+//{{{  Persistence
 
 // ----------------------------------------------------------------------------
 // For now there is no information in a wizard that should end up in a
 
 // ----------------------------------------------------------------------------
 // For now there is no information in a wizard that should end up in a
@@ -376,12 +376,12 @@ CdlWizardBody::save(CdlInterpreter interp, Tcl_Channel chan, int indentation, bo
     CYG_UNUSED_PARAM(Tcl_Channel, chan);
     CYG_UNUSED_PARAM(int, indentation);
     CYG_UNUSED_PARAM(bool, minimal);
     CYG_UNUSED_PARAM(Tcl_Channel, chan);
     CYG_UNUSED_PARAM(int, indentation);
     CYG_UNUSED_PARAM(bool, minimal);
-    
+
     CYG_REPORT_RETURN();
 }
 
 //}}}
     CYG_REPORT_RETURN();
 }
 
 //}}}
-//{{{  Data access                      
+//{{{  Data access
 
 // ----------------------------------------------------------------------------
 bool
 
 // ----------------------------------------------------------------------------
 bool
@@ -419,15 +419,15 @@ CdlWizardBody::has_screen(cdl_int screen) const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        CYG_ASSERT_CLASSC(tclprop);
-        if (screen == tclprop->get_number()) {
-            result = true;
-            break;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       CYG_ASSERT_CLASSC(tclprop);
+       if (screen == tclprop->get_number()) {
+           result = true;
+           break;
+       }
     }
     CYG_REPORT_RETVAL(result);
     return result;
     }
     CYG_REPORT_RETVAL(result);
     return result;
@@ -444,9 +444,9 @@ CdlWizardBody::get_init_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_InitProc);
     if (0 != prop) {
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_InitProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        CYG_ASSERT_CLASSC(tclprop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       CYG_ASSERT_CLASSC(tclprop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -464,9 +464,9 @@ CdlWizardBody::get_decoration_proc() const
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_DecorationProc);
     if (0 != prop) {
     cdl_tcl_code& result = null_result;
     CdlProperty prop = get_property(CdlPropertyId_DecorationProc);
     if (0 != prop) {
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
-        CYG_ASSERT_CLASSC(tclprop);
-        result = tclprop->get_code();
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(prop);
+       CYG_ASSERT_CLASSC(tclprop);
+       result = tclprop->get_code();
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -526,15 +526,15 @@ CdlWizardBody::get_first_screen_number() const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        cdl_int its_num = tclprop->get_number();
-        if (!result_set || (its_num < result)) {
-            result = its_num;
-            result_set = true;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       cdl_int its_num = tclprop->get_number();
+       if (!result_set || (its_num < result)) {
+           result = its_num;
+           result_set = true;
+       }
     }
 
     CYG_REPORT_RETVAL((int) result);
     }
 
     CYG_REPORT_RETVAL((int) result);
@@ -560,16 +560,16 @@ CdlWizardBody::get_first_screen() const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        cdl_int its_num = tclprop->get_number();
-        if (!result_set || (its_num < result_num)) {
-            result     = tclprop->get_code();
-            result_num = its_num;
-            result_set = true;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       cdl_int its_num = tclprop->get_number();
+       if (!result_set || (its_num < result_num)) {
+           result     = tclprop->get_code();
+           result_num = its_num;
+           result_set = true;
+       }
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -589,14 +589,14 @@ CdlWizardBody::get_screen(cdl_int screen) const
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
     const std::vector<CdlProperty>& properties = get_properties();
     std::vector<CdlProperty>::const_iterator prop_i;
     for (prop_i = properties.begin(); prop_i != properties.end(); prop_i++) {
-        if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
-            continue;
-        }
-        CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
-        if (tclprop->get_number() == screen) {
-            result     = tclprop->get_code();
-            break;
-        }
+       if (CdlPropertyId_Screen != (*prop_i)->get_property_name()) {
+           continue;
+       }
+       CdlProperty_TclCode tclprop = dynamic_cast<CdlProperty_TclCode>(*prop_i);
+       if (tclprop->get_number() == screen) {
+           result     = tclprop->get_code();
+           break;
+       }
     }
 
     CYG_REPORT_RETURN();
     }
 
     CYG_REPORT_RETURN();
@@ -604,7 +604,7 @@ CdlWizardBody::get_screen(cdl_int screen) const
 }
 
 //}}}
 }
 
 //}}}
-//{{{  check_this()                     
+//{{{  check_this()
 
 // ----------------------------------------------------------------------------
 // check_this(). There is very little data associated with a wizard,
 
 // ----------------------------------------------------------------------------
 // check_this(). There is very little data associated with a wizard,
@@ -613,14 +613,14 @@ bool
 CdlWizardBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlWizardBody_Magic != cdlwizardbody_cookie) {
 CdlWizardBody::check_this(cyg_assert_class_zeal zeal) const
 {
     if (CdlWizardBody_Magic != cdlwizardbody_cookie) {
-        return false;
+       return false;
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlUserVisibleBody::check_this(zeal);
 }
 
 //}}}
     }
     CYGDBG_MEMLEAK_CHECKTHIS();
     return CdlUserVisibleBody::check_this(zeal);
 }
 
 //}}}
-//{{{  misc                             
+//{{{  misc
 
 // ----------------------------------------------------------------------------
 
 
 // ----------------------------------------------------------------------------