diff --git a/01_git/CHANGES b/01_git/CHANGES
deleted file mode 100644
index 5a48a149514082e98a5a0bc42abff2546c206239..0000000000000000000000000000000000000000
--- a/01_git/CHANGES
+++ /dev/null
@@ -1,168 +0,0 @@
-2.8	12 December 2000	albert@tigr.net
-
-	Applied the patch supplied by Brian Lindholm 
-	<lindhobr@vasale01misge.salem.ge.com>:
-
-	"The program ignores a "drawSecondHand 0" line in the "~/.astime" 
-	file.  I used the following correction to fix the problem..."
-
-2.7	25 July 2000	albert@tigr.net
-
-	Applied the patch supplied by Janne Korkkula <jannek@cc.hut.fi>:
-
-	"One minor detail annoyed us, the 3D-border. Pushed_in or standout, no
-	good when docked in a Fvwm2 button box. I added a -noborder option and
-	noborder rc file directive; Here's the unified diff (three source
-	files affected) in case you'd consider to include something like it
-	in the standard source tree..."
-
-2.6	08 May 2000	albert@tigr.net
-
-	Applied the patch supplied by Bill Davidson <bill@kayhay.com>:
-
-	"I changed PI to PInf in state.h, astime.c, and astime_x.c. While I was
-	at it I deleted the line in astime_x.c that defines the variable "pi",
-	and in the two places it was referenced I substituted M_PI.  I figured
-	the constant is there, might as well use it."
-
-2.5	16 December 1999	albert@tigr.net
-
-	Changed the internal loop to react to the absolute
-	value of the difference in time for the update.
-	Suggested by Nicola Bernardini <nicb@axnet.it>
-
-2.4	02 July 1999	albert@tigr.net
-
-	Nothing spectacular, just a maintenance release.
-	A few places contained "asapm" instead of "astime" -
-	talking about evils of cut-n-paste *grin*.
-
-2.3	09 June 1999	albert@tigr.net
-
-	A long-awaited option. I wanted to do it for so long
-	I cannot remember when I started to think of it anymore.
-	Anyway, you can label the asclock with some text. You
-	can specify the font and the color for the text you give.
-	The option '-ltop' that makes the label appear at the
-	top rather than the bottom does not work quite as I
-	expected. If you give me a hand with that - I will be happy :)
-
-2.2	23 May 1999	albert@tigr.net
-
-	The WindowMaker users complained that they cannot
-	execute anything by clicking on the clock's icon.
-	I added a piece that should execute programs when
-	the user uses the -withdrawn option.
-
-2.1	21 May 1999	albert@tigr.net
-
-	I had to fix the -geometry option again. Some stupid
-	code ordering problems resulted in the window being
-	off by a couple of pixels. Now it all should be fine.
-
-2.0	02 May 1999	albert@mail.dma.be
-
-	William Kostis <kostis@ee.cornell.edu> joined in on the
-	development of the astime applet.
-	He added a lot of new options and created fancy new looks
-	for the astime window. There are too many to describe
-	here. Use a big window (200x200 will do :) and experiment
-	with the options. You'll like it.
-	William added also the configuration resource file.
-	Here is how he explains the changes himself:
-
-  * There are several new hand rendering modes (polygonal hands, to look   
-    like a new version of xclock).
-  * Hand size/geometry can be specified, allowing the creation of some very
-    futuristic/artistic looking analog clocks.
-  * There are many new options for configuring the display of hands and
-    foreground items.                                                  
-  * Most (nearly all...that may wait until the next version) of the colors
-    can be specified by the user.
-  * (Here's one I think you might like) The program looks for a
-    configuration file (.astimerc) that can be used to specify all of the
-    programs parameters.
-  * Execution of programs at certain times (specified in the .astimerc) is
-    now possible using the "at" directive.
-  * Any line in the .astimerc file can be "commented out" by a leading '#'
-    character, which is useful for temporary changes.
-  * I've tried to clean up a bunch of things so that the program still runs
-    in a reasonable amount of space and with a small amount of cpu time.   
-
-	I added the -rc option to all of that so that
-	you can specify different configuration files
-	for the different clocks you are running.
-
-	I fixed a silly bug when the window would not draw
-	correctly if both a size and negative coordinates
-	were specified with the -geometry.
-
-1.7	02 Feb 1999
-	
-	Jakob Henriksson <jakobh@mail.bip.net> sent in a patch
-	to execute some external program (using 'system()' call)
-	when the clock is clicked on. I decided to tweak it a
-	little further and make it so that by default astime
-	does not recognize mouse clicks (ButtonPressMask)
-	but if you specify a '-exe' switch it asks to get those
-	events. This means it does not execute anything at all
-	and does not even see mouse clicks by default :)
-
-1.6	01 Feb 1999
-
-	Fixed an AM/PM bug that changed AM to PM at 1300 
-	instead of 1200. Thanks to Lionel Kirsher <geis@aic.fr>
-	for pointing that out.
-
-1.5	05 Jan 1999
-
-	Added a possibility to shift the clock to a different
-	timezone by providing a number of hours offset (-shift).
-	Added an AM/PM indicator and "-noampm" option.
-	Added a "-title" option to be able to swallow a few clocks
-	in the wharf at once.
-	Fixed the man page.
-
-1.4	02 Jan 1999
-
-	Phew, finally, I got it all fixed... I mean the 
-	'-geometry' option. Now I know why you have the
-	window gravity :)
-
-1.3	31 Dec 1998
-
-	fixed a bit handling of the negative coordinates in
-	the -geometry option. It is far from the perfect yet
-	but for the moment will do. At least with -iconic
-	it works almost correctly. I still have no idea how
-	to retrieve the total size of the window (including
-	frame) so the regular window offset is not right yet.
-
-1.2	08 Dec 1998
-
-	changed the window appearance so that the clock
-	takes all available space horizontally
-
-	uncommented the line that sets the window manager
-	hints for size and position - you could actually
-	resize the clock and it did not react to the
-	position arguments; just forgot that in 1.1 :)
-
-	added back those triangles that mark 3,6,9,12 o'clock
-
-1.1	06 Dec 1998
-	
-	the '-noday' disappears, it's '-nodate' switching
-	off both date and day-of-the-week displays
-
-	when the '-nodate' is specified the clock is drawn
-	full-screen taking advantage of the additional space
-
-	'-geometry' is fully supported so that you can give
-	almost any size as a parameter to the clock
-
-	autoconf'ed
-
-1.0	12 Nov 1998
-	The original version.
-
diff --git a/01_git/CMakeLists.txt b/01_git/CMakeLists.txt
deleted file mode 100644
index 1de7ff7826a7c9cbcf1e0c9bc494635872dffb6c..0000000000000000000000000000000000000000
--- a/01_git/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-Project(astime)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
-
-include(compilerwarnings)
-include(cppcheck)
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNDEBUG")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_BSD_SOURCE")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXOPEN_SOURCE=600")
-#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto=jobserver")
-#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
-
-file(GLOB HEADERS "${PROJECT_SOURCE_DIR}/include/*.h")
-
-add_subdirectory(src)
-
-include_directories(${PROJECT_SOURCE_DIR}/include)
-
-find_package(X11)
-find_library(MATH_LIB NAMES m)
-include_directories(${X11_Xpm_INCLUDE_PATH})
-include_directories(${X11_X11_INCLUDE_DIR})
-
-add_executable(astime astime.c ${HEADERS})
-target_link_libraries(astime
-	safecopy
-	astime_x
-        sunriset
-        xprimitives
-	${X11_Xpm_LIB}
-	${X11_X11_LIB}
-	${MATH_LIB})
-
-install(PROGRAMS astime RUNTIME DESTINATION bin)
-install(FILES astime.1
-  DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 COMPONENT doc)
diff --git a/01_git/INSTALL b/01_git/INSTALL
deleted file mode 100644
index 9d198db8baaa042a0c36cbce6a38bd51c950d73c..0000000000000000000000000000000000000000
--- a/01_git/INSTALL
+++ /dev/null
@@ -1,50 +0,0 @@
-DEPENDENCIES
-============
-For astime you need xpm library. From the xpmlib manual:
-New XPM updates are announced on the comp.windows.x newsgroup, and on the
-"xpm-talk" list. All new "official" XPM releases can be found by ftp on:
-
-    ftp.x.org          (18.112.44.100) contrib   (Boston, USA)
-    koala.inria.fr     (138.96.24.30) pub/xpm    (Sophia Antipolis, France)
-
-INSTALLATION WITH autoconf
-==========================
-To install the astime on your system:
-
-        ./configure
-
-	make
-
-	make install
-
-Now you can copy one of the files
-	sample.astimerc 
-	default.astimerc
-	modern.astimerc
-	thick.astimerc
-to ~/.astimerc and customize it to your liking.
-"sample.astimerc" provides a look somewhat like xclock and the
-"default.astimerc" provides the pre-2.0 default look.
-
-INSTALLATION WITHOUT autoconf
-=============================
-To install the astime on your system:
-	
-	Copy the Makefile.UNIX to Makefile
-
-	check if the paths are correct for
-	your system in the Makefile
-
-	make
-
-	make install
-
-Now you can copy one of the files
-	sample.astimerc 
-	default.astimerc
-	modern.astimerc
-	thick.astimerc
-to ~/.astimerc and customize it to your liking.
-"sample.astimerc" provides a look somewhat like xclock and the
-"default.astimerc" provides the pre-2.0 default look.
-
diff --git a/01_git/LICENSE b/01_git/LICENSE
deleted file mode 100644
index ac9173124b9aae8c78df8122d2ba1b72dd2ccd38..0000000000000000000000000000000000000000
--- a/01_git/LICENSE
+++ /dev/null
@@ -1,16 +0,0 @@
-astime is an analogue clock utility for X Windows.
-Copyright (c) 1998-2000  Albert "Tigr" Dorofeev <albert@tigr.net>
-
-   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; version 2 dated June, 1991.
-
-   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.
-
-   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., 675 Mass Ave., Cambridge, MA 02139, USA.
-
diff --git a/01_git/README b/01_git/README
deleted file mode 100644
index 71f61e556a2716cb4e540631d10a8cccc6179324..0000000000000000000000000000000000000000
--- a/01_git/README
+++ /dev/null
@@ -1,81 +0,0 @@
-astime is an analogue clock utility for X Windows.
-Copyright (c) 1998-2000  Albert "Tigr" Dorofeev <albert@tigr.net>
-Copyright (c) 1999 William Kostis <kostis@ee.cornell.edu>
-For the updates check http://www.tigr.net/afterstep/
-
-Description:
-============
-
-This is an AfterStep look & feel analog clock for X Windows.
-
-Why do we need a yet another clock? Hmmm... It's simple.
-I could not find a clock that I could customize to my Wharf
-in a decent way. I got frustrated and so I wrote one.
-
-I wear an analogue watch and I am not at all used to reading
-the digital watches and clocks. It takes only a glance on
-the analogue watch to know what the time is and it takes a while
-to read the digital watch. There is a beautiful "asclock"
-for those who like digital watches. I needed an analogue clock.
-
-The tool shows a usual analogue clock dial almost in the center.
-Actually, I tried first to make one that would be right in the center 
-but couldn't. It's pretty hard when you have 54x54 background.
-So, I gave up and decided that I will have it "intentionally"
-moved away from the center. The top left corner contains the
-day-of-week indicator. The bottom line is used to display
-the current date.
-
-The date and day-of-the-week displays may be switched off with
-a command-line option. Then the clock occupies the whole view.
-The X11 '-geometry' option allows you to set the size to any
-other size rather than "standard" AfterStep 54x54.
-
-The program may be used directly or in the Afterstep "wharf". It also 
-supports the WindowMaker docker (-withdrawn option). It may be used 
-in all other window managers as well. It runs well as an icon.
-
-Khe... allow me to introduce a few major changes here. William
-Kostis <kostis@ee.cornell.edu> is a co-developer (version 2.0) and he
-immediately came up with a completely new look. astime could
-already run in a bigger window than 54x54 before and he uses
-it outside of Wharf (not that he has one running good ol' fvwm2).
-So he decided to add fancy rendering for the clock hands and
-a few options to be able to customize it properly. The new options
-look much better for bigger size window due to the small details that
-become indistinguishable in the little 54x54 standard window.
-
-I am not sure anymore how I should describe the clock then. Its
-look ranges now from that original "AfterStep-ish" look all the
-way through the color spectrum to the good ol' xclock. Well,
-whatever. Check it out for yourself. Make the window bigger
-(use -geometry) and experiment.
-
-You may want to have a look in the CHANGES file for the history of updates.
-
-Credits:
-========
-
-Great many thanks to authors of all those clocks that I played with.
-
-There may be some other people's code carried over from asapm. See 
-asapm's README for detailed credits.
-
-Thanks to Jakob Henriksson <jakobh@mail.bip.net> for the '-exe'
-switch code.
-Thanks to Bill Davidson <bill@kayhay.com> for the "PI" patch.
-Thanks to Janne Korkkula <jannek@cc.hut.fi> for the "noborder" patch.
-Thanks to Brian Lindholm <lindhobr@vasale01misge.salem.ge.com> for a patch.
-
-Distribution:
-=============
-
-The application and the source code are under GPL. See LICENSE 
-file for details.
-
-Naturally, I would like to hear of all changes and improvements 
-made to this utility.
-
-Enjoy and may the source be with you,
-Albert "Tigr"
-
diff --git a/01_git/astime.1 b/01_git/astime.1
deleted file mode 100644
index 7d4bfcf769c31b2038ce726fe394aebc6299d553..0000000000000000000000000000000000000000
--- a/01_git/astime.1
+++ /dev/null
@@ -1,597 +0,0 @@
-.TH astime 1 "26 April 2006" "cvs Version"
-.UC
-.SH NAME
-\fBastime\fP \- the AfterStep analogue clock
-.SH SYNOPSIS
-.B astime
-[-h] [-H] [-V]
-        [-iconic] [-withdrawn] [-standout] [-noborder]
-        [-geometry \fI[WxH][+|-]x[+|-]y\fP]
-        [-rc \fIfile name\fP]
-        [-u \fIupdate rate\fP]
-        [-exe \fIprogram name\fP]
-        [-shift \fIhours\fP]
-        [-ns] [-nd] [-nap]
-        [-display \fIdisplay\fP]
-        [-title \fIname\fP]
-        [-bg \fIcolor\fP]
-        [-fg \fIcolor\fP]
-        [-sec \fIcolor\fP]
-        [-min \fIcolor\fP]
-        [-hour \fIcolor\fP]
-        [-day \fIcolor\fP]
-        [-date \fIcolor\fP]
-        [-ampm \fIcolor\fP]
-        [-nt] [-at] [-fs]
-        [-ts] [-fh] [-nh]
-        [-ht \fInumber\fP]
-        [-ot \fInumber\fP]
-        [-nf]
-        [-label \fItext\fP]
-        [-fn \fIfont name\fP]
-        [-lcol \fIlabel color\fP]
-        [-ltop]
-        [-24 [-srt [-srtd \fIcolor\fP] [-srtn \fIcolor\fP] 
-        [-lat \fIlatitude\fP] [-lon \fIlongitude\fP]]] 
-        [-cc]
-.SH DESCRIPTION
-The \fBastime\fP is a X11 application that acts as
-an analogue clock that we all are familiar with.
-It shows the current time on the dial. The day of
-the week is in the upper left corner and the current
-date is at the bottom. The AM/PM indicator is in
-the top right corner.
-
-.SH CONFIGURATION OPTIONS
-.IP "-h or -H"
-.RS
-Prints a short description and usage message.
-.RE
-.IP "-V"
-.RS
-Version control. Prints out the version of the program.
-.RE
-.IP "-rc <file name>"
-.RS
-Read the configuration from the given resource file.
-The default resource file read if none are given on
-the command line is ~/.astimerc. The settings on the
-command line overwrite any settings read from the
-resource file.  A single '#' character can be used to
-"comment out" any line in the .astimerc file, which is
-useful for making temporary changes.
-.RE
-.IP "-geometry [WxH][+|-]x[+|-]y"
-.RS
-Displays the window at the specified location
-on the screen and resizes the window to the specified
-size WxH. This works as standard X Windows
-geometry option. (See XParseGeometry (3x)).
-.RE
-.IP "-iconic"
-.RS
-Starts the \fBastime\fP application in the iconized mode.
-The icon has the same appearance with the main
-window.
-When this option is given, the -position refers to
-the position of the icon window as well as the main window.
-.RE
-.IP "-withdrawn"
-.RS
-Starts the \fBastime\fP application in the withdrawn mode.
-This option is necessary to be able to dock the
-\fBastime\fP in the WindowMaker dock.
-When this option is given, the -position refers to
-the position of the icon window as well as the main window.
-\fBastime\fP ignores the -iconic option when started
-in withdrawn mode.
-.RE
-.IP "-standout"
-.RS
-This changes the appearance of the \fBastime\fP display from
-"pushed-in" to "popped-out". The first is the default look.
-The "popped-out" applets look much better in WindowMaker's dock
-according to some opinions. Give it a try in any case.
-.RE
-.IP "-noborder"
-.RS
-The clock looses its border effectively becoming a 2D 
-clock instead of having a raised or lowered faceplate.
-This option is reportedly recommended for FVWM use.
-When this option is used "-standout" is ignored.
-.RE
-.IP "-u <update rate>"
-.RS
-Changes the polling rate for updating the clock.
-The update rate is specified in seconds. The value
-of 1 is the minimum. Default value is 1 second.
-Updating at a different value is hardly a good
-idea when you have the seconds hand on. Switch
-it off with the "-nosec" option.
-.RE
-.IP "-exe <program name>"
-.RS
-Specifies which program should be executed when you click on
-the clock's face. If this switch is not specified, \fBastime\fP
-does not intercept the mouse clicks at all. So, by default,
-nothing is run. This option uses system(3) call to execute
-the specified program. The maximum length of the command is
-restricted to 255 characters (for no particular reason).
-
-The icon does not usually respond to mouse clicks (you would
-want to be able to de-iconify the window, right?) unless you
-are running in the "withdrawn" mode (-withdrawn option).
-Then the icon responds the same way the clock face does.
-.RE
-.IP "-shift <hours>"
-.RS
-Shifts the clock by the specified number of hours. This is
-a simple way of putting a clock in a different timezone. 
-Useful when you want several clocks showing the current
-time in different places. The value can be both positive
-and negative. The values above 23 and below -23 are silently
-ignored.
-
-Note that the date and day of the week are not adjusted.
-.RE
-.IP "-ns"
-.RS
-Do not draw the seconds hand of the clock. Only the
-minutes and hours hands are drawn.
-.RE
-.IP "-nd"
-.RS
-Do not show the current date.
-.RE
-.IP "-nap"
-.RS
-Do not show the AM/PM indicator.
-.RE
-.IP "-display <name>"
-.RS
-The name of the display to start the window in.
-It works just as X Windows display option.
-.RE
-.IP "-title <name>"
-.RS
-Set the window title and the icon title to the specified
-name.
-.RE
-.IP "-bg <color>"
-.RS
-Changes the color of the background of the dial.
-Default colour is #385971.
-.RE
-.IP "-fg <color>"
-.RS
-Changes the color of the foreground of the dial.
-Default colour is #ffffff.
-.RE
-.IP "-sec <color>"
-.RS
-Changes the color of the second hand of the clock.
-Default colour is #efc669.
-.RE
-.IP "-min <color>"
-.RS
-Changes the color of the minute hand of the clock.
-Default colour is #ff3030.
-.RE
-.IP "-hour <color>"
-.RS
-Changes the color of the hour hand of the clock.
-Default colour is #ef3838.
-.RE
-.IP "-day <color>"
-.RS
-Changes the color of the day-of-the-week display.
-Default colour is #a0a0a0.
-.RE
-.IP "-date <color>"
-.RS
-Changes the color of the date display.
-Default colour is #a0a0a0.
-.RE
-.IP "-ampm <color>"
-.RS
-Changes the color of the AM/PM display.
-Default colour is #a0a0a0.
-.RE
-.IP "-nt"
-.RS
-Don't draw the second ticks on the clock face.
-.RE
-.IP "-at"
-.RS
-Draw all ticks, not only every 5 seconds.
-.RE
-.IP "-fs"
-.RS
-"Floating" second indicator in the style of xclock.
-.RE
-.IP "-ts"
-.RS
-Use a thin second hand - default in the regular mode.
-Use it to change the appearance of the second hand
-while in the -fh mode. It looks very good with the
-normal hands of large thickness too.
-.RE
-.IP "-fh"
-.RS
-Fancy hands mode. Renders fancy xclock-style hands.
-.RE
-.IP "-nh"
-.RS
-"Neon" hands. Try this with the fancy hands mode.
-.RE
-.IP "-ht <number>"
-.RS
-Hand thickness. Can be a number from 0 to 200.
-.RE
-.IP "-ot <number>"
-.RS
-Hand outline thickness. Can be a number from 0 to 200.
-.RE
-.IP "-nf"
-.RS
-No foreground. Equal to "-nd -nap -nt".
-.RE
-.IP "-label <text>"
-.RS
-Asks the \fBastime\fP to label the clock's face with the specified
-text. Useful when you want to distinguish between different
-instances of \fBastime\fP running on your desktop.
-.RE
-.IP "-fn <font name>"
-.RS
-Use the specified font for the label. The default font is
-"-*-helvetica-medium-r-*-*-9-240-*-*-*-*-*-*". Don't ask me why,
-I do not know, I just found it fits my desktop well. If you have
-a better idea - send me a mail. The font is loaded only if you
-specify a label and has otherwise no effect.
-.RE
-.IP "-lcol <label color>"
-.RS
-Draw the label using the specified color. The default color
-is #a0a0a0. Has no effect if you did not specify a label.
-.RE
-.IP "-ltop"
-.RS
-Draw the label on the top of the clock's face instead of
-drawing it at the bottom by default. Does not do anything
-if a label was not specified.
-.RE
-.IP "-24"
-.RS
-Run in 24 hour mode.
-.RE
-.IP "-srt"
-.RS
-Show sunrise and sunset. This enables twentyfour hour mode.
-.RE
-.IP "-srtd <color>"
-.RS
-Draw the day using the specified color. The default color
-is #ffa800. This enables -srt mode.
-.RE
-.IP "-srtn <color>"
-.RS
-Draw the night using the specified color. The default color
-is #000000. This enables -srt mode.
-.RE
-.IP "-lat <latitude>"
-.RS
-This specifies the latitude as a floating point number. Enables -srt mode.
-.RE
-.IP "-lon <latitude>"
-.RS
-This specifies the longitude as a floating point number. Enables -srt mode.
-.RE
-.IP "-cc"
-.RS
-Run in counter clockwise mode.
-.RE
-.SH RESOURCE FILE SYNTAX
-\fBastime\fP can read and parse a configuration file.
-This configuration file describes the desired look of the
-applet (there are equialents to all command-line options)
-and specifies actions to be taken on particular events.
-The configuration file is usually ~/.astimerc but \fBastime\fP
-can be forced to read any file using the -rc option. 
-Any options read from the configuration file may be overridden
-with the command-line options (if a corresponding command-line
-option exists, naturally).
-
-The configuration file may contain only one option per line.
-Empty lines and lines starting with # are ignored.
-
-.IP "geometry <geometry specification>"
-.RS
-Your standard X Windows geometry specification.
-.RE
-.IP "background <color>"
-.RS
-Specifies the background color.
-.RE
-.IP "foreground <color>"
-.RS
-Specifies the foreground color.
-.RE
-.IP "secondColor <color>"
-.RS
-Specifies the color for the second hand of the clock.
-.RE
-.IP "minuteColor <color>"
-.RS
-Specifies the color for the minute hand of the clock.
-.RE
-.IP "hourColor <color>"
-.RS
-Specifies the color for the hour hand of the clock.
-.RE
-.IP "secondOutColor <color>"
-.RS
-Specifies the color for the second hand outline in fancy 
-and outline modes.
-.RE
-.IP "minuteOutColor <color>"
-.RS
-Specifies the color for the minute hand outline in fancy
-and outline modes.
-.RE
-.IP "hourOutColor <color>"
-.RS
-Specifies the color for the hour hand outline in fancy
-and outline modes.
-.RE
-.IP "secondFillColor <color>"
-.RS
-Specifies the fill color for the second hand in fancy mode.
-.RE
-.IP "minuteFillColor <color>"
-.RS
-Specifies the fill color for the minute hand in fancy mode.
-.RE
-.IP "hourFillColor <color>"
-.RS
-Specifies the fill color for the hour hand in fancy mode.
-.RE
-.IP "dayColor <color>"
-.RS
-Specifies the color for the day of the week indicator.
-.RE
-.IP "AMPMColor <color>"
-.RS
-Specifies the color for the AM/PM indicator.
-.RE
-.IP "dateColor <color>"
-.RS
-Specifies the color for the current date indicator.
-.RE
-.IP "drawSecondHand <0 | 1>"
-.RS
-A boolean variable (0 | 1) specifying if the second hand should
-be drawn.
-.RE
-.IP "drawDayDate <0 | 1>"
-.RS
-A boolean variable specifying if the day/date indicator
-should be drawn.
-.RE
-.IP "drawAMPM <0 | 1>"
-.RS
-A boolean variable specifying if the AM/PM indicator
-should be drawn.
-.RE
-.IP "drawTicks <0 | 1>"
-.RS
-A boolean variable specifying if the second ticks should be
-drawn at all.
-.RE
-.IP "drawAllTicks <0 | 1>"
-.RS
-A boolean variable specifying if all ticks should be
-drawn and not only every 5 sec.
-.RE
-.IP "drawForeground <0 | 1>"
-.RS
-A boolean variable specifying if the foreground elements
-should be drawn. When zero is specified only the clock hands appear.
-.RE
-.IP "floatSeconds <0 | 1>"
-.RS
-A boolean variable specifying if the second indicator
-should be a floating pointer (a bit like in xclock) rather
-than a hand.
-.RE
-.IP "thinSeconds <0 | 1>"
-.RS
-A boolean variable specifying if the second hand
-should be thin.
-.RE
-.IP "handThickness <thickness>"
-.RS
-Specifies the thickness of the hands. Can be a value 
-between 0 and 200.
-.RE
-.IP "outThickness <thickness>"
-.RS
-Specifies the thickness of the outline of the hands. 
-Can be a value between 0 and 200.
-.RE
-.IP "fancyHands <0 | 1>"
-.RS
-A boolean variable (0 | 1). Render polygonal, xclock-like hands.
-.RE
-.IP "outlinedHands <0 | 1>"
-.RS
-A boolean variable (0 | 1). Render polygonal, xclock-like hands without fill.
-.RE
-.IP "neonHands <0 | 1>"
-.RS
-A boolean variable (0 | 1). Darken the hand fill colors 
-with respect to their outlines, useful with fancy hands.
-.RE
-.IP "execProg <command line>"
-.RS
-Specifies a command to be executed when the clock face is clicked.
-The command line must be enclosed in double quotes.
-.RE
-.IP "withdrawn <0 | 1>"
-.RS
-A boolean variable (0 | 1). This option is necessary when
-running with WindowMaker. Produces a withdrawn window that
-can be docked.
-.RE
-.IP "iconic <0 | 1>"
-.RS
-A boolean variable (0 | 1). Specifies if the applet should
-start as an icon rather than a full window.
-.RE
-.IP "standout <0 | 1>"
-.RS
-A boolean variable (0 | 1). Changes the appearance of the 
-display from "pushed-in" to the "standing out".
-.RE
-.IP "noborder <0 | 1>"
-.RS
-A boolean variable (0 | 1). Changes the appearance of the 
-display from 3D to plain 2D by removing the shaded border
-around the faceplate.
-.RE
-.IP "shift <+-hours>"
-.RS
-Specifies that the clock should show the local time shifted
-by the given number of hours. Useful to see the time in
-different timezones.
-.RE
-.IP "title <name>"
-.RS
-Specifies which title should be given to this clock.
-.RE
-.IP "at hh:mm:ss <command line>"
-.RS
-Specifies program to be run at a particular time.
-The command line must be enclosed in double quotes.
-.RE
-.IP "Label <text>"
-.RS
-Asks the \fBastime\fP to label the clock's face with the specified
-text. Useful when you want to distinguish between different
-instances of \fBastime\fP running on your desktop.
-Equivalent to the command-line '-label' option.
-.RE
-.IP "Font <font name>"
-.RS
-Use the specified font for the label. The default font is
-"-*-helvetica-medium-r-*-*-9-240-*-*-*-*-*-*". Don't ask me why,
-I do not know, I just found it fits my desktop well. If you have
-a better idea - send me a mail. The font is loaded only if you
-specify a label and has otherwise no effect.
-Equivalent to the command-line '-fn' option.
-.RE
-.IP "LabelColor <color>"
-.RS
-Draw the label using the specified color. The default color
-is #a0a0a0. Has no effect if you did not specify a label.
-Equivalent to the command-line '-lcolor' option.
-.RE
-.IP "LabelTop <0 | 1>"
-.RS
-If the value is 1 draws the label on the top of the clock's face;
-if the value is 0 - at the bottom (default). Does not do anything
-if a label was not specified.
-.RE
-.IP "twentyfourHour <0 | 1>"
-.RS
-If the value is 1 run in 24 hour mode, else in 12 hour mode.
-.RE
-.IP "sunriset <0 | 1>"
-.RS
-If the value is 1 and astime switches to 24 hour mode and draws sunrise and 
-sunset times.
-.RE
-.IP "sunrisetDay <color>"
-.RS
-Switch to sunriset mode and draw the day using the given color.
-.RE
-.IP "sunrisetNight <color>"
-.RS
-Switch to sunriset mode and draw the night using the given color.
-.RE
-.IP "latitude <latitude>"
-.RS
-Switch to sunriset mode and use the given floating point number as latitude.
-.RE
-.IP "longitude <longitude>"
-.RS
-Switch to sunriset mode and use the given floating point number as latitude.
-.RE
-.IP "counterclockwise <0 | 1>"
-.RS
-If the value is 1 run in counter clockwise mode
-.RE
-.SH INVOCATION
-\fBastime\fP can be called in different ways.  The most 
-common invocation is the command line:
-.nf
-
-	user@host[1]% astime -bg blue -fg white &
-
-.fi
-Another way to call \fBastime\fP is from the window manager:
-.nf
-
-	*Wharf "astime" nil Swallow "astime" astime -nosec &
-
-.fi
-This line, when placed in the \fIwharf\fP file in the user's Afterstep
-configuration directory will cause \fBastime\fP to be a
-button on the \fBWharf (1)\fP button bar under the \fBafterstep (1)\fP
-window manager.
-
-If you run WindowMaker then you should use the "-withdrawn"
-option:
-.nf
-
-	user@host[1]% astime -withdrawn -standout &
-
-.fi
-and then drag the icon to the dock.
-
-If you run fvwm2 I think you will like to try this one:
-.nf
-
-	astime -geometry 120x120+890+0 -bg black 
-	-fg \\#0000ff -sec \\#efc669 -min \\#20b2aa 
-	-hour \\#8141d7 -day \\#7766aa -ampm \\#7766aa 
-	-date \\#7766aa -at -fs -fh -nh
-
-.fi
-Of course, it looks less scary if you put all those settings in the
-~/.astimerc file. The example .astimerc file (sample.astimerc) included
-in the distribution provides the aforementioned settings.
-.SH BUGS
-My programs do not have bugs, they just develop random
-features ;-)
-.PP
-Well, there are limitations. All the strings for the
-color names, display name, and the geometry have the
-length limit of 64 characters (terminating zero included). 
-The string copying routine cuts the names that are longer.
-.SH "SEE ALSO"
-.BR date (1), X (1x)
-.SH COPYRIGHTS
-Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
-
-Copyright (c) 1999 William Kostis <kostis@ee.cornell.edu>
-
-Distributed under GNU General Public License v2 ; 
-see LICENSE file for more informations.
-.SH AUTHORS
-Albert "Tigr" Dorofeev <albert@tigr.net>
-
-William Kostis <kostis@ee.cornell.edu>
-
-See the README file for details and credits.
-.sp
diff --git a/01_git/astime.c b/01_git/astime.c
deleted file mode 100644
index e02977e61c92f5027c4e49b2f530d84dd03be67c..0000000000000000000000000000000000000000
--- a/01_git/astime.c
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- * Copyright (c) 1999 William Kostis <kostis@ee.cornell.edu>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "safecopy.h"
-
-#include "astime_x.h"
-#include "state.h"
-
-extern struct astime_state state;
-
-/*
- * default check and update intervals in microseconds
- *      x11 events - every 1/100 th of a second (in mks)
- *      update dial - every second (in sec)
- */
-
-#define X11_INTERVAL    10000L
-#define CHK_INTERVAL    1
-
-/*
-   #define DEBUG
-   #define P_MAPPING
-   #define P_CRON
- */
-
-int withdrawn = 0;
-int iconic = 0;
-int pushed_in = 1;
-int no_border = 0;
-
-char display_name[MAX_OPT_LEN];
-char mainGeometry[MAX_OPT_LEN];
-char window_name[MAX_OPT_LEN];
-
-int thickspec = 0;
-int fancyhands = 0;
-int outlinedhands = 0;
-
-FILE *rcf;
-char rcfname[255];
-char *hname;
-
-void parsercfile(FILE * ifp);
-void handprops(void);
-void defaults(void);
-void usage(void);
-void version(void);
-void parsecmdline(int argc, char *argv[]);
-
-void defaults(void) {
-	int i, j;
-
-	state.update_interval = CHK_INTERVAL;
-	state.draw_seconds = 1;
-	state.tprop = 1;
-	state.float_seconds = 0;
-	state.thin_seconds = 0;
-	state.draw_date = 1;
-	state.draw_ampm = 1;
-	state.shift = 0;
-	state.twentyfour = 0;
-	state.sunriset = 0;
-	state.counterclockwise = 0;
-	state.lon = 49.6972222;
-	state.lat = 11.05;
-	withdrawn = 0;
-	iconic = 0;
-	pushed_in = 1;
-	no_border = 0;
-	
-	state.total_size.x = state.total_size.y = 54;
-	safecopy(window_name, "astime", MAX_OPT_LEN);
-	safecopy(display_name, "", MAX_OPT_LEN);
-	safecopy(mainGeometry, "", MAX_OPT_LEN);
-	safecopy(state.bgcolor, "#385971", MAX_OPT_LEN);
-	safecopy(state.fgcolor, "#ffffff", MAX_OPT_LEN);
-
-	safecopy(state.seccolor, "#efc669", MAX_OPT_LEN);
-	safecopy(state.mincolor, "#ff3030", MAX_OPT_LEN);
-	safecopy(state.hourcolor, "#ef3838", MAX_OPT_LEN);
-
-	safecopy(state.secocolor, "<>", MAX_OPT_LEN);
-	safecopy(state.minocolor, "<>", MAX_OPT_LEN);
-	safecopy(state.hourocolor, "<>", MAX_OPT_LEN);
-
-	safecopy(state.secfillcolor, "<>", MAX_OPT_LEN);
-	safecopy(state.minfillcolor, "<>", MAX_OPT_LEN);
-	safecopy(state.hourfillcolor, "<>", MAX_OPT_LEN);
-
-	safecopy(state.daycolor, "#a0a0a0", MAX_OPT_LEN);
-	safecopy(state.ampmcolor, "#a0a0a0", MAX_OPT_LEN);
-	safecopy(state.datecolor, "#a0a0a0", MAX_OPT_LEN);
-
-	safecopy(state.sunrisetday, "#ffa800", MAX_OPT_LEN);
-	safecopy(state.sunrisetnight, "#000000", MAX_OPT_LEN);
-
-	/* label options */
-	state.show_label = 0;
-	state.label_top = 0;
-	safecopy(state.label, "astime", 256);
-	safecopy(state.font_name, 
-			"-*-helvetica-medium-r-*-*-9-240-*-*-*-*-*-*", 256);
-	safecopy(state.label_color, "#a0a0a0", MAX_OPT_LEN);
-
-	/* clear hand rendering options */
-	for (i = 0; i < 3; i++) {
-		for (j = 0; j < 3; j++)
-			state.hprop[i][j] = 0;
-	}
-	state.hthick = 1;
-	state.othick = 1;
-	state.neon = 0;
-	state.run_program = 0;
-	state.cron_program = 0;
-	safecopy(state.program_name, "echo astime: No program specified.", 255);
-
-	state.nprogs = 0;
-	/* state.PInf = (PInfo *) malloc(sizeof(*(state.PInf))); */
-	state.PInf = (PInfo *) NULL;
-}
-
-/* print the usage for the tool */
-void usage(void)
-{
-	printf("Usage : astime [options ...]\n\n");
-	printf("-V               print version and exit\n");
-	printf("-h -H -help      print this message\n");
-	printf("-rc <filename>   resource file name\n");
-	printf("-u <secs>        the update interval in seconds\n");
-	printf("-exe <prog>      the program to start when clicked on\n");
-	printf("-display <name>  the name of the display to use\n");
-	printf("-geometry <xywh> position/size on the screen (X geometry)\n");
-	printf("-withdrawn       start in withdrawn shape (for WindowMaker)\n");
-	printf("-iconic          start iconized\n");
-	printf("-standout        standing out rather than being pushed in\n");
-	printf("-noborder        no shaded border at all, thank you very much\n");
-	printf("-shift <hrs>     show the time with the given shift in hours\n");
-	printf("-title <name>    set the window/icon title to this name\n");
-	printf("-bg <color>      background color\n");
-	printf("-fg <color>      dial foreground color\n");
-	printf("-sec <color>     second pointer color\n");
-	printf("-min <color>     minute pointer color\n");
-	printf("-hour <color>    hour pointer color\n");
-	printf("-day <color>     day of the week display color\n");
-	printf("-ampm <color>    AM/PM display color\n");
-	printf("-date <color>    date display color\n");
-	printf("-ns              no second hand\n");
-	printf("-nd              no date/day of the week\n");
-	printf("-nap             no AM/PM indicator\n");
-	printf("-nt              draw no ticks\n");
-	printf("-at              draw all ticks\n");
-	printf("-fs              use a floating second indicator\n");
-	printf("-ts              use a thin second hand/indicator\n");
-	printf("-fh              render fancy hands\n");
-	printf("-nh              neon hands (nice with -fh)\n");
-	printf("-ht <0-200>      hand thickness\n");
-	printf("-ot <0-200>      hand outline thickness (with -fh)\n");
-	printf("-nf              no foreground (-nd -nap -nt)\n");
-	printf("-label <text>    show the label <text> on the clock\n");
-	printf("-fn <name>       use the font name for the label\n");
-	printf("-lcol <color>    color to use for the label\n");
-	printf("-ltop            the label should go on top\n");
-	printf("-24              use 24 hour mode\n");
-	printf("-srt             show sunrise and sunset times\n");
-	printf("-lon             geographical longitude\n");
-	printf("-lat             geographical latitude\n");
-	printf("-srtd <color>    srt day color\n");
-	printf("-srtn <color>    srt night color\n");
-	printf("-cc              use counter clockwise mode\n");
-	printf("\n");
-	exit(0);
-}
-
-/* print the version of the tool */
-void version(void)
-{
-	printf("astime : AfterStep analog clock version 2.8\n");
-}
-
-/* parse the rc file */
-void parsercfile(FILE * ifp)
-{
-	int i, j, ind;
-	int tval;
-	char line[200];
-	char param[2][100];
-	char *wptr;
-	char *eptr;
-	char sstr[8] = " \t\n";
-
-        while (fgets(line, 200, ifp) != NULL) {
-
-		if ((line[0] != '#') && (line[0] != '\n')) {
-#ifdef DEBUG
-			fprintf(stderr, "parsercfile: <%s>\n", line);
-#endif
-			wptr = strtok(line, sstr);
-
-			for (i = 0; i < 2; i++) {
-				if (wptr) {
-					if (!strcmp(wptr, "\n"))
-						fprintf(stderr, "Warning: newline\n");
-#ifdef DEBUG
-					fprintf(stderr, "param[%d] will get Token (%s)\n", i, wptr);
-#endif
-					strcpy(param[i], wptr);
-				} else {
-					fprintf(stderr, "parsercfile: missing param[%d]\n", i);
-				}
-
-				if ((i == 0) && !strcmp(param[0], "execProg"))
-					wptr += 9;
-				else if ((i == 0) && !strcmp(param[0], "at"))
-					break;
-				else
-					wptr = strtok(NULL, sstr);
-			}
-
-#ifdef P_MAPPING
-			if (strcmp(param[0], "at")) {
-				if (strlen(param[0]) > 8)
-					fprintf(stderr, "map (%s) \t<- (%s)\n", param[0], param[1]);
-				else
-					fprintf(stderr, "map (%s) \t\t<- (%s)\n", param[0], param[1]);
-			}
-#endif
-
-			if (!strcmp(param[0], "geometry")) {
-				safecopy(mainGeometry, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "background")) {
-				safecopy(state.bgcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "foreground")) {
-				safecopy(state.fgcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "secondColor")) {
-				safecopy(state.seccolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "minuteColor")) {
-				safecopy(state.mincolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "hourColor")) {
-				safecopy(state.hourcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "secondOutColor")) {
-				safecopy(state.secocolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "minuteOutColor")) {
-				safecopy(state.minocolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "hourOutColor")) {
-				safecopy(state.hourocolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "secondFillColor")) {
-				safecopy(state.secfillcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "minuteFillColor")) {
-				safecopy(state.minfillcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "hourFillColor")) {
-				safecopy(state.hourfillcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "dayColor")) {
-				safecopy(state.daycolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "AMPMColor")) {
-				safecopy(state.ampmcolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "dateColor")) {
-				safecopy(state.datecolor, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "Label")) {
-				state.show_label = 1;
-				safecopy(state.label, param[1], 256);
-			} else if (!strcmp(param[0], "Font")) {
-				safecopy(state.font_name, param[1], 256);
-			} else if (!strcmp(param[0], "LabelColor")) {
-				safecopy(state.label_color, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "LabelTop")) {
-				tval = atoi(param[1]);
-				if (tval == 0)
-					state.label_top = 0;
-				else
-					state.label_top = 1;
-			} else if (!strcmp(param[0], "drawSecondHand")) {
-				tval = atoi(param[1]);
-				if (tval == 0)
-					state.draw_seconds = 0;
-				else
-					state.draw_seconds = 1;
-			} else if (!strcmp(param[0], "drawDayDate")) {
-				tval = atoi(param[1]);
-				if (tval == 0)
-					state.draw_date = 0;
-			} else if (!strcmp(param[0], "drawAMPM")) {
-				tval = atoi(param[1]);
-				if (tval == 0)
-					state.draw_ampm = 0;
-			} else if (!strcmp(param[0], "drawTicks")) {
-				tval = atoi(param[1]);
-				if (tval == 0)
-					state.tprop = 0;
-			} else if (!strcmp(param[0], "drawAllTicks")) {
-				tval = atoi(param[1]);
-				if ((state.tprop) && (tval == 1))
-					state.tprop = 2;
-			} else if (!strcmp(param[0], "drawForeground")) {
-				tval = atoi(param[1]);
-				if (tval == 0) {
-					state.draw_date = 0;
-					state.draw_ampm = 0;
-					state.tprop = 0;
-				}
-			} else if (!strcmp(param[0], "floatSeconds")) {
-				tval = atoi(param[1]);
-				if (tval)
-                                        state.float_seconds = (unsigned short) atoi(param[1]);
-			} else if (!strcmp(param[0], "thinSeconds")) {
-				tval = atoi(param[1]);
-				if (tval)
-                                        state.thin_seconds = (unsigned short) atoi(param[1]);
-			} else if (!strcmp(param[0], "latitude")) {
-				state.lat = atof(param[1]);
-				state.twentyfour = 1;
-				state.sunriset = 1;
-			} else if (!strcmp(param[0], "longitude")) {
-				state.lon = atof(param[1]);
-				state.twentyfour = 1;
-				state.sunriset = 1;
-			} else if (!strcmp(param[0], "handThickness")) {
-                                state.hthick = (unsigned short) atoi(param[1]);
-				thickspec = 1;
-			} else if (!strcmp(param[0], "outThickness")) {
-                                state.othick = (unsigned short) atoi(param[1]);
-			} else if (!strcmp(param[0], "fancyHands")) {
-				tval = atoi(param[1]);
-				if (tval) {
-					fancyhands = 1;
-					if (!thickspec)
-						state.hthick = 5;
-				}
-			} else if (!strcmp(param[0], "outlinedHands")) {
-				tval = atoi(param[1]);
-				if (tval)
-					outlinedhands = 1;
-			} else if (!strcmp(param[0], "neonHands")) {
-				tval = atoi(param[1]);
-				if (tval)
-					state.neon = 1;
-			} else if (!strcmp(param[0], "execProg")) {
-				eptr = strchr(param[1], '"');
-				if (eptr != NULL) {
-					eptr += 1;
-					safecopy(state.program_name, eptr, strlen(eptr) - 1);
-					state.run_program = 1;
-#ifdef P_MAPPING
-					fprintf(stderr, "exec : <%s>\n", state.program_name);
-#endif
-				} else
-					fprintf(stderr, "astime: executables must be double-quoted in astimerc file, ignoring...\n");
-			} else if (!strcmp(param[0], "at")) {
-				ind = state.nprogs;
-				state.nprogs += 1;
-                                state.PInf = (PInfo *) realloc(state.PInf, ((size_t) state.nprogs) * sizeof(*(state.PInf)));
-				if (state.PInf == NULL) {
-					fprintf(stderr, "astime: memory reallocation error, exiting\n");
-					exit(1);
-				}
-				state.PInf[ind] = (PInfo) malloc(sizeof(**(state.PInf)));
-				if (state.PInf[ind] == NULL) {
-					fprintf(stderr, "astime: memory reallocation error, exiting\n");
-					exit(1);
-				}
-				for (j = 0; j < 3; j++) {
-					wptr = strtok(NULL, " :");
-					tval = atoi(wptr);
-#ifdef DEBUG
-					fprintf(stderr, "map (state.PInf[%d]->time[%d]) <- %d <%s>\n", ind, j, tval, wptr);
-#endif
-					state.PInf[ind]->time[j] = tval;
-				}
-
-				wptr += 3;
-				eptr = strchr(wptr, '"');
-
-				if (eptr != NULL) {
-					eptr += 1;
-					safecopy(state.PInf[ind]->name, eptr, strlen(eptr) - 1);
-					state.PInf[ind]->done = 0;
-					state.cron_program = 1;
-#ifdef P_CRON
-					fprintf(stderr, "cron[%d] : %02d:%02d:%02d : <%s>\n",
-						ind, state.PInf[ind]->time[0], state.PInf[ind]->time[1],
-						state.PInf[ind]->time[2], state.PInf[ind]->name);
-#endif
-				} else
-					fprintf(stderr, "astime: executables must be double-quoted in astimerc file, ignoring...\n");
-			} else if (!strcmp(param[0], "withdrawn")) {
-				tval = atoi(param[1]);
-				if (tval)
-					withdrawn = 1;
-			} else if (!strcmp(param[0], "iconic")) {
-				tval = atoi(param[1]);
-				if (tval)
-					iconic = 1;
-			} else if (!strcmp(param[0], "standout")) {
-				tval = atoi(param[1]);
-				if (tval)
-					pushed_in = 0;
-			} else if (!strcmp(param[0], "noborder")) {
-				tval = atoi(param[1]);
-				if (tval)
-					no_border = 1;
-			} else if (!strcmp(param[0], "shift")) {
-                                state.shift = (short) atoi(param[1]);
-				if ((state.shift > 23) || (state.shift < -23))
-					state.shift = 0;
-			} else if (!strcmp(param[0], "title")) {
-				safecopy(window_name, param[1], MAX_OPT_LEN);
-			} else if (!strcmp(param[0], "twentyfourHour")) {
-				tval = atoi(param[1]);
-				if (tval)
-					state.twentyfour = 1;
-			} else if (!strcmp(param[0], "sunriset")) {
-				tval = atoi(param[1]);
-				if (tval) {
-					state.sunriset = 1;
-					state.twentyfour = 1;
-				}
-			} else if (!strcmp(param[0], "sunrisetDay")) {
-				safecopy(state.sunrisetday, param[1], MAX_OPT_LEN);
-				state.twentyfour = 1;
-				state.sunriset = 1;
-			} else if (!strcmp(param[0], "sunrisetNight")) {
-				safecopy(state.sunrisetnight, param[1], MAX_OPT_LEN);
-				state.twentyfour = 1;
-				state.sunriset = 1;
-			} else if (!strcmp(param[0], "counterclockwise")) {
-				tval = atoi(param[1]);
-				if (tval)
-					state.counterclockwise = 1;
-			} else {
-				fprintf(stderr, "astime: error in astimerc file, ignoring...\n");
-			}
-		}
-	}
-}
-
-void parsecmdline(int argc, char *argv[])
-{
-        for (int i = 1; i < argc; i++) {
-                char *argument = argv[i];
-		if (argument[0] == '-') {
-			if (!strncmp(argument, "-rc", 3)) {
-				// just skip it
-				if (++i >= argc)
-					usage();
-			} else if (!strncmp(argument, "-withdrawn", 10)) {
-				withdrawn = 1;
-			} else if (!strncmp(argument, "-iconic", 7)) {
-				iconic = 1;
-			} else if (!strncmp(argument, "-standout", 9)) {
-				pushed_in = 0;
-			} else if (!strncmp(argument, "-noborder", 9)) {
-				no_border = 1;
-			} else if (!strncmp(argument, "-u", 2)) {
-				if (++i >= argc)
-					usage();
-				state.update_interval = atoi(argv[i]);
-				if (state.update_interval < 1)
-					state.update_interval = CHK_INTERVAL;
-			} else if (!strncmp(argument, "-shift", 6)) {
-				if (++i >= argc)
-					usage();
-                                state.shift = (short) atoi(argv[i]);
-				if ((state.shift > 23) || (state.shift < -23))
-					state.shift = 0;
-			} else if (!strncmp(argument, "-ns", 3)) {
-				state.draw_seconds = 0;
-			} else if (!strncmp(argument, "-nd", 3)) {
-				state.draw_date = 0;
-			} else if (!strncmp(argument, "-nap", 4)) {
-				state.draw_ampm = 0;
-			} else if (!strncmp(argument, "-geometry", 9)) {
-				if (++i >= argc)
-					usage();
-				safecopy(mainGeometry, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-title", 6)) {
-				if (++i >= argc)
-					usage();
-				safecopy(window_name, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-display", 8)) {
-				if (++i >= argc)
-					usage();
-				safecopy(display_name, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-bg", 3)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.bgcolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-fg", 3)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.fgcolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-label", 6)) {
-				if (++i >= argc)
-					usage();
-				state.show_label = 1;
-				safecopy(state.label, argv[i], 256);
-			} else if (!strncmp(argument, "-fn", 3)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.font_name, argv[i], 256);
-			} else if (!strncmp(argument, "-lcolor", 3)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.label_color, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-ltop", 4)) {
-				state.label_top = 1;
-			} else if (!strncmp(argument, "-sec", 4)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.seccolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-min", 4)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.mincolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-hour", 5)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.hourcolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-day", 4)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.daycolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-ampm", 5)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.ampmcolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-date", 5)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.datecolor, argv[i], MAX_OPT_LEN);
-			} else if (!strncmp(argument, "-srtd", 5)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.sunrisetday, argv[i], MAX_OPT_LEN);
-				state.sunriset = 1;
-				state.twentyfour = 1;
-			} else if (!strncmp(argument, "-srtn", 5)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.sunrisetnight, argv[i], MAX_OPT_LEN);
-				state.sunriset = 1;
-				state.twentyfour = 1;
-			} else if (!strncmp(argument, "-lat", 4)) {
-				if (++i >= argc)
-					usage();
-				state.lat = atof(argv[i]);
-				state.sunriset = 1;
-				state.twentyfour = 1;
-			} else if (!strncmp(argument, "-lon", 4)) {
-				if (++i >= argc)
-					usage();
-				state.lon = atof(argv[i]);
-				state.sunriset = 1;
-				state.twentyfour = 1;
-			} else if (!strncmp(argument, "-exe", 4)) {
-				if (++i >= argc)
-					usage();
-				safecopy(state.program_name, argv[i], 255);
-				state.run_program = 1;
-			} else if (!strncmp(argument, "-at", 3)) {
-				state.tprop = 2;
-			} else if (!strncmp(argument, "-nt", 3)) {
-				state.tprop = 0;
-			} else if (!strncmp(argument, "-fs", 3)) {
-				state.float_seconds = 1;
-			} else if (!strncmp(argument, "-ts", 3)) {
-				state.thin_seconds = 1;
-			} else if (!strncmp(argument, "-ht", 3)) {
-				if (++i >= argc)
-					usage();
-                                state.hthick = (unsigned short) atoi(argv[i]);
-				thickspec = 1;
-			} else if (!strncmp(argument, "-ot", 3)) {
-				if (++i >= argc)
-					usage();
-                                state.othick = (unsigned short) atoi(argv[i]);
-			} else if (!strncmp(argument, "-fh", 3)) {
-				fancyhands = 1;
-				if (!thickspec)
-					state.hthick = 5;
-			} else if (!strncmp(argument, "-oh", 3)) {
-				outlinedhands = 1;
-			} else if (!strncmp(argument, "-nh", 3)) {
-				state.neon = 1;
-			} else if (!strncmp(argument, "-nf", 3)) {
-				state.draw_date = 0;
-				state.draw_ampm = 0;
-				state.tprop = 0;
-			} else if (!strncmp(argument, "-V", 2)) {
-				version();
-				exit(0);
-			} else if (!strncmp(argument, "-H", 2)) {
-				version();
-				usage();
-			} else if (!strncmp(argument, "-h", 2)) {
-				version();
-				usage();
-			} else if (!strncmp(argument, "-24", 3)) {
-				state.twentyfour = 1;
-			} else if (!strncmp(argument, "-srt", 4)) {
-				state.sunriset = 1;
-				state.twentyfour = 1;
-			} else if (!strncmp(argument, "-cc", 3)) {
-				state.counterclockwise = 1;
-			} else {
-				version();
-				usage();
-			}
-		} else {
-			version();
-			usage();
-		}
-	}
-}
-
-
-void handprops(void)
-{
-	/* set hand rendering options */
-	if (outlinedhands) {
-		state.hprop[PSEC][HOLINE] = 1;
-		state.hprop[PMIN][HOLINE] = 1;
-		state.hprop[PHOUR][HOLINE] = 1;
-	} else if (fancyhands) {
-		state.hprop[PSEC][HOLINE] = 1;
-		state.hprop[PSEC][HFILL] = 1;
-		state.hprop[PMIN][HOLINE] = 1;
-		state.hprop[PMIN][HFILL] = 1;
-		state.hprop[PHOUR][HOLINE] = 1;
-		state.hprop[PHOUR][HFILL] = 1;
-	} else {
-		state.hprop[PSEC][HCLINE] = 1;
-		state.hprop[PMIN][HCLINE] = 1;
-		state.hprop[PHOUR][HCLINE] = 1;
-	}
-
-	if (state.thin_seconds) {
-		state.hprop[PSEC][HOLINE] = 0;
-		state.hprop[PSEC][HFILL] = 0;
-		state.hprop[PSEC][HCLINE] = 1;
-	}
-}
-
-
-int main(int argc, char **argv)
-{
-	int i;
-	int rcfound;
-
-	defaults();
-
-	/*
-	 * Check if there is a resource file name
-	 * specified on the command line. That file
-	 * takes precedence over ~/.astimerc
-	 */
-	rcfound = 0;
-	for (i=1; i<argc; i++) {
-		if ( !strncmp(argv[i], "-rc", 3) ) {
-			if (++i >= argc)
-				usage();
-			safecopy(rcfname, argv[i], 255);
-			rcfound = 1;
-		}
-	}
-	if ( ! rcfound ) {
-		hname = getenv("HOME");
-		strcpy(rcfname, hname);
-		if (rcfname[strlen(rcfname) - 1] != '/')
-			strcat(rcfname, "/");
-
-		strcat(rcfname, ".astimerc");
-#ifdef DEBUG
-		fprintf(stderr, "hname is %s\n", hname);
-		fprintf(stderr, "rcfname is %s\n", rcfname);
-#endif
-	}
-
-	rcf = fopen(rcfname, "r");
-	if (rcf != NULL) {
-		parsercfile(rcf);
-		fclose(rcf);
-	} else {
-		if ( rcfound ) 
-			fprintf(stderr, "astime: could not open %s ...\n",
-					rcfname);
-	}
-
-	parsecmdline(argc, argv);
-
-	handprops();
-
-	initialize(argc, argv,
-		   window_name,
-		   display_name,
-		   mainGeometry,
-		   withdrawn,
-		   iconic,
-		   pushed_in,
-		   no_border);
-	while (1) {
-		update();
-		usleep(X11_INTERVAL);
-	}
-}
diff --git a/01_git/beo.astimerc b/01_git/beo.astimerc
deleted file mode 100644
index 31fb6e390d895ca67c442a053e86276eb105eb4e..0000000000000000000000000000000000000000
--- a/01_git/beo.astimerc
+++ /dev/null
@@ -1,48 +0,0 @@
-geometry        128x128-0+0
-
-background      #1b1b1e
-foreground      #a0a0a0
-
-secondColor     #a0a0a0
-minuteColor   	#a0a0a0
-hourColor       #a0a0a0
-
-dayColor        #a0a0a0
-AMPMColor       #a0a0a0
-dateColor       #a0a0a0
-
-drawSecondHand  1
-drawDayDate     1
-drawAMPM        0
-drawTicks       1
-drawAllTicks    0
-drawForeground  1
-
-floatSeconds    1
-thinSeconds     0
-handThickness   5
-#handThickness   200
-outThickness    1
-
-fancyHands      1
-outlinedHands   0
-neonHands       1
-
-#execProg        "xterm +sb -bg "#303030" -fg "#20b2aa" -geometry 80x50 -T top -n top -e top &"
-withdrawn       0
-iconic          0
-standout        1
-shift           0
-title           astime
-
-# the next three lines are commented out, so that we don't surprise you... ;)
-#at   22:30:00   "xterm -bg red &"
-#at   22:30:15   "xterm -bg green &"
-#at   22:30:30   "xterm -bg blue &"
-
-twentyfourHour	1
-sunriset		1
-sunrisetDay		grey80
-sunrisetNight	grey20
-latitude		11.05
-longitude		49.6972222
diff --git a/01_git/cmake/compilerwarnings.cmake b/01_git/cmake/compilerwarnings.cmake
deleted file mode 100644
index 93b0fb4ebce81ea3498c5815573433dfb57925a9..0000000000000000000000000000000000000000
--- a/01_git/cmake/compilerwarnings.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wall" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wextra" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -pedantic" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wcast-qual" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wcast-align" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wconversion" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-nonliteral" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-security" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wfloat-equal" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winit-self" )
-if(${CMAKE_COMPILER_IS_GNUCC})
-  set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wlogical-op" )
-endif()
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wmissing-include-dirs" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-write-strings" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpointer-arith" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wswitch-default" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wswitch-enum" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wundef" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wunused-macros" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wunused-parameter" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wshadow" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpointer-arith" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wshadow" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wwrite-strings" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpacked" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wredundant-decls" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wunreachable-code" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winline" )
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wold-style-definition")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wnested-externs")
-
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual" )
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++" )
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast" )
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual" )
diff --git a/01_git/cmake/cppcheck.cmake b/01_git/cmake/cppcheck.cmake
deleted file mode 100644
index 724b83828dd83980c45ed747d828ac8a3ec7f663..0000000000000000000000000000000000000000
--- a/01_git/cmake/cppcheck.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-find_program(CPPCHECK_EXE "cppcheck")
-
-if(CPPCHECK_EXE)
-    message(STATUS "[CPPCHECK] at ${CPPCHECK_EXE}")
-    add_custom_target(cppcheck)
-
-    add_custom_command(TARGET cppcheck POST_BUILD
-        COMMAND ${CPPCHECK_EXE} --enable=all --template=gcc -i ${PROJECT_BINARY_DIR} -I ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}
-    )
-else()
-    message(FATAL_ERROR "[CPPCHECK] Could not find cppcheck executable")
-endif()
diff --git a/01_git/default.astimerc b/01_git/default.astimerc
deleted file mode 100644
index c51e308925d57d261fbfa701dd3400c21813c988..0000000000000000000000000000000000000000
--- a/01_git/default.astimerc
+++ /dev/null
@@ -1,46 +0,0 @@
-# This is the "default" look of the astime
-
-geometry        54x54-1-1
-
-background      #385971
-foreground      white
-
-secondColor     #efc669
-minuteColor   	#ff3030
-hourColor       #ef3838
-
-dayColor        #a0a0a0
-AMPMColor       #a0a0a0
-dateColor       #a0a0a0
-
-drawSecondHand  1
-drawDayDate     1
-drawAMPM        1
-drawTicks       1
-drawAllTicks    0
-drawForeground  1
-
-floatSeconds    0
-thinSeconds     1
-handThickness   3
-#handThickness   200
-#outThickness    20
-
-fancyHands      0
-outlinedHands   0
-neonHands       0
-
-withdrawn       0
-iconic          0
-standout        0
-shift           0
-title           astime
-
-# A program to be executed when you click on the face of the clock
-#execProg        "xterm +sb -bg "#303030" -fg "#20b2aa" -geometry 80x50 -T top -n top -e top &"
-
-# the next three lines are commented out, so that we don't surprise you... ;)
-#at   22:30:00   "xterm -bg red &"
-#at   22:30:15   "xterm -bg green &"
-#at   22:30:30   "xterm -bg blue &"
-
diff --git a/01_git/include/astime_x.h b/01_git/include/astime_x.h
deleted file mode 100644
index 0a984acb45711201efc2e1a099e44c884da0c297..0000000000000000000000000000000000000000
--- a/01_git/include/astime_x.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#ifndef _astime_x_h_
-#define _astime_x_h_
-
-void initialize(int argc, char **argv,
-                char *window_name,
-                char *display_name,
-                char *mainGeometry,
-                int withdrawn,
-                int iconic,
-                int pushed_in,
-                int no_border);
-void update(void);
-void redraw(void);
-void x_cleanup(void);
-
-#endif
-
diff --git a/01_git/include/safecopy.h b/01_git/include/safecopy.h
deleted file mode 100644
index 34df5f4ca8fbcf133d194425e7411ecb7748e7ec..0000000000000000000000000000000000000000
--- a/01_git/include/safecopy.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#ifndef _safecopy_h_
-#define _safecopy_h_
-#include <stddef.h>
-
-/*
- * Copies at most maxlen-1 characters from the source.
- * Makes sure that the destination string is zero-terminated.
- */
-char *safecopy(char *dest, const char *src, size_t maxlen);
-
-#endif
-
diff --git a/01_git/include/state.h b/01_git/include/state.h
deleted file mode 100644
index 1f53e377268ca74c40e62ca0cccdf2858ef872ef..0000000000000000000000000000000000000000
--- a/01_git/include/state.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- * Copyright (c) 1999 William Kostis <kostis@ee.cornell.edu>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#ifndef _state_h_
-#define _state_h_
-
-/* coordinates structure */
-struct coordinates {
-  int x, y;
-};
-
-typedef struct _pinfo {
-  int time[3];
-  int done;
-  char name[255];
-} *PInfo;
-
-#define PSEC   0
-#define PMIN   1
-#define PHOUR  2
-
-#define HCLINE 0
-#define HOLINE 1
-#define HFILL  2
-#define HTHICK 3
-
-#define MAX_OPT_LEN 64
-
-struct astime_state {
-  long int update_interval;         /* interval (sec) to update the dial */
-
-  unsigned short int draw_seconds;  /* render second hand                */
-  unsigned short int draw_date;     /* render date                       */
-  unsigned short int draw_ampm;     /* render AM/PM                      */
-  unsigned short int tprop;         /* tick properties                   */
-  unsigned short int float_seconds; /* render floating second indicator  */
-  unsigned short int thin_seconds;  /* render thin second hand/indicator */
-
-  unsigned short int hthick;        /* hand thickness                    */
-  unsigned short int othick;        /* outline thickness                 */
-  unsigned short int neon;          /* neon hands (hand darkening)       */
-  unsigned short int hprop[3][3];   /* hand properties                   */
-
-  struct coordinates total_size;
-  short int shift;
-  unsigned short int run_program;
-  unsigned short int cron_program;
-  unsigned short int twentyfour;
-  unsigned short int sunriset;
-  double lon, lat;
-  unsigned short int counterclockwise;
-
-  /* main colors */
-  char bgcolor[MAX_OPT_LEN];
-  char fgcolor[MAX_OPT_LEN];
-  /* standard hand colors */
-  char seccolor[MAX_OPT_LEN];
-  char mincolor[MAX_OPT_LEN];
-  char hourcolor[MAX_OPT_LEN];
-  /* outside polygon colors */
-  char secocolor[MAX_OPT_LEN];
-  char minocolor[MAX_OPT_LEN];
-  char hourocolor[MAX_OPT_LEN];
-  /* inside polygon colors */
-  char secfillcolor[MAX_OPT_LEN];
-  char minfillcolor[MAX_OPT_LEN];
-  char hourfillcolor[MAX_OPT_LEN];
-  /* other foreground colors */
-  char daycolor[MAX_OPT_LEN];
-  char ampmcolor[MAX_OPT_LEN];
-  char datecolor[MAX_OPT_LEN];
-  /* day and night color */
-  char sunrisetday[MAX_OPT_LEN];
-  char sunrisetnight[MAX_OPT_LEN];
-
-  unsigned int show_label;	/* Show a user-specified label */
-  unsigned int label_top;	/* If the label is on top or at the bottom */
-  char label[256];		/* The label text */
-  char font_name[256];		/* Font name for the labels */
-  char label_color[MAX_OPT_LEN];/* Label color */
-
-  /* executable */
-  char program_name[255];
-
-  int nprogs;
-  /* program parameters */
-  PInfo *PInf;
-};
-
-#endif
diff --git a/01_git/include/sunriset.h b/01_git/include/sunriset.h
deleted file mode 100644
index c6524f19989a22025d01e9963bcdc308fc17a62e..0000000000000000000000000000000000000000
--- a/01_git/include/sunriset.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* +++Date last modified: 05-Jul-1997 */
-
-/*
-
-SUNRISET.C - computes Sun rise/set times, start/end of twilight, and
-             the length of the day at any date and latitude
-
-Written as DAYLEN.C, 1989-08-16
-
-Modified to SUNRISET.C, 1992-12-01
-
-(c) Paul Schlyter, 1989, 1992
-
-Released to the public domain by Paul Schlyter, December 1992
-
-Modified 2006 by Florian Franzmann
-
-*/
-
-#ifndef _sunriset_h_
-#define _sunriset_h_
-
-#include <stdio.h>
-#include <math.h>
-
-
-/* A macro to compute the number of days elapsed since 2000 Jan 0.0 */
-/* (which is equal to 1999 Dec 31, 0h UT)                           */
-
-#define days_since_2000_Jan_0(y,m,d) \
-    (367L*(y)-((7*((y)+(((m)+9)/12)))/4)+((275*(m))/9)+(d)-730530L)
-
-/* Some conversion factors between radians and degrees */
-
-#ifndef PI
- #define PI        3.1415926535897932384
-#endif
-
-#define RADEG     ( 180.0 / PI )
-#define DEGRAD    ( PI / 180.0 )
-
-/* The trigonometric functions in degrees */
-
-#define sind(x)  sin((x)*DEGRAD)
-#define cosd(x)  cos((x)*DEGRAD)
-#define tand(x)  tan((x)*DEGRAD)
-
-#define atand(x)    (RADEG*atan(x))
-#define asind(x)    (RADEG*asin(x))
-#define acosd(x)    (RADEG*acos(x))
-#define atan2d(y,x) (RADEG*atan2(y,x))
-
-
-/* Following are some functions around the "workhorse" function __daylen__ */
-/* They mainly fill in the desired values for the reference altitude    */
-/* below the horizon, and also selects whether this altitude should     */
-/* refer to the Sun's center or its upper limb.                         */
-
-
-/* This function computes the length of the day, from sunrise to sunset. */
-/* Sunrise/set is considered to occur when the Sun's upper limb is    */
-/* 35 arc minutes below the horizon (this accounts for the refraction */
-/* of the Earth's atmosphere).                                        */
-double day_length(int year, int month, int day, double lon, double lat);
-
-/* This function computes the length of the day, including civil twilight. */
-/* Civil twilight starts/ends when the Sun's center is 6 degrees below  */
-/* the horizon.                                                         */
-double day_civil_twilight_length(int year, int month, int day, 
-		double lon, double lat);
-
-/* This function computes the length of the day, incl. nautical twilight.  */
-/* Nautical twilight starts/ends when the Sun's center is 12 degrees    */
-/* below the horizon.                                                   */
-double day_nautical_twilight_length(int year, int month, int day, 
-		double lon, double lat);
-
-/* This function computes the length of the day, incl. astronomical twilight. */
-/* Astronomical twilight starts/ends when the Sun's center is 18 degrees   */
-/* below the horizon.                                                      */
-double day_astronomical_twilight_length(int year, int month, int day, 
-		double lon, double lat);
-
-/* This function computes times for sunrise/sunset.                   */
-/* Sunrise/set is considered to occur when the Sun's upper limb is    */
-/* 35 arc minutes below the horizon (this accounts for the refraction */
-/* of the Earth's atmosphere).                                        */
-int sun_rise_set(int year, int month, int day, double lon, 
-		double lat, double *rise, double *set);
-
-/* This function computes the start and end times of civil twilight.    */
-/* Civil twilight starts/ends when the Sun's center is 6 degrees below  */
-/* the horizon.                                                         */
-int civil_twilight(int year, int month, int day, double lon, 
-		double lat, double *start, double *end);
-
-/* This function computes the start and end times of nautical twilight.    */
-/* Nautical twilight starts/ends when the Sun's center is 12 degrees    */
-/* below the horizon.                                                   */
-int nautical_twilight(int year, int month, int day, double lon, 
-		double lat, double *start, double *end);
-
-/* This function computes the start and end times of astronomical twilight.   */
-/* Astronomical twilight starts/ends when the Sun's center is 18 degrees   */
-/* below the horizon.                                                      */
-int astronomical_twilight(int year, int month, int day, double lon, 
-		double lat, double *start, double *end);
-#endif
diff --git a/01_git/include/x_color.h b/01_git/include/x_color.h
deleted file mode 100644
index 2a44647adb1f604c6090bd0e3e886a547634edba..0000000000000000000000000000000000000000
--- a/01_git/include/x_color.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#ifndef _x_color_h_
-#define _x_color_h_
-#include <X11/Xlib.h>
-#include <X11/xpm.h>
-
-/*
- * It takes the given color, parses it in the context
- * of the given window and returns a pixel of that color.
- */
-Pixel GetColor(char *ColorName, Display * disp, Window win);
-
-/*
- * Performs the same actions as GetColor but
- * returns the complete XColor structure
- */
-XColor ParseColor(char *ColorName, Display * disp, Window win);
-
-/* 
- * darkens the given color using the supplied rate 
- */
-char *DarkenCharColor(char *ColorName, float rate, Display * disp, Window win);
-Pixel DarkenColor(char *ColorName, float rate, Display * disp, Window win);
-
-/* 
- * brightens the given color using the supplied rate 
- */
-char *LightenCharColor(char *ColorName, float rate, Display * disp, Window win);
-Pixel LightenColor(char *ColorName, float rate, Display * disp, Window win);
-
-/* 
- * mix the given colors using the supplied rate 
- */
-char *MixCharColors(char *Color1Name, char *Color2Name, float rate, 
-		Display * disp, Window win);
-Pixel MixColors(char *Color1Name, char *Color2Name, float rate, 
-		Display * disp, Window win);
-
-#endif
-
diff --git a/01_git/include/x_primitives.h b/01_git/include/x_primitives.h
deleted file mode 100644
index 1b1b7a3bef43c1bbf266803c33a70c967fdfd103..0000000000000000000000000000000000000000
--- a/01_git/include/x_primitives.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#include <X11/Xlib.h>
-
-void RotateCoordinates(short *x, short *y, short center_x, short center_y, 
-		short angle);
-int DrawTriangle(Display *display, Drawable d, GC gc, 
-		short x, short y, unsigned short width, unsigned short height, 
-		short angle);
-int FillTriangle(Display *display, Drawable d, GC gc, 
-		short x, short y, unsigned short width, unsigned short height, 
-		short angle);
-int DrawCenteredArc(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int width, unsigned int height,
-		int angle1, int angle2);
-int FillCenteredArc(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int width, unsigned int height,
-		int angle1, int angle2);
-int DrawTopCircle(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int radius, int angle);
-int FillTopCircle(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int radius, int angle);
diff --git a/01_git/modern.astimerc b/01_git/modern.astimerc
deleted file mode 100644
index 22fd19417655750dbbe93335fb520357698106c1..0000000000000000000000000000000000000000
--- a/01_git/modern.astimerc
+++ /dev/null
@@ -1,40 +0,0 @@
-geometry        120x120-0+0
-
-background      #000020
-foreground      #0000ff
-
-secondColor     #efc669
-minuteColor   	#7766aa
-hourColor       #cc3333
-
-dayColor        #7766aa
-AMPMColor       #7766aa
-dateColor       #7766aa
-
-drawSecondHand  1
-drawDayDate     1
-drawAMPM        1
-drawTicks       1
-drawAllTicks    1
-drawForeground  0
-
-floatSeconds    1
-thinSeconds     0
-handThickness   70
-outThickness    1
-
-fancyHands      1
-outlinedHands   0
-neonHands       1
-
-execProg        "xterm +sb -bg "#303030" -fg "#20b2aa" -geometry 80x50 -T top -n top -e top &"
-withdrawn       0
-iconic          0
-standout        0
-shift           0
-title           astime
-
-# the next three lines are commented out, so that we don't surprise you... ;)
-#at   22:30:00   "xterm -bg red &"
-#at   22:30:15   "xterm -bg green &"
-#at   22:30:30   "xterm -bg blue &"
diff --git a/01_git/resources/ampm.xpm b/01_git/resources/ampm.xpm
deleted file mode 100644
index e902a9fa48e10ccc686cec7a0bf331210ae903c8..0000000000000000000000000000000000000000
--- a/01_git/resources/ampm.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
-/* XPM */
-static const char *ampm[] = {
-/* width height num_colors chars_per_pixel */
-"    13    13       2            1",
-/* colors */
-"c c #385971",
-"l c #a0a0a0",
-/* pixels */
-"ccccccccccccc",
-"cclllcclccclc",
-"clccclcllcllc",
-"clllllclclclc",
-"clccclclccclc",
-"clccclclccclc",
-"ccccccccccccc",
-"cllllcclccclc",
-"clccclcllcllc",
-"cllllcclclclc",
-"clccccclccclc",
-"clccccclccclc",
-"ccccccccccccc",
-};
-
diff --git a/01_git/resources/digits.xpm b/01_git/resources/digits.xpm
deleted file mode 100644
index 73dd3d52be93f8511bd52753d29b09079b6aa8d1..0000000000000000000000000000000000000000
--- a/01_git/resources/digits.xpm
+++ /dev/null
@@ -1,81 +0,0 @@
-/* XPM */
-static const char *digits[] = {
-/* width height num_colors chars_per_pixel */
-"    7    71       2            1",
-/* colors */
-"c c #385971",
-". c #a0a0a0",
-/* pixels */
-"ccccccc",
-"cc...cc",
-"c.ccc.c",
-"c.ccc.c",
-"c.ccc.c",
-"c.ccc.c",
-"cc...cc",
-"ccccccc",
-"ccc.ccc",
-"cc..ccc",
-"ccc.ccc",
-"ccc.ccc",
-"ccc.ccc",
-"cc...cc",
-"ccccccc",
-"cc...cc",
-"c.ccc.c",
-"ccccc.c",
-"ccc..cc",
-"c..cccc",
-"c.....c",
-"ccccccc",
-"cc....c",
-"ccccc.c",
-"cc...cc",
-"ccccc.c",
-"ccccc.c",
-"c....cc",
-"ccccccc",
-"cccc.cc",
-"ccc..cc",
-"cc.c.cc",
-"c.....c",
-"cccc.cc",
-"cccc.cc",
-"ccccccc",
-"c.....c",
-"c.ccccc",
-"c....cc",
-"ccccc.c",
-"c.ccc.c",
-"cc...cc",
-"ccccccc",
-"cc...cc",
-"c.ccccc",
-"c....cc",
-"c.ccc.c",
-"c.ccc.c",
-"cc...cc",
-"ccccccc",
-"c.....c",
-"ccccc.c",
-"cccc.cc",
-"ccc.ccc",
-"cc.cccc",
-"cc.cccc",
-"ccccccc",
-"cc...cc",
-"c.ccc.c",
-"cc...cc",
-"c.ccc.c",
-"c.ccc.c",
-"cc...cc",
-"ccccccc",
-"cc...cc",
-"c.ccc.c",
-"c.ccc.c",
-"cc....c",
-"ccccc.c",
-"cc...cc",
-"ccccccc"
-};
-
diff --git a/01_git/resources/dof.xpm b/01_git/resources/dof.xpm
deleted file mode 100644
index a62a8d032d7eae7c0170d2bee028d76ef194b302..0000000000000000000000000000000000000000
--- a/01_git/resources/dof.xpm
+++ /dev/null
@@ -1,53 +0,0 @@
-/* XPM */
-static const char *dof[] = {
-/* width height num_colors chars_per_pixel */
-"    13    43       2            1",
-/* colors */
-"c c #385971",
-"l c #a0a0a0",
-/* pixels */
-"ccccccccccccc",
-"ccllllclccclc",
-"clccccclccclc",
-"cclllcclccclc",
-"ccccclclccclc",
-"cllllccclllcc",
-"ccccccccccccc",
-"clccclcclllcc",
-"cllcllclccclc",
-"clclclclccclc",
-"clccclclccclc",
-"clccclcclllcc",
-"ccccccccccccc",
-"clllllclccclc",
-"ccclccclccclc",
-"ccclccclccclc",
-"ccclccclccclc",
-"ccclcccclllcc",
-"ccccccccccccc",
-"clccclclllllc",
-"clccclclccccc",
-"clclclclllccc",
-"cllcllclccccc",
-"cclclcclllllc",
-"ccccccccccccc",
-"clllllclccclc",
-"ccclccclccclc",
-"ccclccclllllc",
-"ccclccclccclc",
-"ccclccclccclc",
-"ccccccccccccc",
-"clllllcllllcc",
-"clccccclccclc",
-"clllcccllllcc",
-"clccccclccclc",
-"clccccclccclc",
-"ccccccccccccc",
-"ccllllcclllcc",
-"clccccclccclc",
-"cclllcclllllc",
-"ccccclclccclc",
-"cllllcclccclc",
-"ccccccccccccc"
-};
-
diff --git a/01_git/resources/months.xpm b/01_git/resources/months.xpm
deleted file mode 100644
index b9c7058601b6c180303e0372808d7c6aa232da6a..0000000000000000000000000000000000000000
--- a/01_git/resources/months.xpm
+++ /dev/null
@@ -1,83 +0,0 @@
-/* XPM */
-static const char *months[] = {
-/* width height num_colors chars_per_pixel */
-"    19    73       2            1",
-/* colors */
-". c #385971",
-"o c #a0a0a0",
-/* pixels */
-"...................",
-"..oooo..ooo..o...o.",
-".....o.o...o.oo..o.",
-".....o.ooooo.o.o.o.",
-".....o.o...o.o..oo.",
-"..ooo..o...o.o...o.",
-"...................",
-".ooooo.ooooo.oooo..",
-".o.....o.....o...o.",
-".ooo...ooo...oooo..",
-".o.....o.....o...o.",
-".o.....ooooo.oooo..",
-"...................",
-".o...o..ooo..oooo..",
-".oo.oo.o...o.o...o.",
-".o.o.o.ooooo.oooo..",
-".o...o.o...o.o...o.",
-".o...o.o...o.o...o.",
-"...................",
-"..ooo..oooo..oooo..",
-".o...o.o...o.o...o.",
-".ooooo.oooo..oooo..",
-".o...o.o.....o...o.",
-".o...o.o.....o...o.",
-"...................",
-".o...o..ooo..o...o.",
-".oo.oo.o...o.o...o.",
-".o.o.o.ooooo..ooo..",
-".o...o.o...o...o...",
-".o...o.o...o...o...",
-"...................",
-"..oooo.o...o.o...o.",
-".....o.o...o.oo..o.",
-".....o.o...o.o.o.o.",
-".....o.o...o.o..oo.",
-"..ooo...ooo..o...o.",
-"...................",
-"..oooo.o...o.o.....",
-".....o.o...o.o.....",
-".....o.o...o.o.....",
-".....o.o...o.o.....",
-"..ooo...ooo..ooooo.",
-"...................",
-"..ooo..o...o..ooo..",
-".o...o.o...o.o...o.",
-".ooooo.o...o.o.....",
-".o...o.o...o.o..oo.",
-".o...o..ooo...oooo.",
-"...................",
-"..ooo..ooooo.oooo..",
-".o.....o.....o...o.",
-"..ooo..ooo...oooo..",
-".....o.o.....o.....",
-"..ooo..ooooo.o.....",
-"...................",
-"..ooo...ooo..ooooo.",
-".o...o.o...o...o...",
-".o...o.o.......o...",
-".o...o.o...o...o...",
-"..ooo...ooo....o...",
-"...................",
-".o...o..ooo..o...o.",
-".oo..o.o...o.o...o.",
-".o.o.o.o...o.o...o.",
-".o..oo.o...o..o.o..",
-".o...o..ooo....o...",
-"...................",
-".oooo..ooooo..ooo..",
-".o...o.o.....o...o.",
-".o...o.ooo...o.....",
-".o...o.o.....o...o.",
-".oooo..ooooo..ooo..",
-"..................."
-};
-
diff --git a/01_git/sample.astimerc b/01_git/sample.astimerc
deleted file mode 100644
index b8a680181690a8ad4c764a6d04364d4ad165322b..0000000000000000000000000000000000000000
--- a/01_git/sample.astimerc
+++ /dev/null
@@ -1,41 +0,0 @@
-geometry        120x120-0+0
-
-background      black
-foreground      #0000ff
-
-secondColor     #efc669
-minuteColor   	#20b2aa
-hourColor       #8141d7
-
-dayColor        #7766aa
-AMPMColor       #7766aa
-dateColor       #7766aa
-
-drawSecondHand  1
-drawDayDate     1
-drawAMPM        1
-drawTicks       1
-drawAllTicks    1
-drawForeground  1
-
-floatSeconds    1
-thinSeconds     0
-handThickness   5
-#handThickness   200
-#outThickness    20
-
-fancyHands      1
-outlinedHands   0
-neonHands       1
-
-execProg        "xterm +sb -bg "#303030" -fg "#20b2aa" -geometry 80x50 -T top -n top -e top &"
-withdrawn       0
-iconic          0
-standout        0
-shift           0
-title           astime
-
-# the next three lines are commented out, so that we don't surprise you... ;)
-#at   22:30:00   "xterm -bg red &"
-#at   22:30:15   "xterm -bg green &"
-#at   22:30:30   "xterm -bg blue &"
diff --git a/01_git/src/CMakeLists.txt b/01_git/src/CMakeLists.txt
deleted file mode 100644
index e35f0519d16ce9367c53ecbedcbc4adb09015fed..0000000000000000000000000000000000000000
--- a/01_git/src/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-include_directories(${PROJECT_SOURCE_DIR}/include)
-include_directories(${PROJECT_SOURCE_DIR}/resources)
-
-add_library(safecopy safecopy.c)
-add_library(sunriset sunriset.c)
-add_library(xprimitives x_color.c x_primitives.c)
-add_library(astime_x astime_x.c)
diff --git a/01_git/src/astime_x.c b/01_git/src/astime_x.c
deleted file mode 100644
index 3ad876df226a4a9334e2916754268643dca13496..0000000000000000000000000000000000000000
--- a/01_git/src/astime_x.c
+++ /dev/null
@@ -1,1547 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- * Copyright (c) 1999 William Kostis <kostis@ee.cornell.edu>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#define CIVIL_TWILIGHT 1
-#define NAUT_TWILIGHT  2
-#define ASTRO_TWILIGHT 3
-#define SUNRISESET     4
-#define DARKNESS       5
-#define SUNRISET_SIZE  .618033989f
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <time.h>
-#include <string.h>
-#include <limits.h>
-#include <assert.h>
-
-#include <X11/Xlib.h>
-#include <X11/xpm.h>
-#include <X11/Xatom.h>
-
-#include "sunriset.h"
-#include "x_color.h"
-#include "x_primitives.h"
-#include "state.h"
-#include "safecopy.h"
-
-struct astime_state state;
-
-#include "dof.xpm"
-#include "months.xpm"
-#include "digits.xpm"
-#include "ampm.xpm"
-
-/* nice idea from ascd */
-typedef struct _XpmIcon {
-	Pixmap pixmap;
-	Pixmap mask;
-	XpmAttributes attributes;
-} XpmIcon;
-
-XpmIcon dofXpm;
-XpmIcon ampmXpm;
-XpmIcon monthsXpm;
-XpmIcon digitsXpm;
-
-/* X windows related global variables */
-Display *mainDisplay = 0;	/* The display we are working on */
-Window Root;			/* The root window of X11 */
-Pixmap backgroundWindow;	/* Window for drawing */
-Pixmap drawWindow;		/* Window for drawing */
-Window mainWindow;		/* Application window */
-Window iconWindow;		/* Icon window */
-XGCValues mainGCV;		/* graphics context values */
-GC mainGC;			/* Graphics context */
-Atom wm_delete_window;
-Atom wm_protocols;
-Font label_font;
-XFontStruct * label_fnstruct;
-
-/* the label position and color */
-int label_x, label_y;
-Pixel label_pix;
-
-/* background, digits, months etc pixmap colors */
-char bgpixmap_color[4][32];
-char dof_pixmap_color[2][32];
-char ampm_pixmap_color[2][32];
-char digits_pixmap_color[2][32];
-char months_pixmap_color[2][32];
-
-Pixel back_pix, fore_pix;
-Pixel day_pix, night_pix, astro_pix, naut_pix, civil_pix;
-Pixel oday_pix, onight_pix, oastro_pix, onaut_pix, ocivil_pix;
-
-/* The center of the clock */
-struct coordinates center;
-/* The half-size of the watch drawable area 
- * (2 more pixels are given to the frame */
-struct coordinates watch_size;
-
-/* calculated values in pixels */
-int pixelLength[3];
-struct line_struct {
-	int x1, y1;
-	int x2, y2;
-} lines[3];
-
-/* polygons for the hands */
-XPoint hand[3][4];
-
-/* pixels we need */
-Pixel pix[9];
-
-/* last time we updated */
-time_t last_time = 0;
-time_t curTime;
-
-/* current time in nice format */
-struct tm *loc_time;
-
-/* requests for update */
-int update_request = 0;
-
-/* prototypes */
-void draw_sunriset(Window win,
-                struct tm *local_time,
-                double lon,
-                double lat,
-                unsigned long color,
-                unsigned long neoncolor,
-                float size,
-                int type);
-void draw_window(Window win);
-/* convert the position on 0-60 scale into xy coordinates */
-inline float convert2x(float tim);
-inline float convert2y(float tim);
-/* convert time units to degrees * 64  */
-inline short hour_to_deg64(unsigned short hour);
-inline short min_to_deg64(unsigned short hour);
-inline short sec_to_deg64(unsigned short hour);
-void constants(void);
-void calculate_hands(void);
-void refresh(void);
-void x_cleanup(void);
-void CheckX11Events(void);
-void redraw(void);
-void croncheck(void);
-void update(void);
-void draw_dial(void);
-void initialize(int argc, char **argv,
-		char *window_name,
-		char *display_name,
-		char *mainGeometry,
-		int withdrawn,
-		int iconic,
-		int pushed_in,
-		int no_border);
-
-/* functions */
-void draw_sunriset(Window win,
-		struct tm *local_time,
-		double lon,
-		double lat,
-                unsigned long color,
-                unsigned long neoncolor,
-		float size,
-		int type)
-{
-	int x, y;
-	unsigned int width, height;
-	int angle1, angle2;
-        double start = 0.0;
-        double end = 0.0;
-
-	assert(type == CIVIL_TWILIGHT || type == NAUT_TWILIGHT 
-			|| type == ASTRO_TWILIGHT || type == SUNRISESET
-			|| type == DARKNESS);
-	GC neonGC = XCreateGC(mainDisplay,
-		   mainWindow,
-		   GCForeground | GCLineWidth,
-		   &mainGCV);
-	XSetForeground(mainDisplay, mainGC, color);
-	XSetForeground(mainDisplay, neonGC, neoncolor);
-        double line_width = rint(2.0 * (((double)(watch_size.x + watch_size.y) / 2.0)
-                                        * (state.othick / 1000.0)));
-        XSetLineAttributes(mainDisplay, neonGC, (unsigned int) line_width,
-			LineSolid, CapNotLast, JoinMiter);
-	x = center.x;
-	y = center.y;
-        width = (unsigned int) (((float) watch_size.x) * size);
-        height = (unsigned int) (((float) watch_size.y) * size);
-	if (CIVIL_TWILIGHT == type) {
-		int ret;
-		ret = civil_twilight(local_time->tm_year + 1900, local_time->tm_mon + 1, 
-			local_time->tm_mday, lat, lon, &start, &end);
-		if (1 == ret) {
-			if (state.hprop[PHOUR][HFILL]) {
-				FillCenteredArc(mainDisplay, win, mainGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			if (state.hprop[PHOUR][HOLINE]) {
-				DrawCenteredArc(mainDisplay, win, neonGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			return;
-		} else if (-1 == ret) {
-			return;
-		}
-	} else if (NAUT_TWILIGHT == type) {
-		int ret;
-		ret = nautical_twilight(local_time->tm_year + 1900, local_time->tm_mon + 1, 
-			local_time->tm_mday, lat, lon, &start, &end);
-		if (1 == ret) {
-			if (state.hprop[PHOUR][HFILL]) {
-				FillCenteredArc(mainDisplay, win, mainGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			if (state.hprop[PHOUR][HOLINE]) {
-				DrawCenteredArc(mainDisplay, win, neonGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			return;
-		} else if (-1 == ret) {
-			return;
-		}
-	} else if (ASTRO_TWILIGHT == type) {
-		int ret;
-		ret = astronomical_twilight(local_time->tm_year + 1900, local_time->tm_mon + 1, 
-			local_time->tm_mday, lat, lon, &start, &end);
-		if (1 == ret) {
-			if (state.hprop[PHOUR][HFILL]) {
-				FillCenteredArc(mainDisplay, win, mainGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			if (state.hprop[PHOUR][HOLINE]) {
-				DrawCenteredArc(mainDisplay, win, neonGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			return;
-		} else if (-1 == ret) {
-			return;
-		}
-	} else if (SUNRISESET == type) {
-		int ret;
-		ret = sun_rise_set(local_time->tm_year + 1900, local_time->tm_mon + 1, 
-			local_time->tm_mday, lat, lon, &start, &end);
-		if (1 == ret) {
-			if (state.hprop[PHOUR][HFILL]) {
-				FillCenteredArc(mainDisplay, win, mainGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			if (state.hprop[PHOUR][HOLINE]) {
-				DrawCenteredArc(mainDisplay, win, neonGC, 
-						x, y, width, height, 0 * 64, 359 * 64);
-			}
-			return;
-		} else if (-1 == ret) {
-			return;
-		}
-	} else if (DARKNESS == type) {
-		if (state.hprop[PHOUR][HFILL]) {
-			FillCenteredArc(mainDisplay, win, mainGC,
-					x, y, width, height, 0 * 64, 359 * 64);
-		}
-		if (state.hprop[PHOUR][HOLINE]) {
-			DrawCenteredArc(mainDisplay, win, neonGC,
-					x, y, width, height, 0 * 64, 359 * 64);
-		}
-		return;
-	}
-        angle1 = (int) rint(start * 15.0);
-        angle2 = (int) rint(end * 15.0);
-        angle2 -= (angle1 + 360) % 360;
-        angle1 += (int) (((double) loc_time->tm_gmtoff) * 0.004166667);
-        if (state.counterclockwise) {
-		angle1 = (360 - angle1) % 360;
-		angle2 *= -1;
-	}
-	if (state.hprop[PHOUR][HFILL]) {
-		FillCenteredArc(mainDisplay, win, mainGC, x, y, width, height, 
-				(360 - angle1 - 90) * 64, -angle2 * 64);
-	}
-	if (state.hprop[PHOUR][HOLINE]) {
-		DrawCenteredArc(mainDisplay, win, neonGC, x, y, width, height, 
-				(360 - angle1 - 90) * 64, -angle2 * 64);
-	}
-}
-
-void draw_window(Window win)
-{
-	int i;
-
-  assert(state.total_size.x >= 0);
-  assert(state.total_size.y >= 0);
-        XCopyArea(
-			 mainDisplay,
-			 backgroundWindow,
-			 win,
-			 mainGC,
-			 0,
-			 0,
-                        (unsigned int) state.total_size.x,
-                        (unsigned int) state.total_size.y,
-			 0,
-			 0
-	    );
-	if (state.draw_ampm)
-		XCopyArea(
-				 mainDisplay,
-				 ampmXpm.pixmap,
-				 win,
-				 mainGC,
-				 0,
-				 (loc_time->tm_hour > 11 ? 6 : 0),
-				 13,
-				 7,
-				 state.total_size.x - 14,
-				 1
-		    );
-	if (state.draw_date) {
-		XCopyArea(
-				 mainDisplay,
-				 dofXpm.pixmap,
-				 win,
-				 mainGC,
-				 0,
-				 loc_time->tm_wday * 6,
-				 13,
-				 7,
-				 1,
-				 1
-		    );
-		XCopyArea(
-				 mainDisplay,
-				 digitsXpm.pixmap,
-				 win,
-				 mainGC,
-				 0,
-				 (loc_time->tm_mday / 10) * 7,
-				 7,
-				 8,
-				 1,
-				 state.total_size.y - 9
-		    );
-		XCopyArea(
-				 mainDisplay,
-				 digitsXpm.pixmap,
-				 win,
-				 mainGC,
-				 0,
-				 (loc_time->tm_mday % 10) * 7,
-				 7,
-				 8,
-				 8,
-				 state.total_size.y - 9
-		    );
-		XCopyArea(
-				 mainDisplay,
-				 monthsXpm.pixmap,
-				 win,
-				 mainGC,
-				 0,
-				 loc_time->tm_mon * 6,
-				 19,
-				 7,
-				 18,
-				 state.total_size.y - 8
-		    );
-		/* The year won't fit in smaller displays */
-		if (state.total_size.x > 51) {
-			XCopyArea(
-					 mainDisplay,
-					 digitsXpm.pixmap,
-					 win,
-					 mainGC,
-					 0,
-				      (loc_time->tm_year % 100 / 10) * 7,
-					 7,
-					 8,
-					 38,
-					 state.total_size.y - 9
-			    );
-			XCopyArea(
-					 mainDisplay,
-					 digitsXpm.pixmap,
-					 win,
-					 mainGC,
-					 0,
-					 (loc_time->tm_year % 10) * 7,
-					 7,
-					 8,
-					 45,
-					 state.total_size.y - 9
-			    );
-		}
-	}
-#ifdef DEBUG
-	mainGCV.foreground = pix[2];
-	XChangeGC(
-			 mainDisplay,
-			 mainGC,
-			 GCForeground,
-			 &mainGCV
-	    );
-	XDrawLine(
-			 mainDisplay,
-			 win,
-			 mainGC,
-			 center.x - watch_size.x,
-			 center.y - watch_size.y,
-			 center.x + watch_size.x,
-			 center.y - watch_size.y
-	    );
-	XDrawLine(
-			 mainDisplay,
-			 win,
-			 mainGC,
-			 center.x + watch_size.x,
-			 center.y - watch_size.y,
-			 center.x + watch_size.x,
-			 center.y + watch_size.y
-	    );
-	XDrawLine(
-			 mainDisplay,
-			 win,
-			 mainGC,
-			 center.x + watch_size.x,
-			 center.y + watch_size.y,
-			 center.x - watch_size.x,
-			 center.y + watch_size.y
-	    );
-	XDrawLine(
-			 mainDisplay,
-			 win,
-			 mainGC,
-			 center.x - watch_size.x,
-			 center.y + watch_size.y,
-			 center.x - watch_size.x,
-			 center.y - watch_size.y
-	    );
-#endif
-	/* draw sunrise and sunset */
-	if (state.twentyfour && state.sunriset) {
-		draw_sunriset(win, loc_time, 
-				state.lon, state.lat, night_pix, onight_pix, SUNRISET_SIZE, 
-				DARKNESS);
-		draw_sunriset(win, loc_time, 
-				state.lon, state.lat, astro_pix, oastro_pix,  SUNRISET_SIZE, 
-				ASTRO_TWILIGHT);
-		draw_sunriset(win, loc_time,
-			   	state.lon, state.lat, naut_pix, onaut_pix, SUNRISET_SIZE, 
-				NAUT_TWILIGHT);
-		draw_sunriset(win, loc_time,
-			   	state.lon, state.lat, civil_pix, ocivil_pix, SUNRISET_SIZE, 
-				CIVIL_TWILIGHT);
-		draw_sunriset(win, loc_time,
-			   	state.lon, state.lat, day_pix, oday_pix, SUNRISET_SIZE, 
-				SUNRISESET);
-	}
-	/* draw filled polygonal hands */
-	for (i = 2; i >= 0; i--) {
-		if ((i == 0) && (state.draw_seconds == 0))
-			break;
-
-		if (state.hprop[i][HFILL]) {
-			mainGCV.foreground = pix[i + 6];
-			XChangeGC(
-					 mainDisplay,
-					 mainGC,
-					 GCForeground | GCLineWidth,
-					 &mainGCV
-			    );
-
-			XFillPolygon(mainDisplay, 
-					win, 
-					mainGC, 
-					hand[i], 
-					3, 
-					Convex, 
-					CoordModeOrigin);
-		}
-		/* draw line-rendered hands */
-		if (state.hprop[i][HCLINE]) {
-			mainGCV.foreground = pix[i];
-
-			if ((i == 0) && state.thin_seconds) {
-				mainGCV.line_width = 1;
-			} else {
-				/* scale line thickness by window size */
-        mainGCV.line_width = (int) rint((1.0 + (0.5 * (double) i))
-                                  * (((watch_size.x + watch_size.y) / 2.0)
-                                     * (state.hthick / 100.0)));
-			}
-
-			XChangeGC(
-					 mainDisplay,
-					 mainGC,
-					 GCForeground | GCLineWidth,
-					 &mainGCV
-			    );
-			XDrawLine(
-					 mainDisplay,
-					 win,
-					 mainGC,
-					 lines[i].x1,
-					 lines[i].y1,
-					 lines[i].x2,
-					 lines[i].y2
-			    );
-		}
-		/* draw outlines of hands */
-		if (state.hprop[i][HOLINE]) {
-			mainGCV.foreground = pix[i + 3];
-                        mainGCV.line_width = (int) rint((1.0 + (0.5 * (double) i))
-					* (((watch_size.x + watch_size.y) / 2.0) 
-					* (state.othick / 1000.0)));
-			XChangeGC(
-					 mainDisplay,
-					 mainGC,
-					 GCForeground | GCLineWidth,
-					 &mainGCV
-			    );
-			XDrawLines(mainDisplay, win, mainGC, hand[i], 4, CoordModeOrigin);
-
-		}
-	}
-
-	if (state.show_label) {
-		mainGCV.foreground = label_pix;
-		XChangeGC(
-				 mainDisplay,
-				 mainGC,
-				 GCForeground,
-				 &mainGCV
-		    );
-		XDrawString(
-				mainDisplay,
-				win,
-				mainGC,
-				label_x,
-				label_y,
-				state.label,
-                                (int) strlen(state.label)
-				);
-	}
-}
-
-float convert2x(float tim)
-{
-        return cosf(((float) M_PI) * (((tim - 15.0f)) * 6.0f) / 180.0f);
-}
-
-float convert2y(float tim)
-{
-        return sinf(((float) M_PI) * (((tim - 15.0f)) * 6.0f) / 180.0f);
-}
-
-short hour_to_deg64(unsigned short hour)
-{
-  assert(hour < 24);
-  int result = 0;
-  if (state.twentyfour) {
-    result = (hour * 960) % 23040;
-  } else {
-    result = (hour * 1920) % 23040;
-  }
-  return (short) result;
-}
-
-inline short min_to_deg64(unsigned short min)
-{
-  assert(min < 60);
-  int result = min * 384;
-  return (short) result;
-}
-
-short sec_to_deg64(unsigned short sec)
-{
-  assert(sec <= 60);
-  int result = sec * 384;
-  return (short) result;
-}
-
-float hwidth[3];
-float hlength[3];
-float hback[3];
-float hscale;
-
-/* calculate some rendering constants */
-void constants(void)
-{
-  hscale = (state.hthick / 4.0f);
-
-  hwidth[0] = 0.02f * hscale;
-  hwidth[1] = 0.05f * hscale;
-  hwidth[2] = 0.07f * hscale;
-
-  hlength[0] = 1.0f;
-  hlength[1] = 0.9f;
-  hlength[2] = 0.6f;
-  hback[0] = 0.02f;
-  hback[1] = 0.05f;
-  hback[2] = 0.07f;
-
-  if (state.float_seconds)
-    hback[0] = -0.8f;
-}
-
-
-
-/* calculate rendering parameters for hands */
-void calculate_hands(void)
-{
-	int i;
-	float xrate[3], yrate[3];
-
-	loc_time = localtime(&curTime);
-	if (state.shift) {
-		loc_time->tm_hour += state.shift;
-		while (loc_time->tm_hour > 23)
-			loc_time->tm_hour %= 24;
-		while (loc_time->tm_hour < 0)
-			loc_time->tm_hour += 24;
-	}
-
-	if (state.counterclockwise) {
-		loc_time->tm_sec = 60 - loc_time->tm_sec;
-		loc_time->tm_min = 60 - loc_time->tm_min;
-		loc_time->tm_hour = 24 - loc_time->tm_hour;
-	}
-
-	/* seconds */
-	xrate[0] = convert2x((float) loc_time->tm_sec);
-	yrate[0] = convert2y((float) loc_time->tm_sec);
-
-	/* minutes */
-	xrate[1] = convert2x((float) (loc_time->tm_min 
-				+ (float) (loc_time->tm_sec) / 60.0));
-	yrate[1] = convert2y((float) (loc_time->tm_min 
-				+ (float) (loc_time->tm_sec) / 60.0));
-
-	/* hours */
-	if (state.twentyfour) { 
-                xrate[2] = -convert2x((((float) loc_time->tm_hour) * 2.5f)
-                                + ((float) (loc_time->tm_min) / 24.0f)
-                                + ((float) (loc_time->tm_sec) / 1440.0f));
-                yrate[2] = -convert2y((((float) loc_time->tm_hour) * 2.5f)
-                                + ((float) (loc_time->tm_min) / 24.0f)
-                                + ((float) (loc_time->tm_sec) / 1440.0f));
-	} else {
-		xrate[2] = convert2x((float) ((loc_time->tm_hour % 12) * 5) 
-                                + ((float) (loc_time->tm_min) / 12.0f)
-                                + ((float) (loc_time->tm_sec) / 720.0f));
-		yrate[2] = convert2y((float) ((loc_time->tm_hour % 12) * 5) 
-                                + ((float) (loc_time->tm_min) / 12.0f)
-                                + ((float) (loc_time->tm_sec) / 720.0f));
-	}
-	
-	for (i = 0; i < 3; i++) {
-                lines[i].x1 = center.x - (int) rintf(hback[i] * ((float) watch_size.x) * xrate[i]);
-                lines[i].y1 = center.y - (int) rintf(hback[i] * ((float) watch_size.y) * yrate[i]);
-                lines[i].x2 = (int) rintf(hlength[i] * ((float) watch_size.x) * xrate[i]) + center.x;
-                lines[i].y2 = (int) rintf(hlength[i] * ((float) watch_size.y) * yrate[i]) + center.y;
-
-#ifdef DEBUG
-		if (i == 0) {
-			printf("%d hour = %d %d -> %d %d, xrate = %f, yrate = %f\n",
-			       loc_time->tm_hour, lines[2].x1, lines[2].y1,
-			   lines[2].x2, lines[2].y2, xrate[2], yrate[2]); 
-		}
-#endif
-
-		/* generate polygons */
-                hand[i][0].x = (short) (rintf((hwidth[i] * (float) watch_size.x) * yrate[i]) + (float) center.x
-                    - rintf(hback[i] * ((float) watch_size.x) * xrate[i]));
-                hand[i][0].y = (short) (rintf((hwidth[i] * (float) watch_size.y) * (-xrate[i])) + (float) center.y
-                    - rintf(hback[i] * ((float) watch_size.y) * yrate[i]));
-                hand[i][1].x = (short) (rintf((hwidth[i] * (float) watch_size.x) * (-yrate[i])) + (float) center.x
-                    - rintf(hback[i] * ((float) watch_size.x) * xrate[i]));
-                hand[i][1].y = (short) (rintf((hwidth[i] * (float) watch_size.y) * xrate[i]) + (float) center.y
-                    - rintf(hback[i] * ((float) watch_size.y) * yrate[i]));
-                hand[i][2].x = (short) lines[i].x2;
-                hand[i][2].y = (short) lines[i].y2;
-		hand[i][3].x = hand[i][0].x;
-		hand[i][3].y = hand[i][0].y;
-	}
-}
-
-/*
- * Calculate and redraw the lines corresponding to the
- * time.
- */
-void refresh(void)
-{
-	constants();
-	calculate_hands();
-	draw_window(drawWindow);
-	++update_request;
-}
-
-/*
- * This function clears up all X related
- * stuff and exits. It is called in case
- * of emergencies too.
- */
-void x_cleanup(void)
-{
-	if (mainDisplay) {
-		XCloseDisplay(mainDisplay);
-	}
-	exit(0);
-}
-
-/* 
- * This checks for X11 events. We distinguish the following:
- * - request to repaint the window
- * - request to quit (Close button)
- */
-void CheckX11Events(void)
-{
-	XEvent Event;
-	while (XPending(mainDisplay)) {
-		XNextEvent(mainDisplay, &Event);
-		switch (Event.type) {
-		case Expose:
-#ifdef DEBUG
-			printf("Expose event caught: (%d %d) (%d x %d)\n",
-			       ((XExposeEvent *) & Event)->x,
-			       ((XExposeEvent *) & Event)->y,
-			       ((XExposeEvent *) & Event)->width,
-			       ((XExposeEvent *) & Event)->height);
-#endif
-			if (Event.xexpose.count == 0) {
-				++update_request;
-			}
-			break;
-		case ButtonPress:
-			{
-				int status = system(state.program_name);
-				if (status == -1) {
-					fprintf(stderr, "could not start program %s on mouse click.\n", state.program_name);
-				}
-			}
-			break;
-		case ClientMessage:
-			if ((Event.xclient.message_type == wm_protocols)
-                            && (Event.xclient.data.l[0] == (long) wm_delete_window)) {
-#ifdef DEBUG
-				printf("caught wm_delete_window, closing\n");
-#endif
-				x_cleanup();
-			}
-			break;
-      default:
-        break;
-		}
-	}
-}
-
-/*
- * Flush the changes that were done in the hidden window
- * onto the visible windows.
- */
-void redraw(void)
-{
-        XCopyArea(mainDisplay,
-            drawWindow,
-            mainWindow,
-            mainGC,
-            0, 0,
-            (unsigned int) state.total_size.x,
-            (unsigned int) state.total_size.y,
-            0, 0);
-
-        XCopyArea(mainDisplay,
-                  drawWindow,
-                  iconWindow,
-                  mainGC,
-                  0, 0,
-                  (unsigned int) state.total_size.x,
-                  (unsigned int) state.total_size.y,
-                  0, 0);
-
-	update_request = 0;
-}
-
-/*
- * This routine checks if the current time is equal to the time
- * specified in the configuration file and executes the given
- * command.
- */
-void croncheck(void)
-{
-	int i;
-
-	for (i = 0; i < state.nprogs; i++) {
-		if (loc_time->tm_hour == state.PInf[i]->time[0]) {
-			if (loc_time->tm_min == state.PInf[i]->time[1]) {
-                                if (loc_time->tm_sec == state.PInf[i]->time[2]) {
-					if (!state.PInf[i]->done) {
-						state.PInf[i]->done = 1;
-						int status = system(state.PInf[i]->name);
-						if (status == -1) {
-							fprintf(stderr, "could not start %s on periodic activation.\n", state.PInf[i]->name);
-						}
-					}
-				} else {
-					state.PInf[i]->done = 0;
-				}
-			}
-		}
-	}
-}
-
-/*
- * This function triggers checks for updates of the clock
- * every second and checks if any X11 events were passed 
- * to us. If one of the functions triggers the flag an
- * update is flushed to the screen.
- */
-void update(void)
-{
-	curTime = time(0);
-
-	if ( curTime != last_time ) {
-    time_t time_diff = curTime - last_time;
-    assert(time_diff < INT_MAX);
-    assert(INT_MIN < time_diff);
-    if ( abs((int) time_diff) >= state.update_interval) {
-			last_time = curTime;
-			refresh();
-		}
-		if (state.cron_program)
-			croncheck();
-	}
-
-	CheckX11Events();
-	if (update_request) {
-		redraw();
-	}
-}
-
-/* 
- * Draw those little points every 5 secs on the background pixmap
- * that usually are marked 1,2,3,4,5,6,7 etc.
- * And those triangles that mark 3,6,9,12 o'clock 
- */
-void draw_dial(void)
-{
-	double base_size;
-	XPoint coord;
-	GC neonGC;
-	neonGC = XCreateGC(mainDisplay,
-			   mainWindow,
-			   GCForeground | GCLineWidth,
-			   &mainGCV);
-
-	base_size = log((watch_size.x + watch_size.y) / 64);
-
-	XSetLineAttributes(mainDisplay, neonGC, 
-                        (unsigned int) (rint(2.0 * (((watch_size.x + watch_size.y) / 2.0)
-                                        * (state.othick / 1000.0)))),
-			LineSolid, CapNotLast, JoinMiter);
-
-        for (int i = 0; i < 120; i++) {
-		int size;
-		/* three hours */
-		if (state.twentyfour ? i % 15 == 0 : i % 30 == 0) {
-			XSetForeground(mainDisplay, mainGC, pix[8]);
-			XSetForeground(mainDisplay, neonGC, pix[5]);
-                        size = (int) rint(fmax(base_size * 5, 6));
-                        coord.x = (short) (center.x + ((int) rint((((double) watch_size.x) + 1.0)
-                                                         * convert2x(((float) i) / 2.0f))));
-                        coord.y = (short) (center.y + ((int) rint((watch_size.y + 1.0)
-                                                         * convert2y(((float) i) / 2.0f))));
-                        if (state.hprop[PHOUR][HFILL]) {
-                          FillTriangle(mainDisplay,
-                                       backgroundWindow,
-                                       mainGC,
-                                       coord.x,
-                                       coord.y,
-                                       (unsigned short) size,
-                                       (unsigned short) rint(0.5 * size),
-                                       sec_to_deg64((unsigned short) (60.0 - ((double) i) / 2.0)));
-                        }
-			if (state.hprop[PHOUR][HOLINE]) {
-        DrawTriangle(mainDisplay,
-                     backgroundWindow,
-                     neonGC,
-                     coord.x,
-                     coord.y,
-                     (unsigned short) size,
-                     (unsigned short) rint(0.5 * size),
-                     sec_to_deg64((unsigned short) (60 - i / 2)));
-			}
-			/* hours */
-		} else if (state.twentyfour ? i % 5 == 0 : i % 10 == 0) {
-			XSetForeground(mainDisplay, mainGC, pix[7]);
-			XSetForeground(mainDisplay, neonGC, pix[4]);
-                        size = (int) rint(base_size * 2.0);
-                        coord.x = (short) (((double) center.x) + rint((((double) watch_size.x) + 1.0)
-                                                           * convert2x(((float) i) / 2.0f)));
-                        coord.y = (short) (((double) center.y) + rint((((double) watch_size.y) + 1.0)
-                                                           * convert2y(((float) i) / 2.0f)));
-			if (size <= 1) {
-				XDrawPoint(mainDisplay, backgroundWindow, neonGC, 
-						coord.x, coord.y);
-			} else {
-				if (state.hprop[PHOUR][HFILL]) {
-          FillTopCircle(mainDisplay,
-                        backgroundWindow,
-                        mainGC,
-                        coord.x,
-                        coord.y,
-                        (unsigned int) size / 2,
-                        sec_to_deg64((unsigned short) (((double) i) / 2.0)));
-        }
-				if (state.hprop[PHOUR][HOLINE]) {
-          DrawTopCircle(mainDisplay,
-                        backgroundWindow,
-                        neonGC,
-                        coord.x,
-                        coord.y,
-                        (unsigned int) size / 2,
-                        sec_to_deg64((unsigned short) (((double) i) / 2.0)));
-        }
-			}
-			/* seconds */
-		} else if (i % 2 == 0) {
-			if (state.tprop == 2) {
-				XSetForeground(mainDisplay, mainGC, pix[6]);
-				XSetForeground(mainDisplay, neonGC, pix[3]);
-                                coord.x = (short) (((double) center.x) + rint((watch_size.x + 1)
-                                                * (double) convert2x(((float) i) / 2.0f)));
-                                coord.y = (short) (((double) center.y) + rint((watch_size.y + 1)
-                                                * ((double) convert2y(((float) i) / 2.0f))));
-				XDrawPoint(mainDisplay, backgroundWindow, neonGC, 
-						coord.x, coord.y);
-			} else {
-				continue;
-			}
-		} else {
-			continue;
-		}
-	}
-	XFreeGC(mainDisplay, neonGC);
-}
-
-void initialize(int argc, char **argv,
-		char *window_name,
-		char *display_name,
-		char *mainGeometry,
-		int withdrawn,
-		int iconic,
-		int pushed_in,
-		int no_border)
-{
-	int screen;
-	Status status;
-	XWindowAttributes winAttr;
-	XSizeHints SizeHints;
-	XTextProperty title;
-	XClassHint classHint;
-	int gravity;
-	XWMHints WmHints;
-	XEvent Event;
-	int color_depth;
-	Pixel tmp_pix;
-	int x_negative = 0;
-	int y_negative = 0;
-	int label_w = 0;
-	int label_h = 0;
-
-	mainDisplay = XOpenDisplay(display_name);
-	if (!mainDisplay) {
-		printf("astime : grrrr... can't open display %s. Sorry ...\n",
-		       XDisplayName(display_name));
-		exit(1);
-	}
-	screen = DefaultScreen(mainDisplay);
-	Root = RootWindow(mainDisplay, screen);
-	back_pix = GetColor(state.bgcolor, mainDisplay, Root);
-	fore_pix = GetColor(state.fgcolor, mainDisplay, Root);
-
-	if (state.neon) {
-		char tmp_day[50]; 
-		char tmp_night[50];
-		
-		safecopy(tmp_day, DarkenCharColor(state.sunrisetday, 1.5, mainDisplay, Root), 50);
-		safecopy(tmp_night, DarkenCharColor(state.sunrisetnight, 1.5, mainDisplay, Root), 50);
-	
-		day_pix = GetColor(tmp_day, mainDisplay, Root);
-		night_pix = GetColor(tmp_night, mainDisplay, Root);
-		astro_pix = GetColor(MixCharColors(tmp_day, tmp_night, .25, 
-					mainDisplay, Root), 
-				mainDisplay, Root);
-		naut_pix = GetColor(MixCharColors(tmp_day, tmp_night, .5, 
-					mainDisplay, Root), 
-				mainDisplay, Root);
-		civil_pix = GetColor(MixCharColors(tmp_day, tmp_night, .75, 
-					mainDisplay, Root), 
-				mainDisplay, Root);
-		oday_pix = GetColor(state.sunrisetday, mainDisplay, Root);
-		onight_pix = GetColor(state.sunrisetnight, mainDisplay, Root);
-		oastro_pix = MixColors(state.sunrisetday, 
-				state.sunrisetnight, .25, mainDisplay, Root);
-		onaut_pix = MixColors(state.sunrisetday, 
-				state.sunrisetnight, .5, mainDisplay, Root);
-		ocivil_pix = MixColors(state.sunrisetday, 
-				state.sunrisetnight, .75, mainDisplay, Root);
-
-	} else {
-		char tmp_day[50]; 
-		char tmp_night[50];
-
-		safecopy(tmp_day, LightenCharColor(state.sunrisetday, 1.5, mainDisplay, Root), 50);
-		safecopy(tmp_night, LightenCharColor(state.sunrisetnight, 1.5, mainDisplay, Root), 50);
-		day_pix = GetColor(state.sunrisetday, mainDisplay, Root);
-		night_pix = GetColor(state.sunrisetnight, mainDisplay, Root);
-		astro_pix = MixColors(state.sunrisetday, 
-				state.sunrisetnight, .25, mainDisplay, Root);
-		naut_pix = MixColors(state.sunrisetday, 
-				state.sunrisetnight, .5, mainDisplay, Root);
-		civil_pix = MixColors(state.sunrisetday, 
-				state.sunrisetnight, .75, mainDisplay, Root);
-		oday_pix = GetColor(tmp_day, mainDisplay, Root);
-		onight_pix = GetColor(tmp_night, mainDisplay, Root);
-		oastro_pix = GetColor(MixCharColors(tmp_day, tmp_night, .25, 
-					mainDisplay, Root), 
-				mainDisplay, Root);
-		onaut_pix = GetColor(MixCharColors(tmp_day, tmp_night, .5, 
-					mainDisplay, Root), 
-				mainDisplay, Root);
-		ocivil_pix = GetColor(MixCharColors(tmp_day, tmp_night, .75, 
-					mainDisplay, Root), 
-				mainDisplay, Root);
-	}
-	color_depth = DefaultDepth(mainDisplay, screen);
-#ifdef DEBUG
-	printf("astime : detected color depth %d bpp, using %d bpp\n",
-	       color_depth, color_depth);
-#endif
-	/* Set up the font for the label */
-	if ( state.show_label ) {
-		label_fnstruct = XLoadQueryFont( mainDisplay, state.font_name );
-		if ( ! label_fnstruct ) {
-			printf("astime : failed to load font %s\n",
-					state.font_name);
-			printf("astime : warning : the label will not be drawn\n");
-			state.show_label = 0;
-		} else {
-			label_font = label_fnstruct->fid;
-			label_w = XTextWidth(
-					label_fnstruct,
-					state.label,
-                                        (int) strlen(state.label)
-					);
-			label_h = label_fnstruct->max_bounds.ascent +
-				label_fnstruct->max_bounds.descent;
-#ifdef DEBUG
-	printf("astime : loaded font %s\n", state.font_name);
-	printf("astime : label width is %d, height is %d [label \"%s\"]\n",
-			label_w, label_h, state.label);
-#endif
-		}
-	}
-
-	if (strlen(mainGeometry)) {
-		/* Check the user-specified size */
-                int result = XParseGeometry(mainGeometry,
-					&SizeHints.x,
-					&SizeHints.y,
-					(unsigned int *) &SizeHints.width,
-					(unsigned int *) &SizeHints.height);
-		if (result & WidthValue) {
-			state.total_size.x = SizeHints.width;
-		}
-		if (result & HeightValue) {
-			state.total_size.y = SizeHints.height;
-		}
-		if (result & XNegative)
-			x_negative = 1;
-		if (result & YNegative)
-			y_negative = 1;
-#ifdef DEBUG
-		printf("User size: %d x %d position: %d %d (negative %d %d)\n",
-		       state.total_size.x, state.total_size.y,
-		       SizeHints.x, SizeHints.y, x_negative, y_negative);
-#endif
-	}
-	/* adjust the coordinate/size for the date */
-	if (state.draw_date) {
-		center.x = state.total_size.x / 2;
-		center.y = state.total_size.y / 2 - 4;
-		watch_size.x = center.x - 3;
-		watch_size.y = state.total_size.y / 2 - 7;
-	} else {
-		center.x = state.total_size.x / 2;
-		center.y = state.total_size.y / 2;
-		watch_size.x = center.x - 3;
-		watch_size.y = center.y - 3;
-	}
-	/* adjust the coordinates/size for the label */
-	if ( state.show_label ) {
-		if ( state.label_top )
-			center.y += label_h/2 + 1;
-		else
-			center.y -= label_h/2;
-		watch_size.y -= label_h/2 + 1;
-		label_x = state.total_size.x / 2 - label_w / 2;
-		if ( state.label_top )
-			label_y = label_h;
-		else {
-			if ( state.draw_date )
-				label_y = state.total_size.y - 10;
-			else
-				label_y = state.total_size.y - 3;
-		}
-	}
-
-	/* The day-of-week pixmap */
-	sprintf(dof_pixmap_color[0], "c c %s", state.bgcolor);
-	sprintf(dof_pixmap_color[1], "l c %s", state.daycolor);
-	dof[1] = dof_pixmap_color[0];
-	dof[2] = dof_pixmap_color[1];
-	dofXpm.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-qual"
-        status = XpmCreatePixmapFromData(
-			mainDisplay,		/* display */
-			Root,			/* window */
-                        (char **) dof,		/* xpm */
-			&dofXpm.pixmap,		/* resulting pixmap */
-			&dofXpm.mask,
-			&dofXpm.attributes);
-#pragma GCC diagnostic pop
-        if (status != XpmSuccess) {
-		printf("astime : (%d) not enough free color cells for day_of_week.\n", status);
-		x_cleanup();
-	}
-	/* The AM/PM pixmap */
-	sprintf(ampm_pixmap_color[0], "c c %s", state.bgcolor);
-	sprintf(ampm_pixmap_color[1], "l c %s", state.ampmcolor);
-	ampm[1] = ampm_pixmap_color[0];
-	ampm[2] = ampm_pixmap_color[1];
-	ampmXpm.attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-qual"
-        status = XpmCreatePixmapFromData(
-			mainDisplay,		/* display */
-			Root,			/* window */
-                        (char **) ampm,		/* xpm */
-			&ampmXpm.pixmap,	/* resulting pixmap */
-			&ampmXpm.mask,
-			&ampmXpm.attributes);
-#pragma GCC diagnostic pop
-        if (status != XpmSuccess) {
-		printf("astime : (%d) not enough free color cells for AM/PM indicator.\n", status);
-		x_cleanup();
-	}
-	/* The digits pixmap */
-	sprintf(digits_pixmap_color[0], "c c %s", state.bgcolor);
-	sprintf(digits_pixmap_color[1], ". c %s", state.datecolor);
-	digits[1] = digits_pixmap_color[0];
-	digits[2] = digits_pixmap_color[1];
-	digitsXpm.attributes.valuemask |= 
-		(XpmReturnPixels | XpmReturnExtensions);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-qual"
-        status = XpmCreatePixmapFromData(
-			mainDisplay,		/* display */
-			Root,			/* window */
-                        (char **) digits,	/* xpm */
-			&digitsXpm.pixmap,	/* resulting pixmap */
-			&digitsXpm.mask,
-			&digitsXpm.attributes);
-#pragma GCC diagnostic pop
-        if (status != XpmSuccess) {
-		printf("astime : (%d) not enough free color cells for digits.\n", status);
-		x_cleanup();
-	}
-	/* The months pixmap */
-	sprintf(months_pixmap_color[0], ". c %s", state.bgcolor);
-	sprintf(months_pixmap_color[1], "o c %s", state.datecolor);
-	months[1] = months_pixmap_color[0];
-	months[2] = months_pixmap_color[1];
-	monthsXpm.attributes.valuemask |= 
-		(XpmReturnPixels | XpmReturnExtensions);
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-qual"
-        status = XpmCreatePixmapFromData(
-			mainDisplay,		/* display */
-			Root,			/* window */
-                        (char **) months,	/* xpm */
-			&monthsXpm.pixmap,	/* resulting pixmap */
-			&monthsXpm.mask,
-			&monthsXpm.attributes);
-#pragma GCC diagnostic pop
-        if (status != XpmSuccess) {
-		printf("astime : (%d) not enough free color cells for months.\n", status);
-		x_cleanup();
-	}
-	SizeHints.flags = USSize | USPosition;
-	SizeHints.x = 0;
-	SizeHints.y = 0;
-	SizeHints.min_width =
-	    SizeHints.max_width =
-	    SizeHints.width = state.total_size.x;
-	SizeHints.min_height =
-	    SizeHints.max_height =
-	    SizeHints.height = state.total_size.y;
-	SizeHints.flags |= PMinSize | PMaxSize;
-	/*
-	 * The forth parameter is the window border width.
-	 * Set to 0 it makes astime look really queer in
-	 * AS when using -0-0 geometry. I have no idea why.
-	 * When the border is 1, everything is fine, but
-	 * the window is off by 1, of course.
-	 * It is probably a bug in AS.
-	 */
-	XWMGeometry(mainDisplay, screen, mainGeometry, NULL, 0,
-		    &SizeHints, &SizeHints.x, &SizeHints.y,
-		    &SizeHints.width, &SizeHints.height, &gravity);
-#ifdef DEBUG
-	printf("SizeHints were: %d x %d, setting to %d x %d, position %d %d\n",
-	       SizeHints.width, SizeHints.height,
-	       state.total_size.x, state.total_size.y,
-	       SizeHints.x, SizeHints.y);
-#endif
-
-	/* Correct the offsets if the X/Y are negative */
-	SizeHints.win_gravity = NorthWestGravity;
-	if (x_negative) {
-		SizeHints.win_gravity = NorthEastGravity;
-	}
-	if (y_negative) {
-		if (x_negative)
-			SizeHints.win_gravity = SouthEastGravity;
-		else
-			SizeHints.win_gravity = SouthWestGravity;
-	}
-	SizeHints.flags |= PWinGravity;
-
-	backgroundWindow = XCreatePixmap(
-				mainDisplay,
-				Root,
-                                (unsigned int) state.total_size.x,
-                                (unsigned int) state.total_size.y,
-                                (unsigned int) color_depth
-	    );
-
-	drawWindow = XCreatePixmap(
-				mainDisplay,		/* display */
-				Root,			/* parent */
-                                (unsigned int) state.total_size.x,	/* width */
-                                (unsigned int) state.total_size.y,	/* height */
-                                (unsigned int) color_depth		/* color depth */
-	    );
-
-	mainWindow = XCreateSimpleWindow(
-				mainDisplay,		/* display */
-				Root,			/* parent */
-				SizeHints.x,		/* x */
-				SizeHints.y,		/* y */
-                                (unsigned int) SizeHints.width,	/* width */
-                                (unsigned int) SizeHints.height,	/* height */
-				0,			/* border_width */
-				fore_pix,		/* border */
-				back_pix		/* background */
-	    );
-
-	iconWindow = XCreateSimpleWindow(
-				mainDisplay,		/* display */
-				Root,			/* parent */
-				SizeHints.x,		/* x */
-				SizeHints.y,		/* y */
-                                (unsigned int) SizeHints.width,	/* width */
-                                (unsigned int) SizeHints.height,	/* height */
-				0,			/* border_width */
-				fore_pix,		/* border */
-				back_pix		/* background */
-	    );
-
-	XSetWMNormalHints(mainDisplay, mainWindow, &SizeHints);
-	XSetWMNormalHints(mainDisplay, iconWindow, &SizeHints);
-	status = XClearWindow(mainDisplay, mainWindow);
-  assert(status != BadMatch);
-  assert(status != BadWindow);
-        status = XClearWindow(mainDisplay, iconWindow);
-  assert(status != BadMatch);
-  assert(status != BadWindow);
-
-	status = XGetWindowAttributes(
-			     mainDisplay,	/* display */
-			     mainWindow,	/* window */
-			     &winAttr		/* window_attributes_return */
-	    );
-  assert(status != BadDrawable);
-  assert(status != BadWindow);
-#ifdef DEBUG
-	printf("Window Attributes: %d x %d at %d %d border %d\n",
-	       winAttr.width, winAttr.height, winAttr.x, winAttr.y,
-	       winAttr.border_width);
-#endif
-
-	status = XStringListToTextProperty(&window_name, 1, &title);
-  assert(status != 0);
-	XSetWMName(mainDisplay, mainWindow, &title);
-	XSetWMName(mainDisplay, iconWindow, &title);
-
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcast-qual"
-        classHint.res_name = (char *) "astime";
-        classHint.res_class = (char *) "ASTIME";
-#pragma GCC diagnostic pop
-        XSetClassHint(mainDisplay, mainWindow, &classHint);
-	XStoreName(mainDisplay, mainWindow, window_name);
-	XSetIconName(mainDisplay, mainWindow, window_name);
-
-	/*
-	 * If the user did not specify a program to run
-	 * we do not intercept mouse clicks in our window.
-	 */
-	if (state.run_program)
-		status = XSelectInput(
-			mainDisplay,	/* display    */
-			mainWindow,	/* window     */
-			ExposureMask | ButtonPressMask	/* event_mask */
-		    );
-	else
-		status = XSelectInput(
-			mainDisplay,	/* display    */
-			mainWindow,	/* window     */
-			ExposureMask	/* event_mask */
-		    );
-
-	/* Make sure WindowMaker users can click happily away ... */
-	if ( withdrawn )
-		status = XSelectInput(
-			mainDisplay,	/* display    */
-			iconWindow,	/* window     */
-			ExposureMask | ButtonPressMask	/* event_mask */
-		    );
-	else
-		status = XSelectInput(
-				mainDisplay,	/* display    */
-				iconWindow,	/* window     */
-				ExposureMask	/* event_mask */
-		    );
-
-	/* Creating Graphics context */
-	mainGCV.foreground = fore_pix;
-	mainGCV.background = back_pix;
-	mainGCV.graphics_exposures = False;
-	mainGCV.line_style = LineSolid;
-	mainGCV.fill_style = FillSolid;
-	mainGCV.line_width = 1;
-	if ( state.show_label ) {
-		mainGCV.font = label_font;
-		mainGC = XCreateGC(mainDisplay,
-				   mainWindow,
-				   GCForeground | GCBackground | GCLineWidth |
-				   GCLineStyle | GCFillStyle | GCFont,
-				   &mainGCV
-		    );
-	} else {
-		mainGC = XCreateGC(mainDisplay,
-				   mainWindow,
-				   GCForeground | GCBackground | GCLineWidth |
-				   GCLineStyle | GCFillStyle,
-				   &mainGCV
-		    );
-	}
-
-	/* Draw the background */
-	mainGCV.foreground = back_pix;
-	XChangeGC(mainDisplay,
-		  mainGC,
-		  GCForeground,
-		  &mainGCV
-	    );
-	XFillRectangle(mainDisplay,
-		       backgroundWindow,
-		       mainGC,
-		       0,
-		       0,
-                       (unsigned int) state.total_size.x,
-                       (unsigned int) state.total_size.y
-	    );
-
-      if (!no_border) {
-	
-	/* The shadow on the sides */
-	if (pushed_in) {
-                tmp_pix = DarkenColor(state.bgcolor, 1.6f, mainDisplay, Root);
-	} else {
-                tmp_pix = LightenColor(state.bgcolor, 2.0f, mainDisplay, Root);
-	}
-	mainGCV.foreground = tmp_pix;
-	XChangeGC(mainDisplay,
-		  mainGC,
-		  GCForeground,
-		  &mainGCV
-	    );
-	XDrawLine(mainDisplay,
-		  backgroundWindow,
-		  mainGC,
-		  0,
-		  0,
-		  state.total_size.x - 1,
-		  0
-	    );
-	XDrawLine(mainDisplay,
-		  backgroundWindow,
-		  mainGC,
-		  0,
-		  0,
-		  0,
-		  state.total_size.y - 1
-	    );
-	if (!pushed_in) {
-                tmp_pix = DarkenColor(state.bgcolor, 1.6f, mainDisplay, Root);
-	} else {
-                tmp_pix = LightenColor(state.bgcolor, 2.0f, mainDisplay, Root);
-	}
-	mainGCV.foreground = tmp_pix;
-	XChangeGC(mainDisplay,
-		  mainGC,
-		  GCForeground,
-		  &mainGCV
-	    );
-	XDrawLine(mainDisplay,
-		  backgroundWindow,
-		  mainGC,
-		  state.total_size.x - 1,
-		  state.total_size.y,
-		  state.total_size.x - 1,
-		  0
-	    );
-	XDrawLine(mainDisplay,
-		  backgroundWindow,
-		  mainGC,
-		  state.total_size.x,
-		  state.total_size.y - 1,
-		  0,
-		  state.total_size.y - 1
-	    );
-      }
-   
-	/* Get colors */
-	if (state.neon) {
-                pix[0] = DarkenColor(state.seccolor, 1.8f, mainDisplay, Root);
-                pix[1] = DarkenColor(state.mincolor, 1.8f, mainDisplay, Root);
-                pix[2] = DarkenColor(state.hourcolor, 1.8f, mainDisplay, Root);
-	} else {
-		pix[0] = GetColor(state.seccolor, mainDisplay, Root);
-		pix[1] = GetColor(state.mincolor, mainDisplay, Root);
-		pix[2] = GetColor(state.hourcolor, mainDisplay, Root);
-	}
-
-	/* Get outline colors */
-	if (state.neon) {
-		pix[3] = GetColor(state.seccolor, mainDisplay, Root);
-		pix[4] = GetColor(state.mincolor, mainDisplay, Root);
-		pix[5] = GetColor(state.hourcolor, mainDisplay, Root);
-	} else {
-                pix[3] = LightenColor(state.seccolor, 1.8f, mainDisplay, Root);
-                pix[4] = LightenColor(state.mincolor, 1.8f, mainDisplay, Root);
-                pix[5] = LightenColor(state.hourcolor, 1.8f, mainDisplay, Root);
-	}
-
-	/* allow user to override outline colors */
-	if (strcmp(state.secocolor, "<>"))
-		pix[3] = GetColor(state.secocolor, mainDisplay, Root);
-	if (strcmp(state.minocolor, "<>"))
-		pix[4] = GetColor(state.minocolor, mainDisplay, Root);
-	if (strcmp(state.hourocolor, "<>"))
-		pix[5] = GetColor(state.hourocolor, mainDisplay, Root);
-
-	/* Get fill colors */
-	pix[6] = pix[0];
-	pix[7] = pix[1];
-	pix[8] = pix[2];
-
-	/* allow user to override fill colors */
-	if (strcmp(state.secfillcolor, "<>"))
-		pix[6] = GetColor(state.secfillcolor, mainDisplay, Root);
-	if (strcmp(state.minfillcolor, "<>"))
-		pix[7] = GetColor(state.minfillcolor, mainDisplay, Root);
-	if (strcmp(state.hourfillcolor, "<>"))
-		pix[8] = GetColor(state.hourfillcolor, mainDisplay, Root);
-
-	/* Get the label color */
-	label_pix = GetColor(state.label_color, mainDisplay, Root);
-
-	/* Finish up the background (the dial) */
-	if (state.tprop) {
-		draw_dial();
-	}
-	status = XSetCommand(mainDisplay, mainWindow, argv, argc);
-  assert(status != 0);
-
-	/* Set up the event for quitting the window */
-	wm_delete_window = XInternAtom(mainDisplay,
-				"WM_DELETE_WINDOW",	/* atom_name */
-				False			/* only_if_exists */
-	    );
-	wm_protocols = XInternAtom(mainDisplay,
-				"WM_PROTOCOLS",		/* atom_name */
-				False			/* only_if_exists */
-	    );
-	status = XSetWMProtocols(mainDisplay,
-				 mainWindow,
-				 &wm_delete_window,
-				 1
-	    );
-  assert(status != 0);
-        status = XSetWMProtocols(mainDisplay,
-				 iconWindow,
-				 &wm_delete_window,
-				 1
-	    );
-  assert(status != 0);
-
-	WmHints.flags = StateHint | IconWindowHint;
-	WmHints.initial_state =
-	    withdrawn ? WithdrawnState :
-	    iconic ? IconicState : NormalState;
-	WmHints.icon_window = iconWindow;
-	if (withdrawn) {
-		WmHints.window_group = mainWindow;
-		WmHints.flags |= WindowGroupHint;
-	}
-	if (iconic || withdrawn) {
-		WmHints.icon_x = SizeHints.x;
-		WmHints.icon_y = SizeHints.y;
-		WmHints.flags |= IconPositionHint;
-	}
-	XSetWMHints(mainDisplay,
-		    mainWindow,
-		    &WmHints);
-
-	/* Finally show the window */
-	status = XMapWindow(mainDisplay, mainWindow);
-  assert(status != BadWindow);
-
-	/* try to read the time */
-	curTime = time(0);
-	last_time = curTime;
-	refresh();
-
-	/* wait for the Expose event now */
-	XNextEvent(mainDisplay, &Event);
-	/* We've got Expose -> draw the parts of the window. */
-	redraw();
-	XFlush(mainDisplay);
-}
diff --git a/01_git/src/safecopy.c b/01_git/src/safecopy.c
deleted file mode 100644
index 69a379248c1f51d62c7ce506cc3870e7b080ce92..0000000000000000000000000000000000000000
--- a/01_git/src/safecopy.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-#include "safecopy.h"
-
-#include <string.h>
-
-/*
- * Copies at most maxlen-1 characters from the source.
- * Makes sure that the destination string is zero-terminated.
- */
-char *safecopy(char *dest, const char *src, size_t maxlen)
-{
-	/* safety precaution */
-	dest[maxlen-1] = 0;
-	return strlen(src) < maxlen ? 
-		strcpy(dest, src) : 
-		strncpy(dest, src, maxlen-1);
-}
-
diff --git a/01_git/src/sunriset.c b/01_git/src/sunriset.c
deleted file mode 100644
index 64c8ce309dd8bea3047377caf753711f2e8c33fb..0000000000000000000000000000000000000000
--- a/01_git/src/sunriset.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* +++Date last modified: 05-Jul-1997 */
-
-/*
-
-SUNRISET.C - computes Sun rise/set times, start/end of twilight, and
-             the length of the day at any date and latitude
-
-Written as DAYLEN.C, 1989-08-16
-
-Modified to SUNRISET.C, 1992-12-01
-
-(c) Paul Schlyter, 1989, 1992
-
-Released to the public domain by Paul Schlyter, December 1992
-
-Modified 2006 by Florian Franzmann
-
-*/
-
-#include "sunriset.h"
-
-/* Function prototypes */
-
-double __daylen__( int year, int month, int day, double lon, double lat,
-                   double altit, int upper_limb );
-int __sunriset__( int year, int month, int day, double lon, double lat,
-                  double altit, int upper_limb, double *rise, double *set );
-void sunpos( double d, double *lon, double *r );
-void sun_RA_dec( double d, double *RA, double *dec, double *r );
-double revolution( double x );
-double rev180( double x );
-double GMST0( double d );
-
-/* A small test program */
-/*
-main()
-{
-      int year,month,day;
-      double lon, lat;
-      double daylen, civlen, nautlen, astrlen;
-      double rise, set, civ_start, civ_end, naut_start, naut_end,
-             astr_start, astr_end;
-      int    rs, civ, naut, astr;
-      char buf[80];
-
-      printf( "Longitude (+ is east) and latitude (+ is north) : " );
-      fgets(buf, 80, stdin);
-      sscanf(buf, "%lf %lf", &lon, &lat );
-
-      for(;;)
-      {
-            printf( "Input date ( yyyy mm dd ) (ctrl-C exits): " );
-            fgets(buf, 80, stdin);
-            sscanf(buf, "%d %d %d", &year, &month, &day );
-
-            daylen  = day_length(year,month,day,lon,lat);
-            civlen  = day_civil_twilight_length(year,month,day,lon,lat);
-            nautlen = day_nautical_twilight_length(year,month,day,lon,lat);
-            astrlen = day_astronomical_twilight_length(year,month,day,
-                  lon,lat);
-
-            printf( "Day length:                 %5.2f hours\n", daylen );
-            printf( "With civil twilight         %5.2f hours\n", civlen );
-            printf( "With nautical twilight      %5.2f hours\n", nautlen );
-            printf( "With astronomical twilight  %5.2f hours\n", astrlen );
-            printf( "Length of twilight: civil   %5.2f hours\n",
-                  (civlen-daylen)/2.0);
-            printf( "                  nautical  %5.2f hours\n",
-                  (nautlen-daylen)/2.0);
-            printf( "              astronomical  %5.2f hours\n",
-                  (astrlen-daylen)/2.0);
-
-            rs   = sun_rise_set         ( year, month, day, lon, lat,
-                                          &rise, &set );
-            civ  = civil_twilight       ( year, month, day, lon, lat,
-                                          &civ_start, &civ_end );
-            naut = nautical_twilight    ( year, month, day, lon, lat,
-                                          &naut_start, &naut_end );
-            astr = astronomical_twilight( year, month, day, lon, lat,
-                                          &astr_start, &astr_end );
-
-            printf( "Sun at south %5.2fh UT\n", (rise+set)/2.0 );
-
-            switch( rs )
-            {
-                case 0:
-                    printf( "Sun rises %5.2fh UT, sets %5.2fh UT\n",
-                             rise, set );
-                    break;
-                case +1:
-                    printf( "Sun above horizon\n" );
-                    break;
-                case -1:
-                    printf( "Sun below horizon\n" );
-                    break;
-            }
-
-            switch( civ )
-            {
-                case 0:
-                    printf( "Civil twilight starts %5.2fh, "
-                            "ends %5.2fh UT\n", civ_start, civ_end );
-                    break;
-                case +1:
-                    printf( "Never darker than civil twilight\n" );
-                    break;
-                case -1:
-                    printf( "Never as bright as civil twilight\n" );
-                    break;
-            }
-
-            switch( naut )
-            {
-                case 0:
-                    printf( "Nautical twilight starts %5.2fh, "
-                            "ends %5.2fh UT\n", naut_start, naut_end );
-                    break;
-                case +1:
-                    printf( "Never darker than nautical twilight\n" );
-                    break;
-                case -1:
-                    printf( "Never as bright as nautical twilight\n" );
-                    break;
-            }
-
-            switch( astr )
-            {
-                case 0:
-                    printf( "Astronomical twilight starts %5.2fh, "
-                            "ends %5.2fh UT\n", astr_start, astr_end );
-                    break;
-                case +1:
-                    printf( "Never darker than astronomical twilight\n" );
-                    break;
-                case -1:
-                    printf( "Never as bright as astronomical twilight\n" );
-                    break;
-            }
-      return 0;
-      }
-}
-*/
-
-/* The "workhorse" function for sun rise/set times */
-
-int __sunriset__( int year, int month, int day, double lon, double lat,
-                  double altit, int upper_limb, double *trise, double *tset )
-/***************************************************************************/
-/* Note: year,month,date = calendar date, 1801-2099 only.             */
-/*       Eastern longitude positive, Western longitude negative       */
-/*       Northern latitude positive, Southern latitude negative       */
-/*       The longitude value IS critical in this function!            */
-/*       altit = the altitude which the Sun should cross              */
-/*               Set to -35/60 degrees for rise/set, -6 degrees       */
-/*               for civil, -12 degrees for nautical and -18          */
-/*               degrees for astronomical twilight.                   */
-/*         upper_limb: non-zero -> upper limb, zero -> center         */
-/*               Set to non-zero (e.g. 1) when computing rise/set     */
-/*               times, and to zero when computing start/end of       */
-/*               twilight.                                            */
-/*        *rise = where to store the rise time                        */
-/*        *set  = where to store the set  time                        */
-/*                Both times are relative to the specified altitude,  */
-/*                and thus this function can be used to compute       */
-/*                various twilight times, as well as rise/set times   */
-/* Return value:  0 = sun rises/sets this day, times stored at        */
-/*                    *trise and *tset.                               */
-/*               +1 = sun above the specified "horizon" 24 hours.     */
-/*                    *trise set to time when the sun is at south,    */
-/*                    minus 12 hours while *tset is set to the south  */
-/*                    time plus 12 hours. "Day" length = 24 hours     */
-/*               -1 = sun is below the specified "horizon" 24 hours   */
-/*                    "Day" length = 0 hours, *trise and *tset are    */
-/*                    both set to the time when the sun is at south.  */
-/*                                                                    */
-/**********************************************************************/
-{
-      double  d,  /* Days since 2000 Jan 0.0 (negative before) */
-      sr,         /* Solar distance, astronomical units */
-      sRA,        /* Sun's Right Ascension */
-      sdec,       /* Sun's declination */
-      sradius,    /* Sun's apparent radius */
-      t,          /* Diurnal arc */
-      tsouth,     /* Time when Sun is at south */
-      sidtime;    /* Local sidereal time */
-
-      int rc = 0; /* Return cde from function - usually 0 */
-
-      /* Compute d of 12h local mean solar time */
-      d = ((double) days_since_2000_Jan_0(year,month,day)) + 0.5 - lon/360.0;
-
-      /* Compute local sidereal time of this moment */
-      sidtime = revolution( GMST0(d) + 180.0 + lon );
-
-      /* Compute Sun's RA + Decl at this moment */
-      sun_RA_dec( d, &sRA, &sdec, &sr );
-
-      /* Compute time when Sun is at south - in hours UT */
-      tsouth = 12.0 - rev180(sidtime - sRA)/15.0;
-
-      /* Compute the Sun's apparent radius, degrees */
-      sradius = 0.2666 / sr;
-
-      /* Do correction to upper limb, if necessary */
-      if ( upper_limb )
-            altit -= sradius;
-
-      /* Compute the diurnal arc that the Sun traverses to reach */
-      /* the specified altitude altit: */
-      {
-            double cost;
-            cost = ( sind(altit) - sind(lat) * sind(sdec) ) /
-                  ( cosd(lat) * cosd(sdec) );
-            if ( cost >= 1.0 )
-                  rc = -1, t = 0.0;       /* Sun always below altit */
-            else if ( cost <= -1.0 )
-                  rc = +1, t = 12.0;      /* Sun always above altit */
-            else
-                  t = acosd(cost)/15.0;   /* The diurnal arc, hours */
-      }
-
-      /* Store rise and set times - in hours UT */
-      *trise = tsouth - t;
-      *tset  = tsouth + t;
-
-      return rc;
-}  /* __sunriset__ */
-
-
-
-/* The "workhorse" function */
-
-
-double __daylen__( int year, int month, int day, double lon, double lat,
-                   double altit, int upper_limb )
-/**********************************************************************/
-/* Note: year,month,date = calendar date, 1801-2099 only.             */
-/*       Eastern longitude positive, Western longitude negative       */
-/*       Northern latitude positive, Southern latitude negative       */
-/*       The longitude value is not critical. Set it to the correct   */
-/*       longitude if you're picky, otherwise set to to, say, 0.0     */
-/*       The latitude however IS critical - be sure to get it correct */
-/*       altit = the altitude which the Sun should cross              */
-/*               Set to -35/60 degrees for rise/set, -6 degrees       */
-/*               for civil, -12 degrees for nautical and -18          */
-/*               degrees for astronomical twilight.                   */
-/*         upper_limb: non-zero -> upper limb, zero -> center         */
-/*               Set to non-zero (e.g. 1) when computing day length   */
-/*               and to zero when computing day+twilight length.      */
-/**********************************************************************/
-{
-      double  d,  /* Days since 2000 Jan 0.0 (negative before) */
-      obl_ecl,    /* Obliquity (inclination) of Earth's axis */
-      sr,         /* Solar distance, astronomical units */
-      slon,       /* True solar longitude */
-      sin_sdecl,  /* Sine of Sun's declination */
-      cos_sdecl,  /* Cosine of Sun's declination */
-      sradius,    /* Sun's apparent radius */
-      t;          /* Diurnal arc */
-
-      /* Compute d of 12h local mean solar time */
-      d = ((double) days_since_2000_Jan_0(year,month,day)) + 0.5 - lon/360.0;
-
-      /* Compute obliquity of ecliptic (inclination of Earth's axis) */
-      obl_ecl = 23.4393 - 3.563E-7 * d;
-
-      /* Compute Sun's position */
-      sunpos( d, &slon, &sr );
-
-      /* Compute sine and cosine of Sun's declination */
-      sin_sdecl = sind(obl_ecl) * sind(slon);
-      cos_sdecl = sqrt( 1.0 - sin_sdecl * sin_sdecl );
-
-      /* Compute the Sun's apparent radius, degrees */
-      sradius = 0.2666 / sr;
-
-      /* Do correction to upper limb, if necessary */
-      if ( upper_limb )
-            altit -= sradius;
-
-      /* Compute the diurnal arc that the Sun traverses to reach */
-      /* the specified altitude altit: */
-      {
-            double cost;
-            cost = ( sind(altit) - sind(lat) * sin_sdecl ) /
-                  ( cosd(lat) * cos_sdecl );
-            if ( cost >= 1.0 )
-                  t = 0.0;                      /* Sun always below altit */
-            else if ( cost <= -1.0 )
-                  t = 24.0;                     /* Sun always above altit */
-            else  t = (2.0/15.0) * acosd(cost); /* The diurnal arc, hours */
-      }
-      return t;
-}  /* __daylen__ */
-
-
-/* This function computes the Sun's position at any instant */
-
-void sunpos( double d, double *lon, double *r )
-/******************************************************/
-/* Computes the Sun's ecliptic longitude and distance */
-/* at an instant given in d, number of days since     */
-/* 2000 Jan 0.0.  The Sun's ecliptic latitude is not  */
-/* computed, since it's always very near 0.           */
-/******************************************************/
-{
-      double M,         /* Mean anomaly of the Sun */
-             w,         /* Mean longitude of perihelion */
-                        /* Note: Sun's mean longitude = M + w */
-             e,         /* Eccentricity of Earth's orbit */
-             E,         /* Eccentric anomaly */
-             x, y,      /* x, y coordinates in orbit */
-             v;         /* True anomaly */
-
-      /* Compute mean elements */
-      M = revolution( 356.0470 + 0.9856002585 * d );
-      w = 282.9404 + 4.70935E-5 * d;
-      e = 0.016709 - 1.151E-9 * d;
-
-      /* Compute true longitude and radius vector */
-      E = M + e * RADEG * sind(M) * ( 1.0 + e * cosd(M) );
-            x = cosd(E) - e;
-      y = sqrt( 1.0 - e*e ) * sind(E);
-      *r = sqrt( x*x + y*y );              /* Solar distance */
-      v = atan2d( y, x );                  /* True anomaly */
-      *lon = v + w;                        /* True solar longitude */
-      if ( *lon >= 360.0 )
-            *lon -= 360.0;                   /* Make it 0..360 degrees */
-}
-
-void sun_RA_dec( double d, double *RA, double *dec, double *r )
-{
-      double lon, obl_ecl, x, y, z;
-
-      /* Compute Sun's ecliptical coordinates */
-      sunpos( d, &lon, r );
-
-      /* Compute ecliptic rectangular coordinates (z=0) */
-      x = *r * cosd(lon);
-      y = *r * sind(lon);
-
-      /* Compute obliquity of ecliptic (inclination of Earth's axis) */
-      obl_ecl = 23.4393 - 3.563E-7 * d;
-
-      /* Convert to equatorial rectangular coordinates - x is unchanged */
-      z = y * sind(obl_ecl);
-      y = y * cosd(obl_ecl);
-
-      /* Convert to spherical coordinates */
-      *RA = atan2d( y, x );
-      *dec = atan2d( z, sqrt(x*x + y*y) );
-
-}  /* sun_RA_dec */
-
-
-/******************************************************************/
-/* This function reduces any angle to within the first revolution */
-/* by subtracting or adding even multiples of 360.0 until the     */
-/* result is >= 0.0 and < 360.0                                   */
-/******************************************************************/
-
-#define INV360    ( 1.0 / 360.0 )
-
-double revolution( double x )
-/*****************************************/
-/* Reduce angle to within 0..360 degrees */
-/*****************************************/
-{
-      return( x - 360.0 * floor( x * INV360 ) );
-}  /* revolution */
-
-double rev180( double x )
-/*********************************************/
-/* Reduce angle to within +180..+180 degrees */
-/*********************************************/
-{
-      return( x - 360.0 * floor( x * INV360 + 0.5 ) );
-}  /* revolution */
-
-
-/*******************************************************************/
-/* This function computes GMST0, the Greenwich Mean Sidereal Time  */
-/* at 0h UT (i.e. the sidereal time at the Greenwhich meridian at  */
-/* 0h UT).  GMST is then the sidereal time at Greenwich at any     */
-/* time of the day.  I've generalized GMST0 as well, and define it */
-/* as:  GMST0 = GMST - UT  --  this allows GMST0 to be computed at */
-/* other times than 0h UT as well.  While this sounds somewhat     */
-/* contradictory, it is very practical:  instead of computing      */
-/* GMST like:                                                      */
-/*                                                                 */
-/*  GMST = (GMST0) + UT * (366.2422/365.2422)                      */
-/*                                                                 */
-/* where (GMST0) is the GMST last time UT was 0 hours, one simply  */
-/* computes:                                                       */
-/*                                                                 */
-/*  GMST = GMST0 + UT                                              */
-/*                                                                 */
-/* where GMST0 is the GMST "at 0h UT" but at the current moment!   */
-/* Defined in this way, GMST0 will increase with about 4 min a     */
-/* day.  It also happens that GMST0 (in degrees, 1 hr = 15 degr)   */
-/* is equal to the Sun's mean longitude plus/minus 180 degrees!    */
-/* (if we neglect aberration, which amounts to 20 seconds of arc   */
-/* or 1.33 seconds of time)                                        */
-/*                                                                 */
-/*******************************************************************/
-
-double GMST0( double d )
-{
-      double sidtim0;
-      /* Sidtime at 0h UT = L (Sun's mean longitude) + 180.0 degr  */
-      /* L = M + w, as defined in sunpos().  Since I'm too lazy to */
-      /* add these numbers, I'll let the C compiler do it for me.  */
-      /* Any decent C compiler will add the constants at compile   */
-      /* time, imposing no runtime or code overhead.               */
-      sidtim0 = revolution( ( 180.0 + 356.0470 + 282.9404 ) +
-                          ( 0.9856002585 + 4.70935E-5 ) * d );
-      return sidtim0;
-}  /* GMST0 */
-
-double day_length(int year, int month, int day, double lon, double lat)
-{
-	return __daylen__(year, month, day, lon, lat, -35.0/60.0, 1);
-}
-
-double day_civil_twilight_length(int year, int month, int day, 
-		double lon, double lat)
-{
-	return __daylen__(year, month, day, lon, lat, -6.0, 0);
-}
-
-double day_nautical_twilight_length(int year, int month, int day, 
-		double lon, double lat)
-{
-	return __daylen__(year, month, day, lon, lat, -12.0, 0);
-}
-
-double day_astronomical_twilight_length(int year, int month, int day, 
-		double lon, double lat)
-{
-	return __daylen__(year, month, day, lon, lat, -18.0, 0);
-}
-
-int sun_rise_set(int year, int month, int day, double lon, 
-		double lat, double *rise, double *set)
-{
-	return __sunriset__(year, month, day, lon, lat, -35.0/60.0, 1, rise, set);
-}
-
-int civil_twilight(int year, int month, int day, double lon, 
-		double lat, double *start, double *end)
-{
-	return __sunriset__(year, month, day, lon, lat, -6.0, 0, start, end);
-}
-
-int nautical_twilight(int year, int month, int day, double lon, 
-		double lat, double *start, double *end)
-{
-	return __sunriset__(year, month, day, lon, lat, -12.0, 0, start, end);
-}
-
-int astronomical_twilight(int year, int month, int day, double lon, 
-		double lat, double *start, double *end)
-{
-	return __sunriset__(year, month, day, lon, lat, -18.0, 0, start, end);
-}
diff --git a/01_git/src/sunriset_test.c b/01_git/src/sunriset_test.c
deleted file mode 100644
index 285821acc3d7a14d39e5fd838da0556990c8b5f3..0000000000000000000000000000000000000000
--- a/01_git/src/sunriset_test.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "sunriset.h"
-#include <stdio.h>
-
-int main(char **argv, int argc)
-{
-	register int month, day;
-	int year;
-
-	for (year = 2007; year <= 2007; year++) {
-		for (month = 6; month <= 8; month++) {
-			int max_day;
-			double rise, set;
-
-			if (month == 1 || month == 3 || month == 5 || 
-			    month == 7 || month == 8 || month == 10 || month == 12) {
-				max_day = 31;
-			} else if (month == 2) {
-				max_day = 29;
-			} else {
-				max_day = 30;
-			}
-			for (day = 1; day <= max_day; day++) {
-				astronomical_twilight(year, month, day, 49, 11, &rise, &set);
-				rise += 1;
-				set += 1;
-				printf("%d-%d-%d %lf %lf\n", year, month, day, rise, set);
-			}
-		}
-	}
-	return 0;
-}
diff --git a/01_git/src/x_color.c b/01_git/src/x_color.c
deleted file mode 100644
index 23206d941ba8267593c5cbf2bfd19d83dfc2b185..0000000000000000000000000000000000000000
--- a/01_git/src/x_color.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * astime is an analogue clock utility for X Windows.
- *
- * Copyright (c) 1998-2000  Albert Dorofeev <albert@tigr.net>
- *
- * For the updates see http://www.tigr.net/afterstep/as-apps/
- *
- * This software is distributed under GPL. For details see LICENSE file.
- */
-#include "x_color.h"
-#include <stdio.h>
-
-
-
-/* 
- * Note: this function was originally taken out of ascd.
- * 
- * It takes the given color, parses it in the context
- * of the given window and returns a pixel of that color.
- */
-Pixel GetColor(char *ColorName, Display * disp, Window win)
-{
-	XColor Color;
-	XWindowAttributes Attributes;
-
-	XGetWindowAttributes(disp, win, &Attributes);
-	Color.pixel = 0;
-
-	if (!XParseColor(disp, Attributes.colormap, ColorName, &Color))
-		printf("astime: can't parse %s\n", ColorName);
-	else if (!XAllocColor(disp, Attributes.colormap, &Color))
-		printf("astime: can't allocate %s\n", ColorName);
-
-	return Color.pixel;
-}
-
-/*
- * Performs the same actions as GetColor but
- * returns the complete XColor structure
- */
-XColor ParseColor(char *ColorName, Display * disp, Window win)
-{
-	XColor Color;
-	XWindowAttributes Attributes;
-
-	XGetWindowAttributes(disp, win, &Attributes);
-	Color.pixel = 0;
-
-	if (!XParseColor(disp, Attributes.colormap, ColorName, &Color))
-		printf("astime: can't parse %s\n", ColorName);
-	else if (!XAllocColor(disp, Attributes.colormap, &Color))
-		printf("astime: can't allocate %s\n", ColorName);
-
-	return Color;
-}
-
-static char tmp_char[50];
-
-/* 
- * darkens the given color using the supplied rate 
- */
-char *DarkenCharColor(char *ColorName, float rate, Display * disp, Window win)
-{
-	XColor tmp_color;
-#ifdef DEBUG
-	printf("darkening %s ->", ColorName);
-#endif
-	tmp_color = ParseColor(ColorName, disp, win);
-#ifdef DEBUG
-	printf(" #%x %x %x ", tmp_color.red, tmp_color.green, tmp_color.blue);
-#endif
-        tmp_color.red = (unsigned short) (((float) tmp_color.red) / 257.0f / rate);
-        tmp_color.green = (unsigned short) (((float) tmp_color.green) / 257.0f / rate);
-        tmp_color.blue = (unsigned short) (((float) tmp_color.blue) / 257.0f / rate);
-	sprintf(tmp_char, "#%.2x%.2x%.2x",
-		(int) tmp_color.red,
-		(int) tmp_color.green,
-		(int) tmp_color.blue);
-#ifdef DEBUG
-	printf("-> %s\n", tmp_char);
-#endif
-	return tmp_char;
-}
-
-/* 
- * darkens the given color using the supplied rate 
- */
-Pixel DarkenColor(char *ColorName, float rate, Display * disp, Window win)
-{
-	return GetColor( DarkenCharColor(ColorName, rate, disp, win),
-			       disp, win);
-}
-
-/* 
- * brightens the given color using the supplied rate 
- */
-char *LightenCharColor(char *ColorName, float rate, Display * disp, Window win)
-{
-	XColor tmp_color;
-#ifdef DEBUG
-	printf("lightening %s ->", ColorName);
-#endif
-	tmp_color = ParseColor(ColorName, disp, win);
-#ifdef DEBUG
-	printf(" #%x %x %x ", tmp_color.red, tmp_color.green, tmp_color.blue);
-#endif
-        tmp_color.red = (unsigned short) (((float) tmp_color.red) / 257.0f * rate);
-        tmp_color.green = (unsigned short) (((float) tmp_color.green) / 257.0f * rate);
-        tmp_color.blue = (unsigned short) (((float) tmp_color.blue) / 257.0f * rate);
-	if (tmp_color.red > 255)
-		tmp_color.red = 255;
-	if (tmp_color.green > 255)
-		tmp_color.green = 255;
-	if (tmp_color.blue > 255)
-		tmp_color.blue = 255;
-	sprintf(tmp_char, "#%.2x%.2x%.2x",
-		(int) tmp_color.red,
-		(int) tmp_color.green,
-		(int) tmp_color.blue);
-#ifdef DEBUG
-	printf("-> %s\n", tmp_char);
-#endif
-	return tmp_char;
-}
-
-/* 
- * brightens the given color using the supplied rate 
- */
-Pixel LightenColor(char *ColorName, float rate, Display * disp, Window win)
-{
-	return GetColor( LightenCharColor(ColorName, rate, disp, win),
-			       disp, win);
-}
-
-/* 
- * mix the given colors using the supplied rate 
- */
-char *MixCharColors(char *Color1Name, char *Color2Name, float rate, 
-		Display * disp, Window win)
-{
-	XColor tmp_color1;
-	XColor tmp_color2;
-#ifdef DEBUG
-	printf("mixing %s with %s ->", Color1Name, Color2Name);
-#endif
-	tmp_color1 = ParseColor(Color1Name, disp, win);
-	tmp_color2 = ParseColor(Color2Name, disp, win);
-#ifdef DEBUG
-	printf(" #%x %x %x ", tmp_color1.red, tmp_color1.green, tmp_color1.blue);
-	printf(" #%x %x %x ", tmp_color2.red, tmp_color2.green, tmp_color2.blue);
-#endif
-        tmp_color1.red = (unsigned short) ((((float) tmp_color1.red) * rate
-                + ((float) tmp_color2.red) * (1.0f - rate)) / 257.0f);
-        tmp_color1.green = (unsigned short) ((((float) tmp_color1.green) * rate
-                + ((float) tmp_color2.green) * (1.0f - rate)) / 257.0f);
-        tmp_color1.blue = (unsigned short) ((((float) tmp_color1.blue) * rate
-                + ((float) tmp_color2.blue) * (1.0f - rate)) / 257.0f);
-	if (tmp_color1.red > 255)
-		tmp_color1.red = 255;
-	if (tmp_color1.green > 255)
-		tmp_color1.green = 255;
-	if (tmp_color1.blue > 255)
-		tmp_color1.blue = 255;
-	sprintf(tmp_char, "#%.2x%.2x%.2x",
-		(int) tmp_color1.red,
-		(int) tmp_color1.green,
-		(int) tmp_color1.blue);
-#ifdef DEBUG
-	printf("-> %s\n", tmp_char);
-#endif
-	return tmp_char;
-}
-
-/* 
- * mix the given colors using the supplied rate 
- */
-Pixel MixColors(char *Color1Name, char *Color2Name, float rate, 
-		Display * disp, Window win)
-{
-	return GetColor(MixCharColors(Color1Name, Color2Name, rate, disp, win),
-			       disp, win);
-}
diff --git a/01_git/src/x_primitives.c b/01_git/src/x_primitives.c
deleted file mode 100644
index 5fd74553122fa8c049648eaedbcae1d4f5b240f7..0000000000000000000000000000000000000000
--- a/01_git/src/x_primitives.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * This software is distributed under GPL. For details see LICENSE file.
- */
-
-#include <X11/Xlib.h>
-#include <math.h>
-#include <stdio.h>
-#include <assert.h>
-#include "x_primitives.h"
-
-/*
- * XPoints *points: array of four points
- */
-   
-void CalculateTriangleCoordinates(XPoint *points, short x, short y, 
-		unsigned short width, unsigned short height, short angle);
-
-void RotateCoordinates(short *x, short *y, short center_x, short center_y, 
-		short angle)
-{
-	double r_angle;	
-	short x_coord, y_coord;
-
-	r_angle = (angle / 64) * (M_PI / 180.0);
-        x_coord = (short) (x[0] - center_x);
-        y_coord = (short) (y[0] - center_y);
-        x[0] = (short) (center_x + (short) (rint(cos(r_angle) * ((double) x_coord)
-                         + sin(r_angle) * (double) y_coord)));
-        y[0] = (short) (center_y + (short) (rint(-sin(r_angle) * ((double) x_coord)
-                                  + cos(r_angle) * (double) y_coord)));
-}
-void CalculateTriangleCoordinates(XPoint *points, short x, short y, 
-		unsigned short width, unsigned short height, short angle)
-{
-        points[0].x = (short) (x - (width / 2));
-	points[0].y = y;
-        points[1].x = (short) (x + (width / 2));
-	points[1].y = y;
-	points[2].x = x;
-        points[2].y = (short) (y + height);
-	points[3].x = points[0].x;
-	points[3].y = points[0].y;
-	{
-		int i;
-		for (i = 0; i < 4; i++) {
-			RotateCoordinates(&(points[i].x), &(points[i].y), x, y, angle);
-		}
-	}
-}
-
-int DrawTriangle(Display *display, Drawable d, GC gc, 
-		short x, short y, unsigned short width, unsigned short height, 
-		short angle)
-{
-	XPoint points[4];
-	CalculateTriangleCoordinates(points, x, y, width, height, angle);
-	return XDrawLines(display, d, gc, points, 4, CoordModeOrigin);
-}
-
-int FillTriangle(Display *display, Drawable d, GC gc, 
-		short x, short y, unsigned short width, unsigned short height, 
-		short angle)
-{
-	XPoint points[4];
-	CalculateTriangleCoordinates(points, x, y, width, height, angle);
-	return XFillPolygon(display, d, gc, points, 4, Convex, CoordModeOrigin);
-}
-int DrawCenteredArc(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int width, unsigned int height,
-		int angle1, int angle2)
-{
-  assert(width > 0);
-  assert(height > 0);
-  int actual_x = x - (int) width;
-  int actual_y = y - (int) height;
-  unsigned int actual_width = 2 * width;
-  unsigned int actual_height = 2 * height;
-
-  return XDrawArc(display,
-                  d,
-                  gc,
-                  actual_x, actual_y,
-                  actual_width,
-                  actual_height,
-                  angle1,
-                  angle2);
-}
-int FillCenteredArc(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int width, unsigned int height,
-		int angle1, int angle2)
-{
-  assert(width > 0);
-  assert(height > 0);
-  int actual_x = x - (int) width;
-  int actual_y = y - (int) height;
-  unsigned int actual_width = 2 * width;
-  unsigned int actual_height = 2 * height;
-
-  return XFillArc(display,
-                  d,
-                  gc,
-                  actual_x, actual_y,
-                  actual_width,
-                  actual_height,
-                  angle1,
-                  angle2);
-}
-int DrawTopCircle(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int radius, int angle)
-{
-	short coord_x, coord_y;
-	double r_angle;
-	r_angle = (angle / 64) * (M_PI / 180.0);
-        coord_x = (short) (x - (int) radius * (int) (1.0 + sin(r_angle)));
-        coord_y = (short) (y - (int) radius * (int) (1.0 - cos(r_angle)));
-	return XDrawArc(display, d, gc,
-			coord_x, coord_y, 2 * radius, 2 * radius, 0, 360 * 64);
-}
-int FillTopCircle(Display *display, Drawable d, GC gc,
-		int x, int y, unsigned int radius, int angle)
-{
-	short coord_x, coord_y;
-	double r_angle;
-	r_angle = (angle / 64) * (M_PI / 180.0);
-        coord_x = (short) (rint(x - radius * (1 + sin(r_angle))));
-        coord_y = (short) (rint(y - radius * (1 - cos(r_angle))));
-	return XFillArc(display, d, gc,
-			coord_x, coord_y, 2 * radius, 2 * radius, 0, 360 * 64);
-}
-
diff --git a/01_git/thick.astimerc b/01_git/thick.astimerc
deleted file mode 100644
index 8a4b8514b08acf286e2651a991c33495225ffa6b..0000000000000000000000000000000000000000
--- a/01_git/thick.astimerc
+++ /dev/null
@@ -1,40 +0,0 @@
-geometry        120x120-0+0
-
-background      #303030
-foreground      #999999
-
-secondColor     #000000
-minuteColor   	#20b2aa
-hourColor       #7766aa
-
-dayColor        #7766aa
-AMPMColor       #7766aa
-dateColor       #7766aa
-
-drawSecondHand  1
-drawDayDate     0
-drawAMPM        0
-drawTicks       1
-drawAllTicks    0
-drawForeground  1
-
-floatSeconds    0
-thinSeconds     1
-handThickness   15
-outThickness    5
-
-fancyHands      0
-outlinedHands   0
-neonHands       0
-
-execProg        "xterm +sb -bg "#303030" -fg "#20b2aa" -geometry 80x50 -T top -n top -e top &"
-withdrawn       0
-iconic          0
-standout        0
-shift           0
-title           astime
-
-# the next three lines are commented out, so that we don't surprise you... ;)
-#at   22:30:00   "xterm -bg red &"
-#at   22:30:15   "xterm -bg green &"
-#at   22:30:30   "xterm -bg blue &"
diff --git a/02_filter/CMakeLists.txt b/02_filter/CMakeLists.txt
deleted file mode 100644
index 5db8b5782e6203a26328910cd65b6f7c3dc507e6..0000000000000000000000000000000000000000
--- a/02_filter/CMakeLists.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-Project(Filter)
-
-cmake_minimum_required(VERSION 2.8)
-
-# use the eCos support coming with CMake
-# without this line CMake doesn't know how to build eCos applications
-# all functions/macros coming from this file start with "ECOS_"
-
-INCLUDE(UseEcos)
-
-set(SCRIPT_DIR "$ENV{ECOS_REPOSITORY}/../tools/scripts")
-set(CMAKE_MODULE_PATH ${SCRIPT_DIR}/.. ${PROJECT_SOURCE_DIR}/cmake)
-
-# cmake modules
-# INCLUDE(doxygendocu)
-INCLUDE(coloroutput)
-
-# add the ecos/install/include/ directory to the header search path
-ECOS_ADD_INCLUDE_DIRECTORIES()
-ECOS_USE_I386_ELF_TOOLS()
-
-set(COMMON_FLAGS "-nostartfiles -nostdlib -ffunction-sections -fdata-sections -fno-builtin -Wall -Wpointer-arith  -Wundef -fdata-sections")
-set(CMAKE_C_FLAGS "${COMMON_FLAGS}")
-set(CMAKE_CXX_FLAGS "${COMMON_FLAGS} -fno-rtti -fno-exceptions -fno-unwind-tables -Woverloaded-virtual" )
-
-
-set(BOCHS_CPU_SPEED_MHZ 10)
-# use ADD_DEFINITIONS() to add the definitions (or switches) you like
-add_definitions("-g -DBOCHS_CPU_MHZ=${BOCHS_CPU_SPEED_MHZ}")
-
-set(LIBEZS_DIR "${PROJECT_SOURCE_DIR}/libEZS")
-set(EZS_DRIVERS_DIR "${PROJECT_SOURCE_DIR}/drivers")
-
-include_directories(
-	${LIBEZS_DIR}/include
-	${EZS_DRIVERS_DIR}/include
-	include
-	)
-
-set(LIBEZS_SOURCES
-	${LIBEZS_DIR}/src/ezs_common.c
-	${LIBEZS_DIR}/src/fixedpoint.c
-	)
-
-set(HW_PLATFORM i386)
-
-set(DRIVERS_SOURCES
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_fb.c
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_tracer.cpp
-	)
-
-set(SRC_DIR src)
-set(APPLICATION_SOURCES ${SRC_DIR}/app.c)
-
-# this is one of the most important lines
-# here you list all source files of your application
-# you can mix C and C++ files as you like
-# you can also add the header files here, but you don't have to
-# you can use relative or absolute paths as you like
-SET(SRC_LIST
-	${APPLICATION_SOURCES}
-	${LIBEZS_SOURCES}
-	${DRIVERS_SOURCES}
-	)
-
-set(TGT "filter")
-# this is the most important line:
-# tell CMake that we want to create an executable named "sampleapp"
-# from the files listed in the variable SRC_LIST
-ECOS_ADD_EXECUTABLE(${TGT} ${SRC_LIST})
-
-add_definitions(-ggdb)
-
-add_subdirectory(emu)
-
-message(STATUS "${BoldGreen}[AUFGABE 2 (Filter)] execute `make run` to start application${ColourReset}")
diff --git a/02_filter/Doxyfile.in b/02_filter/Doxyfile.in
deleted file mode 100644
index e3d721099df94bba27729717afb50e4e6a32059f..0000000000000000000000000000000000000000
--- a/02_filter/Doxyfile.in
+++ /dev/null
@@ -1,1792 +0,0 @@
-# Doxyfile 1.8.1.2
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = @PROJECT_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          = "Echtzeitsysteme 2012"
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @DOXY_OUTPUT@
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding
-# "class=itcl::class" will allow you to use the command class in the
-# itcl::class meaning.
-
-TCL_SUBST              =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
-# comments according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you
-# can mix doxygen, HTML, and XML commands with Markdown formatting.
-# Disable only in case of backward compatibilities issues.
-
-MARKDOWN_SUPPORT       = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-SYMBOL_CACHE_SIZE      = 0
-
-# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
-# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
-# their name and scope. Since this can be an expensive process and often the
-# same symbol appear multiple times in the code, doxygen keeps a cache of
-# pre-resolved symbols. If the cache is too small doxygen will become slower.
-# If the cache is too large, memory is wasted. The cache size is given by this
-# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-LOOKUP_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation.
-
-EXTRACT_PACKAGE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
-# feature you need bibtex and perl available in the search path.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = NO
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = NO
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = @CMAKE_SOURCE_DIR@
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE                = @DOXY_IGNORE@
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = YES
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C, C++ and Fortran comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is advised to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# style sheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the style sheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of
-# entries shown in the various tree structured indices initially; the user
-# can expand and collapse entries dynamically later on. Doxygen will expand
-# the tree to such a level that at most the specified number of entries are
-# visible (unless a fully collapsed tree already exceeds this amount).
-# So setting the number of entries 1 will produce a full collapsed tree by
-# default. 0 is a special value representing an infinite number of entries
-# and will result in a full expanded tree by default.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
-# at top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it. Since the tabs have the same information as the
-# navigation tree you can set this option to NO if you already set
-# GENERATE_TREEVIEW to YES.
-
-DISABLE_INDEX          = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-# Since the tree basically has the same information as the tab index you
-# could consider to set DISABLE_INDEX to NO when enabling this option.
-
-GENERATE_TREEVIEW      = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you may also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to
-# the MathJax Content Delivery Network so you can quickly see the result without
-# installing MathJax.
-# However, it is strongly recommended to install a local
-# copy of MathJax from http://www.mathjax.org before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load style sheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. For each
-# tag file the location of the external documentation should be added. The
-# format of a tag file without this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths
-# or URLs. Note that each tag file must have a unique name (where the name does
-# NOT include the path). If a tag file is not located in the directory in which
-# doxygen is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside
-# the class node. If there are many fields or methods and many nodes the
-# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
-# threshold limits the number of items for each type to make the size more
-# managable. Set this to 0 for no limit. Note that the threshold may be
-# exceeded by 50% before the limit is enforced.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/02_filter/build/.gitkeep b/02_filter/build/.gitkeep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/02_filter/cmake/Doxyfile.in b/02_filter/cmake/Doxyfile.in
deleted file mode 100644
index 10846197cadc72ae5dcdb9eb5be67bb48ede64f0..0000000000000000000000000000000000000000
--- a/02_filter/cmake/Doxyfile.in
+++ /dev/null
@@ -1,1757 +0,0 @@
-# Doxyfile 1.7.5.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = @PROJECT_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         = @PROJECT_VERSION@
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          =
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           = 
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @DOXY_OUTPUT@
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = @DOXY_INPUT_DIR@
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to directory from which doxygen is run.
-
-EXCLUDE                = @DOXY_IGNORE@
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = YES 
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is adviced to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES       = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the
-# mathjax.org site, so you can quickly see the result without installing
-# MathJax, but it is strongly recommended to install a local copy of MathJax
-# before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = @DOXY_GENERATE_LATEX@
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = @DOXY_USE_GRAPHVIZ@
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = NO
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = YES
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/02_filter/cmake/cccc.cmake b/02_filter/cmake/cccc.cmake
deleted file mode 100644
index ea0af18350624a979a3e278d351094fedc57278e..0000000000000000000000000000000000000000
--- a/02_filter/cmake/cccc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-find_program(CCCC_EXE "cccc")
-
-if(CCCC_EXE)
-    
-    message(STATUS "[CCCC] at ${CCCC_EXE}")
-    add_custom_target(cccc)
-
-    add_custom_command(TARGET cccc POST_BUILD
-        COMMAND ${CCCC_EXE} 
-    )
-else()
-    message(FATAL_ERROR "[CCCC] Could not find cccc executable")
-endif()
diff --git a/02_filter/cmake/coloroutput.cmake b/02_filter/cmake/coloroutput.cmake
deleted file mode 100644
index 1280d32bd454884daeef7e6a35e446a43a8b9236..0000000000000000000000000000000000000000
--- a/02_filter/cmake/coloroutput.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-if(NOT WIN32)
-  string(ASCII 27 Esc)
-  set(ColourReset "${Esc}[m")
-  set(ColourBold  "${Esc}[1m")
-  set(Red         "${Esc}[31m")
-  set(Green       "${Esc}[32m")
-  set(Yellow      "${Esc}[33m")
-  set(Blue        "${Esc}[34m")
-  set(Magenta     "${Esc}[35m")
-  set(Cyan        "${Esc}[36m")
-  set(White       "${Esc}[37m")
-  set(BoldRed     "${Esc}[1;31m")
-  set(BoldGreen   "${Esc}[1;32m")
-  set(BoldYellow  "${Esc}[1;33m")
-  set(BoldBlue    "${Esc}[1;34m")
-  set(BoldMagenta "${Esc}[1;35m")
-  set(BoldCyan    "${Esc}[1;36m")
-  set(BoldWhite   "${Esc}[1;37m")
-endif()
-
diff --git a/02_filter/cmake/compilerwarnings.cmake b/02_filter/cmake/compilerwarnings.cmake
deleted file mode 100644
index e89c8c3b080d6d7350836a74ed6ae7a04427fd05..0000000000000000000000000000000000000000
--- a/02_filter/cmake/compilerwarnings.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Werror" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wall" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wextra" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -pedantic" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wcast-align" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wconversion" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-nonliteral" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-security" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winit-self" )
-
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-  message("-- gcc detected")
-  if(CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.0.0")
-    message("-- gcc >= 4.0.0 detected")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=pointer-to-int-cast" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=cast-qual" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=float-equal" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unknown-pragmas")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=write-strings" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=switch-default" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=switch-enum" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-function")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-macros" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-variable" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-parameter" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=shadow" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=missing-noreturn" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=packed" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unreachable-code" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-but-set-variable" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wlogical-op" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wmissing-include-dirs" )
-  endif()
-endif()
-if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-  if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.0.0")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=overloaded-virtual" )
-  endif()
-endif()
-
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpointer-arith" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wundef" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wredundant-decls" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-inline" )
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wbad-function-cast")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wold-style-definition")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wnested-externs")
-
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++" )
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast" )
diff --git a/02_filter/cmake/cppcheck.cmake b/02_filter/cmake/cppcheck.cmake
deleted file mode 100644
index 6c5f00597d1f1d9b77623a13595f1446018debb9..0000000000000000000000000000000000000000
--- a/02_filter/cmake/cppcheck.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-find_program(CPPCHECK_EXE "cppcheck")
-
-if(CPPCHECK_EXE)
-    
-    message(STATUS "[CPPCHECK] at ${CPPCHECK_EXE}")
-    add_custom_target(cppcheck)
-
-    add_custom_command(TARGET cppcheck POST_BUILD
-        COMMAND ${CPPCHECK_EXE} --template=gcc -f --std=posix --std=c99 --std=c++11 --enable=all -i ${PROJECT_BINARY_DIR} -I ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}
-    )
-else()
-    message(FATAL_ERROR "[CPPCHECK] Could not find cppcheck executable")
-endif()
diff --git a/02_filter/cmake/doxy.cmake b/02_filter/cmake/doxy.cmake
deleted file mode 100644
index 4037ae09255fcb77f950894083d551b96bc2fe51..0000000000000000000000000000000000000000
--- a/02_filter/cmake/doxy.cmake
+++ /dev/null
@@ -1,31 +0,0 @@
-
-  FIND_PACKAGE(Doxygen)
-
-  # set output path
-  set(DOXY_OUTPUT "doc")
-  set(DOXY_GENERATE_LATEX "NO")
-  set(DOXY_IGNORE "")
-  set(DOXY_INPUT_DIR "${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src")
-
-  if(DOXYGEN_DOT_FOUND)
-      set(DOXY_USE_GRAPHVIZ "YES" ) 
-      message(STATUS "[DOXYGEN] Using graphviz to draw nice graphs.")
-  else(DOXYGEN_DOT_FOUND) 
-      set(DOXY_USE_GRAPHVIY "NO" ) 
-      message(STATUS "[DOXYGEN] GraphViz' Dot tool not found.")
-  endif(DOXYGEN_DOT_FOUND) 
-   
-  if (NOT DOXYGEN_FOUND)
-    message(FATAL_ERROR 
-      "Doxygen is needed to build the documentation. Please install it correctly")
-  endif()
-  ## Configure the Template Doxyfile for our specific project
-  configure_file(${PROJECT_SOURCE_DIR}/cmake/Doxyfile.in 
-                 ${PROJECT_BINARY_DIR}/Doxyfile  @ONLY IMMEDIATE)
-  ## Add a custom target to run Doxygen (make doc)
-  add_custom_target ( doxy
-  		COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
-  		SOURCES ${PROJECT_BINARY_DIR}/Doxyfile
-		COMMAND echo "HTML ouput at ${DOXY_OUTPUT}/html/index.html"
-		)
-
diff --git a/02_filter/cmake/framac.cmake b/02_filter/cmake/framac.cmake
deleted file mode 100644
index ecc49a14a3ae5d13a1f0be4086b9e554c1400dce..0000000000000000000000000000000000000000
--- a/02_filter/cmake/framac.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-
-find_program(FRAMA_GUI_EXE "frama-c-gui")
-find_program(FRAMA_EXE "frama-c")
-find_program(WHY_EXE "why3ide")
-
-if(FRAMA_GUI_EXE)
-  add_custom_target(frama-c-gui)
-  message(STATUS "[FRAMA-C] at ${FRAMA_GUI_EXE}")
-  add_custom_command(TARGET frama-c-gui POST_BUILD
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}	
-    COMMAND ${FRAMA_GUI_EXE} -cpp-extra-args='-I ${PROJECT_SOURCE_DIR}/include'
-    )
-else()
-  message(FATAL_ERROR "[FRAMA-C] Could not find frama-c-gui executable")
-endif()
-
-if(FRAMA_EXE AND WHY_EXE)
-  add_custom_target(jessie)
-  message(STATUS "[JESSIE] at ${FRAMA_EXE} and ${WHY_EXE}")
-  add_custom_command(TARGET jessie POST_BUILD
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}	
-    COMMAND ${FRAMA_EXE} -add-path /local/why-2.34/lib/frama-c-plugin -jessie -jessie-atp why3ide -cpp-extra-args='-I ${PROJECT_SOURCE_DIR}/include'
-    )
-else()
-  message(FATAL_ERROR "[JESSIE] Could not find frama-c or why3ide executable")
-endif()
diff --git a/02_filter/cmake/lcov.cmake b/02_filter/cmake/lcov.cmake
deleted file mode 100644
index b4efe2f69ab1962a5e7dd39d6fa7a2aab98daf47..0000000000000000000000000000000000000000
--- a/02_filter/cmake/lcov.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-
-find_program(LCOV_TOOL "lcov")
-find_program(LCOV_HTML "genhtml")
-
-#This is very ugly but we need to have the oldest gcov to support llvm
-find_program(GCOV_LEGACY "gcov-4.2" )
-
-if(NOT GCOV_LEGACY)
-  find_program(GCOV_LEGACY "gcov-4.3" )
-endif()
-
-if(NOT GCOV_LEGACY)
-  find_program(GCOV_LEGACY "gcov-4.4" )
-endif()
-
-if(LCOV_TOOL AND LCOV_HTML)
-    
-  message(STATUS "[LCOV] lcov    at ${LCOV_TOOL}")
-  message(STATUS "[LCOV] genhtml at ${LCOV_HTML}")
-
-    if(NOT DEFINED "LCOV_OUTPUT_DIR")
-        set(LCOV_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doc)
-    endif()
-
-    if(NOT DEFINED "LCOV_SCAN_DIR")
-      set(LCOV_SCAN_DIR_FLAG --directory ${CMAKE_CURRENT_BINARY_DIR}/src)
-    endif()
-
-    if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-      if(GCOV_LEGACY)
-        message(STATUS "[LCOV] lcov support for clang is rather buggy")
-        message(STATUS "[LCOV] using old gcov to support clang at ${GCOV_LEGACY}")
-        set(OPTION_GCOV_TOOL "--gcov-tool" "${GCOV_LEGACY}")
-      else()
-        message(WARNING "lcov won't work with clang")
-        set(OPTION_GCOV_TOOL "")
-      endif()
-    else()
-        set(OPTION_GCOV_TOOL "")
-    endif()
-
-    add_custom_target(lcov)
-
-    add_custom_command(TARGET lcov POST_BUILD
-        COMMAND ${LCOV_TOOL} ${OPTION_GCOV_TOOL} --capture ${LCOV_SCAN_DIR_FLAG} --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-      	COMMAND ${LCOV_TOOL} --remove ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov '*.h' --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-      	COMMAND ${LCOV_TOOL} --remove ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov '/usr/include/*' --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-        COMMAND ${LCOV_HTML} ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov --show-details --legend --output-directory ${LCOV_OUTPUT_DIR}/lcov
-        COMMAND echo "HTML results at: file://${LCOV_OUTPUT_DIR}/lcov/index.html"
-    )
-endif()
diff --git a/02_filter/cmake/processorcount.cmake b/02_filter/cmake/processorcount.cmake
deleted file mode 100644
index bc9b4d6de81b6695c8e79a06d9e00f413ac1737c..0000000000000000000000000000000000000000
--- a/02_filter/cmake/processorcount.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-if(NOT DEFINED PROCESSOR_COUNT)
-  # Unknown:
-  set(PROCESSOR_COUNT 0)
-
-  # Linux:
-  set(cpuinfo_file "/proc/cpuinfo")
-  if(EXISTS "${cpuinfo_file}")
-    file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
-    list(LENGTH procs PROCESSOR_COUNT)
-  endif()
-
-  # Mac:
-  if(APPLE)
-    find_program(cmd_sys_pro "system_profiler")
-    if(cmd_sys_pro)
-      execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
-      string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1"
-        PROCESSOR_COUNT "${info}")
-    endif()
-  endif()
-
-  # Windows:
-  if(WIN32)
-    set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
-  endif()
-endif()
-
-message("-- Processor count: " ${PROCESSOR_COUNT})
diff --git a/02_filter/cmake/processorcount.cmake.orig b/02_filter/cmake/processorcount.cmake.orig
deleted file mode 100644
index fc84863db9f212e3b01bfdc884555ebccf0e60c8..0000000000000000000000000000000000000000
--- a/02_filter/cmake/processorcount.cmake.orig
+++ /dev/null
@@ -1,32 +0,0 @@
-if(NOT DEFINED PROCESSOR_COUNT)
-  # Unknown:
-  set(PROCESSOR_COUNT 0)
-
-  # Linux:
-  set(cpuinfo_file "/proc/cpuinfo")
-  if(EXISTS "${cpuinfo_file}")
-    file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
-    list(LENGTH procs PROCESSOR_COUNT)
-  endif()
-
-  # Mac:
-  if(APPLE)
-    find_program(cmd_sys_pro "system_profiler")
-    if(cmd_sys_pro)
-      execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
-      string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1"
-        PROCESSOR_COUNT "${info}")
-    endif()
-  endif()
-
-  # Windows:
-  if(WIN32)
-    set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
-  endif()
-endif()
-
-<<<<<<< HEAD
-# message(STATUS "Processor count: " ${PROCESSOR_COUNT})
-=======
-message("-- Processor count: " ${PROCESSOR_COUNT})
->>>>>>> 4b581d83976a4aafa66d902c77f386be96261daa
diff --git a/02_filter/cmake/sanitizer.cmake b/02_filter/cmake/sanitizer.cmake
deleted file mode 100644
index dbeaafbabbfa9f891b9101a5ac201238434223e3..0000000000000000000000000000000000000000
--- a/02_filter/cmake/sanitizer.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address,undefined,enum,null,shift,signed-integer-overflow,vla-bound")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address,undefined,enum,null,shift,signed-integer-overflow,vla-bound")
-elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address,integer,undefined,bounds,enum,float-cast-overflow,float-divide-by-zero,null,object-size,shift,signed-integer-overflow,vla-bound")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address,integer,undefined,bounds,enum,float-cast-overflow,float-divide-by-zero,null,object-size,shift,signed-integer-overflow,vla-bound")
-endif()
diff --git a/02_filter/drivers/i386/ezs_counter.c b/02_filter/drivers/i386/ezs_counter.c
deleted file mode 100644
index a7821ad786aa0ae810970ca610b71fe245d68d41..0000000000000000000000000000000000000000
--- a/02_filter/drivers/i386/ezs_counter.c
+++ /dev/null
@@ -1,138 +0,0 @@
-#define EZS_HPET_ADDR  0xFED00000
-
-#include "ezs_counter.h"
-#include <stdio.h>
-#include <stdint.h>
-
-typedef struct hpetReg {
-  uint64_t  GCAP_ID;    /* General capabilities */
-  uint64_t  rsv1;
-  uint64_t  GEN_CONF;   /* General configuration */
-  uint64_t  rsv2;
-  uint64_t  GINTR_STA;    /* General Interrupt status */
-  uint64_t  rsv3[25];
-  uint64_t  MAIN_CNT;   /* Main counter */
-  uint64_t  rsv4;
-  uint64_t  TIM0_CONF;    /* Timer 0 config and cap */
-#define     TIM_CONF 0
-#define     Tn_INT_ENB_CNF 4
-  uint64_t  TIM0_COMP;    /* Timer 0 comparator */
-#define     TIM_COMP 8
-  uint64_t  rsv5[2];
-  uint64_t  TIM1_CONF;    /* Timer 1 config and cap */
-  uint64_t  TIM1_COMP;    /* Timer 1 comparator */
-  uint64_t  rsv6[2];
-  uint64_t  TIM2_CONF;    /* Timer 2 config and cap */
-  uint64_t  TIM2_COMP;    /* Timer 2 comparator */
-  uint64_t  rsv7[2];
-} hpetReg;
-typedef struct  hpetReg hpetReg_t;
-
-volatile hpetReg_t *hpet = (volatile hpetReg_t *) EZS_HPET_ADDR;
-
-static uint64_t hpet_divisor = 0;
-static uint32_t hpet_period = 0;
-static bool use_hpet = true;
-
-
-uint32_t ezs_hpet_period_fs(void)
-{
-  return hpet->GCAP_ID >> 32;
-}
-
-bool ezs_hpet_init(void)
-{
-  uint64_t test = hpet->GCAP_ID;
-  uint64_t gcap = hpet->GCAP_ID;
-
-  hpet_period = (gcap & 0xffffffff00000000ULL) >> 32;
-
-  if( hpet_period > 0x5f5e100 ){
-    use_hpet = false;
-    printf("HPET invalid, using Time Stamp Counter\n");
-    return false;
-  } else {
-    use_hpet = true;
-  }
-
-  uint8_t rev_id = gcap & 0xFF;
-  uint8_t num_timers = (gcap >> 8) & 0x1F;
-  uint8_t counter_size = (gcap >> 13) & 0x1;
-  uint16_t vendor_id = (gcap >> 16) & 0xFFFF;
-
-  hpet_divisor = 1000000000ULL / hpet_period; // 10e9 fs == 1 us
-
-  printf("HPET enabled\n");
-  /* enable HPET */
-  hpet->GEN_CONF = 0x1;
-}
-
-uint64_t ezs_hpet_read(void)
-{
-  uint64_t cnt = hpet->MAIN_CNT;
-  //printf("CNT: 0x%llx\n", cnt);
-  return cnt;
-}
-
-uint64_t ezs_hpet_resolution_us(void)
-{
-  return 1;
-}
-
-uint64_t ezs_hpet_read_us(void)
-{
-  return ezs_hpet_read() / hpet_divisor;
-}
-
-/* Timestamp counter implementation */
-
-#ifndef BOCHS_CPU_MHZ
-#error Bochs CPU Speed not defined
-#endif
-
-static inline unsigned long long getticks(void)
-{
-  unsigned int lo, hi;
-  // RDTSC copies contents of 64-bit TSC into EDX:EAX
-  asm volatile("rdtsc" : "=a" (lo), "=d" (hi));
-  return (unsigned long long)hi << 32 | lo;
-}
-
-cyg_uint64 ezs_rdtsc_get_us(void) {
-  return getticks() / (BOCHS_CPU_MHZ);
-}
-
-void ezs_tsc_init(void){
-  printf("Using time stamp counter, cpu running @ %d MHz\n", BOCHS_CPU_MHZ);
-}
-
-static volatile uint32_t FAILBOCHSID = 0;
-
-/* EZS API implementation */
-void ezs_counter_init(void)
-{
-  if (FAILBOCHSID == 42) { // We run in Fail*
-    ezs_tsc_init();
-    use_hpet = false;
-  } else { // not in Fail* try using HPET
-    if ( ! ezs_hpet_init() ) { // HPET not accurate enough fall back to TSC
-      ezs_tsc_init();
-      use_hpet = false;
-    }
-  }
-}
-
-
-cyg_uint64 ezs_counter_get(void)
-{
-  if(use_hpet){
-    return ezs_hpet_read_us();
-  } else {
-    return ezs_rdtsc_get_us();
-  }
-}
-
-cyg_uint64 ezs_counter_resolution_us(void)
-{
-  return ezs_hpet_resolution_us();
-}
diff --git a/02_filter/drivers/i386/ezs_fb.c b/02_filter/drivers/i386/ezs_fb.c
deleted file mode 100644
index 7bbebc3c9afd07fdcd02b0ebff213b406828a3fe..0000000000000000000000000000000000000000
--- a/02_filter/drivers/i386/ezs_fb.c
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "ezs_fb.h"
-
-typedef struct {
-	int x;
-	int y;
-} cursor_t;
-
-static cursor_t cursor; 
-void ezs_fb_init(void)
-{
-    CYG_FB_ON(FRAMEBUF);
-    CYG_FB_FILL_BLOCK(FRAMEBUF, 0, 0, FB_WIDTH, FB_HEIGHT, 0);
-	cursor.x = 0;
-	cursor.y = 0;
-}
-
-
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,cyg_ucount16 height,cyg_fb_colour color)
-{
-	CYG_FB_FILL_BLOCK(FRAMEBUF, x, y, width, height, color);
-}
-
-
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color)
-{
-	CYG_FB_WRITE_HLINE(FRAMEBUF, x, y, len, color);
-}
-
-
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color)
-{
-
-	CYG_FB_WRITE_VLINE(FRAMEBUF, x, y, len, color);
-}
-
-void ezs_fb_clear(cyg_fb_colour color)
-{
-	ezs_fb_fill_block(0, 0, FB_WIDTH, FB_HEIGHT, color);
-}
-
-
-void ezs_fb_print_char( int ch, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color){
-	int i, j;
-	for (i = ch*8; i < (ch*8)+8; i++){
-		unsigned char row = g_8x8_font[i];
-		for (j = 0; j < 8; j++){
-			if((row & (0x80 >> j)) != 0){
-				ezs_fb_fill_block(x+j, y+(i-ch*8), 1, 1, color);
-			}
-		}
-	}
-	
-}
-
-void ezs_fb_print_string(char*c,  cyg_fb_colour color){
-	ezs_fb_print_string_cur(c, cursor.x, cursor.y, color);
-}
-
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color){
-	char* ch = c;
-	
-	while(*ch != '\0'){
-		if(*ch == '\n'){
-			ezs_fb_newline();
-		}else{
-			ezs_fb_print_char((*ch)+0, x , y, color);
-			x = x+8;
-			if( x >= FB_WIDTH - 8){
-				y += 8;
-				x = 0;
-			}
-		}
-		ch++;
-	}
-	cursor.x = x;
-	cursor.y = y;
-}
-
-void ezs_fb_newline(void){
-	cursor.x = 0;
-	cursor.y += 8;
-}
-
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y){
-	cursor.x = x;
-	cursor.y = y;
-}
-
diff --git a/02_filter/drivers/i386/ezs_tracer.cpp b/02_filter/drivers/i386/ezs_tracer.cpp
deleted file mode 100644
index 635b57af2cb30dbb956638bfeccf6e607ffabe20..0000000000000000000000000000000000000000
--- a/02_filter/drivers/i386/ezs_tracer.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <pkgconf/system.h>
-#include <cyg/io/io.h>
-#include <cyg/error/codes.h>
-#include <stdint.h>
-#include <stdio.h>
-
-//! The magic tracer variable Fail* is listening on.
-volatile unsigned ezs_tracer_register;
-
-//! No Time triggered kernel -> normal event triggered ecos:
-#ifndef SMLPKG_TTKERNEL
-#include <cyg/kernel/kernel.hxx> 	// C Kernel-API
-extern "C" {
-#include <cyg/kernel/kapi.h> 	// C Kernel-API
-}
-class Cyg_Thread;
-
-
-extern "C" void ezs_instrument(Cyg_Thread* current, Cyg_Thread* next) {
-    // Get priority from next thread
-	int prio = next->get_priority();
-	if(prio > 32) prio = 32;
-
-    // Write priority to tracer register
-    ezs_tracer_register = prio;
-}
-
-#else
-#include <sml/ttkernel/task.hxx>
-extern "C" void ezs_instrument(TT_Task* current, TT_Task* next){
-    ezs_tracer_register = next->get_id();
-}
-#endif
-
diff --git a/02_filter/drivers/include/.ezs_dma.h.swp b/02_filter/drivers/include/.ezs_dma.h.swp
deleted file mode 100644
index 640555e92dabfa079b325fcd9e03119f70b196cd..0000000000000000000000000000000000000000
Binary files a/02_filter/drivers/include/.ezs_dma.h.swp and /dev/null differ
diff --git a/02_filter/drivers/include/ezs_counter.h b/02_filter/drivers/include/ezs_counter.h
deleted file mode 100644
index c436692e632bb45fbe589c91d0048112557a059e..0000000000000000000000000000000000000000
--- a/02_filter/drivers/include/ezs_counter.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __COUNTER_H__
-#define __COUNTER_H__
-/**
- * @file counter.h
- *
- * \ingroup hw
- * @brief The libEZS counter API
- * @author Martin Hoffmann
- */
-
-#include <cyg/infra/cyg_type.h>
-
-void ezs_counter_init(void);
-/**
- * \brief Read the current counter value from hardware counter.
- * @return counter value (time resolution \see ezs_counter_resolution_us)
- */
-cyg_uint64 ezs_counter_get(void);
-
-/**
- * \brief Returns the current time resolution of the hardware counter.
- * @return tick resolution in microseconds
- */
-cyg_uint64 ezs_counter_resolution_us(void);
-#endif 
diff --git a/02_filter/drivers/include/ezs_fb.h b/02_filter/drivers/include/ezs_fb.h
deleted file mode 100644
index 123b949159f7a8d4b23c108e5326520807f94b44..0000000000000000000000000000000000000000
--- a/02_filter/drivers/include/ezs_fb.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*!
- * @file ezs_fb.h
- * @brief eCos framebuffer helper
- * @author Martin Hoffmann
- * \ingroup hw
- * Some helper functions for the eCos framebuffer driver.
- * \note You can still use the eCos functions directly, of course
- * 
- */
-
-#ifndef __FB_H_
-#define __FB_H_
-
-#include <cyg/infra/cyg_type.h>
-#include <cyg/infra/diag.h>
-#include <cyg/hal/hal_arch.h>
-#include <cyg/io/framebuf.h>
-#include <string.h>
-#include <stdio.h>
-
-#define FRAMEBUF fb0
-#define FB_WIDTH    CYG_FB_WIDTH(FRAMEBUF)
-#define FB_HEIGHT   CYG_FB_HEIGHT(FRAMEBUF)
-
-#define FB_WHITE ((16*4)-1)
-
-#define FB_FONT_SMILE 1
-
-/*!
- *  \brief Initialize the framebuffer
- */
-void ezs_fb_init(void);
-
-/*!
- *  \brief Fill block.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param width Width of the box.
- *  \param height Height of the box.
- *  \param color Color.
- */
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,cyg_ucount16 height,cyg_fb_colour color);
-
-/*!
- *  \brief Draw horizontal line.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param len length of the line.
- *  \param color Color.
- */
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color);
-
-/*!
- *  \brief Draw vertical line.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param len length of the line.
- *  \param color Color.
- */
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color);
-
-/*!
- *  \brief Clear the framebuffer.
- *  \param color Color.
- */
-void ezs_fb_clear(cyg_fb_colour color);
-
-/*  and so on.. see: http://ecos.sourceware.org/docs-latest/ref/framebuf-drawing.html   */
-
-/*!
- * \brief Prints a character at a given position.
- * \param c Character to print.
- * \param x X-Axis position.
- * \param y Y-Axis position.
- * \param color Color.
- */
-void ezs_fb_print_char(int c, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color);
-
-/*!
- * \brief Prints a string at a given position.
- * \param c Pointer to null terminated string.
- * \param x X-Axis position.
- * \param y Y-Axis position.
- * \param color Color.
- */
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color);
-
-/*!
- * \brief Prints a string.
- * \param c Pointer to null terminated string.
- * \param color String color.
- */
-void ezs_fb_print_string(char* c, cyg_fb_colour color);
-
-/*!
- * \brief Sets the cursor to a new line.
- */
-void ezs_fb_newline(void);
-
-/*!
- * \brief Sets the cursor to an arbitrary position.
- * \param x X-axis position (0 .. FB_WIDTH)
- * \param y Y-axis position (0 .. FB_HEIGHT)
- */
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y);
-
-#endif
-
diff --git a/02_filter/ecos/ecos.ecc b/02_filter/ecos/ecos.ecc
deleted file mode 100644
index c082748331184b069ceff13b6df14aefe80ee347..0000000000000000000000000000000000000000
--- a/02_filter/ecos/ecos.ecc
+++ /dev/null
@@ -1,12682 +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    pc_i82559 ;
-    template    default ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_IO current ;
-    package -template CYGPKG_IO_SERIAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_SETJMP current ;
-    package -template CYGPKG_LIBC_SIGNALS current ;
-    package -template CYGPKG_LIBC_STARTUP current ;
-    package -template CYGPKG_LIBC_STDIO current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_LIBC_TIME current ;
-    package -template CYGPKG_LIBM current ;
-    package -template CYGPKG_IO_WALLCLOCK current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_HAL_I386 current ;
-    package -hardware CYGPKG_HAL_I386_GENERIC current ;
-    package -hardware CYGPKG_HAL_I386_PC current ;
-    package -hardware CYGPKG_HAL_I386_PCMB current ;
-    package -hardware CYGPKG_IO_PCI current ;
-    package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
-    package -hardware CYGPKG_IO_SERIAL_I386_PC current ;
-    package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
-    package -hardware CYGPKG_DEVS_ETH_I386_PC_I82559 current ;
-    package -hardware CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 current ;
-    package -hardware CYGPKG_DEVICES_WALLCLOCK_I386_PC current ;
-    package -hardware CYGPKG_DEVS_FRAMEBUF_I386 v3_0 ;
-    package CYGPKG_IO_FRAMEBUF current ;
-    package CYGPKG_IO_FILEIO current ;
-    package CYGPKG_BLOCK_LIB current ;
-    package CYGPKG_LINUX_COMPAT current ;
-    package CYGPKG_USTL current ;
-    package SMLPKG_TTKERNEL 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. If your host operating system
-# is Linux you can set this to empty to use your native tools.
-# If so, your native gcc must be gcc-2.95.2 or later, and
-# "ld -v" must report a version more recent than 2.9.1.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value i386-elf
-    # value_source user
-    # Default value: i386-elf
-};
-
-# 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 "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    # value_source user
-    # Default value:  CYGBLD_GLOBAL_WARNFLAGS . " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " 
-    #     CYGBLD_GLOBAL_WARNFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings "
-    #   --> "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-
-    # The following properties are affected by this value
-    # option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    # option CYGBLD_INFRA_CFLAGS_PIPE
-    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-};
-
-# Global linker flags
-# This option controls the global linker flags. Individual
-# packages may define options which override these global flags.
-#
-cdl_option CYGBLD_GLOBAL_LDFLAGS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-g -nostdlib -Wl,--gc-sections -Wl,-static"
-    # value_source default
-    # Default value: "-g -nostdlib -Wl,--gc-sections -Wl,-static"
-};
-
-# Build GDB stub loader image
-# This option enables the building of the GDB stubs for the
-# board. The common HAL controls takes care of most of the
-# build process, but the final conversion from ELF image to
-# binary data is handled by the platform CDL, allowing
-# relocation of the data if necessary.
-#
-cdl_option CYGBLD_BUILD_GDB_STUBS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 0
-    #   --> 0
-    # Requires: CYGBLD_BUILD_COMMON_GDB_STUBS
-    #     CYGBLD_BUILD_COMMON_GDB_STUBS == 0
-    #   --> 0
-    # 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
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
-    #   --> 0
-};
-
-# Standard compiler warning flags
-# This option specifies the default warning-related compiler flags used
-# on all eCos platforms.
-#
-cdl_option CYGBLD_GLOBAL_WARNFLAGS {
-    # Calculated value:  "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings " 
-    # Flavor: data
-    # Current_value: -Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings 
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     DefaultValue:  CYGBLD_GLOBAL_WARNFLAGS . " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " 
-};
-
-# 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
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: CYGBLD_BUILD_COMMON_GDB_STUBS
-};
-
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# Build RedBoot binary image
-#
-cdl_component CYGBLD_BUILD_REDBOOT_BIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_HAL_OPTIONS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Build Redboot FLOPPY binary image
-# This option enables the conversion of the Redboot 
-# ELF image to a binary image suitable for
-# copying to a floppy disk.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN_FLOPPY {
-    # This option is not active
-    # The parent CYGBLD_BUILD_REDBOOT_BIN is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "FLOPPY" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# 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_ROM {
-    # This option is not active
-    # The parent CYGBLD_BUILD_REDBOOT_BIN is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# <
-# Intel 82559 ethernet driver
-# Ethernet driver for Intel 82559 controller.
-#
-cdl_package CYGPKG_DEVS_ETH_INTEL_I82559 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED
-    #     CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED == 0
-    #   --> 0
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# Prints ethernet device status info during startup
-# Definining this will cause the ethernet device initialization code 
-# to print lots of info
-# to confirm that it has found the devices on the PCI bus, read
-# the MAC address from EEPROM correctly, and so on, and also
-# displays the mode (10/100MHz, half/full duplex) of the
-# connection.  If the value is set higher than one then
-# additional information about each packet sent will be printed.
-#
-cdl_option CYGDBG_DEVS_ETH_INTEL_I82559_CHATTER {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of supported interfaces.
-# This option selects the number of PCI ethernet interfaces to
-# be supported by the driver.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Calculated value:  CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED 
-    #     CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED == 0
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Keep Ethernet statistics
-# The ethernet device can maintain statistics about the network,
-# specifically a great variety of error rates which are useful
-# for network management.  SNMP for example uses this
-# information.  There is some performance cost in maintaining
-# this information; disable this option to recoup that.
-#
-cdl_component CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_STATISTICS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Keep i82559 Internal statistics
-# The i82559 keeps internal counters, and it is possible to
-# acquire these.  But the i82559 (reputedly) does not service
-# the network whilst uploading the data to RAM from its
-# internal registers.  If throughput is a problem, disable
-# this option to acquire only those statistics gathered by
-# software, so that the i82559 never sleeps.
-#
-cdl_option CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_82559_STATISTICS {
-    # This option is not active
-    # The parent CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_STATISTICS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# SIOCSIFHWADDR records MAC address in EEPROM
-# The ioctl() socket call with operand SIOCSIFHWADDR sets the
-# interface hardware address - the MAC address or ethernet
-# address.  This option causes the new MAC address to be written
-# into the EEPROM associated with the interface, so that the new
-# MAC address is permanently recorded.  Doing this should be a
-# carefully chosen decision, hence this option.
-#
-cdl_component CYGPKG_DEVS_ETH_INTEL_I82559_WRITE_EEPROM {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Maximum number of RX descriptors
-# An RX descriptor is used for each ethernet frame required
-# to be passed to the upper networking layers. This option
-# sets the maximum number of these. Higher numbers use more
-# memory, lower numbers will reduce performance. The system
-# appears to work OK with as few as 8 descriptors but limps
-# painfully with only 4. Performance is better with more than
-# 8, but assuming the size of non-cached (so useless for anything
-# else) memory window is 1Mb, we might as well use it all.
-# 128 RX and TX descriptors uses the whole 1Mb, near enough.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_MAX_RX_DESCRIPTORS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 4 : 128 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 128
-};
-
-# Maximum number of TX descriptors
-# A TX descriptor is used for each ethernet frame passed down
-# from upper networking layers for transmission. This option
-# sets the maximum number of these. Higher numbers use more
-# memory, lower numbers will reduce performance. The system
-# appears to work OK with as few as 8 descriptors but limps
-# painfully with only 4. Performance is better with more than
-# 8, but assuming the size of non-cached (so useless for anything
-# else) memory window is 1Mb, we might as well use it all.
-# 128 RX and TX descriptors uses the whole 1Mb, near enough.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_MAX_TX_DESCRIPTORS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 4 : 128 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 128
-};
-
-# Intel 82559 ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_INTEL_I82559_OPTIONS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Intel 82559 ethernet driver
-# package. These flags are used in addition to the set of
-# global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_INTEL_I82559_CFLAGS_ADD {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D_KERNEL -D__ECOS"
-    # value_source default
-    # Default value: "-D_KERNEL -D__ECOS"
-};
-
-# <
-# <
-# PC board ethernet driver
-# Ethernet driver for PC.
-#
-cdl_package CYGPKG_DEVS_ETH_I386_PC_I82559 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGPKG_HAL_I386_PC
-    #     CYGPKG_HAL_I386_PC == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# Intel i82559 ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_INTEL_I82559
-    #     ActiveIf: CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED
-    # option CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT
-    #     Calculated:  CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED 
-};
-
-# Ethernet port 0 driver
-#
-cdl_component CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Device name for the ETH0 ethernet port 0 driver
-# This option sets the name of the ethernet device for the
-# i82559 ethernet port 0.
-#
-cdl_option CYGDAT_DEVS_ETH_I386_PC_I82559_ETH0_NAME {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# Set the ethernet station address
-# Enabling this option will allow the ethernet
-# station address to be forced to the value set by the
-# configuration.  This may be required if the hardware does
-# not include a serial EEPROM for the ESA.
-#
-cdl_component CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# The ethernet station address
-# The ethernet station address
-#
-cdl_option CYGDAT_DEVS_ETH_I386_PC_I82559_ETH0_ESA {
-    # This option is not active
-    # The parent CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA is not active
-    # The parent CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{0x08, 0x00, 0x00, 0x00, 0x00, 0x01}"
-    # value_source default
-    # Default value: "{0x08, 0x00, 0x00, 0x00, 0x00, 0x01}"
-};
-
-# <
-# <
-# <
-# <
-# 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
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-};
-
-# >
-# 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 == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-};
-
-# HAL uses the MMU and allows for CDL manipulation of it's use
-#
-cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_INSTALL_MMU_TABLES
-    #     ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES
-};
-
-# Install MMU tables.
-# This option controls whether this application installs
-# its own Memory Management Unit (MMU) tables, or relies on the
-# existing environment to run.
-#
-cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES
-    #     CYGINT_HAL_SUPPORTS_MMU_TABLES == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 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 (unknown) == 0
-    #     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 == GRUB
-    #   --> 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"
-};
-
-# <
-# Grouped libraries for linking
-# This option provides a list of libraries used to satisfy
-# linker dependencies, but necessary for building eCos. It is passed
-# to a GROUP() directive in the linker script, which is analogous
-# to using the "-(" aka "--start-group", and "-)" aka
-# "--end-group" options on the linker command line.
-# It provides a similar function to adding "-llibname" to the
-# linker, but with the added feature that each library in the group
-# is scanned in turn for unresolved symbols, and this process is
-# repeated until there are no more unresolved symbols. This is important
-# for system libraries as there are often mutual dependencies.
-# This option should not be used for adding application specific
-# libraries. That should be done in the application's own makefile
-# or link line.
-# Users wishing to use the GNU Compiler prior to GCC 3.0 will
-# need to remove libsupc++.a from this option.
-# Note that libtarget.a is always required to build eCos.
-#
-cdl_component CYGBLD_HAL_LINKER_GROUPED_LIBS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "libtarget.a libgcc.a libsupc++.a"
-    # value_source default
-    # Default value: CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT
-    #     CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT == "libtarget.a libgcc.a libsupc++.a"
-    #   --> "libtarget.a libgcc.a libsupc++.a"
-    # Requires:  is_substr(CYGBLD_HAL_LINKER_GROUPED_LIBS, "libtarget.a") 
-    #     CYGBLD_HAL_LINKER_GROUPED_LIBS == "libtarget.a libgcc.a libsupc++.a"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_HAL_LINKER_GROUPED_LIBS
-    #     Requires:  is_substr(CYGBLD_HAL_LINKER_GROUPED_LIBS, "libtarget.a") 
-};
-
-# >
-# Default setting
-# This option is intended to be used by other eCos packages (including
-# HAL packages) to provide a different default value for
-# CYGBLD_HAL_LINKER_GROUPED_LIBS.
-# This is separated into its own option to continue to
-# allow the user to make customisations to the grouped library
-# list.
-#
-cdl_option CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "libtarget.a libgcc.a libsupc++.a"
-    # value_source default
-    # Default value: "libtarget.a libgcc.a libsupc++.a"
-
-    # The following properties are affected by this value
-    # component CYGBLD_HAL_LINKER_GROUPED_LIBS
-    #     DefaultValue: CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT
-};
-
-# <
-# <
-# HAL interrupt handling
-# A number of configuration options related to interrupt
-# handling are common to most or all HAL packages, even though
-# the implementations will vary from architecture to
-# architecture.
-#
-cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
-    # There is no associated value.
-};
-
-# >
-# Use separate stack for interrupts
-# When an interrupt occurs this interrupt can be handled either
-# on the current stack or on a separate stack maintained by the
-# HAL. Using a separate stack requires a small number of extra
-# instructions in the interrupt handling code, but it has the
-# advantage that it is no longer necessary to allow extra space
-# in every thread stack for the interrupt handlers. The amount
-# of extra space required depends on the interrupt handlers
-# that are being used.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Interrupt stack size
-# This configuration option specifies the stack size in bytes
-# for the interrupt stack. Typically this should be a multiple
-# of 16, but the exact requirements will vary from architecture
-# to architecture. The interrupt stack serves two separate
-# purposes. It is used as the stack during system
-# initialization. In addition, if the interrupt system is
-# configured to use a separate stack then all interrupts will
-# be processed on this stack. The exact memory requirements
-# will vary from application to application, and will depend
-# heavily on whether or not other interrupt-related options,
-# for example nested interrupts, are enabled. On most targets,
-# in a configuration with no kernel this stack will also be
-# the stack used to invoke the application, and must obviously
-# be appropriately large in that case.
-#
-cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 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
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-};
-
-# Chain all interrupts together
-# Interrupts can be attached to vectors either singly, or be
-# chained together. The latter is necessary if there is no way
-# of discovering which device has interrupted without
-# inspecting the device itself. It can also reduce the amount
-# of RAM needed for interrupt decoding tables and code.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Ignore spurious [fleeting] interrupts
-# On some hardware, interrupt sources may not be de-bounced or
-# de-glitched.  Rather than try to handle these interrupts (no
-# handling may be possible), this option allows the HAL to simply
-# ignore them.  In most cases, if the interrupt is real it will
-# reoccur in a detectable form.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# HAL context switch support
-# A number of configuration options related to thread contexts
-# are common to most or all HAL packages, even though the
-# implementations will vary from architecture to architecture.
-#
-cdl_component CYGPKG_HAL_COMMON_CONTEXT {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Use minimum thread context
-# The thread context switch code can exploit the calling
-# conventions defined for a given architecture to reduce the
-# amount of state that has to be saved during a context
-# switch. Generally this improves performance and reduces
-# code size. However it can make source-level debugging more
-# difficult.
-#
-cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-};
-
-# <
-# Explicit control over cache behaviour
-# These options let the default behaviour of the caches 
-# be easily configurable.
-#
-cdl_component CYGPKG_HAL_CACHE_CONTROL {
-    # There is no associated value.
-};
-
-# >
-# Enable DATA cache on startup
-# Enabling this option will cause the data cache to be enabled
-# as soon as practicable when eCos starts up.  One would choose
-# to disable this if the data cache cannot safely be turned on,
-# such as a case where the cache(s) require additional platform
-# specific setup.
-#
-cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# DATA cache mode on startup
-# This option controls the mode the cache will be set to
-# when enabled on startup.
-#
-cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value COPYBACK
-    # value_source default
-    # Default value: COPYBACK
-    # Legal values:  "COPYBACK" "WRITETHRU" 
-};
-
-# <
-# Enable INSTRUCTION cache on startup
-# Enabling this option will cause the instruction cache to be enabled
-# as soon as practicable when eCos starts up.  One would choose
-# to disable this if the instruction cache cannot safely be turned on,
-# such as a case where the cache(s) require additional platform
-# specific setup.
-#
-cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Source-level debugging support
-# If the source level debugger gdb is to be used for debugging
-# application code then it may be necessary to configure in support
-# for this in the HAL.
-#
-cdl_component CYGPKG_HAL_DEBUG {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Support for GDB stubs
-# The HAL implements GDB stubs for the target.
-#
-cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS {
-    # Implemented by CYGPKG_HAL_I386_PC, 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
-};
-
-# 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
-    # value_source default
-    # 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 == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
-    #   --> 0
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 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 CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK
-    #     ActiveIf: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     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_I386_PC, 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 CYGBLD_BUILD_GDB_STUBS
-    #     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 CYGBLD_BUILD_GDB_STUBS
-    #     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 {
-    # This option is not active
-    # ActiveIf constraint:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-    #     CYGSEM_HAL_ROM_MONITOR == 0
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT (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 CYGBLD_BUILD_GDB_STUBS
-    #     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"
-};
-
-# Enable initial breakpoint
-# This option causes an application that has GDB stubs built in
-# to take a breakpoint immediately before calling cyg_start().
-# This gives the developer a chance to set any breakpoints or
-# inspect the system state before it proceeds.
-#
-cdl_option CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK {
-    # This option is not active
-    # ActiveIf constraint: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  !CYGPKG_REDBOOT 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 1
-};
-
-# <
-# 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_I386_PC, 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Enable use of virtual vector calling interface
-# Virtual vector support allows the HAL to let the ROM
-# monitor handle certain operations. The virtual vector table
-# defines a calling interface between applications running in
-# RAM and the ROM monitor.
-#
-cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Inherit console settings from ROM monitor
-# When this option is set, the application will inherit
-# the console as set up by the ROM monitor. This means
-# that the application will use whatever channel and
-# mangling style was used by the ROM monitor when
-# the application was launched.
-#
-cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
-    # This option is not active
-    # 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
-};
-
-# 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
-};
-
-# 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 == GRUB
-    #     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_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_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_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 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 board, 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
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-    # Requires:  !CYGHWR_HAL_I386_FPU_SWITCH_LAZY 
-    #     CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 1
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-};
-
-# 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 == GRUB
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 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 {
-    # Implemented by CYGPKG_HAL_I386_PCMB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Saved interrupt state required
-# Components requiring access to saved interrupt state via the
-# hal_saved_interrupt_state symbol should implement this
-# interface.
-#
-cdl_interface CYGINT_HAL_COMMON_SAVED_INTERRUPT_STATE_REQUIRED {
-    # Implemented by CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT, active, disabled
-    # Implemented by CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-};
-
-# File I/O operations via GDB
-# This option enables support for various file I/O
-# operations using the GDB remote protocol to communicate
-# with GDB. The operations are then performed on the
-# debugging host by proxy. These operations are only
-# currently available by using a system call interface
-# to RedBoot. This may change in the future.
-#
-cdl_option CYGPKG_HAL_GDB_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-};
-
-# Build Compiler sanity checking tests
-# Enabling this option causes compiler tests to be built.
-#
-cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_HAL_TESTS
-    #     Calculated:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-};
-
-# Common HAL tests
-# This option specifies the set of tests for the common HAL.
-#
-cdl_component CYGPKG_HAL_TESTS {
-    # Calculated value:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-    #     CYGINT_HAL_TESTS_NO_CACHES == 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" : "") 
-};
-
-# <
-# i386 architecture
-# The i386 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_I386 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBM_CFLAGS_ADD
-    #     DefaultValue:  "-fno-strict-aliasing" .  ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") 
-};
-
-# >
-# SMP support
-#
-cdl_component CYGPKG_HAL_SMP_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 
-    #     CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 1
-    #   --> 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT
-    #     ActiveIf:  CYGPKG_HAL_SMP_SUPPORT 
-    # component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT
-    #     Calculated:  CYGPKG_HAL_SMP_SUPPORT 
-};
-
-# >
-# Max number of CPUs supported
-#
-cdl_option CYGPKG_HAL_SMP_CPU_MAX {
-    # This option is not active
-    # The parent CYGPKG_HAL_SMP_SUPPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-};
-
-# <
-# Enable I386 FPU support
-# This component enables support for the
-# I386 floating point unit.
-#
-cdl_component CYGHWR_HAL_I386_FPU {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use lazy FPU state switching
-# This option enables lazy FPU state switching.
-# The default behaviour for eCos is to save and
-# restore FPU state on every thread switch, interrupt
-# and exception. While simple and deterministic, this
-# approach can be expensive if the FPU is not used by
-# all threads. The alternative, enabled by this option,
-# is to use hardware features that allow the FPU state
-# of a thread to be left in the FPU after it has been
-# descheduled, and to allow the state to be switched to
-# a new thread only if it actually uses the FPU. Where
-# only one or two threads use the FPU this can avoid a
-# lot of unnecessary state switching.
-#
-cdl_option CYGHWR_HAL_I386_FPU_SWITCH_LAZY {
-    # 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_HAL_SMP_SUPPORT
-    #     Requires:  CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  !CYGHWR_HAL_I386_FPU_SWITCH_LAZY 
-};
-
-# <
-# Enable Pentium class CPU features
-# This component enables support for various
-# features of Pentium class CPUs.
-#
-cdl_component CYGHWR_HAL_I386_PENTIUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Save/Restore SSE registers on context switch
-# This option enables SSE state switching. The default
-# behaviour for eCos is to ignore the SSE registers.
-# Enabling this option adds SSE state information to
-# every thread context.
-#
-cdl_option CYGHWR_HAL_I386_PENTIUM_SSE {
-    # This option is not active
-    # The parent CYGHWR_HAL_I386_PENTIUM is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support extra Pentium registers in GDB stub
-# This option enables support for extra Pentium registers
-# in the GDB stub. These are registers such as CR0-CR4, and
-# all MSRs. Not all GDBs support these registers, so the
-# default behaviour for eCos is to not include them in the
-# GDB stub support code.
-#
-cdl_option CYGHWR_HAL_I386_PENTIUM_GDB_REGS {
-    # This option is not active
-    # The parent CYGHWR_HAL_I386_PENTIUM is disabled
-
-    # 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/i386.ld" 
-    # Flavor: data
-    # Current_value: src/i386.ld
-};
-
-# Implementations of hal_i386_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_I386_MEM_REAL_REGION_TOP {
-    # Implemented by CYGPKG_HAL_I386_PCMB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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_I386_LINUX_EXEC {
-    # This option is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC (unknown) == 0
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# Address for the trampoline code
-# This is the address to where the trampoline code is
-# copied.  The trampoline copies the image to its
-# final location and jumps to its entry point.
-#
-cdl_option CYGHWR_REDBOOT_I386_TRAMPOLINE_ADDRESS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_I386_LINUX_EXEC is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0007C000
-    # value_source default
-    # Default value: 0x0007C000
-};
-
-# <
-# i386 generic target
-# This package provides support for generic IA32 CPU variants.
-# Any CPU from an 80386 to the latest Pentium/Athlon should work
-# with this variant HAL. Essentially this variant is empty, it
-# just avoids providing any configuration to the generic architecture
-# support in the architecture HAL.
-#
-cdl_package CYGPKG_HAL_I386_GENERIC {
-    # 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
-};
-
-# i386 PC Target
-# The i386 PC Target HAL package provides the 
-# support needed to run eCos binaries on an i386 PC.
-#
-cdl_package CYGPKG_HAL_I386_PC {
-    # 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_DEVS_ETH_I386_PC_I82559
-    #     ActiveIf: CYGPKG_HAL_I386_PC
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     ActiveIf: CYGPKG_HAL_I386_PC
-};
-
-# >
-# How to discover the size of available RAM.
-# It is possible for the HAL to discover the 
-# size of RAM In several ways. Currently this
-# can be done by querying the BIOS or by 
-# hardcoding the values into the executable.
-#
-cdl_component CYGPKG_HAL_I386_PC_MEMSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value BIOS
-    # value_source default
-    # Default value: BIOS
-    # Legal values: "BIOS" "HARDCODE"
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_I386_PC_MEMSIZE_BASE
-    #     ActiveIf:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    # option CYGNUM_HAL_I386_PC_MEMSIZE_EXTENDED
-    #     ActiveIf:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-};
-
-# >
-# Amount of Base RAM available.
-#
-cdl_option CYGNUM_HAL_I386_PC_MEMSIZE_BASE {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    #     CYGPKG_HAL_I386_PC_MEMSIZE == BIOS
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000F0000
-    # value_source default
-    # Default value: 0x000F0000
-};
-
-# Amount of Extended RAM available.
-#
-cdl_option CYGNUM_HAL_I386_PC_MEMSIZE_EXTENDED {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    #     CYGPKG_HAL_I386_PC_MEMSIZE == BIOS
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Startup type
-# It is possible to configure eCos for the PC target to build for:
-# RAM startup (generally when being run under an existing
-# Monitor program like RedBoot); FLOPPY startup (for writing
-# to a floppy disk, which can then be used for booting
-# on PCs with a standard BIOS), GRUB startup (for being booted
-# by the GRUB bootloader) ROM startup (for writing
-# straight to a boot ROM/Flash). ROM startup is experimental
-# at this time.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    user_value GRUB
-    # value_source user
-    # Default value: RAM
-    # Legal values: "RAM" "FLOPPY" "ROM" "GRUB"
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_I386_ROMBOOT
-    #     Calculated:  CYG_HAL_STARTUP == "ROM" 
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGHWR_HAL_I386_PC_LOAD_HIGH
-    #     Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGHWR_HAL_I386_PC_LOAD_HIGH
-    #     Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # 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 CYGBLD_BUILD_REDBOOT_BIN_FLOPPY
-    #     ActiveIf:  CYG_HAL_STARTUP == "FLOPPY" 
-    # option CYGBLD_BUILD_REDBOOT_BIN_ROM
-    #     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 
-};
-
-# Build ROM bootstrap code
-#
-cdl_option CYGBLD_BUILD_I386_ROMBOOT {
-    # Calculated value:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == GRUB
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the diagnostic port.
-# Note: this should match the value chosen for the GDB port if the
-# diagnostic 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 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option controls the baud rate used for the GDB connection.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the board
-# This define the number of serial ports that will be used by the HAL.
-# Ports 0 and 1 equate to COM1 and COM2 and port 2 is the PC screen and
-# keyboard.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value:  CYGSEM_HAL_I386_PC_DIAG_SCREEN ? 3 : 2 
-    #     CYGSEM_HAL_I386_PC_DIAG_SCREEN == 1
-    #   --> 3
-    # Legal values: 1 to 3
-
-    # 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
-# On PCs with two 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 {
-    # 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 == 3
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # 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 == 3
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Diagnostic serial port
-# On PCs with two serial ports, this option
-# chooses which port will be used for diagnostic output.
-# Selecting port 2 will cause the PC screen to be used.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # 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 == 3
-};
-
-# Output to PC screen
-# This option enables use of the PC screen and keyboard as a
-# third virtual serial device.
-#
-cdl_option CYGSEM_HAL_I386_PC_DIAG_SCREEN {
-    # 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_HAL_VIRTUAL_VECTOR_COMM_CHANNELS
-    #     DefaultValue:  CYGSEM_HAL_I386_PC_DIAG_SCREEN ? 3 : 2 
-    # option CYGNUM_HAL_I386_PC_STARTUP_VIDEO_MODE
-    #     Requires:  !CYGSEM_HAL_I386_PC_DIAG_SCREEN 
-};
-
-# Load into higher memory (2MB)
-# This option enables building RAM applications
-# which have a start address outside of the area
-# used by redboot_GRUB.
-#
-cdl_option CYGHWR_HAL_I386_PC_LOAD_HIGH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-};
-
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: i386_pc_grub
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_i386_pc_grub.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_i386_pc_grub.h>
-};
-
-# <
-# <
-# i386 PC Motherboard Support
-# The i386 PC Motherboard HAL package provides the
-# support needed to run eCos binaries on an i386 PC
-# using a standard motherboard. This package provides
-# support for the standard PC devices: timers, interrupt
-# controller, serial ports, ASCII display, keyboard, PCI
-# bus etc. that are found on all PC compatible platforms.
-# It does not provide support for devices that may also be
-# found on modern motherboards, such as ethernet, sound and
-# video devices. These are supported by drivers elsewhere.
-#
-cdl_package CYGPKG_HAL_I386_PCMB {
-    # 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_IO_SERIAL_I386_PC
-    #     ActiveIf: CYGPKG_HAL_I386_PCMB
-};
-
-# >
-# Real-time clock constants.
-# The RTC period is based on the clock input
-# to the 8254, which is 1193180 Hz.
-# CYGNUM_HAL_RTC_PERIOD is set for 100 ticks
-# per second.
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Flavor: data
-    user_value 100000000
-    # value_source user
-    # Default value: 1000000000
-
-    # The following properties are affected by this value
-    # option SMLNUM_TTKERNEL_RTC_NUMERATOR
-    #     DefaultValue:  CYGNUM_HAL_RTC_NUMERATOR 
-};
-
-# Real-time clock denominator
-#
-cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
-    # Flavor: data
-    user_value 1000
-    value_source default
-    # Default value: 100
-
-    # The following properties are affected by this value
-    # option SMLNUM_TTKERNEL_RTC_DENOMINATOR
-    #     DefaultValue:  CYGNUM_HAL_RTC_DENOMINATOR 
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Flavor: data
-    user_value 1193
-    # value_source user
-    # Default value: 11932
-
-    # The following properties are affected by this value
-    # option SMLNUM_TTKERNEL_RTC_PERIOD
-    #     DefaultValue:  CYGNUM_HAL_RTC_PERIOD 
-};
-
-# <
-# Search entire PCI space
-# This option enables searching the entire PCI address space, including
-# up to 256 busses, etc.  Probably only useful when there are bridges or
-# other PCI expanding devices (such as a board with it's own PCI bus)
-# in the system.  If disabled, the system will revert to the default
-# PCI space size (typically 8 busses).
-#
-cdl_option CYGSEM_HAL_I386_PC_LARGE_PCI_SPACE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Switch the display to an alternative video mode
-# This option can be used when building RedBoot to switch
-# the display to a suitable mode, typically before running
-# an eCos graphical application. The mode switch involves
-# calling the PC Video BIOS, so needs to happen while the
-# processor is still running in real mode. Some information
-# about the video BIOS, the current mode, and the available
-# modes will be written to video memory so that the eCos
-# application knows what happened.
-# Different graphics cards use different numbers for the
-# various modes, so there is no simple way of knowing which
-# mode should be specified to achieve the desired resolution.
-# Instead RedBoot can be built with a suitable default, for
-# example 0x0100, and then a simple eCos application can be
-# built using an appropriate eCos configuration and
-# run to find out about all the available mode. RedBoot can
-# then be reconfigured and rebuilt to use a suitable mode.
-# The PC motherboard support package comes with a simple
-# eCos program gfxmode.c which can be used for this.
-#
-cdl_option CYGNUM_HAL_I386_PC_STARTUP_VIDEO_MODE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  !CYGSEM_HAL_I386_PC_DIAG_SCREEN 
-    #     CYGSEM_HAL_I386_PC_DIAG_SCREEN == 1
-    #   --> 0
-};
-
-#
-cdl_component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_SMP_SUPPORT 
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value:  CYGPKG_HAL_SMP_SUPPORT 
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Support for gprof profiling
-# The PC HAL support can provide a profiling timer for use
-# by the gprof package. However the hardware only provides a
-# single source of timer interrupts so this must be shared
-# between the system clock and the profiling code. The current
-# implementation requires that the system clock be initialized
-# first (which happens in a static constructor with priority
-# CYG_INIT_CLOCK), then profiling can be enabled via a call
-# to profile_on().
-#
-cdl_option CYGFUN_HAL_I386_PCMB_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_PROFILE_GPROF
-    #     CYGPKG_PROFILE_GPROF (unknown) == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    #   --> 0
-};
-
-# Enable PC screen support
-# This option enables support for the PC screen and
-# keyboard. These are combined into a virtual serial
-# device that may be used for diagnostic output.
-# Note that there is little point in trying to use it
-# as a debug channel.
-#
-cdl_interface CYGINT_HAL_I386_PCMB_SCREEN_SUPPORT {
-    # Implemented by CYGSEM_HAL_I386_PC_DIAG_SCREEN, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# <
-# <
-# <
-# I/O sub-system
-# doc: ref/io.html
-# The eCos system is supplied with a number of different
-# device drivers.  This option enables the basic I/O system
-# support which is the basis for all drivers.
-#
-cdl_package CYGPKG_IO {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL
-    #     ActiveIf: CYGPKG_IO
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_IO
-    # option CYGPKG_IO_FILEIO_DEVFS_SUPPORT
-    #     ActiveIf: CYGPKG_IO
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_IO
-};
-
-# >
-# Debug I/O sub-system
-# This option enables verbose messages to be displayed on the
-# system 'diag' device during I/O system initialization.
-#
-cdl_option CYGDBG_IO_INIT {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 0
-};
-
-# Basic support for file based I/O
-# This option control support for simple file I/O primitives. It is only
-# present if the FILEIO package is not included.
-#
-cdl_component CYGPKG_IO_FILE_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: !CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Number of open files
-# This option controls the number of open files.
-#
-cdl_option CYGPKG_IO_NFILE {
-    # This option is not active
-    # The parent CYGPKG_IO_FILE_SUPPORT is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-};
-
-# <
-# Serial device drivers
-# doc: ref/io.html
-# This option enables drivers for basic I/O services on
-# serial devices.
-#
-cdl_package CYGPKG_IO_SERIAL {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     ActiveIf: CYGPKG_IO_SERIAL
-    # package CYGPKG_IO_SERIAL_I386_PC
-    #     ActiveIf: CYGPKG_IO_SERIAL
-};
-
-# >
-# Support non-blocking read and write calls
-# This option enables extra code in the generic serial driver
-# which allows clients to switch read() and write() call
-# semantics from blocking to non-blocking.
-#
-cdl_option CYGOPT_IO_SERIAL_SUPPORT_NONBLOCKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Driver requires block transfer callback functions
-# Some low-level drivers can be optimized to transfer blocks
-# of data instead of a single character at a time. These usually
-# rely on a hardware FIFO of some sort.
-#
-cdl_interface CYGINT_IO_SERIAL_BLOCK_TRANSFER {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Serial driver supports line status
-#
-cdl_interface CYGINT_IO_SERIAL_LINE_STATUS_HW {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
-    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     DefaultValue:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
-};
-
-# Support line status callbacks
-# This option indicates that if the serial driver supports it,
-# serial line status and modem status information should be
-# propagated to higher layers via callbacks.
-#
-cdl_option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
-    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 2
-    #   --> 1
-    # Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
-    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-};
-
-# Flow control
-# This component contains options related to flow control.
-#
-cdl_component CYGPKG_IO_SERIAL_FLOW_CONTROL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE == 0
-    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-};
-
-# >
-# Software flow control
-# This component enables support of software flow control.
-#
-cdl_component CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
-    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-};
-
-# >
-# Start character
-# This option specifies the ascii character used to
-# indicate that transmission should start.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XON_CHAR {
-    # This option is not active
-    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 17
-    # value_source default
-    # Default value: 17
-    # Legal values: 0 to 255
-};
-
-# Stop character
-# This option specifies the ascii character used to
-# indicate that transmission should stop.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XOFF_CHAR {
-    # This option is not active
-    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 19
-    # value_source default
-    # Default value: 19
-    # Legal values: 0 to 255
-};
-
-# <
-# Hardware flow control
-# If the hardware supports it, this option allows hardware
-# flow control to be enabled. This may be in the form of
-# either or both of RTS/CTS, or DSR/DTR flow control.
-#
-cdl_option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-    # ActiveIf constraint:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 1
-    #   --> 0
-    # Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-    # Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
-    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-};
-
-# Serial h/w supports hardware flow control
-#
-cdl_interface CYGINT_IO_SERIAL_FLOW_CONTROL_HW {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     ActiveIf:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-};
-
-# Default flow control method
-# This option allows a default flow control method
-# to be defined. Combinations of flow control methods
-# may also be set, but this is only possible by
-# using the cyg_io_set_config() API in source code.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NONE
-    # value_source default
-    # Default value: NONE
-    # Legal values:  "NONE" "XONXOFF" "RTSCTS" "DSRDTR" 
-};
-
-# Rx flow control low water mark
-# This sets the water mark used for determining
-# when to disable flow control, expressed
-# as a percentage of the buffer size. When the
-# receive buffer size is lower than this percentage,
-# if the transmitter had previously been throttled, it
-# will now be informed it can restart.
-#
-cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 33
-    # value_source default
-    # Default value: 33
-    # Legal values: 1 to 100
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
-    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-};
-
-# Rx flow control high water mark
-# This sets the water mark used for determining
-# when to enable flow control, expressed
-# as a percentage of the buffer size. When the
-# receive buffer size exceeds this percentage,
-# signals are sent to the transmitter to tell it
-# to throttle tranmission.
-#
-cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 66
-    # value_source default
-    # Default value: 66
-    # Legal values: 1 to 100
-    # Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT == 0
-    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
-    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-};
-
-# <
-# TTY-mode serial device drivers
-# This option enables a simple terminal-like device driver 
-# that can be used for serial devices that interact with humans,
-# such as a system console.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# HAL/diag serial device driver
-# This option enables the use of the HAL diagnostic channel
-# via the standard I/O drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_HALDIAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-};
-
-# Console device name
-# This option selects the TTY device to use for the console.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_CONSOLE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ttydiag\""
-    # value_source default
-    # Default value: "\"/dev/ttydiag\""
-
-    # The following properties are affected by this value
-    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
-    #     DefaultValue:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
-    #     DefaultValue:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-};
-
-# TTY mode HAL/diag channel
-# This option causes '/dev/ttydiag' to be included in the standard
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTYDIAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# TTY mode channel #0
-# This option causes '/dev/tty0' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #0 device
-# This option selects the physical device to use for 
-# '/dev/tty0'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY0_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY0 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-};
-
-# <
-# TTY mode channel #1
-# This option causes '/dev/tty1' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #1 device
-# This option selects the physical device to use for 
-# '/dev/tty1'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY1_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# <
-# TTY mode channel #2
-# This option causes '/dev/tty2' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY2 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #2 device
-# This option selects the physical device to use for 
-# '/dev/tty2'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY2_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY2 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser2\""
-    # value_source default
-    # Default value: "\"/dev/ser2\""
-};
-
-# <
-# TTY mode channel #3
-# This option causes '/dev/tty3' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY3 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #3 device
-# This option selects the physical device to use for 
-# '/dev/tty3'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY3_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY3 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser3\""
-    # value_source default
-    # Default value: "\"/dev/ser3\""
-};
-
-# <
-# <
-# Termios compatible TTY drivers
-# This option enables terminal drivers compatible with
-# POSIX termios.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    #     CYGPKG_ISOINFRA == current
-    #     CYGPKG_IO_FILEIO == current
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# Interface for termios tty driver file enabling
-#
-cdl_interface CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY {
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY
-    #     ActiveIf:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
-};
-
-# Build termios tty driver file
-#
-cdl_option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
-    #     CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Termios TTY channel #0
-# This option causes '/dev/termios0' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #0 device
-# This option selects the physical device to use for 
-# '/dev/termios0'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS0_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-};
-
-# <
-# Termios TTY channel #1
-# This option causes '/dev/termios1' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #1 device
-# This option selects the physical device to use for 
-# '/dev/termios1'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS1_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# <
-# Termios TTY channel #2
-# This option causes '/dev/termios2' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #2 device
-# This option selects the physical device to use for 
-# '/dev/termios2'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS2_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser2\""
-    # value_source default
-    # Default value: "\"/dev/ser2\""
-};
-
-# <
-# Termios TTY channel #3
-# This option causes '/dev/termios3' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #3 device
-# This option selects the physical device to use for 
-# '/dev/termios3'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS3_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser3\""
-    # value_source default
-    # Default value: "\"/dev/ser3\""
-};
-
-# <
-# Support signals
-# This option selects whether those parts of the termios
-# interface involving signals is supported. This includes
-# BRKINT mode, the INTR and QUIT characters, and whether
-# SIGHUP is sent on terminal close.
-#
-cdl_option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_IMPL
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-};
-
-# <
-# Hardware serial device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_component CYGPKG_IO_SERIAL_DEVICES {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_IO_SERIAL_TESTS
-    #     Calculated:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2" : "" 
-};
-
-# >
-# 16x5x generic serial device drivers
-# This option enables the serial device drivers for the
-# 16x5x compatiple controllers.
-#
-cdl_package CYGPKG_IO_SERIAL_GENERIC_16X5X {
-    # 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_SERIAL
-    #     CYGPKG_IO_SERIAL == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
-    #     CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED == 2
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Per channel interrupt priority support
-# A platform should implement this interface if it supports
-# per channel interrupt priorities. If a platform implements
-# this interface it needs to provide an interrupt priority
-# value for each UART channel it supports.
-#
-cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_CHAN_INTPRIO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Transmission require priming
-# This option should be switched on when enabling THRE interrupt
-# does not generate interrupt unless bytes are posted to the FIFO.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# 16x5x FIFO support
-# Options to configure the FIFO on a 16550 (or above) variant.
-#
-cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Threshold for RX interrupt on 16550 FIFO
-# This options configures the threshold value at which
-# the RX interrupt occurs when a FIFO is used. (16550 and
-# above only), this may be after 1, 4, 8 or 14 characters.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO_RX_THRESHOLD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values:  14 8 4 1 
-};
-
-# 16x5x TX FIFO size
-# Configures the maximum number of bytes written to the
-# 16x5x UART transmit FIFO when the TX interrupt occurs.
-#
-cdl_option CYGNUM_IO_SERIAL_GENERIC_16X5X_FIFO_TX_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-};
-
-# <
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building these serial device drivers. These flags are
-# used in addition to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_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 these serial device drivers. These flags are
-# removed from the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# PC serial device drivers
-# This option enables the serial device drivers for the
-# PC.
-#
-cdl_package CYGPKG_IO_SERIAL_I386_PC {
-    # 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_SERIAL
-    #     CYGPKG_IO_SERIAL == current
-    #   --> 1
-    # ActiveIf constraint: CYGPKG_HAL_I386_PCMB
-    #     CYGPKG_HAL_I386_PCMB == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Generic 16x5x serial driver required
-#
-cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     ActiveIf: CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
-};
-
-# PC serial port 0 driver
-# This option includes the serial device driver for port 0 on the 
-# PC.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_SERIAL0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_I386_PC_TESTING
-    #     ActiveIf: CYGPKG_IO_SERIAL_I386_PC_SERIAL0
-};
-
-# >
-# Device name for PC serial port 0
-# This option specifies the device name port 0 on the PC.
-#
-cdl_option CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-
-    # The following properties are affected by this value
-    # option CYGPRI_SER_TEST_SER_DEV
-    #     DefaultValue:  CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME 
-};
-
-# Baud rate for the PC serial port 0 driver
-# This option specifies the default baud rate (speed) for the
-# PC port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600
-    #                           4800 7200 9600 14400 19200 38400 57600 115200 230400
-    #             
-};
-
-# Buffer size for the PC serial port 0 driver
-# This option specifies the size of the internal buffers used
-# for the PC port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 0 to 8192
-};
-
-# I/O base address for the i386-PC serial port 0
-# This option specifies the I/O address of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IOBASE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000003F8
-    # value_source default
-    # Default value: 0x000003F8
-    # Legal values: 0 to 0xFF8
-};
-
-# IRQ for the i386-PC serial port 0
-# This option specifies the IRQ of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 0 to 15
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_INT
-    #     DefaultValue:  CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ + 32 
-};
-
-# INT for the i386-PC serial port 0
-# This option specifies the interrupt vector of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_INT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 36
-    # value_source default
-    # Default value:  CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ + 32 
-    #     CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ == 4
-    #   --> 36
-    # Legal values: 32 to 47
-};
-
-# <
-# PC serial port 1 driver
-# This option includes the serial device driver for port 1 on
-# the PC.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_SERIAL1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Device name for PC serial port 1
-# This option specifies the device name port 1 on the PC.
-#
-cdl_option CYGDAT_IO_SERIAL_I386_PC_SERIAL1_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# Baud rate for the PC serial port 1 driver
-# This option specifies the default baud rate (speed) for the
-# PC port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600
-    #                           4800 7200 9600 14400 19200 38400 57600 115200 230400
-    #             
-};
-
-# Buffer size for the PC serial port 1 driver
-# This option specifies the size of the internal buffers used
-# for the PC port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 0 to 8192
-};
-
-# I/O base address for the i386-PC serial port 1
-# This option specifies the I/O address of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IOBASE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000002F8
-    # value_source default
-    # Default value: 0x000002F8
-    # Legal values: 0 to 0xFF8
-};
-
-# IRQ for the i386-PC serial port 1
-# This option specifies the IRQ of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 0 to 15
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_INT
-    #     DefaultValue:  CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ + 32 
-};
-
-# INT for the i386-PC serial port 1
-# This option specifies the interrupt vector of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_INT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 35
-    # value_source default
-    # Default value:  CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ + 32 
-    #     CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ == 3
-    #   --> 35
-    # Legal values: 32 to 47
-};
-
-# <
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building these serial device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_I386_PC_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 these serial device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_I386_PC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# Testing parameters
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_TESTING {
-    # ActiveIf constraint: CYGPKG_IO_SERIAL_I386_PC_SERIAL0
-    #     CYGPKG_IO_SERIAL_I386_PC_SERIAL0 == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Serial device used for testing
-#
-cdl_option CYGPRI_SER_TEST_SER_DEV {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value:  CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME 
-    #     CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME == "\"/dev/ser0\""
-    #   --> "\"/dev/ser0\""
-};
-
-# <
-# <
-# <
-# Build extra serial tests
-# This option enables the building of some extra tests which
-# can be used when testing / debugging serial drivers. These
-# are not built by default since they do not use the dedicated
-# testing infrastructure.
-#
-cdl_option CYGBLD_IO_SERIAL_EXTRA_TESTS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the serial device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the serial device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Serial device driver tests
-# This option specifies the set of tests for the serial device drivers.
-#
-cdl_option CYGPKG_IO_SERIAL_TESTS {
-    # Calculated value:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2" : "" 
-    #     CYGPKG_IO_SERIAL_DEVICES == 1
-    # Flavor: data
-    # Current_value: tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2
-};
-
-# <
-# Enable serial device select support
-# This option enables support for the select() API function on all
-# serial devices.
-#
-cdl_option CYGPKG_IO_SERIAL_SELECT_SUPPORT {
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires:  CYGFUN_IO_FILEIO_SELECT == 1 
-    #     CYGFUN_IO_FILEIO_SELECT == 0
-    #   --> 0
-};
-
-# Serial testing specification
-#
-cdl_component CYGPKG_IO_SERIAL_TEST_SPECS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Skip 9600 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_9600 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 14400 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_14400 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 19200 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_19200 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 38400 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_38400 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 57600 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_57600 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 115200 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_115200 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip even-parity testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_EVEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip odd-parity testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_ODD {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 2-stop bit testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_STOP_2 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# PCI configuration library
-# doc: ref/io-pci.html
-# The PCI configuration library provides initialization of devices
-# on the PCI bus. Functions to find and access these devices are
-# also provided.
-#
-cdl_package CYGPKG_IO_PCI {
-    # 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
-};
-
-# >
-# PCI 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_PCI_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the PCI configuration library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_PCI_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 PCI configuration library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_PCI_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Enable debugging.
-# This option enables minimal debugging of the PCI library.
-# In particular, it will print information about devices as the
-# PCI bus is being scanned/searched.
-#
-cdl_option CYGPKG_IO_PCI_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# PCI tests
-# This option specifies the set of tests for the PCI configuration library.
-#
-cdl_option CYGPKG_IO_PCI_TESTS {
-    # Calculated value:  "tests/pci1 tests/pci2" 
-    # Flavor: data
-    # Current_value: tests/pci1 tests/pci2
-};
-
-# Writeback Interrupt Line register.
-# This option causes a PCI device interrupt vector to be
-# written to the Interrupt Line register in config space.
-# This is traditionally done by a BIOS so that device
-# drivers can read the interrupt vector directly from
-# device configuration space.
-#
-cdl_option CYGPKG_IO_PCI_CONFIGURE_INTLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# <
-# Infrastructure
-# Common types and useful macros.
-# Tracing and assertion facilities.
-# Package startup options.
-#
-cdl_package CYGPKG_INFRA {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL
-    #     Requires: CYGPKG_INFRA
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-};
-
-# >
-# 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 
-    # option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
-    #     Requires: 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
-    # component CYGPKG_LIBM_TRACE
-    #     Requires: CYGDBG_USE_TRACING
-};
-
-# >
-# Trace function reports
-# This option allows individual control of
-# function entry/exit tracing, independent of
-# more general tracing output.
-# This may be useful to remove clutter from a
-# trace log.
-#
-cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS {
-    # This option is not active
-    # The parent CYGDBG_USE_TRACING is not active
-    # The parent CYGDBG_USE_TRACING is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use trace text
-# All trace calls within eCos contain a text message
-# which should give some information about the circumstances.
-# These text messages will end up being embedded in the
-# application image and hence there is a significant penalty
-# in terms of image size.
-# It is possible to suppress the use of these messages by
-# disabling this option.
-# This results in smaller code size, but there is less
-# human-readable information available in the trace output,
-# possibly only filenames and line numbers.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE {
-    # This option is not active
-    # The parent CYGDBG_USE_TRACING is not active
-    # The parent CYGDBG_USE_TRACING is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Trace output implementations
-#
-cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL {
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # component CYGDBG_USE_ASSERTS
-    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    # component CYGDBG_USE_TRACING
-    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-};
-
-# Null output
-# A null output module which is useful when
-# debugging interactively; the output routines
-# can be breakpointed rather than have them actually
-# 'print' something.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple output
-# An output module which produces simple output
-# from tracing and assertion events.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# 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 0
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 0
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    #   --> 0
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    #   --> 0
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# <
-# 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
-    # package CYGPKG_BLOCK_LIB
-    #     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 have been reported
-# to be faster in some circumstances. The use of "MEMCPY"
-# in the CDL option name is an anachronism and only
-# present for backwards compatibility.
-#
-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) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    #     CYGPKG_ISOINFRA == current
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 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 ""
-    # 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# 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 CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGPKG_ISOINFRA
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  (0 != CYGPKG_ISOINFRA) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_SETJMP
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STARTUP
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_BLOCK_LIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_USTL
-    #     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 {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    # package CYGPKG_USTL
-    #     Requires: CYGINT_ISO_MAIN_STARTUP
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-    # package CYGPKG_USTL
-    #     Requires: 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_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # component CYGPKG_FILEIO_FNMATCH
-    #     DefaultValue: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    # package CYGPKG_USTL
-    #     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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_ERRNO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO
-    # option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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 {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILETYPES_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_STREAMS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEOPS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGSEM_LIBC_EXIT_CALLS_FFLUSH
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-    # option CYGSEM_LIBC_EXIT_CALLS_FFLUSH
-    #     DefaultValue:  0 != CYGINT_ISO_STDIO_FILEACCESS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEACCESS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # package CYGPKG_USTL
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_CHAR_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_DIRECT_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEPOS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_ERROR_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # Implemented by CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 1
-    #   --> 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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: 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, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     Requires: CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM &&
-    #                                 0 != 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, enabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, disabled
-    # 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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_MALLOC
-    # option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
-    #     Requires: CYGINT_ISO_MALLOC
-    # option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
-    #     DefaultValue:  0 != CYGINT_ISO_MALLOC 
-    # component CYGPKG_LIBC_STDIO_OPEN
-    #     Requires: CYGINT_ISO_MALLOC
-    # component CYGPKG_LIBC_STDIO_OPEN
-    #     DefaultValue:  0 != CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-    # component CYGPKG_IO_FILEIO_INODE
-    #     Requires: CYGINT_ISO_MALLOC
-    # package CYGPKG_USTL
-    #     Requires: 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 {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 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 
-    # package CYGPKG_USTL
-    #     Requires: CYGINT_ISO_EXIT
-};
-
-# 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
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGINT_ISO_ABS
-};
-
-# 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
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGINT_ISO_DIV
-};
-
-# 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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    # option CYGFUN_LIBC_TIME_POSIX
-    #     Requires: 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 
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  (0 != CYGPKG_ISOINFRA) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # package CYGPKG_USTL
-    #     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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_FILEIO_FNMATCH
-    #     DefaultValue: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    # package CYGPKG_USTL
-    #     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
-    user_value 1 <cyg/posix/sys/time.h>
-    # value_source user
-    # Default value: 0 0
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/fileio/fnmatch.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_FILEIO_FNMATCH
-    #     Requires:  CYGBLD_ISO_FNMATCH_HEADER ==  "<cyg/fileio/fnmatch.h>" 
-};
-
-# 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # Implemented by CYGPKG_LIBC_TIME, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/time/time.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_TIME
-    #     Requires:  CYGBLD_ISO_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" 
-};
-
-# 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # Implemented by CYGPKG_LIBC_TIME, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/time/time.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_TIME
-    #     Requires:  CYGBLD_ISO_C_CLOCK_FUNCS_HEADER ==  "<cyg/libc/time/time.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_LIBC_SIGNALS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     DefaultValue:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/signals/signal.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/libc/signals/signal.h>" 
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # Implemented by CYGPKG_LIBC_SIGNALS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     Requires: CYGINT_ISO_SIGNAL_IMPL
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     DefaultValue:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/signals/signal.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/libc/signals/signal.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_LIBC_SETJMP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/setjmp/setjmp.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SETJMP
-    #     Requires:  CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" 
-};
-
-# 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
-    user_value 1 <cyg/posix/sigsetjmp.h>
-    # value_source user
-    # 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 1
-    #   --> 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
-    user_value 1 <cyg/fileio/dirent.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" 
-};
-
-# 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
-    user_value 1 <cyg/posix/types.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/muttypes.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/utsname.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/semaphore.h>
-    # value_source user
-    # 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
-    user_value 0 0
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/pthread.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/mutex.h>
-    # value_source user
-    # 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
-    user_value 1 <cyg/posix/limits.h>
-    # value_source user
-    # Default value: 0 0
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/fileio/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" 
-};
-
-# 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
-    user_value 1 <cyg/fileio/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 1
-    #   --> 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 {
-    # Implemented by CYGFUN_IO_FILEIO_SELECT, inactive, enabled
-    # 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: ""
-};
-
-# <
-# <
-# ISO C library
-# doc: ref/libc.html
-# The packages under this package enable compatibility with the ISO C
-# standard - ISO/IEC 9899:1990. This allows the user application to use
-# well known standard C library functions, and in eCos starts a thread
-# to invoke the user function main(). This package is a top-level placeholder
-# to contain the implementations.
-#
-cdl_package CYGPKG_LIBC {
-    # 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 CYGNUM_LIBM_COMPATIBILITY
-    #     Requires: CYGPKG_LIBC
-};
-
-# >
-# 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
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_LIBC_I18N
-};
-
-# >
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 setjmp/longjmp functions
-# doc: ref/libc.html
-# This package provides non-local jumps based on setjmp() and
-# longjmp() in <setjmp.h> as specified by the ISO C
-# standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_SETJMP {
-    # 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:  CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" 
-    #     CYGBLD_ISO_SETJMP_HEADER == <cyg/libc/setjmp/setjmp.h>
-    #   --> 1
-};
-
-# >
-# C library setjmp 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_SETJMP_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_SETJMP_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_SETJMP_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library setjmp tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_SETJMP_TESTS {
-    # Calculated value:  "tests/setjmp" 
-    # Flavor: data
-    # Current_value: tests/setjmp
-};
-
-# <
-# <
-# ISO C library signal functions
-# doc: ref/libc.html
-# This component controls signal functionality,
-# as implemented in ISO/IEC 9899:1990 chapter 7.7 with
-# the signal() and raise() functions. As well as
-# allowing a program to send itself signals, it is
-# also possible to cause hardware exceptions to
-# be signalled to the program in a similar way.
-#
-cdl_package CYGPKG_LIBC_SIGNALS {
-    # 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_SIGNAL_NUMBERS_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_IMPL_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Thread safe signals
-# Because signal handlers are global, and not
-# thread-specific (as mandated by POSIX 1003.1)
-# it is possible for multiple threads to clash
-# and corrupt data if setting the same signal
-# handler at the same time. With this option
-# enabled, a kernel mutex will be used to protect
-# the shared data.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_THREAD_SAFE {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Hardware exceptions cause signals
-# This causes hardware exceptions like
-# arithmetic exceptions (e.g. divide by zero)
-# or bad memory accesses to be passed through as
-# signals. It is thus possible for a program to
-# handle these exceptions in a generic way using
-# the appropriate signal handlers. The details of
-# exactly which exceptions are passed through
-# under what circumstances depend on the
-# underlying HAL implementation. Consequently it
-# must be remembered that signal handlers cannot
-# be guaranteed to be invoked in the expected
-# circumstances if you do not know about the
-# underlying HAL implementation - it is possible
-# that the architecture is unable to detect that
-# exception.
-#
-cdl_component CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
-    #     CYGSEM_KERNEL_EXCEPTIONS_GLOBAL (unknown) == 0
-    #   --> 0
-    # Requires: CYGSEM_KERNEL_EXCEPTIONS_DECODE
-    #     CYGSEM_KERNEL_EXCEPTIONS_DECODE (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_SIGNALS_TESTS
-    #     Calculated:  
-    #                     "tests/signal1"
-    #                     . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
-    #                 
-};
-
-# >
-# Chain old exception handlers
-# When hardware exceptions are generated, it
-# is possible to chain into the old kernel exception
-# handler before calling any registered signal
-# handler. If this is not required, disable this
-# option and only the signal handler will be
-# called when this exception occurs. Disabling
-# this option will also save some space and code
-# usage.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS {
-    # This option is not active
-    # The parent CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Inline versions of functions
-# Some functions can be made inline instead of
-# being function calls. These can be set here.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_INLINE {
-    # There is no associated value.
-};
-
-# >
-# raise()
-# Enabling this option makes raise() an inline function.
-#
-cdl_option CYGIMP_LIBC_SIGNALS_RAISE_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# signal()
-# Enabling this option makes signal() an inline function.
-#
-cdl_option CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Error handling
-# You may or may not want errno to be set by
-# certain functions. Not using errno could save
-# both space, code, and avoid worrying about
-# interactions between multiple threads when
-# setting it.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_ERROR_HANDLING {
-    # There is no associated value.
-};
-
-# >
-# Bad signal fatal
-# Enabling this option will cause an assertion
-# failure if the signal handling code is
-# passed a bad signal. Otherwise an error will
-# be returned, or in the case of a
-# hardware-generated exception it will be silently
-# ignored.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# raise() sets errno
-# You may or may not want errno to be set by
-# raise() on error conditions. Not using errno
-# could save both space, code, and avoid worrying
-# about interactions between multiple threads when
-# setting it. Strictly ISO C does not mandate
-# that errno be set by raise().
-#
-cdl_option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-};
-
-# signal() sets errno
-# You may or may not want errno to be set by
-# signal() on error conditions. Not using errno
-# could save both space, code, and avoid worrying
-# about interactions between multiple threads when
-# setting it. Strictly ISO C mandates
-# that errno be set by signal().
-#
-cdl_option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-};
-
-# <
-# Tracing
-# These options control the trace output for the C
-# library internal signal implementation.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_TRACING {
-    # There is no associated value.
-};
-
-# >
-# Default trace level for raise()
-# This gives the default tracing level for the
-# raise() function. Higher numbers are more
-# verbose.
-#
-cdl_option CYGNUM_LIBC_SIGNALS_RAISE_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
-};
-
-# Default hardware exception handler trace level
-# This gives the default tracing level for the
-# hardware exception handler function (if enabled).
-# Higher numbers are more verbose.
-#
-cdl_option CYGNUM_LIBC_SIGNALS_HWHANDLER_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 signal 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_SIGNALS_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_SIGNALS_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 C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library signal function tests
-# This option specifies the set of tests for the C library
-# signal functions.
-#
-cdl_option CYGPKG_LIBC_SIGNALS_TESTS {
-    # Calculated value:  
-    #                     "tests/signal1"
-    #                     . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
-    #                 
-    #     CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS == 0
-    # Flavor: data
-    # Current_value: tests/signal1
-};
-
-# <
-# <
-# ISO environment startup/termination
-# doc: ref/c-library-startup.html
-# This package manages the control of the
-# environment (in the general sense) that an
-# application would require for full ISO C / POSIX
-# compatibility, including a main() entry point
-# supplied with arguments and an environment
-# (as retrievable by the getenv() function).
-# It also includes at the other end of things,
-# what happens when main() returns or exit() is
-# called.
-#
-cdl_package CYGPKG_LIBC_STARTUP {
-    # 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_LIBC_STARTUP_CONTEXT == 1 
-    #     CYGINT_LIBC_STARTUP_CONTEXT == 1
-    #   --> 1
-};
-
-# >
-# main() can be invoked elsewhere
-# Implementors of this interface show that they
-# allow main() to be invoked elsewhere.
-#
-cdl_interface CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT
-    #     DefaultValue:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     DefaultValue:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     DefaultValue:  0 !=  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     Requires: CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
-};
-
-# Arguments to main()
-# This option allows the setting of the arguments
-# to the main function. This only has any effect
-# when cyg_iso_c_start() is used to start the
-# ISO C compatibility. This will automatically
-# invoke main() in an ISO C compatible fashion.
-# This option is in fact used as argv, and so is
-# an n-tuple of string constants. The final
-# entry must be NULL. Conventionally if argv[0]
-# is supplied, it is used to inform the program
-# of its name.
-#
-cdl_option CYGDAT_LIBC_ARGUMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{(char *)\"\", (char *)NULL}"
-    # value_source default
-    # Default value: "{(char *)\"\", (char *)NULL}"
-};
-
-# Startup context for main()
-# This component describes the options available for
-# what context main() is invoked in, such as in a thread
-# etc.
-#
-cdl_component CYGPKG_LIBC_STARTUP_CONTEXT {
-    # There is no associated value.
-};
-
-# >
-# Startup context implementors
-#
-cdl_interface CYGINT_LIBC_STARTUP_CONTEXT {
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT, active, enabled
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_THREAD, active, disabled
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_OTHER, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STARTUP
-    #     Requires:  CYGINT_LIBC_STARTUP_CONTEXT == 1 
-};
-
-# Invoked from initialization context
-# With this option selected, main() will be
-# called via cyg_user_start() (unless the program
-# overrides the default cyg_user_start()). This
-# means it is run in the context of the system
-# initialization code, without the eCos kernel
-# scheduler running, and using the startup stack.
-# This means that any functions that may require 
-# interactions with a running kernel will not
-# work (including libc functions, if configured
-# to be thread safe for example), so you should
-# restrict yourself to only calling fully
-# re-entrant functions from within main() in
-# this case.
-#
-cdl_option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 0
-    #   --> 1
-};
-
-# Invoked as eCos thread
-# With this option selected, main() is invoked from an eCos
-# thread.
-#
-cdl_component CYGSEM_LIBC_STARTUP_MAIN_THREAD {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 0
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-};
-
-# >
-# System provides stack for main()'s thread
-# This option controls whether the stack of
-# main()'s thread is provided by the application or
-# provided by the system. When disabled, the
-# application must declare a pointer variable
-# cyg_libc_main_stack which is a pointer to an
-# appropriately aligned region of memory. The
-# application must also declare a variable of
-# type `int' called cyg_libc_main_stack_size
-# which contains the size of the stack in bytes.
-# This must be a multiple of 8.
-#
-cdl_option CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM {
-    # This option is not active
-    # The parent CYGSEM_LIBC_STARTUP_MAIN_THREAD is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Priority of main()'s thread
-# This option is used to provide the thread
-# priority which main()'s thread runs at. Be
-# sure to check that this number is appropriate
-# for the kernel scheduler chosen. Different
-# kernel schedulers impose different restrictions
-# on the usable priorities.
-#
-cdl_option CYGNUM_LIBC_MAIN_THREAD_PRIORITY {
-    # This option is not active
-    # The parent CYGSEM_LIBC_STARTUP_MAIN_THREAD is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-    # Legal values: 0 to 0x7fffffff
-};
-
-# <
-# Invoked elsewhere
-# With this option selected, main() must be
-# invoked by a separate package, or by the user.
-#
-cdl_option CYGSEM_LIBC_STARTUP_MAIN_OTHER {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value:  0 !=  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 0
-    #   --> 0
-    # Requires: CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-};
-
-# <
-# Don't allow main()'s stack size to be set
-# This interface describes whether the stack size
-# value set in this package is supported by the
-# implementation that invokes main. If not, that
-# option is disabled.
-#
-cdl_interface CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE {
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT, active, enabled
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
-    #     ActiveIf: !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
-};
-
-# main()'s default thread stack size
-# This option sets the size of the stack used
-# in the context that invokes main(). For example,
-# with an eCos kernel, when the cyg_iso_c_start()
-# function is used to invoke the user-supplied
-# main() function in an ISO C compatible fashion,
-# a separate thread is created to call main().
-# This option controls the size of that thread's
-# stack, which is allocated in the BSS. It
-# must be a multiple of 8. Note, a low number
-# here may be overriden by the HAL if there is
-# a minimum requirement to process interrupts
-# etc. This option cannot be set if the implementation
-# that invokes main() does not use it.
-#
-cdl_option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE {
-    # This option is not active
-    # ActiveIf constraint: !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
-    #     CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE == 1
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8192
-    # value_source default
-    # Default value: 8192
-    # Legal values: 16 to 0x7fffffff
-};
-
-# Include atexit() function
-# This option enables the use of the atexit()
-# function, and ensure that the atexit handlers
-# are invoked from within exit() as defined in
-# the ISO C standard.
-#
-cdl_component CYGFUN_LIBC_ATEXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Number of functions atexit() supports
-# This option sets the number of functions
-# that atexit() has room for. In other words,
-# the number of separate atexit() calls that
-# can be made before calling exit() or returning
-# from main() ( in an environment controlled by
-# cyg_iso_c_start() ). For strict compliance
-# with the ISO C standard this should be at
-# least 32.
-#
-cdl_option CYGNUM_LIBC_ATEXIT_HANDLERS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 1 to 0x7fffffff
-};
-
-# <
-# Make exit() call fflush()
-# This option will ensure that all output
-# streams are flushed when exitting using
-# exit() as prescribed by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_EXIT_CALLS_FFLUSH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-};
-
-# _exit() stops all threads
-# If this option is enabled then _exit(),
-# which is called from exit() which itself is
-# called on return from main(), stops the eCos
-# scheduler. For strict POSIX 1003.1
-# compatibility this would be the normal
-# behaviour. To allow the thread to simply
-# exit, without affecting other threads, simply
-# leave this option disabled. If there is no eCos
-# scheduler, then _exit() simply loops
-# irrespective of the setting of this option.
-#
-cdl_option CYGSEM_LIBC_EXIT_STOPS_SYSTEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# Default environment
-# This option allows the setting of the default
-# contents of the environment. This is in fact
-# the contents of the global environment pointer
-# char **environ defined by POSIX 1003.1. Strings
-# must be of the form NAME=VALUE, and the final
-# entry must be NULL.
-#
-cdl_option CYGDAT_LIBC_DEFAULT_ENVIRONMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ NULL }"
-    # value_source default
-    # Default value: "{ NULL }"
-};
-
-# Invoke default static constructors
-# This option causes the C library to call
-# static constructors with default priority
-# from within the context of the main() thread,
-# working with the co-operation of the HAL.
-# This may be needed for environments that
-# expect static constructors to be run in a
-# thread context. Note that this uses an object
-# with priority 65534. Therefore do not use
-# priority 65534 for any other static objects
-# with this option enabled.
-#
-cdl_option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-    #     CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG == 0
-    #   --> 0
-    # Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-    #     CYGSEM_LIBC_STARTUP_MAIN_THREAD == 0
-    #     CYGSEM_LIBC_STARTUP_MAIN_OTHER == 0
-    #     CYGPKG_POSIX_PTHREAD (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-    #     Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-};
-
-# ISO environment startup/termination 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_STARTUP_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_STARTUP_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STARTUP_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# ISO environment startup/termination tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STARTUP_TESTS {
-    # Calculated value:  "tests/atexit" 
-    # Flavor: data
-    # Current_value: tests/atexit
-};
-
-# <
-# <
-# ISO C library standard input/output functions
-# doc: ref/libc.html
-# This package provides standard input/output functions associated
-# with the header file <stdio.h> as specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDIO {
-    # 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_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-    # Requires: CYGPKG_LIBC_I18N
-    #     CYGPKG_LIBC_I18N == current
-    #   --> 1
-    # Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-    #     CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\""
-    #     CYGPKG_IO_SERIAL_HALDIAG == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILETYPES_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILETYPES_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEACCESS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEACCESS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEPOS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEPOS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEOPS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEOPS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_CHAR_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_CHAR_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_DIRECT_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_DIRECT_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_ERROR_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_ERROR_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_STREAMS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_STREAMS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRERROR
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDLIB_STRCONV
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBM_USE_STDERR
-    #     Requires: CYGPKG_LIBC_STDIO
-};
-
-# >
-# Inline versions of <stdio.h> functions
-# This option chooses whether some of the
-# particularly simple functions from
-# <stdio.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_STDIO_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Permitted number of open files
-# This option controls the guaranteed minimum
-# number of simultaneously open files. The ISO
-# C standard requires it to be defined (para
-# 7.9.1), and if strictly compliant, it must be
-# at least 8 (para 7.9.3). In practice it can be
-# as low as 3 - for stdin, stdout and stderr.
-#
-cdl_option FOPEN_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 3 to 0x7fffffff
-};
-
-# Maximum length of filename
-# This option defines the maximum allowed size of
-# a filename in characters. The ISO C standard
-# requires it to be defined (para 7.9.1).
-#
-cdl_option FILENAME_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 0x7fffffff
-};
-
-# Maximum length of filenames for temporary files
-# This option defines the maximum allowed size of
-# filenames for temporary files as generated by
-# tmpnam(). It is measured in characters, and the
-# ISO C standard requires it to be defined (para 
-# 7.9.1).
-#
-cdl_option L_tmpnam {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 4 to 0x7fffffff
-};
-
-# Unique file names generated by tmpnam()
-# This option defines the minimum number of
-# unique file names generated by tmpnam(). The
-# ISO C standard requires it to be defined (para
-# 7.9.1) and for ISO compliance it should be at least
-# 25. Note that TMP_MAX names may not be generated
-# if L_tmpnam is too small.
-#
-cdl_option TMP_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 25
-    # value_source default
-    # Default value: 25
-    # Legal values: 1 to 0x7fffffff
-};
-
-# Buffered I/O
-# This option controls whether input/output
-# through the <stdio.h> functions is buffered.
-# This may save some memory per file. It
-# is equivalent to putting every file into
-# non-buffered mode (_IONBF) through setvbuf(),
-# except now it can never be altered back to
-# buffered mode. Disabling buffering is strictly 
-# non-compliant with the ISO C standard.
-#
-cdl_component CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO {
-    # 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 BUFSIZ
-    #     Calculated: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     Requires: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
-};
-
-# >
-# Default buffer size
-# This option defines the default size of buffer
-# used with calls to setbuf(), and is the default
-# size for buffered streams that have not had
-# either setbuf() or setvbuf() invoked on them.
-# It is exactly equivalent to the standard
-# constant BUFSIZ, except that it is 0 if
-# CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO is disabled.
-# The ISO C standard requires this to be defined
-# (para 7.9.1), and says it must be at least 256
-# (para 7.9.2).
-#
-cdl_option CYGNUM_LIBC_STDIO_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-    # Legal values: 1 to 0x7fffffff
-
-    # The following properties are affected by this value
-    # option BUFSIZ
-    #     Calculated: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-};
-
-# setbuf()/setvbuf() allows dynamic setting
-# This option controls whether I/O buffers are
-# implemented dynamically within the stdio
-# implementation. Otherwise they will be static,
-# and cannot be changed by setbuf()/setvbuf(). If
-# they are static (i.e. this option is disabled),
-# any attempt to use an arbitrary buffer size, or
-# to pass a user-supplied buffer to setbuf() or
-# setvbuf() will fail - the buffer is implemented
-# internally as a static array taking the size
-# of the configuration option BUFSIZ. The only
-# exception is if a user buffer is not supplied,
-# and the buffer size requested is less than
-# BUFSIZ. In this case, the buffer will
-# be configured to only use that amount of
-# buffering. However the unused memory left over
-# will NOT be freed. If this option is enabled,
-# then setvbuf() can be used to assign a user supplied
-# buffer to the stream.
-# Either setting can be considered to
-# be compliant with the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF {
-    # 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_LIBC_STDIO_SETVBUF_MALLOC
-    #     Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-};
-
-# setbuf()/setvbuf() uses malloc()
-# This option controls whether buffers set by setbuf() and
-# setvbuf() may be allocated using malloc().
-#
-cdl_option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    #     CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF == 1
-    #   --> 1
-};
-
-# <
-# Default buffer size (BUFSIZ)
-#
-cdl_option BUFSIZ {
-    # Calculated value: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-    #     CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO == 1
-    #     CYGNUM_LIBC_STDIO_BUFSIZE == 256
-    # Flavor: data
-    # Current_value: 256
-};
-
-# Support for ungetc()
-# This option controls whether ungetc() is
-# supported. If not, then some space can be
-# saved, and speed is improved. Note that you
-# MUST have this defined if you want to use the
-# scanf() family of functions.
-#
-cdl_option CYGFUN_LIBC_STDIO_ungetc {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Dynamic opening/closing of files
-# fopen() and fclose() use dynamic memory
-# allocation routines to allocate memory for
-# new FILE structure pointers. If a malloc
-# implementation is available, this option
-# may be enabled to use
-# fopen() and fclose(). If disabled, only the
-# default console streams - stdin, stdout and
-# stderr - will be available.
-#
-cdl_component CYGPKG_LIBC_STDIO_OPEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# POSIX fdopen/fileno functions
-# This identifies to the rest of the system
-# whether the POSIX fdopen() and
-# fileno() functions are implemented.
-#
-cdl_option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS {
-    # ActiveIf constraint: CYGPKG_LIBC_STDIO_FILEIO
-    #     CYGPKG_LIBC_STDIO_FILEIO == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# Default console device
-# This option allows you to choose the
-# default console device. In the current
-# implementation, all these devices begin
-# with the prefix /dev/ and are followed by
-# the name of a device. The name of the device
-# depends on the device drivers you have
-# configured in your system. For example,
-# /dev/ttydiag could be the HAL diagnostic output
-# pseudo-device, or /dev/tty0 could be your
-# first serial driver, depending on your
-# configuration.
-#
-cdl_option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ttydiag\""
-    # value_source default
-    # Default value:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-    #     CYGDAT_IO_SERIAL_TTY_CONSOLE == "\"/dev/ttydiag\""
-    #     CYGDAT_IO_SERIAL_TTY_CONSOLE == "\"/dev/ttydiag\""
-    #   --> "\"/dev/ttydiag\""
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-};
-
-# Floating point support
-# This component allows floating point support
-# to be enabled in certain standard I/O
-# functions.
-#
-cdl_component CYGPKG_LIBC_STDIO_FLOATING_POINT {
-    # There is no associated value.
-};
-
-# >
-# printf() family
-# This option enables the use of floating point
-# number output in the printf() family (i.e.
-# printf(), sprintf(), vprintf(), etc.) of
-# functions. A substantial amount of code space
-# can be saved if this option is disabled. If it
-# is disabled then floating point specifiers
-# (%e, %f, %g) are ignored, and nothing is
-# output.
-#
-cdl_option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-};
-
-# scanf() family
-# This option enables the use of floating point
-# number conversion in the scanf() family (i.e.
-# scanf(), sscanf(), vscanf(), etc.) of
-# functions. A substantial amount of code space
-# can be saved if this option is disabled. If it
-# is disabled then floating point specifiers
-# (%e, %f, %g) are ignored, and nothing is
-# converted.
-#
-cdl_option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM &&
-    #                                 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGPKG_LIBM == current
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-};
-
-# <
-# Long long support
-# This option allows various functions in the C Standard I/O
-# library to support the 'long long' datatype. Doing so
-# will come with a noticeable code size penalty however.
-#
-cdl_option CYGFUN_LIBC_STDIO_LONGLONG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_STDLIB_CONV_LONGLONG
-    #     CYGFUN_LIBC_STDLIB_CONV_LONGLONG == 1
-    #   --> 1
-};
-
-# Thread safe I/O streams
-# doc: ref/libc-thread-safety.html
-# This option controls whether standard I/O streams
-# are thread-safe. Having this option set allows
-# the streams to be locked when accessed by
-# multiple threads simultaneously.
-#
-cdl_option CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS {
-    # 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
-};
-
-# C99 compliant snprintf() family
-# This option allows C99 compliant implementation of 
-# snprintf() family (i.e. snprintf(), vsnprintf()) 
-# of functions. C99 compliant snprintf() functions
-# return the number of characters that would have been written 
-# to a sufficiently sized buffer (excluding the '\0'). 
-# If this option is disabled, the functions simply return 
-# the number of bytes that have been written to the buffer.
-#
-cdl_option CYGIMP_LIBC_STDIO_C99_SNPRINTF {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_USTL
-    #     Requires: CYGIMP_LIBC_STDIO_C99_SNPRINTF
-};
-
-# Enable use of FILEIO package for IO operations.
-# This CDL exists to control how the standard I/O functions
-# interface to the underlying I/O system. Either using the
-# File I/O package, or the generic I/O package which is used
-# by fewer devices.
-#
-cdl_option CYGPKG_LIBC_STDIO_FILEIO {
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
-    #     CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO == 1
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    #     CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS
-    #     ActiveIf: CYGPKG_LIBC_STDIO_FILEIO
-};
-
-# C library stdio 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_STDIO_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_STDIO_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 C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STDIO_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library stdio function tests
-# This option specifies the set of tests for the C library
-# stdio functions.
-#
-cdl_option CYGPKG_LIBC_STDIO_TESTS {
-    # Calculated value:  
-    #                     "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput " 
-    #                     . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
-    #                 
-    #     CYGPKG_IO_FILEIO == current
-    #     CYGPKG_FS_RAM (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput 
-};
-
-# <
-# <
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # 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 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-};
-
-# 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
-    # 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 CYGFUN_LIBC_STDIO_LONGLONG
-    #     Requires: CYGFUN_LIBC_STDLIB_CONV_LONGLONG
-};
-
-# 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 ""
-    # 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# 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
-    # value_source default
-    # 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
-};
-
-# Provide strnlen() GNU extension
-# This option controls support for the strnlen() function.
-# (This is a GNU extension, not part of ANSI C.)
-#
-cdl_option CYGFUN_LIBC_STRING_GNU_STRNLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 tests/strnlen" 
-    # 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 tests/strnlen
-};
-
-# <
-# <
-# ISO C library date and time functions
-# doc: ref/libc.html
-# This package provides time functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_TIME {
-    # 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_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" 
-    #     CYGBLD_ISO_C_TIME_TYPES_HEADER == <cyg/libc/time/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_C_CLOCK_FUNCS_HEADER ==  "<cyg/libc/time/time.h>" 
-    #     CYGBLD_ISO_C_CLOCK_FUNCS_HEADER == <cyg/libc/time/time.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_DIV
-    #     CYGINT_ISO_DIV == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ABS
-    #     CYGINT_ISO_ABS == 1
-    #   --> 1
-};
-
-# >
-# Working clock() function
-# This option controls whether clock() will
-# actually try and determine the process time
-# usage. With this option disabled, clock() does
-# not disappear, but will permanently return
-# (clock_t)-1 as mandated by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_TIME_CLOCK_WORKING {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_TIMER
-    #     CYGFUN_KERNEL_THREADS_TIMER (unknown) == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK (unknown) == 0
-    #   --> 0
-};
-
-# Working time() function
-# This option controls whether time() will
-# actually try and determine the current calendar
-# time. With this option disabled, time() does
-# not disappear, but will permanently return
-# (time_t)-1 as mandated by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_TIME_TIME_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_IO_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-};
-
-# Working cyg_libc_time_settime() function
-# This option controls whether cyg_libc_time_settime()
-# will actually try and set the current calendar
-# time. With this option disabled,
-# cyg_libc_time_settime() does not disappear, but
-# will permanently return an error.
-#
-cdl_option CYGSEM_LIBC_TIME_SETTIME_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_IO_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-};
-
-# POSIX time functions
-# Enabling this option allows the use of the
-# following functions defined in POSIX 1003.1:
-# asctime_r(), ctime_r(), gmtime_r(), strptime(), and
-# localtime_r().
-#
-cdl_option CYGFUN_LIBC_TIME_POSIX {
-    # 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_BSD_FUNCS
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_CTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_GMTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGPKG_LIBC_TIME_TESTS
-    #     Calculated:  
-    #                     "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time " 
-    #                     . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
-    #                 
-};
-
-# Single UNIX extensions
-# Enabling this option allows the use of
-# certain additional conversion specifiers
-# in the strftime function.
-#
-cdl_option CYGFUN_LIBC_TIME_SUS_EXTNS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time zone offsets
-# These options control the default STandarD (STD)
-# and Daylight Savings Time (DST)
-# time offsets so that dates can be set correctly
-# for the local environment.
-#
-cdl_component CYGPKG_LIBC_TIME_ZONES {
-    # There is no associated value.
-};
-
-# >
-# Default Daylight Savings Time state
-# This option controls whether the initial
-# time environment is set up as STD, DST or
-# unknown. Use the value 1 for DST, 0 for STD, 
-# and (-1) for unknown. This can also be set at
-# runtime using the cyg_libc_time_setdst()
-# function.
-#
-cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_STATE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -1
-    # value_source default
-    # Default value: -1
-    # Legal values: -1 to 1
-};
-
-# Default Standard Time offset
-# This option controls the offset from UTC in
-# seconds when in local Standard Time. This
-# value can be positive or negative. It
-# can also be set at run time using the
-# cyg_libc_time_setzoneoffsets() function.
-#
-cdl_option CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: -90000 to 90000
-};
-
-# Default Daylight Savings Time offset
-# This option controls the offset from UTC in
-# seconds when in local Daylight Savings Time. This
-# value can be positive or negative. It
-# can also be set at run time using the
-# cyg_libc_time_setzoneoffsets() function.
-#
-cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3600
-    # value_source default
-    # Default value: 3600
-    # Legal values: -90000 to 90000
-};
-
-# <
-# Inline functions
-# These options control whether certain functions
-# are available in inline form. This may lead to
-# faster code at the expense of code space. But for
-# some functions, or some functions with constant
-# arguments, it may in fact lead to smaller code.
-#
-cdl_component CYGPKG_LIBC_TIME_INLINES {
-    # There is no associated value.
-};
-
-# >
-# asctime()
-# Allow the asctime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_ASCTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# ctime()
-# Allow the ctime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_CTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# difftime()
-# Allow the difftime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_DIFFTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# gmtime()
-# Allow the gmtime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_GMTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# localtime()
-# Allow the localtime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_LOCALTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# mktime()
-# Allow the mktime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_MKTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# asctime_r()
-# Allow the asctime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# ctime_r()
-# Allow the ctime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_CTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# gmtime_r()
-# Allow the gmtime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_GMTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# localtime_r()
-# Allow the localtime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# <
-# clock() tracing level
-# Trace verbosity level for debugging the clock()
-# function. Increase this value to get
-# additional trace output when tracing is enabled.
-#
-cdl_option CYGNUM_LIBC_TIME_CLOCK_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 time 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_TIME_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_TIME_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-format
-    # value_source default
-    # Default value: -Wno-format
-};
-
-# 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_TIME_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library time and date function tests
-# This option specifies the set of tests for the C library
-# time and date functions.
-#
-cdl_option CYGPKG_LIBC_TIME_TESTS {
-    # Calculated value:  
-    #                     "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time " 
-    #                     . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
-    #                 
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    # Flavor: data
-    # Current_value: tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time tests/strptime
-};
-
-# <
-# <
-# <
-# Math library
-# doc: ref/libc.html
-# ISO standard floating point mathematical library
-# containing many useful functions for mathematical
-# calculations.
-#
-cdl_package CYGPKG_LIBM {
-    # 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_LIBC_STDIO_PRINTF_FLOATING_POINT
-    #     Requires: CYGPKG_LIBM
-    # option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM 
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     Requires: CYGPKG_LIBM
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM &&
-    #                                 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    # option CYGFUN_LIBC_strtod
-    #     Requires: CYGPKG_LIBM
-    # option CYGFUN_LIBC_strtod
-    #     DefaultValue:  0 != CYGPKG_LIBM 
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_LIBM
-};
-
-# >
-# Compatibility mode
-# These options deal with behaviour related to
-# the various compatibility modes - POSIX, IEEE,
-# X/OPEN and SVID.
-#
-cdl_component CYGPKG_LIBM_COMPATIBILITY {
-    # There is no associated value.
-};
-
-# >
-#
-cdl_interface CYGINT_LIBM_COMPAT {
-    # Implemented by CYGSEM_LIBM_COMPAT_IEEE_ONLY, active, disabled
-    # Implemented by CYGNUM_LIBM_COMPATIBILITY, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_LIBM_COMPAT
-    #     CYGINT_LIBM_COMPAT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBM_COMPAT
-    #     Requires: 1 == CYGINT_LIBM_COMPAT
-};
-
-# IEEE-only
-# The math library can be hard-coded to only
-# behave in one compatibility mode - IEEE. This
-# cannot be changed at run-time. IEEE mode is the
-# most minimal of the compatibility modes, and so
-# this will best help code size and speed, as well
-# as omitting the code for other compatibility
-# modes. If not defined, the math library can be
-# set at run-time to any of the supported
-# compatibility modes.
-#
-cdl_option CYGSEM_LIBM_COMPAT_IEEE_ONLY {
-    # 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 CYGSEM_LIBM_USE_STDERR
-    #     Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    # option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-};
-
-# Default mode
-# If you want to have support for more than one
-# compatibility mode settable at run-time, rather
-# than hard-coded IEEE mode, this component lets
-# you choose which mode should be the default.
-#
-cdl_component CYGNUM_LIBM_COMPATIBILITY {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 POSIX
-    # value_source default
-    # Default value: 1 POSIX
-    # Legal values:  "POSIX" "IEEE" "XOPEN" "SVID" 
-    # Requires: CYGPKG_LIBC
-    #     CYGPKG_LIBC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-};
-
-# >
-# Numeric representation
-# This option automatically defines the default compatibility
-# mode for numeric representation in terms of the values used
-# to set that mode at run-time.
-#
-cdl_option CYGNUM_LIBM_COMPAT_DEFAULT {
-    # Calculated value:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    # Flavor: data
-    # Current_value: CYGNUM_LIBM_COMPAT_POSIX
-};
-
-# <
-# SVID3-style scalb()
-# SVID3 defined the scalb() function as double
-# scalb(double, double) rather than double
-# scalb(double, int) which is used by IBM, DEC, and
-# probably others. Enabling this option chooses
-# the (double, double) version. Note there is a
-# function double scalbn(double, int) which is
-# unaffected by this choice.
-#
-cdl_option CYGFUN_LIBM_SVID3_scalb {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Reduce namespace pollution
-# If you do not want to use either the X/Open or
-# SVID3 compatibility modes, you may want to define
-# this option to reduce the chance of namespace
-# pollution. This is particularly likely to occur
-# here as these standards define symbols with
-# names that often appear in applications, such as
-# exception, DOMAIN, OVERFLOW, etc. If your
-# application also used these names, it may cause
-# problems.
-#
-cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Output to stderr for math errors
-# The SVID3 standard says that error
-# messages should be output on the stderr console
-# output stream. This option allows this ability
-# to be explicitly controlled. However, this still
-# only has an effect in SVID3 compatibility mode.
-#
-cdl_option CYGSEM_LIBM_USE_STDERR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    #     CYGSEM_LIBM_COMPAT_IEEE_ONLY == 0
-    #   --> 1
-    # Requires: CYGPKG_LIBC_STDIO
-    #     CYGPKG_LIBC_STDIO == current
-    #   --> 1
-};
-
-# <
-# Thread safety
-# This option controls whether the C library has
-# support for thread safe operation in general.
-# This requires eCos kernel support for per-thread
-# data, and adjustment of the stack limit.
-#
-cdl_component CYGPKG_LIBM_THREAD_SAFETY {
-    # There is no associated value.
-};
-
-# >
-# Compatibility mode setting
-# This option makes the setting of the compatiblity
-# mode be a per-thread property. This directly
-# implies that it also becomes thread-safe.
-#
-cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    #     CYGSEM_LIBM_COMPAT_IEEE_ONLY == 0
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL
-    #     Requires: CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-};
-
-# gamma() and lgamma()
-# This option makes the gamma() and lgamma()
-# functions be thread-safe. Note that these
-# functions are identical - they take the log of
-# the absolute value of their argument. The sign
-# of the argument is stored in a variable called
-# signgam. Enabling this option makes signgam
-# a per-thread variable. Note there are also
-# gamma_r() and lgamma_r() alternatives that
-# allow signgam to be passed in by reference as
-# an argument.
-#
-cdl_option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL
-    #     Requires: CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-};
-
-# <
-# Tracing output levels in math library
-# Tracing support is useful for debugging. Some
-# Math library modules can be configured with
-# different levels of tracing verbosity. These
-# levels can be configured here.
-#
-cdl_component CYGPKG_LIBM_TRACE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-};
-
-# >
-# Compatibility mode get/set
-# Trace level for debugging the getting and
-# setting of the compatibility mode when it is
-# configured to be thread-safe.
-#
-cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
-    # This option is not active
-    # The parent CYGPKG_LIBM_TRACE is disabled
-
-    # 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
-    # Requires: CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE == 0
-    #   --> 0
-};
-
-# signgam variable access
-# Trace level for debugging all accesses to the
-# signgam variable in thread-safe mode.
-#
-cdl_option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL {
-    # This option is not active
-    # The parent CYGPKG_LIBM_TRACE is disabled
-
-    # 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
-    # Requires: CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-    #     CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS == 0
-    #   --> 0
-};
-
-# <
-# Bessel function limit of significance
-# For the Bessel functions (j0(), j1(), jn(),
-# y0(), y1(), yn()) this option defines the
-# maximum absolute value of the ordinate
-# before we assume total loss of significance.
-# This number must be a floating-point number (e.g.
-# contains a decimal point), and should be
-# large.
-#
-cdl_option CYGNUM_LIBM_X_TLOSS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1.41484755040569E+16
-    # value_source default
-    # Default value: 1.41484755040569E+16
-    # Legal values: 1 to 1e308
-};
-
-# Math library 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_LIBM_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the math library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBM_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-strict-aliasing -ffloat-store"
-    # value_source default
-    # Default value:  "-fno-strict-aliasing" .  ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") 
-    #     CYGPKG_HAL_I386 == current
-    #     CYGPKG_HAL_SYNTH_I386 (unknown) == 0
-    #   --> "-fno-strict-aliasing -ffloat-store"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the math library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBM_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Math library tests
-# This option specifies the set of tests for the math library.
-#
-cdl_option CYGPKG_LIBM_TESTS {
-    # Calculated value:  "tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh" 
-    # Flavor: data
-    # Current_value: tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh
-};
-
-# <
-# <
-# Wallclock device
-# The wallclock device provides real time stamps, as opposed
-# to the eCos kernel timers which typically just count the
-# number of clock ticks since the hardware was powered up.
-# Depending on the target platform this device may involve
-# interacting with a suitable clock chip, or it may be
-# emulated by using the kernel timers.
-#
-cdl_package CYGPKG_IO_WALLCLOCK {
-    # 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_LIBC_TIME_TIME_WORKING
-    #     Requires: CYGPKG_IO_WALLCLOCK
-    # option CYGSEM_LIBC_TIME_SETTIME_WORKING
-    #     Requires: CYGPKG_IO_WALLCLOCK
-    # package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     ActiveIf: CYGPKG_IO_WALLCLOCK
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     ActiveIf: CYGPKG_IO_WALLCLOCK
-};
-
-# >
-# Number of wallclock hardware implementations
-#
-cdl_interface CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS {
-    # Implemented by CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_WALLCLOCK_EMULATE
-    #     DefaultValue:  0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    # option CYGIMP_WALLCLOCK_NONE
-    #     DefaultValue:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-};
-
-# Number of wallclock implementations
-#
-cdl_interface CYGINT_WALLCLOCK_IMPLEMENTATIONS {
-    # Implemented by CYGPKG_WALLCLOCK_EMULATE, active, disabled
-    # Implemented by CYGIMP_WALLCLOCK_NONE, active, disabled
-    # Implemented by CYGIMP_WALLCLOCK_HARDWARE, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
-    #     CYGINT_WALLCLOCK_IMPLEMENTATIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_WALLCLOCK_IMPLEMENTATIONS
-    #     Requires: 1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
-};
-
-# Wallclock driver supports set/get mode
-#
-cdl_interface CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED {
-    # Implemented by CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_WALLCLOCK_MODE
-    #     DefaultValue:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ?  "set_get" : "init_get" 
-    # option CYGSEM_WALLCLOCK_MODE
-    #     Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-};
-
-# Wallclock mode
-# The wallclock driver can be used in one of two
-# modes. Set/get mode allows time to be kept during power
-# off (assuming there's a battery backed clock). Init/get
-# mode is slightly smaller and can be used when there is no
-# battery backed clock - in this mode time 0 is the time of
-# the board power up.
-#
-cdl_option CYGSEM_WALLCLOCK_MODE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value set_get
-    # value_source default
-    # Default value:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ?  "set_get" : "init_get" 
-    #     CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED == 1
-    #   --> set_get
-    # Legal values:  "init_get" "set_get" 
-    # Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-    #     CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED == 1
-    #     CYGSEM_WALLCLOCK_MODE == set_get
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_WALLCLOCK_MODE
-    #     Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-    # option CYGSEM_WALLCLOCK_SET_GET_MODE
-    #     Calculated:  CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 
-};
-
-# Wallclock set/get mode
-#
-cdl_option CYGSEM_WALLCLOCK_SET_GET_MODE {
-    # Calculated value:  CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 
-    #     CYGSEM_WALLCLOCK_MODE == set_get
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Wallclock implementation
-# Implementations of the wallclock device.
-#
-cdl_component CYGPKG_IO_WALLCLOCK_IMPLEMENTATION {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Wallclock emulator
-# When this option is enabled, a wallclock device will be
-# emulated using the kernel real-time clock.
-#
-cdl_option CYGPKG_WALLCLOCK_EMULATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    #     CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS == 1
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 0
-};
-
-# No wallclock
-# Disables the wallclock.
-#
-cdl_option CYGIMP_WALLCLOCK_NONE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    #     CYGPKG_KERNEL (unknown) == 0
-    #     CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS == 1
-    #   --> 0
-};
-
-# Hardware wallclock
-#
-cdl_option CYGIMP_WALLCLOCK_HARDWARE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     ActiveIf: CYGIMP_WALLCLOCK_HARDWARE
-};
-
-# <
-# Wallclock 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_WALLCLOCK_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the wallclock device. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_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 wallclock device. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Wallclock tests
-# This option specifies the set of tests for the
-# wallclock device.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_TESTS {
-    # Calculated value:  CYGPKG_KERNEL ? "tests/wallclock tests/wallclock2" : "" 
-    #     CYGPKG_KERNEL (unknown) == 0
-    # Flavor: data
-    # Current_value: 
-};
-
-# <
-# Wallclock device driver for Dallas 12887
-# This package provides a file with init, get and set functions
-# for the Dallas 12887 clock part.
-#
-cdl_package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 {
-    # 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_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-    # ActiveIf constraint: CYGIMP_WALLCLOCK_HARDWARE
-    #     CYGIMP_WALLCLOCK_HARDWARE == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     Requires: CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-};
-
-# >
-# DS12887 wallclock 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_DEVICES_WALLCLOCK_DALLAS_DS12887_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the wallclock device. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887_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 wallclock device. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# PC board RTC Driver
-# RTC driver for PC.
-#
-cdl_package CYGPKG_DEVICES_WALLCLOCK_I386_PC {
-    # 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_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-    # ActiveIf constraint: CYGPKG_HAL_I386_PC
-    #     CYGPKG_HAL_I386_PC == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 == current
-    #   --> 1
-};
-
-# >
-# IO port address of the ADDRESS register
-# This option sets the io address of the address port for
-# accessing the PC RTC
-#
-cdl_option CYGDAT_DEVS_WALLCLOCK_I386_PC_RTC_ADDRESS_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000070
-    # value_source default
-    # Default value: 0x00000070
-};
-
-# IO port address of the DATA register
-# This option sets the io address of the data port for
-# accessing the PC RTC
-#
-cdl_option CYGDAT_DEVS_WALLCLOCK_I386_PC_RTC_DATA_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000071
-    # value_source default
-    # Default value: 0x00000071
-};
-
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL_I386_PC
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_BLOCK_LIB
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_ERROR
-};
-
-# >
-# 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
-    user_value 0
-    # value_source user
-    # 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: ""
-};
-
-# <
-# <
-# Framebuffer support
-# doc: ref/io-framebuf.html
-# The generic framebuffer package provides an API for accessing
-# one or more framebuffers, plus support for appropriate device
-# drivers.
-#
-cdl_package CYGPKG_IO_FRAMEBUF {
-    # 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_HAL CYGPKG_ERROR
-    #     CYGPKG_INFRA == current
-    #     CYGPKG_HAL == current
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_FRAMEBUF_I386
-    #     ActiveIf: CYGPKG_IO_FRAMEBUF
-};
-
-# >
-# Number of available framebuffer devices
-# This interface specifies the number of framebuffer devices
-# supported by device driver(s) on this platform.
-#
-cdl_interface CYGINT_IO_FRAMEBUF_DEVICES {
-    # Implemented by CYGPKG_DEVS_FRAMEBUF_I386_FB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     ActiveIf: CYGINT_IO_FRAMEBUF_DEVICES
-    # option CYGPKG_IO_FRAMEBUF_TESTS
-    #     ActiveIf: CYGINT_IO_FRAMEBUF_DEVICES
-};
-
-# Names of available framebuffer devices
-# This option provides a list of the framebuffer devices available
-# on the current platform. It is controlled by the appropriate
-# device driver(s) and should not be edited by users.
-#
-cdl_option CYGDAT_IO_FRAMEBUF_DEVICES {
-    # Flavor: data
-    user_value " fb0 "
-    # value_source user
-    # Default value: ""
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-    # component CYGPKG_DEVS_FRAMEBUF_I386_FB
-    #     Requires: is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " fb0 ")
-};
-
-# Framebuffer device to use for testing
-# This option determines the framebuffer device to be used for running
-# the testcases. By default the build system will automatically select
-# the first entry in CYGDAT_IO_FRAMEBUF_DEVICES, which will be the
-# only entry if there is only framebuffer device in the system.
-#
-cdl_option CYGDAT_IO_FRAMEBUF_TEST_DEVICE {
-    # ActiveIf constraint: CYGINT_IO_FRAMEBUF_DEVICES
-    #     CYGINT_IO_FRAMEBUF_DEVICES == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-    #     CYGDAT_IO_FRAMEBUF_DEVICES == " fb0 "
-    #     CYGDAT_IO_FRAMEBUF_TEST_DEVICE == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-};
-
-# Functionality supported by the platform's framebuffer(s)
-# This component holds details of the functionality provided by the
-# framebuffer device driver(s) for the current platform.
-#
-cdl_component CYGPKG_IO_FRAMEBUF_FUNCTIONALITY {
-    # There is no associated value.
-};
-
-# >
-# 32bpp pixel support required
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provides a 32 bits
-# per pixel display. This constrains the cyg_colour data type
-# to be at least 32 bits.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_32BPP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-};
-
-# Framebuffer supports true colour mode
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform support true colour
-# operation. In other words the contents of the framebuffer
-# defines the colours directly and there is no indirection via
-# a palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_TRUE_COLOUR {
-    # Implemented by CYGHWR_DEVS_FRAMEBUF_SYNTH_TRUE_COLOUR, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Framebuffer uses a palette for colours
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform use a palette. In
-# other words the contents of the framebuffer's memory do not
-# represent colours directly, but instead are treated as indices
-# into a separate table known as the palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_PALETTE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-};
-
-# Framebuffer uses a writeable palette for colours
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform use a palette, and this
-# palette can be modified at run-time. In other words the contents
-# of the framebuffer's memory do not represent colours directly,
-# but instead are treated as indices into a separate table known
-# as the palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE {
-    # 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 CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE
-    #     ActiveIf: CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
-};
-
-# Framebuffer provides viewport support
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provide viewport support.
-# In other words only a subset of the framebuffer, the viewport,
-# is actually visible on the display and application code can move
-# this viewport.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_VIEWPORT {
-    # Implemented by CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Framebuffer provides double buffering support
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provide support for
-# double buffering. In other words the framebuffer memory that
-# is updated by graphics operations is not what actually gets
-# displayed. Instead there is a separate hidden area of memory
-# used for the display, and when drawing is complete a flush
-# operation is needed to move the framebuffer contents to that
-# hidden area. This makes it possible to update the display more
-# smoothly, at the cost of potentially expensive memory copy
-# operations.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_DOUBLE_BUFFER {
-    # Implemented by CYGPKG_DEVS_FRAMEBUF_I386_FB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-
-    # The following properties are affected by this value
-};
-
-# <
-# Framebuffers should install a default palette
-# Framebuffer devices which involve a writeable palette may set this
-# to a default palette when activated by cyg_fb_on() or equivalent
-# functionality. This is useful when the application will access the
-# framebuffer directly. It is less useful if a higher-level graphics
-# library is in use because typically that will install its own
-# palette, and typically there is a code/data overhead of approximately 1K.
-#
-cdl_option CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE {
-    # This option is not active
-    # ActiveIf constraint: CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
-    #     CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Framebuffer build options
-# Package specific build options including control over
-# compiler flags used only in building the generic frame
-# buffer package, and details of which tests are built.
-#
-cdl_component CYGPKG_IO_FRAMEBUF_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the generic framebuffer package. These flags
-# are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_IO_FRAMEBUF_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 generic framebuffer package. These flags
-# are removed from the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FRAMEBUF_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Framebuffer tests
-# This option specifies the set of tests for the framebuffer package
-#
-cdl_option CYGPKG_IO_FRAMEBUF_TESTS {
-    # ActiveIf constraint: CYGINT_IO_FRAMEBUF_DEVICES
-    #     CYGINT_IO_FRAMEBUF_DEVICES == 1
-    #   --> 1
-
-    # Calculated value:  "tests/fb tests/fbmacro" 
-    # Flavor: booldata
-    # Current value: 1 tests/fb tests/fbmacro
-};
-
-# <
-# i386 Target Framebuffer device driver
-# doc: ref/devs-framebuf-i386-ref.html
-# This package provides a framebuffer device driver for the
-# i386 target.
-#
-cdl_package CYGPKG_DEVS_FRAMEBUF_I386 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # ActiveIf constraint: CYGPKG_IO_FRAMEBUF
-    #     CYGPKG_IO_FRAMEBUF == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 v3_0
-};
-
-# >
-# Provide framebuffer device fb0
-# The synthetic target framebuffer driver can provide up to
-# four framebuffer devices, named fb0 to fb3. Each device's
-# width, height, depth, and colour format can be controlled.
-# This option enables device fb
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_FB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " fb0 ")
-    #     CYGDAT_IO_FRAMEBUF_DEVICES == " fb0 "
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FRAMEBUF_I386_FUNCTIONALITY
-    #     ActiveIf:  CYGPKG_DEVS_FRAMEBUF_I386_FB 
-};
-
-# >
-# fb base address
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_BASE_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000A000
-    # value_source default
-    # Default value: 0x0000A000
-};
-
-# fb0 width
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 320
-    # value_source default
-    # Default value: 320
-    # Legal values: 16 to 4096
-
-    # The following properties are affected by this value
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH
-    #     DefaultValue: CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH
-    #     LegalValues: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-};
-
-# fb0 height
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 240
-    # value_source default
-    # Default value: 240
-    # Legal values: 16 to 4096
-
-    # The following properties are affected by this value
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT
-    #     DefaultValue: CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT
-    #     LegalValues: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-};
-
-# fb0 format
-# Each synthetic target framebuffer device can be configured
-# to emulate a particular format. This consists of two fields:
-# depth and colour. The depth is in bits per pixel and can be
-# 8bpp, 16bpp or 32bpp. Colour can be either paletted or true colour.
-# 16bpp and 32bpp implies true colour. 8bpp can be either paletted
-# or true colour. For 8bpp the default palette is VGA. The application
-# can change these default palettes as required to match the hardware being emulated.
-#
-cdl_option CYGDAT_DEVS_FRAMEBUF_I386_FB_FORMAT {
-    # Flavor: data
-    user_value 8BPP_TRUE_332
-    # value_source user
-    # Default value: 8BPP_PAL888
-    # Legal values: 
-    #                             "8BPP_PAL888"     "8BPP_TRUE_332"
-    #                             "16BPP_TRUE_565"  "16BPP_TRUE_555"
-    #                             "32BPP_TRUE_0888"
-    #                         
-};
-
-# fb0 provides viewport support
-# Optionally framebuffer device  can support a viewport.
-# In other words only a subset of the framebuffer, the viewport,
-# is actually visible on the display and application code can
-# move this viewport.
-#
-cdl_component CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# fb0 viewport width
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH {
-    # This option is not active
-    # The parent CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 320
-    # value_source default
-    # Default value: CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH == 320
-    #   --> 320
-    # Legal values: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH == 320
-};
-
-# fb0 viewport height
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT {
-    # This option is not active
-    # The parent CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 240
-    # value_source default
-    # Default value: CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT == 240
-    #   --> 240
-    # Legal values: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT == 240
-};
-
-# <
-# fb0 supports page flipping
-# Optionally framebuffer device  can support page flipping.
-# The device supports between two and four pages, only one
-# of which is visible on the display. This allows code to
-# update one page without disturbing what is currently visible.
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_PAGE_FLIPPING {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Legal values: 2 3 4
-};
-
-# <
-# Functionality supported by the enabled framebuffer(s)
-# The generic framebuffer code needs configure-time information about
-# functionality of the enabled framebuffer or framebuffers. Usually
-# all this information is fixed by the hardware, but the i386
-# target framebuffer support is more flexible than real hardware. To
-# cope with this some dummy options are needed.
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_FUNCTIONALITY {
-    # ActiveIf constraint:  CYGPKG_DEVS_FRAMEBUF_I386_FB 
-    #     CYGPKG_DEVS_FRAMEBUF_I386_FB == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# One or more of the enabled framebuffer devices uses a true colour display
-#
-cdl_option CYGHWR_DEVS_FRAMEBUF_SYNTH_TRUE_COLOUR {
-    # Calculated value:  is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB0_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB1_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB2_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB3_FORMAT, "TRUE") 
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB0_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB1_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB2_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB3_FORMAT (unknown) == 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Framebuffer build options
-# Package specific build options including control over
-# compiler flags used only in building the synthetic
-# target framebuffer device driver.
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for building
-# the synthetic target framebuffer device driver. These flags
-# are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_FRAMEBUF_I386_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 synthetic target framebuffer device driver. These flags
-# are removed from the set of global flags if present.
-#
-cdl_option CYGPKG_DEVS_FRAMEBUF_I386_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# <
-# POSIX File IO compatibility layer
-# doc: ref/fileio.html
-# This package enables the POSIX compatibility
-# layer that implements IEEE 1003.1 file IO.
-#
-cdl_package CYGPKG_IO_FILEIO {
-    # 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_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" 
-    #     CYGBLD_ISO_DIRENT_HEADER == <cyg/fileio/dirent.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" 
-    #     CYGBLD_ISO_OPEN_MAX_HEADER == <cyg/fileio/limits.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" 
-    #     CYGBLD_ISO_NAME_MAX_HEADER == <cyg/fileio/limits.h>
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_FILE_SUPPORT
-    #     ActiveIf: !CYGPKG_IO_FILEIO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGPKG_IO_FILEIO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGPKG_IO_SERIAL_SELECT_SUPPORT
-    #     ActiveIf: CYGPKG_IO_FILEIO
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     ActiveIf: CYGPKG_IO_FILEIO
-    # option CYGPKG_LIBC_STDIO_TESTS
-    #     Calculated:  
-    #                     "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput " 
-    #                     . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
-    #                 
-    # component CYGCLS_USTL_FSTREAMS
-    #     DefaultValue: CYGPKG_IO_FILEIO
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: CYGPKG_IO_FILEIO
-};
-
-# >
-# Filesystems interfacing to FILEIO
-# Each filesystem driver which FILEIO can use implements
-# this interface. You can use this to determine if there are
-# any filesystems configured in the system.
-#
-cdl_interface CYGINT_IO_FILEIO_FS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Enable support for select()
-# This option enables support for select().
-#
-cdl_option CYGFUN_IO_FILEIO_SELECT {
-    # 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
-
-    # The following properties are affected by this value
-    # option CYGPKG_IO_SERIAL_SELECT_SUPPORT
-    #     Requires:  CYGFUN_IO_FILEIO_SELECT == 1 
-};
-
-# Enable devfs support
-# This option enables support for the devfs file system.
-#
-cdl_option CYGPKG_IO_FILEIO_DEVFS_SUPPORT {
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 0 : 1 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 1
-};
-
-# Enable socket support
-# This option enables support for the socket interface. It is
-# only present if the NET package is included.
-#
-cdl_option CYGPKG_IO_FILEIO_SOCKET_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-    # 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
-};
-
-# Maximum number of open files
-# This option controls the number of open files
-# that are allowed for all filesystems.
-#
-cdl_option CYGNUM_FILEIO_NFILE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 9999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_FILEIO_NFD
-    #     LegalValues: CYGNUM_FILEIO_NFILE to 9999999
-};
-
-# Maximum number of open file descriptors
-# This option controls the number of open file descriptors
-# that are allowed for all filesystems.
-#
-cdl_option CYGNUM_FILEIO_NFD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: CYGNUM_FILEIO_NFILE to 9999999
-    #     CYGNUM_FILEIO_NFILE == 16
-};
-
-# Maximum number of installed filesystems
-# This option controls the maximum number of filesystems
-# that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_FSTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 1 to 9999999
-};
-
-# Maximum number of mounted filesystems
-# This option controls the maximum number of mounted
-# filesystems that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_MTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: CYGNUM_FILEIO_MTAB_EXTRA to 9999999
-    #     CYGNUM_FILEIO_MTAB_EXTRA == 8
-};
-
-# Number of dynamically mounted filesystems
-# This option controls the number of mounted
-# filesystems that can be created dynamically.
-#
-cdl_option CYGNUM_FILEIO_MTAB_EXTRA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 0 to 9999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_FILEIO_MTAB_MAX
-    #     LegalValues: CYGNUM_FILEIO_MTAB_EXTRA to 9999999
-};
-
-# Maximum number of installed network stacks
-# This option controls the maximum number of installed
-# network stacks that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_NSTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 1 to 9999999
-};
-
-# Enable current directory tracking
-# This option enables tracking of the name of the current
-# directory in the FILEIO package, to support the getcwd()
-# function. When this option is enabled the FILEIO package
-# will attempt to maintain a string that names the current
-# directory. It does this textually, dealing with "." and
-# ".." entries by textual manipulation. While this should
-# always provide a path for the current directory, it may not
-# be the best, if symbolic links are present. This tracked CWD
-# is only used if a filesystem does not support the
-# FS_INFO_GETCWD key. 
-#
-cdl_option CYGPKG_IO_FILEIO_TRACK_CWD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Generic inode support
-# This option enables generic inode support useful to
-# some filesystems. Not all filesystems require this
-# so it is not enabled by default.
-#
-cdl_component CYGPKG_IO_FILEIO_INODE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# Maximum space for unused cached inodes
-# The inode cache allows a maximum limit to be set
-# for the number of unused inodes still in the
-# cache before they are freed. It may be set to 0
-# to indicate no dead inode caching should be
-# provided.
-#
-cdl_option CYGNUM_IO_FILEIO_MAX_INODE_CACHE_DEAD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# <
-# Maximum size of iovec used by readv/writev
-# This option controls the maximum size of the iovec
-# structure that can be used by readv()/writev().  This
-# limit is required because the iovec structure must be
-# invariant (to the user), thus a copy needs to be made
-# by the interface routines.  The limit is merely a 
-# control over the amount of stack space used by the
-# readv()/writev() functions.
-#
-cdl_option CYGNUM_FILEIO_IOVEC_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 9999999
-};
-
-# cyg_fs_getinfo call for disk usage
-# Enabling this option includes code in some filesystems to
-# implement a call using cyg_fs_getinfo to return the current
-# filesystem block usage.
-#
-cdl_option CYGSEM_FILEIO_INFO_DISK_USAGE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# POSIX fnmatch configuration
-# This component provides configuration controls for
-# the POSIX fnmatch() function.
-#
-cdl_component CYGPKG_FILEIO_FNMATCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_FNMATCH_HEADER ==  "<cyg/fileio/fnmatch.h>" 
-    #     CYGBLD_ISO_FNMATCH_HEADER == <cyg/fileio/fnmatch.h>
-    #   --> 1
-};
-
-# Struct dirent contains a d_type field
-# If this option is enabled then struct dirent contains a
-# d_type field. With this field, file type may be
-# distinguished directly without calling stat.  Note: This
-# member is not part of the POSIX standard, however is
-# commonely implemented in Linux, FreeBSD, but not SunOS.
-# Also, not all filesystems support it.  So this feature is
-# not portable and should be used with caution.
-#
-cdl_option CYGPKG_FILEIO_DIRENT_DTYPE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-};
-
-# Fileio tests
-# This option specifies the set of tests for the FileIO package.
-#
-cdl_option CYGPKG_IO_FILEIO_TESTS {
-    # Calculated value:  "tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch" 
-    # Flavor: data
-    # Current_value: tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch
-};
-
-# <
-# Block cache and access library
-#
-cdl_package CYGPKG_BLOCK_LIB {
-    # 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_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-    # Requires: CYGPKG_LINUX_COMPAT
-    #     CYGPKG_LINUX_COMPAT == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Block access statistics support
-# This option enables statistics for
-# block access operations.
-#
-cdl_option CYGIMP_BLOCK_LIB_STATISTICS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# <
-# Linux compatibility layer
-# eCos supports a basic Linux compatibility Layer providing various
-# functions, equivalents or stubs expected by Linux kernel code, for
-# assistance in porting drivers and file system code from Linux.
-# Note this does not provide Linux compatibility to applications.
-#
-cdl_package CYGPKG_LINUX_COMPAT {
-    # 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_BLOCK_LIB
-    #     Requires: CYGPKG_LINUX_COMPAT
-};
-
-# >
-# Define page size
-# Define the page size. The value entered here is used as an
-# exponent X in the expression 2^^X to ensure that the page
-# size is always an integer power of two.
-#
-cdl_option CYGNUM_LINUX_COMPAT_PAGE_SIZE_EXPONENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 12
-    # value_source default
-    # Default value: 12
-    # Legal values: 10 to 16
-};
-
-# <
-# uSTL library
-# doc: ref/ustl.html
-# This package provides the uSTL library. uSTL is a 
-# partial implementation of the STL specification intended to 
-# reduce code size of the derivative programs. This allows the 
-# user application to use well known standard C++ STL library 
-# containers, streams, iterators, algorithms and functors.
-#
-cdl_package CYGPKG_USTL {
-    # 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_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_CHAR_IO
-    #     CYGINT_ISO_STDIO_CHAR_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_DIRECT_IO
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_ERROR
-    #     CYGINT_ISO_STDIO_ERROR == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_IMPL
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_C_TIME_TYPES
-    #     CYGINT_ISO_C_TIME_TYPES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MAIN_STARTUP
-    #     CYGINT_ISO_MAIN_STARTUP == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ENVIRON
-    #     CYGINT_ISO_ENVIRON == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRTOK_R
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 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_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_LOCALE
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-    # Requires: CYGIMP_LIBC_STDIO_C99_SNPRINTF
-    #     CYGIMP_LIBC_STDIO_C99_SNPRINTF == 1
-    #   --> 1
-};
-
-# >
-# File streams support
-# This option enables file stream support. For file stream
-# support the File I/O package is required.
-#
-cdl_component CYGCLS_USTL_FSTREAMS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILETYPES
-    #     CYGINT_ISO_STDIO_FILETYPES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_STREAMS
-    #     CYGINT_ISO_STDIO_STREAMS == 1
-    #   --> 1
-};
-
-# >
-# cin, cout & cerr support
-# Enable this option if you want the standard streams
-# cin, cout and cerr to be included. You will not be able 
-# to run bvt tests if you don't enable this option.
-#
-cdl_option CYGVAR_USTL_CIN_COUT_CERR {
-    # 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_USTL_TESTS
-    #     Calculated:  (CYGVAR_USTL_CIN_COUT_CERR ? "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" : "" )
-};
-
-# <
-# Stream bounds checking
-# Enable this option if you want stream operations to throw 
-# exceptions on insufficient data or insufficient space. 
-# All these errors should be preventable in output code; 
-# the input code should verify the data in a separate step. 
-# It slows down stream operations a lot, but it's your call. 
-# Debug builds always throws exceptions - this option is
-# only valid for release builds.
-#
-cdl_option CYGSEM_USTL_STREAM_BOUNDS_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# uSTL library 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_USTL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the uSTL library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_USTL_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-I\$(PREFIX)/include/ustl"
-    # value_source default
-    # Default value: "-I\$(PREFIX)/include/ustl"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the uSTL library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_USTL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wundef
-    # value_source default
-    # Default value: -Wundef
-};
-
-# uSTL tests
-# This option specifies the set of tests for the uSTL library.
-#
-cdl_option CYGPKG_USTL_TESTS {
-    # Calculated value:  (CYGVAR_USTL_CIN_COUT_CERR ? "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" : "" )
-    #     CYGVAR_USTL_CIN_COUT_CERR == 1
-    # Flavor: data
-    # Current_value: tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27
-};
-
-# <
-# <
-# eCos ttkernel
-# doc: doc/ttkernel.html
-# This is a kernel package for time triggered scheduling. It relies on functionality provided by the HAL and INFRA packages.
-#
-cdl_package SMLPKG_TTKERNEL {
-    # 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_HAL_COMMON_SMP_SUPPORT
-    #     CYGPKG_HAL_COMMON_SMP_SUPPORT (unknown) == 0
-    #   --> 1
-    # Requires: !CYGPKG_KERNEL
-    #     CYGPKG_KERNEL (unknown) == 0
-    #   --> 1
-};
-
-# >
-# Real time clock
-# The real time clock (rtc) triggers the interrupts that run the dispatcher.
-#
-cdl_component SMLPKG_TTKERNEL_RTC {
-    # There is no associated value.
-};
-
-# >
-# Interrupt priority
-# priority of the rtc interrupt.
-# 
-#
-cdl_option SMLNUM_TTKERNEL_RTC_PRIORITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Reset timer
-# There are architectures that needs the timer to be reset after an timer interrupt occures.
-# 
-#
-cdl_option SMLFUN_TTKERNEL_RTC_RESET {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Period length
-# period length of a rtc tick. (in hardware timer ticks)
-# 
-#
-cdl_option SMLNUM_TTKERNEL_RTC_PERIOD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1193
-    # value_source default
-    # Default value:  CYGNUM_HAL_RTC_PERIOD 
-    #     CYGNUM_HAL_RTC_PERIOD == 1193
-    #   --> 1193
-};
-
-# Denominator
-# the interrupts should occure SMLNUM_TTKERNEL_RTC_DENOMINATOR times within a SMLNUM_TTKERNEL_RTC_NUMERATOR timeframe.
-# 
-#
-cdl_option SMLNUM_TTKERNEL_RTC_DENOMINATOR {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value:  CYGNUM_HAL_RTC_DENOMINATOR 
-    #     CYGNUM_HAL_RTC_DENOMINATOR == 100
-    #   --> 100
-};
-
-# Numerator
-# numerator timeframe length (normaly in nanoseconds).
-# 
-#
-cdl_option SMLNUM_TTKERNEL_RTC_NUMERATOR {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100000000
-    # value_source default
-    # Default value:  CYGNUM_HAL_RTC_NUMERATOR 
-    #     CYGNUM_HAL_RTC_NUMERATOR == 100000000
-    #   --> 100000000
-};
-
-# <
-# Synchronization
-# Dispatcherrounds may be synchronized with a global time. You must specify which method
-# you want to use.
-#
-cdl_component SMLPKG_TTKERNEL_SYNCH {
-    # There is no associated value.
-};
-
-# >
-#
-cdl_interface SMLINT_TTKERNEL_SYNCTYPE {
-    # Implemented by SMLIMP_TTKERNEL_SYNC_NONE, active, enabled
-    # Implemented by SMLIMP_TTKERNEL_SYNC_SYNCHRON, active, disabled
-    # Implemented by SMLIMP_TTKERNEL_SYNC_ASYNCHARD, active, disabled
-    # Implemented by SMLIMP_TTKERNEL_SYNC_ASYNSMOOTH, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == SMLINT_TTKERNEL_SYNCTYPE
-    #     SMLINT_TTKERNEL_SYNCTYPE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface SMLINT_TTKERNEL_SYNCTYPE
-    #     Requires: 1 == SMLINT_TTKERNEL_SYNCTYPE
-};
-
-# None
-# No synchronisation is required.
-#
-cdl_option SMLIMP_TTKERNEL_SYNC_NONE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Start synchron
-# Synchronous start-up.
-#
-cdl_option SMLIMP_TTKERNEL_SYNC_SYNCHRON {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Start asynchron, synchronize hard
-# Asynchronous start-up. hard synchronisation
-#
-cdl_option SMLIMP_TTKERNEL_SYNC_ASYNCHARD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Start asynchron, synchronize smooth
-# Asynchronous start-up. smooth synchronisation
-#
-cdl_component SMLIMP_TTKERNEL_SYNC_ASYNSMOOTH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Maximum adjustment
-# Maximum allowed rtc ticks, the groundstate may be shortened or extended.
-#
-cdl_option SMLIMP_TTKERNEL_SYNC_ASYNCHMAXDELAY {
-    # This option is not active
-    # The parent SMLIMP_TTKERNEL_SYNC_ASYNSMOOTH is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 100
-    # value_source default
-    # Default value: 100
-};
-
-# <
-# <
-# Mode
-# Defines the amount of checks, that are performed during runtime to protect the system from incorrect API usage. 
-# In EXTENDED configuration, the kernel monitors the system environment to ensure correct API usage. Additionally it prevents the use of illegal task pointers.
-# This checks may be turned of by switching to BASIC mode.
-# 
-#
-cdl_option SMLFUN_TTKERNEL_MODE {
-    # Flavor: data
-    user_value BASIC
-    # value_source user
-    # Default value: EXTENDED
-    # Legal values: "BASIC" "EXTENDED"
-};
-
-# OS stack size
-# The system stack size (OS stack).
-# 
-#
-cdl_component SMLNUM_TTKERNEL_STACKSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8192
-    # value_source default
-    # Default value: 8192
-};
-
-# Round length (ticks)
-# All dispatcher tables must have the same round length.
-# 
-#
-cdl_option SMLNUM_TTKERNEL_DISPATCHERTABLE_LENGTH {
-    # Flavor: data
-    user_value 1000
-    # value_source user
-    # Default value: 100
-};
-
-# OSEKtime API
-# Compatibility layer, providing an OSEKtime like API.
-# 
-#
-cdl_option SMLFUN_TTKERNEL_OSEKTIME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# WCAO mesurement support
-# In an real time environment it is important to know the overhead generated by the OS.
-# This kernel comes with an interface for WCAO mesurement. Note: The implementation
-# of the interface is left to you! Include <sml/ttkernel/performance.hxx> and implement the
-# functions tt_record_dispatcherstart() and tt_record_dispatcherend().
-#
-cdl_component SMLPKG_TTKERNEL_RTCHAR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# record dispatcher start
-# Record dispatcher start. The function tt_record_interrupt_start() gets called when an timer
-# interrupt occures and calls the dispatcher!
-#
-cdl_option SMLFUN_TTKERNEL_RECORD_DISPATCHERSTART {
-    # This option is not active
-    # The parent SMLPKG_TTKERNEL_RTCHAR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# record dispatcher end
-# Record dispatcher end. The function tt_record_interrupt_end() gets called when the dispatcher
-# returns control to the running task. In case of an task activation this function gets not called!
-#
-cdl_option SMLFUN_TTKERNEL_RECORD_DISPATCHEREND {
-    # This option is not active
-    # The parent SMLPKG_TTKERNEL_RTCHAR is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Test support
-# Support for extended timing tests. In detail, a second clock is implemented that shows the
-# absolute timer interrupts (ticks) since system start.
-# 
-#
-cdl_option SMLNUM_TTKERNEL_TEST_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-
diff --git a/02_filter/ecosenv.sh b/02_filter/ecosenv.sh
deleted file mode 100755
index 2b98e8d5767f25afb438b024cde5d60e0fca64bb..0000000000000000000000000000000000000000
--- a/02_filter/ecosenv.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-EZS_BASE_DIR=/proj/i4ezs/tools/ ; export EZS_BASE_DIR
-
-ECOS_BASE_DIR=$EZS_BASE_DIR/ecos/repo_ezs ; export ECOS_BASE_DIR
-EZS_COMPILER_DIR=$EZS_BASE_DIR/gnutools_422 ; export EZS_COMPILER_DIR
-EZS_CMAKE_MODULE_DIR=$ECOS_BASE_DIR/tools ; export EZS_CMAKE_MODULE_DIR
-ECOS_REPOSITORY=$ECOS_BASE_DIR/packages ; export ECOS_REPOSITORY
-UBUNTU_MENUPROXY=0 ; export UBUNTU_MENUPROXY
-if [[ $PATH != *ecos* ]] ;	then
-	# eCos paths - do not modify this line, it is used by the installer
-	PATH=$ECOS_BASE_DIR/tools:$EZS_COMPILER_DIR/bin:$PATH ; export PATH
-fi
-
-if [[ $PATH != */proj/i4ezs/tools/fail/vezs ]] ;	then
-	PATH=$EZS_BASE_DIR/fail:$PATH
-fi
diff --git a/02_filter/emu/BIOS-bochs-latest b/02_filter/emu/BIOS-bochs-latest
deleted file mode 100644
index 2d3fea31f67a8c140e70b71cf14ceacd397923ab..0000000000000000000000000000000000000000
Binary files a/02_filter/emu/BIOS-bochs-latest and /dev/null differ
diff --git a/02_filter/emu/CMakeLists.txt b/02_filter/emu/CMakeLists.txt
deleted file mode 100644
index 486998dc7836d23f8802fca2c966ed69970be391..0000000000000000000000000000000000000000
--- a/02_filter/emu/CMakeLists.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-include(processorcount)
-
-# Prepare some useful variable for use in config files
-set(TGT_ELF "${TGT}.elf")
-set(ISODIR "${PROJECT_BINARY_DIR}/grub_iso")
-set(FAIL_BINARY "$ENV{EZS_BASE_DIR}/fail/fail-client")
-set(ISOFILE "${PROJECT_BINARY_DIR}/${TGT}.iso")
-set(ELFFILE "${PROJECT_BINARY_DIR}/${TGT}.elf")
-set(RUNNER "/proj/i4ezs/tools/fail/vezs/bochs-experiment-runner.py")
-
-
-set(FAILVARIANT "not_set" CACHE PATH "Variant name for Fail* injection")
-
-# Setup Bochs configuration
-set(BOCHS_BIOS "${CMAKE_CURRENT_SOURCE_DIR}/BIOS-bochs-latest")
-set(BOCHS_GUEST_RAM 32)
-set(BOCHS_HOST_RAM 32)
-set(BOCHS_VGA_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/vgabios.bin")
-set(BOCHS_ISO_IMAGE "${ISOFILE}")
-
-set(STARTUP_SCRIPTS ${PROJECT_BINARY_DIR}/startup_scripts)
-file(MAKE_DIRECTORY ${STARTUP_SCRIPTS})
-set(BOCHSRC "${STARTUP_SCRIPTS}/bochsrc")
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc.in" ${BOCHSRC} )
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc-gdb.in" "${BOCHSRC}-gdb" )
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc-term.in" "${BOCHSRC}-term" )
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qrun.sh.in ${STARTUP_SCRIPTS}/qrun.sh)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/frun.sh.in ${STARTUP_SCRIPTS}/frun.sh)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pts.sh.in ${STARTUP_SCRIPTS}/pts.sh)
-configure_file(${SCRIPT_DIR}/findport.pl ${STARTUP_SCRIPTS}/findport.pl)
-
-#message(STATUS "Fail* @ ${FAIL_BINARY}")
-#set(GDBINITFILE ${STARTUP_SCRIPTS}/.gdbinit)
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gdbinit.in" ${GDBINITFILE})
-
-# Grub
-find_program(GRUB_MKRESCUE "grub-mkrescue")
-if(NOT GRUB_MKRESCUE)
-		message(FATAL_ERROR "grub-mkrescue not found, cannot create bootable iso :(")
-endif()
-
-
-# message(STATUS "Building bootable ISO for ${TGT}")
-
-# Generate build directory for grub-mkrescue
-set(BOOTDIR "${ISODIR}/boot/")
-set(GRUBDIR "${BOOTDIR}/grub")
-file(MAKE_DIRECTORY ${GRUBDIR})
-
-# Copy and configure grub configuration file
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/grub.cfg.in" "${GRUBDIR}/grub.cfg")
-
-# Create bootable ISO from TGT
-add_custom_command(
-	DEPENDS ${TGT}
-        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TGT}> ${BOOTDIR}/${TGT_ELF}
-	COMMAND ${GRUB_MKRESCUE}
-		ARGS -o ${ISOFILE} ${ISODIR}
-	COMMAND objdump -CDS ${BOOTDIR}/${TGT_ELF} > ${PROJECT_BINARY_DIR}/${TGT}.dis
-        OUTPUT ${ISOFILE} ${BOOTDIR}/${TGT_ELF} ${PROJECT_BINARY_DIR}/${TGT}.dis
-	COMMENT "Generating bootable grub iso."
-		)
-
-# Create bootable ISO
-add_custom_target( iso DEPENDS ${ISOFILE} )
-
-# Start FAIL
-# comment for 02_filter
-##add_custom_target( sim
-##        COMMAND ${STARTUP_SCRIPTS}/frun.sh
-##		DEPENDS ${ISOFILE}
-##		COMMENT "Starting Fail*"
-##        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-##		)
-
-# Start qemu
-add_custom_target(run
-		DEPENDS ${ISOFILE} ${TGT}
-		COMMAND echo "Running ${ISOFILE}..."
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-		)
-
-# make sim as alias for make run
-add_custom_target(sim
-		DEPENDS ${ISOFILE} ${TGT}
-		COMMAND echo "Running ${ISOFILE}..."
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-		)
-
-add_custom_target( ddd
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ddd
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( gdb
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh gdb
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( gdbtui
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh gdbtui
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-
-add_custom_target( cgdb
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh cgdb
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-
-add_custom_target( fail-1-trace
-  # Start Qemu in Debug mode.
-  DEPENDS ${ISOFILE}
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE} -1 
-     -f /proj/i4ezs/tools/fail/vezs/fail-x86-tracing
-     -m 32 -- 
-     -Wf,--start-symbol=fail_trace_start
-     -Wf,--save-symbol=fail_trace_start
-     -Wf,--end-symbol=fail_trace_stop
-     -Wf,--trace-file=${PROJECT_BINARY_DIR}/trace.pb
-     -Wf,--elf-file=${PROJECT_BINARY_DIR}/${TGT}.elf -q
-  COMMENT "Trace the app for golden run"
-  OUTPUT ${PROJECT_BINARY_DIR}/trace.pb
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-2-import
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/import-trace -t ${PROJECT_BINARY_DIR}/trace.pb -i mem -v aufgabe1 -b ${FAILVARIANT} -e ${ELFFILE} --faultspace-rightmargin R
-  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/import-trace -i ElfImporter --objdump objdump -e ${ELFFILE} -v aufgabe1 -b ${FAILVARIANT}
-  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/prune-trace -p basic -v aufgabe1 -b ${FAILVARIANT} --overwrite
-  COMMENT "Import the golden run into the database"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-3-server
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/generic-experiment-server -v aufgabe1 -b ${FAILVARIANT}
-  COMMENT "Start the campaign server"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-4-client
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE}
-          -f /proj/i4ezs/tools/fail/vezs/generic-experiment-client -m 32
-           -e ${ELFFILE}
-           -i ${BOCHS_ISO_IMAGE}
-           -V vgabios.bin -b BIOS-bochs-latest -- 
-           -Wf,--state-dir=state
-           -Wf,--trap -Wf,--timeout=10
-           -Wf,--ok-marker=fail_marker_positive
-           -Wf,--fail-marker=fail_marker_negative
-           -Wf,--detected-marker=fail_marker_detected
-           -Wf,--catch-write-textsegment
-           -Wf,--catch-write-outerspace # 2>/dev/null | grep -C 4 'INJECT'
-  COMMENT "Start one fail-client"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-4-client-parallel
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ nice -n 19 ionice -c3 ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE}
-          -f /proj/i4ezs/tools/fail/vezs/generic-experiment-client -m 32
-           -e ${ELFFILE}
-           -i ${BOCHS_ISO_IMAGE}
-           -V vgabios.bin -b BIOS-bochs-latest -j${PROCESSOR_COUNT} --
-           -Wf,--state-dir=state
-           -Wf,--trap -Wf,--timeout=10
-           -Wf,--ok-marker=fail_marker_positive
-           -Wf,--fail-marker=fail_marker_negative
-           -Wf,--detected-marker=fail_marker_detected
-           -Wf,--catch-write-textsegment
-           -Wf,--catch-write-outerspace # 2>/dev/null | grep -C 4 'INJECT'
-  COMMENT "Start many fail-clients (use FAIL_SERVER_HOST for different campaign server)"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-5-result
-  # Start Qemu in Debug mode.
-  COMMAND mysql -t < ${PROJECT_SOURCE_DIR}/eval/report.sql
-  COMMENT "Generate a report"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-5-browse
-  # Start Qemu in Debug mode.
-  COMMAND mysql -t < ${PROJECT_SOURCE_DIR}/eval/report.sql
-  COMMAND /proj/i4ezs/tools/fail/vezs/resultbrowser/run.py
-  COMMENT "Generate HTML report"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
diff --git a/02_filter/emu/bochs-experiment-runner.py b/02_filter/emu/bochs-experiment-runner.py
deleted file mode 100755
index 2b0ac6ba2ffd40a33e9caec09071566ec610a065..0000000000000000000000000000000000000000
--- a/02_filter/emu/bochs-experiment-runner.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/python
-
-import os, sys
-from optparse import OptionParser
-from subprocess import *
-from tempfile import mkstemp, mkdtemp
-import shutil
-import multiprocessing
-from threading import Thread
-
-def parseArgs():
-    parser = OptionParser()
-    parser.add_option("-e", "--elf-file", dest="elf_file",
-                      help="elf file to be executed", metavar="ELF")
-    parser.add_option("-i", "--iso-file", dest="iso_file",
-                      help="iso file to be executed", metavar="ISO")
-    parser.add_option("-f", "--fail-client", dest="fail_client",
-                      help="fail-client to be executed", metavar="ISO")
-    parser.add_option("-m", "--memory", dest="memory", default="16",
-                      help="memory for the bochs VM", metavar="SIZE")
-
-    parser.add_option("-b", "--bios", dest="bios", default="/proj/i4ciao/tools/fail/BIOS-bochs-latest",
-                      help="bios image for bochs", metavar="BIOS")
-
-    parser.add_option("-V", "--vgabios", dest="vgabios", default="/proj/i4ciao/tools/fail/vgabios.bin",
-                      help="vgabios image for bochs", metavar="VGABIOS")
-
-    parser.add_option("-1", "--once",
-                      action="store_false", dest="forever", default=True,
-                      help="fail-client to be executed")
-    parser.add_option("-j", "--jobs",
-                      action="store", dest="jobs", default=1,
-                      help="fail-clients to be executed")
-
-
-
-    (options, args) = parser.parse_args()
-
-    if not (options.elf_file and options.iso_file and options.fail_client):
-        parser.error("elf, iso and fail-client are required")
-
-    return options, args
-
-def execute(options, args, bochsrc, statedir):
-    command = "env FAIL_ELF_PATH=%s FAIL_STATEDIR=%s %s -q -f %s %s" %\
-    (options.elf_file, statedir, options.fail_client, bochsrc, " ".join(args))
-    print "executing: " + command
-    p = Popen(command, shell=True)
-    p.wait()
-
-    return p.returncode
-
-def main(options, args):
-    bochsrc_args = {
-        "memory": options.memory,
-        "bios": options.bios,
-        "vgabios": options.vgabios,
-        "iso": options.iso_file
-        }
-
-    bochsrc_text = """
-config_interface: textconfig
-display_library: nogui
-romimage: file="{bios}"
-cpu: count=1, ips=5000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-memory: guest={memory}, host={memory}
-vgaromimage: file="{vgabios}"
-vga: extension=vbe
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=0, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-ata0-slave: type=cdrom, path="{iso}", status=inserted
-boot: cdrom
-clock: sync=none, time0=946681200
-floppy_bootsig_check: disabled=0
-panic: action=fatal
-error: action=fatal
-info: action=ignore
-debug: action=ignore
-pass: action=ignore
-debugger_log: -
-parport1: enabled=0
-vga_update_interval: 300000
-keyboard_serial_delay: 250
-keyboard_paste_delay: 100000
-private_colormap: enabled=0
-i440fxsupport: enabled=0, slot1=pcivga
-""".format(**bochsrc_args)
-
-    bochsrc = mkstemp()
-    fd = os.fdopen(bochsrc[0], "w")
-    fd.write(bochsrc_text)
-    fd.close()
-    bochsrc = bochsrc[1]
-
-    statedir = mkdtemp()
-
-    if options.forever:
-        while True:
-            res = execute(options, args, bochsrc, statedir)
-            if res != 0:
-                break
-
-        ret = 0
-    else:
-        ret = execute(options, args, bochsrc, statedir)
-
-    os.unlink(bochsrc)
-    shutil.rmtree(statedir)
-    sys.exit(ret)
-
-if __name__ == "__main__":
-    (options, args) = parseArgs()
-    if options.jobs == "0":
-        jobs = multiprocessing.cpu_count()
-    else:
-        jobs = int(options.jobs)
-
-    threads = []
-    for i in range(0, jobs):
-        t = Thread(target = main, args = (options, args))
-        t.start()
-        threads.append(t)
-
-    for thread in threads:
-        thread.join()
diff --git a/02_filter/emu/bochsrc-gdb.in b/02_filter/emu/bochsrc-gdb.in
deleted file mode 100644
index 23567fceb539167aac7f4d79e5f3b483e709bccf..0000000000000000000000000000000000000000
--- a/02_filter/emu/bochsrc-gdb.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# You may now use double quotes around pathnames, in case
-# your pathname includes spaces.
-
-#=======================================================================
-# CONFIG_INTERFACE
-#
-# The configuration interface is a series of menus or dialog boxes that
-# allows you to change all the settings that control Bochs's behavior.
-# Depending on the platform there are up to 3 choices of configuration
-# interface: a text mode version called "textconfig" and two graphical versions
-# called "win32config" and "wx".  The text mode version uses stdin/stdout and
-# is always compiled in, unless Bochs is compiled for wx only. The choice
-# "win32config" is only available on win32 and it is the default there.
-# The choice "wx" is only available when you use "--with-wx" on the configure
-# command.  If you do not write a config_interface line, Bochs will
-# choose a default for you.
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#=======================================================================
-config_interface: textconfig
-#config_interface: wx
-
-#=======================================================================
-# DISPLAY_LIBRARY
-#
-# The display library is the code that displays the Bochs VGA screen.  Bochs 
-# has a selection of about 10 different display library implementations for 
-# different platforms.  If you run configure with multiple --with-* options, 
-# the display_library command lets you choose which one you want to run with.
-# If you do not write a display_library line, Bochs will choose a default for
-# you.
-#
-# The choices are: 
-#   x              use X windows interface, cross platform
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
-#   term           text only, uses curses/ncurses library, cross platform
-#   wx             use wxWidgets library, cross platform
-#   nogui          no display at all
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#
-# Specific options:
-# Some display libraries now support specific option to control their
-# behaviour. See the examples below for currently supported options.
-#=======================================================================
-#display_library: nogui
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
-display_library: term
-#display_library: wx
-#display_library: x
-#display_library: x, options="hideIPS" # disable IPS output in status bar
-#display_library: x, options="gui_debug" # use GTK debugger gui
-
-#=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-romimage: file=@BOCHS_BIOS@
-#romimage: file=bios/seabios-0.5.1.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-
-#=======================================================================
-# CPU:
-# This defines cpu-related parameters inside Bochs:
-#
-#  COUNT:
-#  Set the number of processors:cores per processor:threads per core 
-#  when Bochs is compiled for SMP emulation.
-#  Bochs currently supports up to 8 threads running simultaniosly. 
-#  If Bochs is compiled without SMP support, it won't accept values 
-#  different from 1.
-#
-#  QUANTUM:
-#  Maximum amount of instructions allowed to execute by processor before
-#  returning control to another cpu. This option exists only in Bochs 
-#  binary compiled with SMP support.
-#
-#  RESET_ON_TRIPLE_FAULT:
-#  Reset the CPU when triple fault occur (highly recommended) rather than
-#  PANIC. Remember that if you trying to continue after triple fault the 
-#  simulation will be completely bogus !
-#
-#  MSRS:
-#  Define path to user CPU Model Specific Registers (MSRs) specification.
-#  See example in msrs.def.
-#
-#  IGNORE_BAD_MSRS:
-#  Ignore MSR references that Bochs does not understand; print a warning
-#  message instead of generating #GP exception. This option is enabled
-#  by default but will not be avaiable if configurable MSRs are enabled.
-#
-#  IPS:
-#  Emulated Instructions Per Second. This is the number of IPS that bochs
-#  is capable of running on your machine. You can recompile Bochs with
-#  --enable-show-ips option enabled, to find your host's capability.
-#  Measured IPS value will then be logged into your log file or shown
-#  in the status bar (if supported by the gui).
-#
-#  IPS is used to calibrate many time-dependent events within the bochs 
-#  simulation.  For example, changing IPS affects the frequency of VGA
-#  updates, the duration of time before a key starts to autorepeat, and
-#  the measurement of BogoMips and other benchmarks.
-#
-#  Examples:
-#
-#  Bochs Machine/Compiler                                 Mips
-# ____________________________________________________________________
-#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
-#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
-#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
-#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
-#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
-#=======================================================================
-cpu: count=1, ips=@BOCHS_CPU_SPEED_MHZ@000000, reset_on_triple_fault=0, ignore_bad_msrs=1, msrs="msrs.def"
-
-#=======================================================================
-# CPUID:
-#
-# This defines features and functionality supported by Bochs emulated CPU:
-#
-#  MMX:
-#  Select MMX instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
-#
-#  SEP:
-#  Select SYSENTER/SYSEXIT instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  SSE:
-#  Select SSE instruction set support.
-#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XAPIC:
-#  Select XAPIC extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  AES:
-#  Select AES instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  MOVBE:
-#  Select MOVBE Intel(R) Atom instruction support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XSAVE:
-#  Select XSAVE extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  1G_PAGES:
-#  Enable 1G page size support in long mode.
-#  This option exists only if Bochs compiled with x86-64 support.
-#
-#  MWAIT_IS_NOP:
-#  When this option is enabled MWAIT will not put the CPU into a sleep state.
-#  This option exists only if Bochs compiled with --enable-monitor-mwait.
-#
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#=======================================================================
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-
-#=======================================================================
-# MEMORY
-# Set the amount of physical memory you want to emulate.
-#
-# GUEST:
-# Set amount of guest physical memory to emulate. The default is 32MB,
-# the maximum amount limited only by physical address space limitations.
-#
-# HOST:
-# Set amount of host memory you want to allocate for guest RAM emulation.
-# It is possible to allocate less memory than you want to emulate in guest
-# system. This will fake guest to see the non-existing memory. Once guest
-# system touches new memory block it will be dynamically taken from the
-# memory pool. You will be warned (by FATAL PANIC) in case guest already
-# used all allocated host memory and wants more.
-#
-#=======================================================================
-#memory: guest=512, host=256
-memory: guest=@BOCHS_GUEST_RAM@, host=@BOCHS_HOST_RAM@
-
-#=======================================================================
-# OPTROMIMAGE[1-4]:
-# You may now load up to 4 optional ROM images. Be sure to use a 
-# read-only area, typically between C8000 and EFFFF. These optional
-# ROM images should not overwrite the rombios (located at
-# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
-# Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA) and a valid checksum.
-# It can also be a convenient way to upload some arbitrary code/data
-# in the simulation, that can be retrieved by the boot loader
-#=======================================================================
-#optromimage1: file=optionalrom.bin, address=0xd0000
-#optromimage2: file=optionalrom.bin, address=0xd1000
-#optromimage3: file=optionalrom.bin, address=0xd2000
-#optromimage4: file=optionalrom.bin, address=0xd3000
-
-#optramimage1: file=/path/file1.img, address=0x0010000
-#optramimage2: file=/path/file2.img, address=0x0020000
-#optramimage3: file=/path/file3.img, address=0x0030000
-#optramimage4: file=/path/file4.img, address=0x0040000
-
-#=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-vgaromimage: file=@BOCHS_VGA_IMAGE@
-#vgaromimage: file=/usr/share/vgabios/vgabios.debug.bin
-
-#=======================================================================
-# VGA:
-# Here you can specify the display extension to be used. With the value
-# 'none' you can use standard VGA with no extension. Other supported
-# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
-#=======================================================================
-#vga: extension=cirrus
-vga: extension=vbe
-
-#=======================================================================
-# FLOPPYA:
-# Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're
-# booting from 'a' (or 'floppy').
-#
-# You can set the initial status of the media to 'ejected' or 'inserted'.
-#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
-#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
-#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
-#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
-#   floppya: 360k=path, status=inserted   (360K  5.25" media)
-#   floppya: 320k=path, status=inserted   (320K  5.25" media)
-#   floppya: 180k=path, status=inserted   (180K  5.25" media)
-#   floppya: 160k=path, status=inserted   (160K  5.25" media)
-#   floppya: image=path, status=inserted  (guess media type from image size)
-#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
-#
-# The path should be the name of a disk image file.  On Unix, you can use a raw
-# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
-# such as a: or b: as the path.  The parameter 'image' works with image files
-# only. In that case the size must match one of the supported types.
-# The parameter 'type' can be used to enable the floppy drive without media
-# and status specified. Usually the drive type is set up based on the media type.
-#=======================================================================
-#floppya: 1_44=/dev/fd0, status=inserted
-#floppya: image=../1.44, status=inserted
-#floppya: 1_44=/dev/fd0H1440, status=inserted
-#floppya: 1_2=../1_2, status=inserted
-#floppya: 1_44=a:, status=inserted
-#floppya: 1_44=a.img, status=inserted
-#floppya: 1_44=/dev/rfd0a, status=inserted
-#floppya: 1_44=bootdisk.vmi, status=inserted
-#floppya: 1_44=oostubs/guarded.vmi, status=inserted
-
-#=======================================================================
-# FLOPPYB:
-# See FLOPPYA above for syntax
-#=======================================================================
-#floppyb: 1_44=b:, status=inserted
-#floppyb: 1_44=b.img, status=inserted
-
-#=======================================================================
-# ATA0, ATA1, ATA2, ATA3
-# ATA controller for hard disks and cdroms
-#
-# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
-# 
-# These options enables up to 4 ata channels. For each channel
-# the two base io addresses and the irq must be specified.
-# 
-# ata0 and ata1 are enabled by default with the values shown below
-#
-# Examples:
-#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
-#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-
-#=======================================================================
-# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
-#
-# This defines the type and characteristics of all attached ata devices:
-#   type=       type of attached device [disk|cdrom] 
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile]
-#   path=       path of the image
-#   cylinders=  only valid for disks
-#   heads=      only valid for disks
-#   spt=        only valid for disks
-#   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
-#   model=      string returned by identify device command
-#   journal=    optional filename of the redolog for undoable and volatile disks
-#
-# Point this at a hard disk image file, cdrom iso file, or physical cdrom
-# device.  To create a hard disk image, try running bximage.  It will help you
-# choose the size and then suggest a line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# The path is mandatory for hard disks. Disk geometry autodetection works with
-# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
-# using  heads=16 and spt=63). For other hard disk images and modes the
-# cylinders, heads, and spt are mandatory. In all cases the disk size reported
-# from the image must be exactly C*H*S*512.
-#
-# Default values are:
-#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
-#
-# The biosdetect option has currently no effect on the bios
-#
-# Examples:
-#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
-#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
-#=======================================================================
-#ata0-master: type=disk, mode=flat, path="d.sample"
-#ata0-master: type=disk, mode=flat, path="$HOME/.bochs/guest.hd0", cylinders=#cylinders#, heads=16, spt=63
-#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
-ata0-slave: type=cdrom, path=@BOCHS_ISO_IMAGE@, status=inserted
-
-#=======================================================================
-# BOOT:
-# This defines the boot sequence. Now you can specify up to 3 boot drives,
-# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
-# Legacy 'a' and 'c' are also supported.
-# Examples:
-#   boot: floppy
-#   boot: cdrom, disk
-#   boot: network, disk
-#   boot: cdrom, floppy, disk
-#=======================================================================
-#boot: floppy
-#boot: disk
-boot: cdrom
-
-#=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time 
-#  value as returned by the time(2) system call. If no time0 value is 
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-# 
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=realtime, time0=local
-
-
-#=======================================================================
-# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
-# Enables or disables the 0xaa55 signature check on boot floppies
-# Defaults to disabled=0
-# Examples:
-#   floppy_bootsig_check: disabled=0
-#   floppy_bootsig_check: disabled=1
-#=======================================================================
-floppy_bootsig_check: disabled=0
-
-#=======================================================================
-# LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbiage
-# to be written to. If you don't use this option or set the filename to
-# '-' the output is written to the console. If you really don't want it,
-# make it "/dev/null" (Unix) or "nul" (win32). :^(
-#
-# Examples:
-#   log: ./bochs.out
-#   log: /dev/tty
-#=======================================================================
-#log: /dev/stdout
-#log: /dev/null
-#log: /tmp/bochsout.txt
-log: bochsout.txt
-
-#=======================================================================
-# LOGPREFIX:
-# This handles the format of the string prepended to each log line.
-# You may use those special tokens :
-#   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
-#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
-#   %d : 5 characters string of the device, between brackets
-# 
-# Default : %t%e%d
-# Examples:
-#   logprefix: %t-%e-@%i-%d
-#   logprefix: %i%e%d
-#=======================================================================
-#logprefix: %t%e%d
-
-#=======================================================================
-# LOG CONTROLS
-#
-# Bochs now has four severity levels for event logging.
-#   panic: cannot proceed.  If you choose to continue after a panic, 
-#          don't be surprised if you get strange behavior or crashes.
-#   error: something went wrong, but it is probably safe to continue the
-#          simulation.
-#   info: interesting or useful messages.
-#   debug: messages useful only when debugging the code.  This may
-#          spit out thousands per second.
-#
-# For events of each level, you can choose to crash, report, or ignore.
-# TODO: allow choice based on the facility: e.g. crash on panics from
-#       everything except the cdrom, and only report those.
-#
-# If you are experiencing many panics, it can be helpful to change
-# the panic action to report instead of fatal.  However, be aware
-# that anything executed after a panic is uncharted territory and can 
-# cause bochs to become unstable.  The panic is a "graceful exit," so
-# if you disable it you may get a spectacular disaster instead.
-#=======================================================================
-#panic: action=fatal
-panic: action=ignore
-error: action=ignore
-info: action=ignore
-debug: action=ignore
-#pass: action=fatal
-
-#=======================================================================
-# DEBUGGER_LOG:
-# Give the path of the log file you'd like Bochs to log debugger output.
-# If you really don't want it, make it /dev/null or '-'. :^(
-#
-# Examples:
-#   debugger_log: ./debugger.out
-#=======================================================================
-#debugger_log: /dev/null
-#debugger_log: debugger.out
-debugger_log: -
-
-#=======================================================================
-# COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
-# window using the `tty' command, and use that as the `dev' parameter.
-# Then do `sleep 1000000' in the com1 window to keep the shell from
-# messing with things, and run bochs in the other window.  Serial I/O to
-# com1 (port 0x3f8) will all go to the other window.
-# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
-# client or server. In client mode it connects to an already running server (if
-# connection fails Bochs treats com port as not connected). In server mode it
-# opens socket/named pipe and waits until a client application connects to it
-# before starting simulation. This mode is useful for remote debugging (e.g.
-# with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
-# Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
-#
-# Examples:
-#   com1: enabled=1, mode=null
-#   com1: enabled=1, mode=mouse
-#   com2: enabled=1, mode=file, dev=serial.out
-#   com3: enabled=1, mode=raw, dev=com1
-#   com3: enabled=1, mode=socket-client, dev=localhost:8888
-#   com3: enabled=1, mode=socket-server, dev=localhost:8888
-#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
-#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
-#=======================================================================
-#com1: enabled=1, mode=term, dev=/dev/ttyS0
-
-
-#=======================================================================
-# PARPORT1, PARPORT2:
-# This defines a parallel (printer) port. When turned on and an output file is
-# defined the emulated printer port sends characters printed by the guest OS
-# into the output file. On some platforms a device filename can be used to
-# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
-#
-# Examples:
-#   parport1: enabled=1, file="parport.out"
-#   parport2: enabled=1, file="/dev/lp0"
-#   parport1: enabled=0
-#=======================================================================
-#parport1: enabled=1, file="/dev/lp0"
-
-#=======================================================================
-# SB16:
-# This defines the SB16 sound emulation. It can have several of the
-# following properties.
-# All properties are in the format sb16: property=value
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
-# loglevel:
-#      0=no log
-#      1=resource changes, midi program and bank changes
-#      2=severe errors
-#      3=all errors
-#      4=all errors plus all port accesses
-#      5=all errors and port accesses plus a lot of extra info
-# dmatimer:
-#      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continuous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for the IPS parameter of the CPU option.
-#
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
-#=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=/dev/stdout, dmatimer=600000
-
-#=======================================================================
-# VGA_UPDATE_INTERVAL:
-# Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
-# you must tweak the 'cpu: ips=N' directive to be as close to the number
-# of emulated instructions-per-second your workstation can do, for this
-# to be accurate.
-#
-# Examples:
-#   vga_update_interval: 250000
-#=======================================================================
-vga_update_interval: 300000
-
-# using for Winstone '98 tests
-#vga_update_interval:  100000
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works 
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# The Bochs gui creates mouse "events" unless the 'enabled' option is
-# set to 0. The hardware emulation itself is not disabled by this.
-# Unless you have a particular reason for enabling the mouse by default,
-# it is recommended that you leave it off. You can also toggle the mouse
-# usage at runtime (control key + middle mouse button on X11, SDL,
-# wxWidgets and Win32).
-# With the mouse type option you can select the type of mouse to emulate.
-# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
-# or 'usb_ohci' option (requires PCI and USB support).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: enabled=1, type=imps2
-#   mouse: enabled=1, type=serial
-#   mouse: enabled=0
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# ne2k: NE2000 compatible ethernet adapter
-#
-# Examples:
-# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
-# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
-#
-# mac: The MAC address MUST NOT match the address of any machine on the net.
-# Also, the first byte must be an even number (bit 0 set means a multicast
-# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
-# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
-# be other restrictions too.  To be safe, just use the b0:c4... address.
-#
-# ethdev: The ethdev value is the name of the network interface on your host
-# platform.  On UNIX machines, you can get the name by running ifconfig.  On
-# Windows machines, you must run niclist to get the name of the ethdev.
-# Niclist source code is in misc/niclist.c and it is included in Windows 
-# binary releases.
-#
-# script: The script value is optional, and is the name of a script that 
-# is executed after bochs initialize the network interface. You can use 
-# this script to configure this network interface, or enable masquerading.
-# This is mainly useful for the tun/tap devices that only exist during
-# Bochs execution. The network interface name is supplied to the script
-# as first parameter
-#
-# If you don't want to make connections to any physical networks,
-# you can use the following 'ethmod's to simulate a virtual network.
-#   null: All packets are discarded, but logged to a few files.
-#   arpback: ARP is simulated. Disabled by default.
-#   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
-#         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the ethdev value for the root directory and doesn't
-#         overwrite files.
-#
-#=======================================================================
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-
-#=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
-#
-# Example:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
-# supports the same networking modules as the NE2000 adapter. In addition to
-# this, it must be assigned to a PCI slot.
-#=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
-
-#=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a 
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-# 
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-#keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-de.map
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# I440FXSUPPORT:
-# This option controls the presence of the i440FX PCI chipset. You can
-# also specify the devices connected to PCI slots. Up to 5 slots are
-# available now. These devices are currently supported: ne2k, pcivga,
-# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
-# support you'll have the additional choice 'cirrus'.
-#
-# Example:
-#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
-#=======================================================================
-i440fxsupport: enabled=1
-
-#=======================================================================
-# USB_UHCI:
-# This option controls the presence of the USB root hub which is a part
-# of the i440FX PCI chipset. With the portX option you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer').
-#
-# If you connect the mouse or tablet to one of the ports, Bochs forwards the
-# mouse movement data to the USB device instead of the selected mouse type.
-# When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
-#
-# To connect a flat image as an USB hardisk you can use the 'disk' device with
-# the path to the image separated with a colon (see below). To emulate an USB
-# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
-# device name also separated with a colon.
-#
-# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
-# to the root hub. To specify the number of ports you have to add the value
-# separated with a colon. Connecting devices to the external hub ports is only
-# available in the runtime configuration.
-#
-# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
-# sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
-#=======================================================================
-#usb_uhci: enabled=1
-#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
-#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
-
-#=======================================================================
-# USB_OHCI:
-# This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot.
-#=======================================================================
-#usb_ohci: enabled=1
-#usb_ohci: enabled=1, port1=printer:usbprinter.bin
-
-#=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
-#=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
-
-#=======================================================================
-# MAGIC_BREAK:
-# This enables the "magic breakpoint" feature when using the debugger.
-# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
-# debugger mode. This might be useful for software development.
-#
-# Example:
-#   magic_break: enabled=1
-#=======================================================================
-#magic_break: enabled=1
-
-#=======================================================================
-# PORT_E9_HACK:
-# The 0xE9 port doesn't exists in normal ISA architecture. However, we
-# define a convention here, to display on the console of the system running
-# Bochs anything that is written to it. The idea is to provide debug output
-# very early when writing BIOS or OS code for example, without having to
-# bother with setting up a serial port or etc. Reading from port 0xE9 will
-# will return 0xe9 to let you know if the feature is available.
-# Leave this 0 unless you have a reason to use it.
-#
-# Example:
-#   port_e9_hack: enabled=1
-#=======================================================================
-#port_e9_hack: enabled=1
-
-#=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
-#
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
-#=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#text_snapshot_check: enabled=1
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-gdbstub: enabled=1, port=BOCHSGDBSTUBPORTNUMBER, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# PLUGIN_CTRL:
-# Controls the presence of optional plugins without a separate option.
-# By default all existing plugins are enabled. These plugins are currently
-# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
-# 'pci_ide', 'speaker' and 'unmapped'.
-#=======================================================================
-#plugin_ctrl: biosdev=0, speaker=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
diff --git a/02_filter/emu/bochsrc-term.in b/02_filter/emu/bochsrc-term.in
deleted file mode 100644
index 37448d4b8b259d69522545815ece54a07a059f24..0000000000000000000000000000000000000000
--- a/02_filter/emu/bochsrc-term.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# You may now use double quotes around pathnames, in case
-# your pathname includes spaces.
-
-#=======================================================================
-# CONFIG_INTERFACE
-#
-# The configuration interface is a series of menus or dialog boxes that
-# allows you to change all the settings that control Bochs's behavior.
-# Depending on the platform there are up to 3 choices of configuration
-# interface: a text mode version called "textconfig" and two graphical versions
-# called "win32config" and "wx".  The text mode version uses stdin/stdout and
-# is always compiled in, unless Bochs is compiled for wx only. The choice
-# "win32config" is only available on win32 and it is the default there.
-# The choice "wx" is only available when you use "--with-wx" on the configure
-# command.  If you do not write a config_interface line, Bochs will
-# choose a default for you.
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#=======================================================================
-config_interface: textconfig
-#config_interface: wx
-
-#=======================================================================
-# DISPLAY_LIBRARY
-#
-# The display library is the code that displays the Bochs VGA screen.  Bochs 
-# has a selection of about 10 different display library implementations for 
-# different platforms.  If you run configure with multiple --with-* options, 
-# the display_library command lets you choose which one you want to run with.
-# If you do not write a display_library line, Bochs will choose a default for
-# you.
-#
-# The choices are: 
-#   x              use X windows interface, cross platform
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
-#   term           text only, uses curses/ncurses library, cross platform
-#   wx             use wxWidgets library, cross platform
-#   nogui          no display at all
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#
-# Specific options:
-# Some display libraries now support specific option to control their
-# behaviour. See the examples below for currently supported options.
-#=======================================================================
-#display_library: nogui
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
-display_library: term
-#display_library: wx
-#display_library: x
-#display_library: x, options="hideIPS" # disable IPS output in status bar
-#display_library: x, options="gui_debug" # use GTK debugger gui
-
-#=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-romimage: file=@BOCHS_BIOS@
-#romimage: file=bios/seabios-0.5.1.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-
-#=======================================================================
-# CPU:
-# This defines cpu-related parameters inside Bochs:
-#
-#  COUNT:
-#  Set the number of processors:cores per processor:threads per core 
-#  when Bochs is compiled for SMP emulation.
-#  Bochs currently supports up to 8 threads running simultaniosly. 
-#  If Bochs is compiled without SMP support, it won't accept values 
-#  different from 1.
-#
-#  QUANTUM:
-#  Maximum amount of instructions allowed to execute by processor before
-#  returning control to another cpu. This option exists only in Bochs 
-#  binary compiled with SMP support.
-#
-#  RESET_ON_TRIPLE_FAULT:
-#  Reset the CPU when triple fault occur (highly recommended) rather than
-#  PANIC. Remember that if you trying to continue after triple fault the 
-#  simulation will be completely bogus !
-#
-#  MSRS:
-#  Define path to user CPU Model Specific Registers (MSRs) specification.
-#  See example in msrs.def.
-#
-#  IGNORE_BAD_MSRS:
-#  Ignore MSR references that Bochs does not understand; print a warning
-#  message instead of generating #GP exception. This option is enabled
-#  by default but will not be avaiable if configurable MSRs are enabled.
-#
-#  IPS:
-#  Emulated Instructions Per Second. This is the number of IPS that bochs
-#  is capable of running on your machine. You can recompile Bochs with
-#  --enable-show-ips option enabled, to find your host's capability.
-#  Measured IPS value will then be logged into your log file or shown
-#  in the status bar (if supported by the gui).
-#
-#  IPS is used to calibrate many time-dependent events within the bochs 
-#  simulation.  For example, changing IPS affects the frequency of VGA
-#  updates, the duration of time before a key starts to autorepeat, and
-#  the measurement of BogoMips and other benchmarks.
-#
-#  Examples:
-#
-#  Bochs Machine/Compiler                                 Mips
-# ____________________________________________________________________
-#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
-#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
-#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
-#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
-#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
-#=======================================================================
-cpu: count=1, ips=@BOCHS_CPU_SPEED_MHZ@000000, reset_on_triple_fault=0, ignore_bad_msrs=1, msrs="msrs.def"
-
-#=======================================================================
-# CPUID:
-#
-# This defines features and functionality supported by Bochs emulated CPU:
-#
-#  MMX:
-#  Select MMX instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
-#
-#  SEP:
-#  Select SYSENTER/SYSEXIT instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  SSE:
-#  Select SSE instruction set support.
-#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XAPIC:
-#  Select XAPIC extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  AES:
-#  Select AES instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  MOVBE:
-#  Select MOVBE Intel(R) Atom instruction support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XSAVE:
-#  Select XSAVE extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  1G_PAGES:
-#  Enable 1G page size support in long mode.
-#  This option exists only if Bochs compiled with x86-64 support.
-#
-#  MWAIT_IS_NOP:
-#  When this option is enabled MWAIT will not put the CPU into a sleep state.
-#  This option exists only if Bochs compiled with --enable-monitor-mwait.
-#
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#=======================================================================
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-
-#=======================================================================
-# MEMORY
-# Set the amount of physical memory you want to emulate.
-#
-# GUEST:
-# Set amount of guest physical memory to emulate. The default is 32MB,
-# the maximum amount limited only by physical address space limitations.
-#
-# HOST:
-# Set amount of host memory you want to allocate for guest RAM emulation.
-# It is possible to allocate less memory than you want to emulate in guest
-# system. This will fake guest to see the non-existing memory. Once guest
-# system touches new memory block it will be dynamically taken from the
-# memory pool. You will be warned (by FATAL PANIC) in case guest already
-# used all allocated host memory and wants more.
-#
-#=======================================================================
-#memory: guest=512, host=256
-memory: guest=@BOCHS_GUEST_RAM@, host=@BOCHS_HOST_RAM@
-
-#=======================================================================
-# OPTROMIMAGE[1-4]:
-# You may now load up to 4 optional ROM images. Be sure to use a 
-# read-only area, typically between C8000 and EFFFF. These optional
-# ROM images should not overwrite the rombios (located at
-# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
-# Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA) and a valid checksum.
-# It can also be a convenient way to upload some arbitrary code/data
-# in the simulation, that can be retrieved by the boot loader
-#=======================================================================
-#optromimage1: file=optionalrom.bin, address=0xd0000
-#optromimage2: file=optionalrom.bin, address=0xd1000
-#optromimage3: file=optionalrom.bin, address=0xd2000
-#optromimage4: file=optionalrom.bin, address=0xd3000
-
-#optramimage1: file=/path/file1.img, address=0x0010000
-#optramimage2: file=/path/file2.img, address=0x0020000
-#optramimage3: file=/path/file3.img, address=0x0030000
-#optramimage4: file=/path/file4.img, address=0x0040000
-
-#=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-vgaromimage: file=@BOCHS_VGA_IMAGE@
-#vgaromimage: file=/usr/share/vgabios/vgabios.debug.bin
-
-#=======================================================================
-# VGA:
-# Here you can specify the display extension to be used. With the value
-# 'none' you can use standard VGA with no extension. Other supported
-# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
-#=======================================================================
-#vga: extension=cirrus
-vga: extension=vbe
-
-#=======================================================================
-# FLOPPYA:
-# Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're
-# booting from 'a' (or 'floppy').
-#
-# You can set the initial status of the media to 'ejected' or 'inserted'.
-#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
-#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
-#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
-#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
-#   floppya: 360k=path, status=inserted   (360K  5.25" media)
-#   floppya: 320k=path, status=inserted   (320K  5.25" media)
-#   floppya: 180k=path, status=inserted   (180K  5.25" media)
-#   floppya: 160k=path, status=inserted   (160K  5.25" media)
-#   floppya: image=path, status=inserted  (guess media type from image size)
-#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
-#
-# The path should be the name of a disk image file.  On Unix, you can use a raw
-# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
-# such as a: or b: as the path.  The parameter 'image' works with image files
-# only. In that case the size must match one of the supported types.
-# The parameter 'type' can be used to enable the floppy drive without media
-# and status specified. Usually the drive type is set up based on the media type.
-#=======================================================================
-#floppya: 1_44=/dev/fd0, status=inserted
-#floppya: image=../1.44, status=inserted
-#floppya: 1_44=/dev/fd0H1440, status=inserted
-#floppya: 1_2=../1_2, status=inserted
-#floppya: 1_44=a:, status=inserted
-#floppya: 1_44=a.img, status=inserted
-#floppya: 1_44=/dev/rfd0a, status=inserted
-#floppya: 1_44=bootdisk.vmi, status=inserted
-#floppya: 1_44=oostubs/guarded.vmi, status=inserted
-
-#=======================================================================
-# FLOPPYB:
-# See FLOPPYA above for syntax
-#=======================================================================
-#floppyb: 1_44=b:, status=inserted
-#floppyb: 1_44=b.img, status=inserted
-
-#=======================================================================
-# ATA0, ATA1, ATA2, ATA3
-# ATA controller for hard disks and cdroms
-#
-# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
-# 
-# These options enables up to 4 ata channels. For each channel
-# the two base io addresses and the irq must be specified.
-# 
-# ata0 and ata1 are enabled by default with the values shown below
-#
-# Examples:
-#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
-#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-
-#=======================================================================
-# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
-#
-# This defines the type and characteristics of all attached ata devices:
-#   type=       type of attached device [disk|cdrom] 
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile]
-#   path=       path of the image
-#   cylinders=  only valid for disks
-#   heads=      only valid for disks
-#   spt=        only valid for disks
-#   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
-#   model=      string returned by identify device command
-#   journal=    optional filename of the redolog for undoable and volatile disks
-#
-# Point this at a hard disk image file, cdrom iso file, or physical cdrom
-# device.  To create a hard disk image, try running bximage.  It will help you
-# choose the size and then suggest a line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# The path is mandatory for hard disks. Disk geometry autodetection works with
-# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
-# using  heads=16 and spt=63). For other hard disk images and modes the
-# cylinders, heads, and spt are mandatory. In all cases the disk size reported
-# from the image must be exactly C*H*S*512.
-#
-# Default values are:
-#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
-#
-# The biosdetect option has currently no effect on the bios
-#
-# Examples:
-#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
-#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
-#=======================================================================
-#ata0-master: type=disk, mode=flat, path="d.sample"
-#ata0-master: type=disk, mode=flat, path="$HOME/.bochs/guest.hd0", cylinders=#cylinders#, heads=16, spt=63
-#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
-ata0-slave: type=cdrom, path=@BOCHS_ISO_IMAGE@, status=inserted
-
-#=======================================================================
-# BOOT:
-# This defines the boot sequence. Now you can specify up to 3 boot drives,
-# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
-# Legacy 'a' and 'c' are also supported.
-# Examples:
-#   boot: floppy
-#   boot: cdrom, disk
-#   boot: network, disk
-#   boot: cdrom, floppy, disk
-#=======================================================================
-#boot: floppy
-#boot: disk
-boot: cdrom
-
-#=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time 
-#  value as returned by the time(2) system call. If no time0 value is 
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-# 
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=none, time0=local
-
-
-#=======================================================================
-# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
-# Enables or disables the 0xaa55 signature check on boot floppies
-# Defaults to disabled=0
-# Examples:
-#   floppy_bootsig_check: disabled=0
-#   floppy_bootsig_check: disabled=1
-#=======================================================================
-floppy_bootsig_check: disabled=0
-
-#=======================================================================
-# LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbiage
-# to be written to. If you don't use this option or set the filename to
-# '-' the output is written to the console. If you really don't want it,
-# make it "/dev/null" (Unix) or "nul" (win32). :^(
-#
-# Examples:
-#   log: ./bochs.out
-#   log: /dev/tty
-#=======================================================================
-#log: /dev/stdout
-#log: /dev/null
-#log: /tmp/bochsout.txt
-log: bochsout.txt
-
-#=======================================================================
-# LOGPREFIX:
-# This handles the format of the string prepended to each log line.
-# You may use those special tokens :
-#   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
-#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
-#   %d : 5 characters string of the device, between brackets
-# 
-# Default : %t%e%d
-# Examples:
-#   logprefix: %t-%e-@%i-%d
-#   logprefix: %i%e%d
-#=======================================================================
-#logprefix: %t%e%d
-
-#=======================================================================
-# LOG CONTROLS
-#
-# Bochs now has four severity levels for event logging.
-#   panic: cannot proceed.  If you choose to continue after a panic, 
-#          don't be surprised if you get strange behavior or crashes.
-#   error: something went wrong, but it is probably safe to continue the
-#          simulation.
-#   info: interesting or useful messages.
-#   debug: messages useful only when debugging the code.  This may
-#          spit out thousands per second.
-#
-# For events of each level, you can choose to crash, report, or ignore.
-# TODO: allow choice based on the facility: e.g. crash on panics from
-#       everything except the cdrom, and only report those.
-#
-# If you are experiencing many panics, it can be helpful to change
-# the panic action to report instead of fatal.  However, be aware
-# that anything executed after a panic is uncharted territory and can 
-# cause bochs to become unstable.  The panic is a "graceful exit," so
-# if you disable it you may get a spectacular disaster instead.
-#=======================================================================
-#panic: action=fatal
-panic: action=ignore
-error: action=ignore
-info: action=ignore
-debug: action=ignore
-#pass: action=fatal
-
-#=======================================================================
-# DEBUGGER_LOG:
-# Give the path of the log file you'd like Bochs to log debugger output.
-# If you really don't want it, make it /dev/null or '-'. :^(
-#
-# Examples:
-#   debugger_log: ./debugger.out
-#=======================================================================
-#debugger_log: /dev/null
-#debugger_log: debugger.out
-debugger_log: -
-
-#=======================================================================
-# COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
-# window using the `tty' command, and use that as the `dev' parameter.
-# Then do `sleep 1000000' in the com1 window to keep the shell from
-# messing with things, and run bochs in the other window.  Serial I/O to
-# com1 (port 0x3f8) will all go to the other window.
-# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
-# client or server. In client mode it connects to an already running server (if
-# connection fails Bochs treats com port as not connected). In server mode it
-# opens socket/named pipe and waits until a client application connects to it
-# before starting simulation. This mode is useful for remote debugging (e.g.
-# with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
-# Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
-#
-# Examples:
-#   com1: enabled=1, mode=null
-#   com1: enabled=1, mode=mouse
-#   com2: enabled=1, mode=file, dev=serial.out
-#   com3: enabled=1, mode=raw, dev=com1
-#   com3: enabled=1, mode=socket-client, dev=localhost:8888
-#   com3: enabled=1, mode=socket-server, dev=localhost:8888
-#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
-#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
-#=======================================================================
-#com1: enabled=1, mode=term, dev=/dev/ttyS0
-
-
-#=======================================================================
-# PARPORT1, PARPORT2:
-# This defines a parallel (printer) port. When turned on and an output file is
-# defined the emulated printer port sends characters printed by the guest OS
-# into the output file. On some platforms a device filename can be used to
-# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
-#
-# Examples:
-#   parport1: enabled=1, file="parport.out"
-#   parport2: enabled=1, file="/dev/lp0"
-#   parport1: enabled=0
-#=======================================================================
-#parport1: enabled=1, file="/dev/lp0"
-
-#=======================================================================
-# SB16:
-# This defines the SB16 sound emulation. It can have several of the
-# following properties.
-# All properties are in the format sb16: property=value
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
-# loglevel:
-#      0=no log
-#      1=resource changes, midi program and bank changes
-#      2=severe errors
-#      3=all errors
-#      4=all errors plus all port accesses
-#      5=all errors and port accesses plus a lot of extra info
-# dmatimer:
-#      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continuous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for the IPS parameter of the CPU option.
-#
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
-#=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=/dev/stdout, dmatimer=600000
-
-#=======================================================================
-# VGA_UPDATE_INTERVAL:
-# Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
-# you must tweak the 'cpu: ips=N' directive to be as close to the number
-# of emulated instructions-per-second your workstation can do, for this
-# to be accurate.
-#
-# Examples:
-#   vga_update_interval: 250000
-#=======================================================================
-vga_update_interval: 300000
-
-# using for Winstone '98 tests
-#vga_update_interval:  100000
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works 
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# The Bochs gui creates mouse "events" unless the 'enabled' option is
-# set to 0. The hardware emulation itself is not disabled by this.
-# Unless you have a particular reason for enabling the mouse by default,
-# it is recommended that you leave it off. You can also toggle the mouse
-# usage at runtime (control key + middle mouse button on X11, SDL,
-# wxWidgets and Win32).
-# With the mouse type option you can select the type of mouse to emulate.
-# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
-# or 'usb_ohci' option (requires PCI and USB support).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: enabled=1, type=imps2
-#   mouse: enabled=1, type=serial
-#   mouse: enabled=0
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# ne2k: NE2000 compatible ethernet adapter
-#
-# Examples:
-# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
-# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
-#
-# mac: The MAC address MUST NOT match the address of any machine on the net.
-# Also, the first byte must be an even number (bit 0 set means a multicast
-# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
-# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
-# be other restrictions too.  To be safe, just use the b0:c4... address.
-#
-# ethdev: The ethdev value is the name of the network interface on your host
-# platform.  On UNIX machines, you can get the name by running ifconfig.  On
-# Windows machines, you must run niclist to get the name of the ethdev.
-# Niclist source code is in misc/niclist.c and it is included in Windows 
-# binary releases.
-#
-# script: The script value is optional, and is the name of a script that 
-# is executed after bochs initialize the network interface. You can use 
-# this script to configure this network interface, or enable masquerading.
-# This is mainly useful for the tun/tap devices that only exist during
-# Bochs execution. The network interface name is supplied to the script
-# as first parameter
-#
-# If you don't want to make connections to any physical networks,
-# you can use the following 'ethmod's to simulate a virtual network.
-#   null: All packets are discarded, but logged to a few files.
-#   arpback: ARP is simulated. Disabled by default.
-#   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
-#         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the ethdev value for the root directory and doesn't
-#         overwrite files.
-#
-#=======================================================================
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-
-#=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
-#
-# Example:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
-# supports the same networking modules as the NE2000 adapter. In addition to
-# this, it must be assigned to a PCI slot.
-#=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
-
-#=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a 
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-# 
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-#keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-de.map
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# I440FXSUPPORT:
-# This option controls the presence of the i440FX PCI chipset. You can
-# also specify the devices connected to PCI slots. Up to 5 slots are
-# available now. These devices are currently supported: ne2k, pcivga,
-# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
-# support you'll have the additional choice 'cirrus'.
-#
-# Example:
-#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
-#=======================================================================
-i440fxsupport: enabled=1
-
-#=======================================================================
-# USB_UHCI:
-# This option controls the presence of the USB root hub which is a part
-# of the i440FX PCI chipset. With the portX option you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer').
-#
-# If you connect the mouse or tablet to one of the ports, Bochs forwards the
-# mouse movement data to the USB device instead of the selected mouse type.
-# When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
-#
-# To connect a flat image as an USB hardisk you can use the 'disk' device with
-# the path to the image separated with a colon (see below). To emulate an USB
-# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
-# device name also separated with a colon.
-#
-# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
-# to the root hub. To specify the number of ports you have to add the value
-# separated with a colon. Connecting devices to the external hub ports is only
-# available in the runtime configuration.
-#
-# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
-# sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
-#=======================================================================
-#usb_uhci: enabled=1
-#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
-#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
-
-#=======================================================================
-# USB_OHCI:
-# This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot.
-#=======================================================================
-#usb_ohci: enabled=1
-#usb_ohci: enabled=1, port1=printer:usbprinter.bin
-
-#=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
-#=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
-
-#=======================================================================
-# MAGIC_BREAK:
-# This enables the "magic breakpoint" feature when using the debugger.
-# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
-# debugger mode. This might be useful for software development.
-#
-# Example:
-#   magic_break: enabled=1
-#=======================================================================
-#magic_break: enabled=1
-
-#=======================================================================
-# PORT_E9_HACK:
-# The 0xE9 port doesn't exists in normal ISA architecture. However, we
-# define a convention here, to display on the console of the system running
-# Bochs anything that is written to it. The idea is to provide debug output
-# very early when writing BIOS or OS code for example, without having to
-# bother with setting up a serial port or etc. Reading from port 0xE9 will
-# will return 0xe9 to let you know if the feature is available.
-# Leave this 0 unless you have a reason to use it.
-#
-# Example:
-#   port_e9_hack: enabled=1
-#=======================================================================
-#port_e9_hack: enabled=1
-
-#=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
-#
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
-#=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#text_snapshot_check: enabled=1
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# PLUGIN_CTRL:
-# Controls the presence of optional plugins without a separate option.
-# By default all existing plugins are enabled. These plugins are currently
-# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
-# 'pci_ide', 'speaker' and 'unmapped'.
-#=======================================================================
-#plugin_ctrl: biosdev=0, speaker=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
diff --git a/02_filter/emu/bochsrc.in b/02_filter/emu/bochsrc.in
deleted file mode 100644
index 0cff5e5848085de1159b72d45e8cea4b5a0b04f5..0000000000000000000000000000000000000000
--- a/02_filter/emu/bochsrc.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# You may now use double quotes around pathnames, in case
-# your pathname includes spaces.
-
-#=======================================================================
-# CONFIG_INTERFACE
-#
-# The configuration interface is a series of menus or dialog boxes that
-# allows you to change all the settings that control Bochs's behavior.
-# Depending on the platform there are up to 3 choices of configuration
-# interface: a text mode version called "textconfig" and two graphical versions
-# called "win32config" and "wx".  The text mode version uses stdin/stdout and
-# is always compiled in, unless Bochs is compiled for wx only. The choice
-# "win32config" is only available on win32 and it is the default there.
-# The choice "wx" is only available when you use "--with-wx" on the configure
-# command.  If you do not write a config_interface line, Bochs will
-# choose a default for you.
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#=======================================================================
-config_interface: textconfig
-#config_interface: wx
-
-#=======================================================================
-# DISPLAY_LIBRARY
-#
-# The display library is the code that displays the Bochs VGA screen.  Bochs 
-# has a selection of about 10 different display library implementations for 
-# different platforms.  If you run configure with multiple --with-* options, 
-# the display_library command lets you choose which one you want to run with.
-# If you do not write a display_library line, Bochs will choose a default for
-# you.
-#
-# The choices are: 
-#   x              use X windows interface, cross platform
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
-#   term           text only, uses curses/ncurses library, cross platform
-#   wx             use wxWidgets library, cross platform
-#   nogui          no display at all
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#
-# Specific options:
-# Some display libraries now support specific option to control their
-# behaviour. See the examples below for currently supported options.
-#=======================================================================
-#display_library: nogui
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
-#display_library: term
-#display_library: wx
-display_library: x
-#display_library: x, options="hideIPS" # disable IPS output in status bar
-#display_library: x, options="gui_debug" # use GTK debugger gui
-
-#=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-romimage: file=@BOCHS_BIOS@
-#romimage: file=bios/seabios-0.5.1.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-
-#=======================================================================
-# CPU:
-# This defines cpu-related parameters inside Bochs:
-#
-#  COUNT:
-#  Set the number of processors:cores per processor:threads per core 
-#  when Bochs is compiled for SMP emulation.
-#  Bochs currently supports up to 8 threads running simultaniosly. 
-#  If Bochs is compiled without SMP support, it won't accept values 
-#  different from 1.
-#
-#  QUANTUM:
-#  Maximum amount of instructions allowed to execute by processor before
-#  returning control to another cpu. This option exists only in Bochs 
-#  binary compiled with SMP support.
-#
-#  RESET_ON_TRIPLE_FAULT:
-#  Reset the CPU when triple fault occur (highly recommended) rather than
-#  PANIC. Remember that if you trying to continue after triple fault the 
-#  simulation will be completely bogus !
-#
-#  MSRS:
-#  Define path to user CPU Model Specific Registers (MSRs) specification.
-#  See example in msrs.def.
-#
-#  IGNORE_BAD_MSRS:
-#  Ignore MSR references that Bochs does not understand; print a warning
-#  message instead of generating #GP exception. This option is enabled
-#  by default but will not be avaiable if configurable MSRs are enabled.
-#
-#  IPS:
-#  Emulated Instructions Per Second. This is the number of IPS that bochs
-#  is capable of running on your machine. You can recompile Bochs with
-#  --enable-show-ips option enabled, to find your host's capability.
-#  Measured IPS value will then be logged into your log file or shown
-#  in the status bar (if supported by the gui).
-#
-#  IPS is used to calibrate many time-dependent events within the bochs 
-#  simulation.  For example, changing IPS affects the frequency of VGA
-#  updates, the duration of time before a key starts to autorepeat, and
-#  the measurement of BogoMips and other benchmarks.
-#
-#  Examples:
-#
-#  Bochs Machine/Compiler                                 Mips
-# ____________________________________________________________________
-#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
-#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
-#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
-#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
-#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
-#=======================================================================
-cpu: count=1, ips=@BOCHS_CPU_SPEED_MHZ@000000, reset_on_triple_fault=0, ignore_bad_msrs=1, msrs="msrs.def"
-
-#=======================================================================
-# CPUID:
-#
-# This defines features and functionality supported by Bochs emulated CPU:
-#
-#  MMX:
-#  Select MMX instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
-#
-#  SEP:
-#  Select SYSENTER/SYSEXIT instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  SSE:
-#  Select SSE instruction set support.
-#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XAPIC:
-#  Select XAPIC extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  AES:
-#  Select AES instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  MOVBE:
-#  Select MOVBE Intel(R) Atom instruction support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XSAVE:
-#  Select XSAVE extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  1G_PAGES:
-#  Enable 1G page size support in long mode.
-#  This option exists only if Bochs compiled with x86-64 support.
-#
-#  MWAIT_IS_NOP:
-#  When this option is enabled MWAIT will not put the CPU into a sleep state.
-#  This option exists only if Bochs compiled with --enable-monitor-mwait.
-#
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#=======================================================================
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-
-#=======================================================================
-# MEMORY
-# Set the amount of physical memory you want to emulate.
-#
-# GUEST:
-# Set amount of guest physical memory to emulate. The default is 32MB,
-# the maximum amount limited only by physical address space limitations.
-#
-# HOST:
-# Set amount of host memory you want to allocate for guest RAM emulation.
-# It is possible to allocate less memory than you want to emulate in guest
-# system. This will fake guest to see the non-existing memory. Once guest
-# system touches new memory block it will be dynamically taken from the
-# memory pool. You will be warned (by FATAL PANIC) in case guest already
-# used all allocated host memory and wants more.
-#
-#=======================================================================
-#memory: guest=512, host=256
-memory: guest=@BOCHS_GUEST_RAM@, host=@BOCHS_HOST_RAM@
-
-#=======================================================================
-# OPTROMIMAGE[1-4]:
-# You may now load up to 4 optional ROM images. Be sure to use a 
-# read-only area, typically between C8000 and EFFFF. These optional
-# ROM images should not overwrite the rombios (located at
-# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
-# Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA) and a valid checksum.
-# It can also be a convenient way to upload some arbitrary code/data
-# in the simulation, that can be retrieved by the boot loader
-#=======================================================================
-#optromimage1: file=optionalrom.bin, address=0xd0000
-#optromimage2: file=optionalrom.bin, address=0xd1000
-#optromimage3: file=optionalrom.bin, address=0xd2000
-#optromimage4: file=optionalrom.bin, address=0xd3000
-
-#optramimage1: file=/path/file1.img, address=0x0010000
-#optramimage2: file=/path/file2.img, address=0x0020000
-#optramimage3: file=/path/file3.img, address=0x0030000
-#optramimage4: file=/path/file4.img, address=0x0040000
-
-#=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-vgaromimage: file=@BOCHS_VGA_IMAGE@
-#vgaromimage: file=/usr/share/vgabios/vgabios.debug.bin
-
-#=======================================================================
-# VGA:
-# Here you can specify the display extension to be used. With the value
-# 'none' you can use standard VGA with no extension. Other supported
-# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
-#=======================================================================
-#vga: extension=cirrus
-vga: extension=vbe
-
-#=======================================================================
-# FLOPPYA:
-# Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're
-# booting from 'a' (or 'floppy').
-#
-# You can set the initial status of the media to 'ejected' or 'inserted'.
-#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
-#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
-#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
-#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
-#   floppya: 360k=path, status=inserted   (360K  5.25" media)
-#   floppya: 320k=path, status=inserted   (320K  5.25" media)
-#   floppya: 180k=path, status=inserted   (180K  5.25" media)
-#   floppya: 160k=path, status=inserted   (160K  5.25" media)
-#   floppya: image=path, status=inserted  (guess media type from image size)
-#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
-#
-# The path should be the name of a disk image file.  On Unix, you can use a raw
-# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
-# such as a: or b: as the path.  The parameter 'image' works with image files
-# only. In that case the size must match one of the supported types.
-# The parameter 'type' can be used to enable the floppy drive without media
-# and status specified. Usually the drive type is set up based on the media type.
-#=======================================================================
-#floppya: 1_44=/dev/fd0, status=inserted
-#floppya: image=../1.44, status=inserted
-#floppya: 1_44=/dev/fd0H1440, status=inserted
-#floppya: 1_2=../1_2, status=inserted
-#floppya: 1_44=a:, status=inserted
-#floppya: 1_44=a.img, status=inserted
-#floppya: 1_44=/dev/rfd0a, status=inserted
-#floppya: 1_44=bootdisk.vmi, status=inserted
-#floppya: 1_44=oostubs/guarded.vmi, status=inserted
-
-#=======================================================================
-# FLOPPYB:
-# See FLOPPYA above for syntax
-#=======================================================================
-#floppyb: 1_44=b:, status=inserted
-#floppyb: 1_44=b.img, status=inserted
-
-#=======================================================================
-# ATA0, ATA1, ATA2, ATA3
-# ATA controller for hard disks and cdroms
-#
-# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
-# 
-# These options enables up to 4 ata channels. For each channel
-# the two base io addresses and the irq must be specified.
-# 
-# ata0 and ata1 are enabled by default with the values shown below
-#
-# Examples:
-#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
-#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-
-#=======================================================================
-# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
-#
-# This defines the type and characteristics of all attached ata devices:
-#   type=       type of attached device [disk|cdrom] 
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile]
-#   path=       path of the image
-#   cylinders=  only valid for disks
-#   heads=      only valid for disks
-#   spt=        only valid for disks
-#   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
-#   model=      string returned by identify device command
-#   journal=    optional filename of the redolog for undoable and volatile disks
-#
-# Point this at a hard disk image file, cdrom iso file, or physical cdrom
-# device.  To create a hard disk image, try running bximage.  It will help you
-# choose the size and then suggest a line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# The path is mandatory for hard disks. Disk geometry autodetection works with
-# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
-# using  heads=16 and spt=63). For other hard disk images and modes the
-# cylinders, heads, and spt are mandatory. In all cases the disk size reported
-# from the image must be exactly C*H*S*512.
-#
-# Default values are:
-#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
-#
-# The biosdetect option has currently no effect on the bios
-#
-# Examples:
-#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
-#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
-#=======================================================================
-#ata0-master: type=disk, mode=flat, path="d.sample"
-#ata0-master: type=disk, mode=flat, path="$HOME/.bochs/guest.hd0", cylinders=#cylinders#, heads=16, spt=63
-#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
-ata0-slave: type=cdrom, path=@BOCHS_ISO_IMAGE@, status=inserted
-
-#=======================================================================
-# BOOT:
-# This defines the boot sequence. Now you can specify up to 3 boot drives,
-# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
-# Legacy 'a' and 'c' are also supported.
-# Examples:
-#   boot: floppy
-#   boot: cdrom, disk
-#   boot: network, disk
-#   boot: cdrom, floppy, disk
-#=======================================================================
-#boot: floppy
-#boot: disk
-boot: cdrom
-
-#=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time 
-#  value as returned by the time(2) system call. If no time0 value is 
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-# 
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=realtime, time0=local
-
-
-#=======================================================================
-# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
-# Enables or disables the 0xaa55 signature check on boot floppies
-# Defaults to disabled=0
-# Examples:
-#   floppy_bootsig_check: disabled=0
-#   floppy_bootsig_check: disabled=1
-#=======================================================================
-floppy_bootsig_check: disabled=0
-
-#=======================================================================
-# LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbiage
-# to be written to. If you don't use this option or set the filename to
-# '-' the output is written to the console. If you really don't want it,
-# make it "/dev/null" (Unix) or "nul" (win32). :^(
-#
-# Examples:
-#   log: ./bochs.out
-#   log: /dev/tty
-#=======================================================================
-#log: /dev/stdout
-#log: /dev/null
-#log: /tmp/bochsout.txt
-log: -
-
-#=======================================================================
-# LOGPREFIX:
-# This handles the format of the string prepended to each log line.
-# You may use those special tokens :
-#   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
-#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
-#   %d : 5 characters string of the device, between brackets
-# 
-# Default : %t%e%d
-# Examples:
-#   logprefix: %t-%e-@%i-%d
-#   logprefix: %i%e%d
-#=======================================================================
-#logprefix: %t%e%d
-
-#=======================================================================
-# LOG CONTROLS
-#
-# Bochs now has four severity levels for event logging.
-#   panic: cannot proceed.  If you choose to continue after a panic, 
-#          don't be surprised if you get strange behavior or crashes.
-#   error: something went wrong, but it is probably safe to continue the
-#          simulation.
-#   info: interesting or useful messages.
-#   debug: messages useful only when debugging the code.  This may
-#          spit out thousands per second.
-#
-# For events of each level, you can choose to crash, report, or ignore.
-# TODO: allow choice based on the facility: e.g. crash on panics from
-#       everything except the cdrom, and only report those.
-#
-# If you are experiencing many panics, it can be helpful to change
-# the panic action to report instead of fatal.  However, be aware
-# that anything executed after a panic is uncharted territory and can 
-# cause bochs to become unstable.  The panic is a "graceful exit," so
-# if you disable it you may get a spectacular disaster instead.
-#=======================================================================
-#panic: action=fatal
-panic: action=ignore
-error: action=ignore
-info: action=ignore
-debug: action=ignore
-#pass: action=fatal
-
-#=======================================================================
-# DEBUGGER_LOG:
-# Give the path of the log file you'd like Bochs to log debugger output.
-# If you really don't want it, make it /dev/null or '-'. :^(
-#
-# Examples:
-#   debugger_log: ./debugger.out
-#=======================================================================
-#debugger_log: /dev/null
-#debugger_log: debugger.out
-debugger_log: -
-
-#=======================================================================
-# COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
-# window using the `tty' command, and use that as the `dev' parameter.
-# Then do `sleep 1000000' in the com1 window to keep the shell from
-# messing with things, and run bochs in the other window.  Serial I/O to
-# com1 (port 0x3f8) will all go to the other window.
-# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
-# client or server. In client mode it connects to an already running server (if
-# connection fails Bochs treats com port as not connected). In server mode it
-# opens socket/named pipe and waits until a client application connects to it
-# before starting simulation. This mode is useful for remote debugging (e.g.
-# with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
-# Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
-#
-# Examples:
-#   com1: enabled=1, mode=null
-#   com1: enabled=1, mode=mouse
-#   com2: enabled=1, mode=file, dev=serial.out
-#   com3: enabled=1, mode=raw, dev=com1
-#   com3: enabled=1, mode=socket-client, dev=localhost:8888
-#   com3: enabled=1, mode=socket-server, dev=localhost:8888
-#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
-#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
-#=======================================================================
-com1: enabled=1, mode=term, dev=BOCHSTTYNUM
-
-
-#=======================================================================
-# PARPORT1, PARPORT2:
-# This defines a parallel (printer) port. When turned on and an output file is
-# defined the emulated printer port sends characters printed by the guest OS
-# into the output file. On some platforms a device filename can be used to
-# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
-#
-# Examples:
-#   parport1: enabled=1, file="parport.out"
-#   parport2: enabled=1, file="/dev/lp0"
-#   parport1: enabled=0
-#=======================================================================
-#parport1: enabled=1, file="/dev/lp0"
-
-#=======================================================================
-# SB16:
-# This defines the SB16 sound emulation. It can have several of the
-# following properties.
-# All properties are in the format sb16: property=value
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
-# loglevel:
-#      0=no log
-#      1=resource changes, midi program and bank changes
-#      2=severe errors
-#      3=all errors
-#      4=all errors plus all port accesses
-#      5=all errors and port accesses plus a lot of extra info
-# dmatimer:
-#      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continuous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for the IPS parameter of the CPU option.
-#
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
-#=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=/dev/stdout, dmatimer=600000
-
-#=======================================================================
-# VGA_UPDATE_INTERVAL:
-# Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
-# you must tweak the 'cpu: ips=N' directive to be as close to the number
-# of emulated instructions-per-second your workstation can do, for this
-# to be accurate.
-#
-# Examples:
-#   vga_update_interval: 250000
-#=======================================================================
-#vga_update_interval: 50000
-
-# using for Winstone '98 tests
-#vga_update_interval:  100000
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works 
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# The Bochs gui creates mouse "events" unless the 'enabled' option is
-# set to 0. The hardware emulation itself is not disabled by this.
-# Unless you have a particular reason for enabling the mouse by default,
-# it is recommended that you leave it off. You can also toggle the mouse
-# usage at runtime (control key + middle mouse button on X11, SDL,
-# wxWidgets and Win32).
-# With the mouse type option you can select the type of mouse to emulate.
-# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
-# or 'usb_ohci' option (requires PCI and USB support).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: enabled=1, type=imps2
-#   mouse: enabled=1, type=serial
-#   mouse: enabled=0
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# ne2k: NE2000 compatible ethernet adapter
-#
-# Examples:
-# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
-# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
-#
-# mac: The MAC address MUST NOT match the address of any machine on the net.
-# Also, the first byte must be an even number (bit 0 set means a multicast
-# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
-# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
-# be other restrictions too.  To be safe, just use the b0:c4... address.
-#
-# ethdev: The ethdev value is the name of the network interface on your host
-# platform.  On UNIX machines, you can get the name by running ifconfig.  On
-# Windows machines, you must run niclist to get the name of the ethdev.
-# Niclist source code is in misc/niclist.c and it is included in Windows 
-# binary releases.
-#
-# script: The script value is optional, and is the name of a script that 
-# is executed after bochs initialize the network interface. You can use 
-# this script to configure this network interface, or enable masquerading.
-# This is mainly useful for the tun/tap devices that only exist during
-# Bochs execution. The network interface name is supplied to the script
-# as first parameter
-#
-# If you don't want to make connections to any physical networks,
-# you can use the following 'ethmod's to simulate a virtual network.
-#   null: All packets are discarded, but logged to a few files.
-#   arpback: ARP is simulated. Disabled by default.
-#   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
-#         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the ethdev value for the root directory and doesn't
-#         overwrite files.
-#
-#=======================================================================
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-
-#=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
-#
-# Example:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
-# supports the same networking modules as the NE2000 adapter. In addition to
-# this, it must be assigned to a PCI slot.
-#=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
-
-#=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a 
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-# 
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-#keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-de.map
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# I440FXSUPPORT:
-# This option controls the presence of the i440FX PCI chipset. You can
-# also specify the devices connected to PCI slots. Up to 5 slots are
-# available now. These devices are currently supported: ne2k, pcivga,
-# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
-# support you'll have the additional choice 'cirrus'.
-#
-# Example:
-#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
-#=======================================================================
-i440fxsupport: enabled=1
-
-#=======================================================================
-# USB_UHCI:
-# This option controls the presence of the USB root hub which is a part
-# of the i440FX PCI chipset. With the portX option you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer').
-#
-# If you connect the mouse or tablet to one of the ports, Bochs forwards the
-# mouse movement data to the USB device instead of the selected mouse type.
-# When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
-#
-# To connect a flat image as an USB hardisk you can use the 'disk' device with
-# the path to the image separated with a colon (see below). To emulate an USB
-# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
-# device name also separated with a colon.
-#
-# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
-# to the root hub. To specify the number of ports you have to add the value
-# separated with a colon. Connecting devices to the external hub ports is only
-# available in the runtime configuration.
-#
-# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
-# sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
-#=======================================================================
-#usb_uhci: enabled=1
-#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
-#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
-
-#=======================================================================
-# USB_OHCI:
-# This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot.
-#=======================================================================
-#usb_ohci: enabled=1
-#usb_ohci: enabled=1, port1=printer:usbprinter.bin
-
-#=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
-#=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
-
-#=======================================================================
-# MAGIC_BREAK:
-# This enables the "magic breakpoint" feature when using the debugger.
-# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
-# debugger mode. This might be useful for software development.
-#
-# Example:
-#   magic_break: enabled=1
-#=======================================================================
-#magic_break: enabled=1
-
-#=======================================================================
-# PORT_E9_HACK:
-# The 0xE9 port doesn't exists in normal ISA architecture. However, we
-# define a convention here, to display on the console of the system running
-# Bochs anything that is written to it. The idea is to provide debug output
-# very early when writing BIOS or OS code for example, without having to
-# bother with setting up a serial port or etc. Reading from port 0xE9 will
-# will return 0xe9 to let you know if the feature is available.
-# Leave this 0 unless you have a reason to use it.
-#
-# Example:
-#   port_e9_hack: enabled=1
-#=======================================================================
-#port_e9_hack: enabled=1
-
-#=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
-#
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
-#=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#text_snapshot_check: enabled=1
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# PLUGIN_CTRL:
-# Controls the presence of optional plugins without a separate option.
-# By default all existing plugins are enabled. These plugins are currently
-# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
-# 'pci_ide', 'speaker' and 'unmapped'.
-#=======================================================================
-#plugin_ctrl: biosdev=0, speaker=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
diff --git a/02_filter/emu/frun.sh.in b/02_filter/emu/frun.sh.in
deleted file mode 100755
index 9a668ab1609015af55750569c6b66a468d7f2d73..0000000000000000000000000000000000000000
--- a/02_filter/emu/frun.sh.in
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/bash
-# a shell script to run Fail* emulator 
-
-BOCHSRC=@BOCHSRC@-serial
-
-BINARY=@TGT_ELF@
-
-# Kill plot windows on termination
-on_die() {
-  [[ ! -z $PLOT_PID ]] && kill $PLOT_PID
-  [[ ! -z $TRACE_PID ]] && kill $TRACE_PID
-  [[ ! -z $SERIAL_PID ]] && kill $SERIAL_PID
-}
-
-trap 'on_die' TERM
-
-# start a terminal that will telnet to the virtual machine's serial port
-XTERMEXE="@STARTUP_SCRIPTS@/pts.sh"
-(urxvt -geometry 120x80 -title "eCos Serial 0" -name "eCos Serial 0" -e $XTERMEXE )&
-SERIAL_PID=$!
-sleep 0.5
-
-# MACHINE=$(gcc -dumpmachine|cut -f1 -d-)
-# if [[ $MACHINE == "x86_64" ]]; then
-#   BITS="64"
-# else
-#   BITS="32"
-# fi
-
-# start the emulator
-OUTFILE=/tmp/ezs-dac-$USER.txt
-TRACEFILE=/tmp/ezs-trace-$USER.txt
-
-touch $OUTFILE
-touch $TRACEFILE
-
-python $EZS_CMAKE_MODULE_DIR/plot.py $OUTFILE &
-PLOT_PID=$!
-python $EZS_CMAKE_MODULE_DIR/plot.py $TRACEFILE dotrace &
-TRACE_PID=$!
-
-
-FAIL_ELF_PATH=@PROJECT_BINARY_DIR@/@TGT_ELF@ @FAIL_BINARY@ -f $BOCHSRC -q
-
-
-on_die
diff --git a/02_filter/emu/gdbinit.in b/02_filter/emu/gdbinit.in
deleted file mode 100644
index db7597ee291d154b865f0e6a03e10ffc2f059056..0000000000000000000000000000000000000000
--- a/02_filter/emu/gdbinit.in
+++ /dev/null
@@ -1,6 +0,0 @@
-file @ELF@
-set archi i386:x64-32:intel
-target remote localhost:1234
-
-define pe
-  printf "[vc] %u - [B] %u - [D] %u %% [A] %u = %u (rem %u)\n", $arg0.vc, $arg0.B, $arg0.D, $arg0.A, (($arg0.vc - $arg0.B - $arg0.D) / $arg0.A), (($arg0.vc - $arg0.B - $arg0.D) % $arg0.A)
diff --git a/02_filter/emu/grub.cfg.in b/02_filter/emu/grub.cfg.in
deleted file mode 100644
index 993e16b48772aa6fb6e690b7e05017b216f3e063..0000000000000000000000000000000000000000
--- a/02_filter/emu/grub.cfg.in
+++ /dev/null
@@ -1,7 +0,0 @@
-set timeout=0
-set default=0
-
-menuentry "EZS eCos" {
-	multiboot /boot/@TGT_ELF@
-  boot
-}
diff --git a/02_filter/emu/pts.sh.in b/02_filter/emu/pts.sh.in
deleted file mode 100755
index dbf1af82d584c1c8a9453e98feb87c09c0706f23..0000000000000000000000000000000000000000
--- a/02_filter/emu/pts.sh.in
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-# Retrieve tty device name
-TTY=`tty`
-# Setup com1 ouput to this terminal
-cat @BOCHSRC@ | sed -e "s|BOCHSTTYNUM|$TTY|" > @BOCHSRC@-serial
-echo "Terminal on tty: "
-echo $TTY
-sleep 1000000
-
diff --git a/02_filter/emu/qrun.sh.in b/02_filter/emu/qrun.sh.in
deleted file mode 100755
index 66c026cb0848d694d9708cac3a0f31fae0a9c2d5..0000000000000000000000000000000000000000
--- a/02_filter/emu/qrun.sh.in
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/bash
-# a shell script to run in the Qemu PC emulator an eCos
-# application that's been built with "Grub" startup mode.
-#
-# It runs Qemu with a 
-# single serial port connected to a telnet
-# server socket.
-#
-# An instance of the "xterm" X11 terminal emulator is started with
-# telnet command to connect to that virtual serial port on port
-#
-# When $2 is 'ddd' a debugger window is opened accordingly
-
-PORTFILENAME=/tmp/$USER.portnum
-@STARTUP_SCRIPTS@/findport.pl > $PORTFILENAME
-PORTNUM=`head -n 1 /tmp/$USER.portnum`
-SERIALPORTNUM=`tail -n 1 /tmp/$USER.portnum`
-GDB_BIN=gdb
-GDB_TUI_BIN=gdbtui
-TERMINAL=urxvt
-
-BINARY=@TGT_ELF@
-echo $PWD
-echo "target remote :$PORTNUM" > .gdbinit
-echo "br cyg_user_start" >> .gdbinit
-
-if [[ $1 == "ddd" ]] || [[ $1 == "gdb" ]] || [[ $1 == "cgdb" ]]; then
-  DEBUG="-s -S -gdb tcp::$PORTNUM"
-fi
-
-XTERMEXE="telnet localhost $SERIALPORTNUM"
-
-# start a terminal that will telnet to the virtual machine's serial port
-(sleep 0.5; $TERMINAL -geometry 120x80 -title "eCos Serial 0" -name "eCos Serial 0" -e $XTERMEXE )&
-
-sleep 0.5
-# start ddd Debugger
-if [[ $1 == ddd ]]; then
-	(sleep 0.5;	$TERMINAL -e ddd --command .gdbinit --gdb --debugger $GDB_BIN   $BINARY ) &
-fi
-
-# start GDB in xterm terminal
-if [[ $1 == gdb ]]; then
-	(sleep 0.5; $TERMINAL -e $GDB_BIN  $BINARY ) &
-fi
-
-# start GDBTUI in xterm terminal
-if [[ $1 == gdbtui ]]; then
-	(sleep 0.5; $TERMINAL -e $GDB_TUI_BIN  $BINARY ) &
-fi
-
-
-# start cgdb in xterm terminal
-if [[ $1 == cgdb ]]; then
-	(sleep 0.5; $TERMINAL -e cgdb  $BINARY ) &
-fi
-
-
-# MACHINE=$(gcc -dumpmachine|cut -f1 -d-)
-# if [[ $MACHINE == "x86_64" ]]; then
-#   BITS="64"
-# else
-#   BITS="32"
-# fi
-
-qemu-system-i386 -machine pc,accel=tcg \
-  $DEBUG \
-  -kernel $BINARY \
-  -serial telnet:localhost:$SERIALPORTNUM,server,nowait
-
diff --git a/02_filter/emu/vgabios.bin b/02_filter/emu/vgabios.bin
deleted file mode 100644
index fa9806b76fca32f6e44cbb4a8e0bec637fb9e8ab..0000000000000000000000000000000000000000
Binary files a/02_filter/emu/vgabios.bin and /dev/null differ
diff --git a/02_filter/eval/report.sql b/02_filter/eval/report.sql
deleted file mode 100644
index 6e5cf6f91a3ff2410f0e143b554d3b46be598245..0000000000000000000000000000000000000000
--- a/02_filter/eval/report.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-update result_GenericExperimentMessage r
-       INNER JOIN fsppilot p ON r.pilot_id = p.id AND known_outcome = 1
-       SET resulttype = 'OK_MARKER', details = 10000;
-
-SELECT sum((t.time2 - t.time1 + 1) * width) AS occurences, resulttype, details
-FROM variant v
-    JOIN trace t ON v.id = t.variant_id
-    JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
-    JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
-    JOIN fsppilot p ON r.pilot_id = p.id
-GROUP BY v.id, resulttype, details;
-
-SELECT hex(injection_instr_absolute) AS "instruction pointer", 
-       sum((t.time2 - t.time1 + 1) * width) AS occurences, 
-       resulttype
-FROM variant v
-     JOIN trace t ON v.id = t.variant_id
-     JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
-     JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
-     JOIN fsppilot p ON r.pilot_id = p.id
-WHERE resulttype != 'OK_MARKER'
-GROUP BY v.id, injection_instr_absolute, resulttype
-ORDER BY occurences DESC LIMIT 10;
-
-SELECT hex(t.data_address) AS "data address", 
-       sum((t.time2 - t.time1 + 1) * width) AS occurences, 
-       resulttype
-FROM variant v
-     JOIN trace t ON v.id = t.variant_id
-     JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
-     JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
-     JOIN fsppilot p ON r.pilot_id = p.id
-WHERE resulttype != 'OK_MARKER'
-GROUP BY v.id, t.data_address, resulttype
-ORDER BY occurences DESC LIMIT 10;
-
diff --git a/02_filter/include/fixedpoint.h b/02_filter/include/fixedpoint.h
deleted file mode 100644
index d4bec65deaf0863aaccc291f4524b85323db073c..0000000000000000000000000000000000000000
--- a/02_filter/include/fixedpoint.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef FIXEDPOINT_H_INCLUDED
-#define FIXEDPOINT_H_INCLUDED
-
-#include <stdint.h>
-
-int8_t float_to_q(float f);
-
-float q_to_float(int8_t q);
-
-int8_t q_add(int8_t s1, int8_t s2);
-
-int8_t q_sub(int8_t minuend, int8_t subtrahend);
-
-int8_t q_mul(int8_t fac1, int8_t fac2);
-
-int8_t q_div(int8_t divident, int8_t divisor);
-
-#endif // FIXEDPOINT_H_INCLUDED
diff --git a/02_filter/libEZS/include/ezs_common.h b/02_filter/libEZS/include/ezs_common.h
deleted file mode 100644
index f793157154113fc025810b587639ce724a480cae..0000000000000000000000000000000000000000
--- a/02_filter/libEZS/include/ezs_common.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef EZS_COMMON_H_INCLUDED
-#define EZS_COMMON_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann 
- * \ingroup common 
- */
-
-#include <stdint.h>
-
-
-
-/*!
- * \brief returns the low byte of value
- */
-uint8_t ezs_low_byte(uint16_t value);
-
-/*!
- * \brief returns the high byte of value
- */
-uint8_t ezs_high_byte(uint16_t value);
-
-
-#endif // EZS_COMMON_H_INCLUDED
diff --git a/02_filter/libEZS/src/ezs_common.c b/02_filter/libEZS/src/ezs_common.c
deleted file mode 100644
index d7378065868b078822834252516ceb48152dcad2..0000000000000000000000000000000000000000
--- a/02_filter/libEZS/src/ezs_common.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "ezs_common.h"
-
-uint8_t ezs_low_byte(uint16_t value)
-{
-  return (uint8_t) (value & 0xFF);
-}
-
-uint8_t ezs_high_byte(uint16_t value)
-{
-  return (uint8_t) ((value & 0xFF00) >> 8);
-}
-
diff --git a/02_filter/libEZS/src/fixedpoint.c b/02_filter/libEZS/src/fixedpoint.c
deleted file mode 100644
index 1a930c44d5ff1c46afbb8b48ee046cbf166d4b05..0000000000000000000000000000000000000000
--- a/02_filter/libEZS/src/fixedpoint.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include "fixedpoint.h"
-#include <assert.h>
-#include <stdio.h>
-
-enum {
-  N = 5,
-};
-static const int16_t K = 1 << (N - 1);
-
-int8_t float_to_q(float f)
-{
-  float temp = f * (1 << N);
-  return (int8_t) temp;
-}
-
-float q_to_float(int8_t q)
-{
-  float temp = (float) q;
-  return temp / (1 << N);
-}
-
-int8_t q_add(int8_t s1, int8_t s2)
-{
-  int8_t res = (int8_t) (s1 + s2);
-  return res;
-}
-
-int8_t q_sub(int8_t minuend, int8_t subtrahend)
-{
-  int8_t res = (int8_t) (minuend - subtrahend);
-  return res;
-}
-
-// saturate to range of int8_t
-int8_t sat8(int16_t x)
-{
-  if (x > 0x7F) return 0x7F;
-  else if (x < -0x80) return -0x80;
-  else return (int8_t)x;
-}
-
-int8_t q_mul(int8_t fac1, int8_t fac2)
-{
-  int8_t result;
-  int16_t temp;
-  
-  temp = (int16_t)fac1 * (int16_t)fac2; // result type is operand's type
-  // Rounding; mid values are rounded up
-  temp += K;
-  
-  // Correct by dividing by base and saturate result
-  result = sat8(temp >> N);
-  
-  return result;
-}
-
-int8_t q_div(int8_t dividend, int8_t divisor)
-{
-  int8_t result;
-  int16_t temp;
-  
-  // pre-multiply by the base
-  temp = (int16_t)dividend << N;
-  // Rounding: mid values are rounded up (down for negative values).
-  if ((temp >= 0 && divisor >= 0) || (temp < 0 && divisor < 0))
-    temp += divisor / 2;
-  else
-    temp -= divisor / 2;
-  result = (int8_t)(temp / divisor);
-  
-  return result;
-}
diff --git a/02_filter/src/app.c b/02_filter/src/app.c
deleted file mode 100644
index 27a2d2d0f04521140cbccdee369ce8a4e7798056..0000000000000000000000000000000000000000
--- a/02_filter/src/app.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include <sml/ttkernel/c_api.h>
-#include <pkgconf/ttkernel.h>
-#include <stdio.h>
-
-#include <cyg/io/framebuf.h>
-#include <cyg/io/framebufs/i386_fb.h>
-
-#define INPUTLENGTH  16U
-#define FILTERLENGTH 3U
-#define OUTPUTLENGTH 4U
-
-// Input data struct, definition
-// TODO: VEZS: Definition von struct input_t
-struct input_t {
-    // TODO ...
-};
-
-// Instatiation: The global variable g_input holds the SignalValues (g_input->SignalValues) and Filter parameters.
-struct input_t g_Input = {/* TODO */};
-// TODO: VEZS: Initialisierung des Inputs mit folgenden Signalwerten:
-/*
-{
-    0.4660297830757463, 0.291652750726228, 0.039019837642634725, 0.025791065563132265,
-    0.1438180872933461, 0.07790451716276092, 0.5323362120330787, 0.06318652076060649,
-    0.029056230398846528, 0.8297977482396356, 0.6446787397078008, 0.9698337715018641,
-    0.8951997126483968, 0.35959743693927293, 0.2776439558609356, 0.9593172302712314,
-},
-*/
-// sowie den folgenden Wertem des Filters:
-/*
- {1, 2, -1}
-*/
-
-
-/* Our application is a FIR filter convolution on a fixed set of
-   input values. We get 4 Output Values */
-float g_Output[OUTPUTLENGTH];
-
-
-/*  Convolve Signal with Filter.
-
-    Signal must contain OutputLength + FilterLength - 1 elements.  Conversely,
-    if there are N elements in Signal, OutputLength may be at most
-    N+1-FilterLength.
-*/
-// TODO: VEZS: eine Funktion implementieren, die die Faltung (engl. convolution) uebernimmt
-// HINWEIS: lineare Filterung == Faltung der Original-Funktion eines Signals mit der Impulsantwort (FilterParams) dar
-
-
-// Little Helper: Checksum over float array.
-unsigned char checksum(float* values, size_t length) {
-    // TODO: VEZS: Funktionalitaet die *Bytes* aufaddiert hier implementieren...
-    return 0;
-}
-
-/* Actuate function
-    Here we check the results.
-*/
-void actuate(float* output, size_t length) {
-
-    // Calculate a bytewise checksum for checking integrity.
-    unsigned char chksum = checksum(output, length);
-
-    printf("Chksum: %x\r\n", chksum);
-    /* For OutputLength == 4: chksum == 0xc5 */
-    if (chksum == 0x47) {
-        /* The checksum is correct, no silent data corruption has occured */
-        printf("no errors occured!\r\n");
-    } else {
-        /* An SDC occured! */
-        // TODO: VEZS: Ausgabe, dass Fehler aufgetreten ist
-    }
-}
-
-void* run(void) {
-
-    // Execute algorithm.
-    // TODO: VEZS: hier muss die Faltung aufgerufen werden ...
-
-    // Return pointer to results.
-    return g_Output;
-}
-
-
-void cyg_user_start(void) {
-    // Initialize framebuffer in graphic mode
-    ezs_fb_init();
-
-    printf("Starting up the filtering application!\r\n");
-
-    // Run filtering
-    void * result = run();
-
-    // Actuate based on the filtered values (is only a checksum for now) ...
-    actuate((float*) result, OUTPUTLENGTH);
-
-    printf("Will wait forever here...\r\n");
-    while(1);
-}
diff --git a/03_TMR/CMakeLists.txt b/03_TMR/CMakeLists.txt
deleted file mode 100644
index f6718fa3728231514ab57982ab8c423bceb5996e..0000000000000000000000000000000000000000
--- a/03_TMR/CMakeLists.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-Project(Filter)
-
-cmake_minimum_required(VERSION 2.8)
-
-# use the eCos support coming with CMake
-# without this line CMake doesn't know how to build eCos applications
-# all functions/macros coming from this file start with "ECOS_"
-
-
-set(SCRIPT_DIR "$ENV{ECOS_REPOSITORY}/../tools/scripts")
-set(CMAKE_MODULE_PATH  ${PROJECT_SOURCE_DIR}/cmake ${SCRIPT_DIR}/..)
-
-INCLUDE(UseEcos)
-
-# cmake modules
-INCLUDE(doxygendocu)
-INCLUDE(coloroutput)
-INCLUDE(emu)
-
-# add the ecos/install/include/ directory to the header search path
-ECOS_ADD_INCLUDE_DIRECTORIES()
-ECOS_USE_I386_ELF_TOOLS()
-
-set(COMMON_FLAGS "-nostartfiles -nostdlib -ffunction-sections -fdata-sections -fno-builtin -Wall -Wpointer-arith  -Wundef -fdata-sections")
-set(CMAKE_C_FLAGS "${COMMON_FLAGS}")
-set(CMAKE_CXX_FLAGS "${COMMON_FLAGS} -fno-rtti -fno-exceptions -fno-unwind-tables -Woverloaded-virtual" )
-
-
-set(BOCHS_CPU_SPEED_MHZ 10)
-# use ADD_DEFINITIONS() to add the definitions (or switches) you like
-add_definitions("-g -DBOCHS_CPU_MHZ=${BOCHS_CPU_SPEED_MHZ}")
-
-set(LIBEZS_DIR "${PROJECT_SOURCE_DIR}/libEZS")
-set(EZS_DRIVERS_DIR "${LIBEZS_DIR}/drivers")
-
-include_directories(
-	${LIBEZS_DIR}/include
-	include
-	)
-
-set(LIBEZS_SOURCES
-	${LIBEZS_DIR}/src/ezs_common.c
-	${LIBEZS_DIR}/src/fixedpoint.c
-	${LIBEZS_DIR}/src/ezs_stopwatch.c
-	${LIBEZS_DIR}/src/ezs_sensors.c
-	${LIBEZS_DIR}/src/ezs_outputs.c
-	)
-
-set(HW_PLATFORM i386)
-
-set(DRIVERS_SOURCES
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_fb.c
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_tracer.cpp
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_counter.c
-  )
-
-set(SRC_DIR src)
-set(BASE_APPLICATION_SOURCES
-     ${SRC_DIR}/app.c
-     ${SRC_DIR}/filter.c
-     ${SRC_DIR}/watchdog.c
-    )
-set(EXT_APPLICATION_SOURCES
-     ${SRC_DIR}/app_ext.cpp
-     ${SRC_DIR}/watchdog.c
-   )
-
-# this is one of the most important lines
-# here you list all source files of your application
-# you can mix C and C++ files as you like
-# you can also add the header files here, but you don't have to
-# you can use relative or absolute paths as you like
-SET(BASE_SRC_LIST
-  ${BASE_APPLICATION_SOURCES}
-	${LIBEZS_SOURCES}
-	${DRIVERS_SOURCES}
-	)
-SET(EXT_SRC_LIST
-  ${EXT_APPLICATION_SOURCES}
-	${LIBEZS_SOURCES}
-	${DRIVERS_SOURCES}
-	)
-
-set(TGT "tmr")
-# this is the most important line:
-# tell CMake that we want to create an executable named "sampleapp"
-# from the files listed in the variable SRC_LIST
-ECOS_ADD_EXECUTABLE(${TGT} ${BASE_SRC_LIST})
-addemu(${TGT})
-ECOS_ADD_EXECUTABLE(${TGT}_ext ${EXT_SRC_LIST})
-addemu(${TGT}_ext)
-
-add_definitions(-ggdb)
-
-message(STATUS "${BoldGreen}[AUFGABE 3 (TMR)] execute `make run` to start basic application${ColourReset}")
-message(STATUS "${BoldGreen}[AUFGABE 3 (TMR)] execute `make run_tmr_ext` to start extended application${ColourReset}")
diff --git a/03_TMR/Doxyfile.in b/03_TMR/Doxyfile.in
deleted file mode 100644
index 38caface428145ab3f92324338904eb3b42aa767..0000000000000000000000000000000000000000
--- a/03_TMR/Doxyfile.in
+++ /dev/null
@@ -1,1792 +0,0 @@
-# Doxyfile 1.8.1.2
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = @PROJECT_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          = "Verlässliche Echtzeitsysteme"
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @DOXY_OUTPUT@
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding
-# "class=itcl::class" will allow you to use the command class in the
-# itcl::class meaning.
-
-TCL_SUBST              =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
-# comments according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you
-# can mix doxygen, HTML, and XML commands with Markdown formatting.
-# Disable only in case of backward compatibilities issues.
-
-MARKDOWN_SUPPORT       = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-SYMBOL_CACHE_SIZE      = 0
-
-# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
-# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
-# their name and scope. Since this can be an expensive process and often the
-# same symbol appear multiple times in the code, doxygen keeps a cache of
-# pre-resolved symbols. If the cache is too small doxygen will become slower.
-# If the cache is too large, memory is wasted. The cache size is given by this
-# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-LOOKUP_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation.
-
-EXTRACT_PACKAGE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
-# feature you need bibtex and perl available in the search path.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = NO
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = NO
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = @CMAKE_SOURCE_DIR@
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE                = @DOXY_IGNORE@
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = YES
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C, C++ and Fortran comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is advised to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# style sheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the style sheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of
-# entries shown in the various tree structured indices initially; the user
-# can expand and collapse entries dynamically later on. Doxygen will expand
-# the tree to such a level that at most the specified number of entries are
-# visible (unless a fully collapsed tree already exceeds this amount).
-# So setting the number of entries 1 will produce a full collapsed tree by
-# default. 0 is a special value representing an infinite number of entries
-# and will result in a full expanded tree by default.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
-# at top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it. Since the tabs have the same information as the
-# navigation tree you can set this option to NO if you already set
-# GENERATE_TREEVIEW to YES.
-
-DISABLE_INDEX          = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-# Since the tree basically has the same information as the tab index you
-# could consider to set DISABLE_INDEX to NO when enabling this option.
-
-GENERATE_TREEVIEW      = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you may also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to
-# the MathJax Content Delivery Network so you can quickly see the result without
-# installing MathJax.
-# However, it is strongly recommended to install a local
-# copy of MathJax from http://www.mathjax.org before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load style sheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. For each
-# tag file the location of the external documentation should be added. The
-# format of a tag file without this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths
-# or URLs. Note that each tag file must have a unique name (where the name does
-# NOT include the path). If a tag file is not located in the directory in which
-# doxygen is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside
-# the class node. If there are many fields or methods and many nodes the
-# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
-# threshold limits the number of items for each type to make the size more
-# managable. Set this to 0 for no limit. Note that the threshold may be
-# exceeded by 50% before the limit is enforced.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/03_TMR/build/.keepdir b/03_TMR/build/.keepdir
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/03_TMR/cmake/Doxyfile.in b/03_TMR/cmake/Doxyfile.in
deleted file mode 100644
index 10846197cadc72ae5dcdb9eb5be67bb48ede64f0..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/Doxyfile.in
+++ /dev/null
@@ -1,1757 +0,0 @@
-# Doxyfile 1.7.5.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = @PROJECT_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         = @PROJECT_VERSION@
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          =
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           = 
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @DOXY_OUTPUT@
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = @DOXY_INPUT_DIR@
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to directory from which doxygen is run.
-
-EXCLUDE                = @DOXY_IGNORE@
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = YES 
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is adviced to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES       = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the
-# mathjax.org site, so you can quickly see the result without installing
-# MathJax, but it is strongly recommended to install a local copy of MathJax
-# before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = @DOXY_GENERATE_LATEX@
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = @DOXY_USE_GRAPHVIZ@
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = NO
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = YES
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/03_TMR/cmake/UseEcos.cmake b/03_TMR/cmake/UseEcos.cmake
deleted file mode 100644
index 55f9aad36878494910c3936f3e8ebb302a527b00..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/UseEcos.cmake
+++ /dev/null
@@ -1,252 +0,0 @@
-#.rst:
-# UseEcos
-# -------
-#
-# This module defines variables and macros required to build eCos application.
-#
-# This file contains the following macros:
-# ECOS_ADD_INCLUDE_DIRECTORIES() - add the eCos include dirs
-# ECOS_ADD_EXECUTABLE(name source1 ...  sourceN ) - create an eCos
-# executable ECOS_ADJUST_DIRECTORY(VAR source1 ...  sourceN ) - adjusts
-# the path of the source files and puts the result into VAR
-#
-# Macros for selecting the toolchain: ECOS_USE_ARM_ELF_TOOLS() - enable
-# the ARM ELF toolchain for the directory where it is called
-# ECOS_USE_I386_ELF_TOOLS() - enable the i386 ELF toolchain for the
-# directory where it is called ECOS_USE_PPC_EABI_TOOLS() - enable the
-# PowerPC toolchain for the directory where it is called
-#
-# It contains the following variables: ECOS_DEFINITIONS
-# ECOSCONFIG_EXECUTABLE ECOS_CONFIG_FILE - defaults to ecos.ecc, if your
-# eCos configuration file has a different name, adjust this variable for
-# internal use only:
-#
-# ::
-#
-#   ECOS_ADD_TARGET_LIB
-
-#=============================================================================
-# Copyright 2006-2009 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-# first check that ecosconfig is available
-find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig)
-if(NOT ECOSCONFIG_EXECUTABLE)
-   message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.")
-else()
-   message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}")
-endif()
-
-# check that ECOS_REPOSITORY is set correctly
-if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
-   message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db")
-else ()
-   message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}")
-endif ()
-
-# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work
-find_package(Tclsh)
-if (NOT TCL_TCLSH)
-   message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.")
-else ()
-   message(STATUS "tlcsh found: ${TCL_TCLSH}")
-endif ()
-
-#add the globale include-diretories
-#usage: ECOS_ADD_INCLUDE_DIRECTORIES()
-macro(ECOS_ADD_INCLUDE_DIRECTORIES)
-#check for ProjectSources.txt one level higher
-   if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt)
-      include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
-   else ()
-      include_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
-   endif ()
-
-#the ecos include directory
-   include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/)
-
-endmacro()
-
-
-#we want to compile for the xscale processor, in this case the following macro has to be called
-#usage: ECOS_USE_ARM_ELF_TOOLS()
-macro (ECOS_USE_ARM_ELF_TOOLS)
-   set(CMAKE_CXX_COMPILER "arm-elf-c++")
-   set(CMAKE_COMPILER_IS_GNUCXX 1)
-   set(CMAKE_C_COMPILER "arm-elf-gcc")
-   set(CMAKE_AR "arm-elf-ar")
-   set(CMAKE_RANLIB "arm-elf-ranlib")
-#for linking
-   set(ECOS_LD_MCPU "-mcpu=xscale")
-#for compiling
-   add_definitions(-mcpu=xscale -mapcs-frame)
-#for the obj-tools
-   set(ECOS_ARCH_PREFIX "arm-elf-")
-endmacro ()
-
-#usage: ECOS_USE_PPC_EABI_TOOLS()
-macro (ECOS_USE_PPC_EABI_TOOLS)
-   set(CMAKE_CXX_COMPILER "powerpc-eabi-c++")
-   set(CMAKE_COMPILER_IS_GNUCXX 1)
-   set(CMAKE_C_COMPILER "powerpc-eabi-gcc")
-   set(CMAKE_AR "powerpc-eabi-ar")
-   set(CMAKE_RANLIB "powerpc-eabi-ranlib")
-#for linking
-   set(ECOS_LD_MCPU "")
-#for compiling
-   add_definitions()
-#for the obj-tools
-   set(ECOS_ARCH_PREFIX "powerpc-eabi-")
-endmacro ()
-
-#usage: ECOS_USE_I386_ELF_TOOLS()
-macro (ECOS_USE_I386_ELF_TOOLS)
-   set(CMAKE_CXX_COMPILER "i386-elf-c++")
-   set(CMAKE_COMPILER_IS_GNUCXX 1)
-   set(CMAKE_C_COMPILER "i386-elf-gcc")
-   set(CMAKE_AR "i386-elf-ar")
-   set(CMAKE_RANLIB "i386-elf-ranlib")
-#for linking
-   set(ECOS_LD_MCPU "")
-#for compiling
-   add_definitions()
-#for the obj-tools
-   set(ECOS_ARCH_PREFIX "i386-elf-")
-endmacro ()
-
-
-#since the actual sources are located one level upwards
-#a "../" has to be prepended in front of every source file
-#call the following macro to achieve this, the first parameter
-#is the name of the new list of source files with adjusted paths,
-#followed by all source files
-#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs})
-macro(ECOS_ADJUST_DIRECTORY _target_FILES )
-   foreach (_current_FILE ${ARGN})
-      get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
-      if (NOT ${_abs_FILE} STREQUAL ${_current_FILE})
-         get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE)
-      endif ()
-      list(APPEND ${_target_FILES} ${_abs_FILE})
-   endforeach ()
-endmacro()
-
-# the default ecos config file name
-# maybe in future also out-of-source builds may be possible
-set(ECOS_CONFIG_FILE ecos.ecc)
-
-#creates the dependency from all source files on the ecos target.ld,
-#adds the command for compiling ecos
-macro(ECOS_ADD_TARGET_LIB)
-  if(NOT TARGET ecos)
-# when building out-of-source, create the ecos/ subdir
-      if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos)
-          file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos)
-      endif()
-  
-#sources depend on target.ld
-     set_source_files_properties(
-        ${ARGN}
-        PROPERTIES
-        OBJECT_DEPENDS
-        ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
-     )
-  
-     add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
-        COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\"
-        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
-     )
-  
-     add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
-        COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\"
-        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE}
-     )
-  
-     add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS  ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile )
- endif()
-endmacro()
-
-# get the directory of the current file, used later on in the file
-get_filename_component( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
-
-#macro for creating an executable ecos application
-#the first parameter is the name of the executable,
-#the second is the list of all source files (where the path
-#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY()
-#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS})
-macro(ECOS_ADD_EXECUTABLE _exe_NAME )
-   #definitions, valid for all ecos projects
-   #the optimization and "-g" for debugging has to be enabled
-   #in the project-specific CMakeLists.txt
-   add_definitions(-D__ECOS__=1 -D__ECOS=1)
-   set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin)
-
-#the executable depends on ecos target.ld
-   ECOS_ADD_TARGET_LIB(${ARGN})
-
-# when using nmake makefiles, the custom buildtype supresses the default cl.exe flags
-# and the rules for creating objects are adjusted for gcc
-   set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD)
-   set(CMAKE_C_COMPILE_OBJECT     "<CMAKE_C_COMPILER>   <FLAGS> -o <OBJECT> -c <SOURCE>")
-   set(CMAKE_CXX_COMPILE_OBJECT   "<CMAKE_CXX_COMPILER> <FLAGS> -o <OBJECT> -c <SOURCE>")
-# special link commands for ecos-executables
-   set(CMAKE_CXX_LINK_EXECUTABLE  "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS>  -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib  -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
-   set(CMAKE_C_LINK_EXECUTABLE    "<CMAKE_C_COMPILER>   <CMAKE_C_LINK_FLAGS>   <OBJECTS>  -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib  -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
-# some strict compiler flags
-   set (CMAKE_C_FLAGS "-Wstrict-prototypes")
-   set (CMAKE_CXX_FLAGS "-Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions")
-
-   add_executable(${_exe_NAME} ${ARGN})
-   set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf")
-
-#create a binary file
-   add_custom_command(
-      TARGET ${_exe_NAME}
-      POST_BUILD
-      COMMAND ${ECOS_ARCH_PREFIX}objcopy
-      ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin
-   )
-
-#and an srec file
-   add_custom_command(
-      TARGET ${_exe_NAME}
-      POST_BUILD
-      COMMAND ${ECOS_ARCH_PREFIX}objcopy
-      ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec
-   )
-
-#add the created files to the clean-files
-   set_directory_properties(
-      PROPERTIES
-       ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst;"
-   )
-   
-   if(NOT TARGET ecosclean)
-      add_custom_target(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake  )
-   endif()
-   if(NOT TARGET normalclean)
-      add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-      add_dependencies (ecosclean normalclean)
-   endif()
-
-
-
-   add_custom_target( listing_${_exe_NAME}
-      COMMAND echo -e   \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst )
-
-endmacro()
-
diff --git a/03_TMR/cmake/cccc.cmake b/03_TMR/cmake/cccc.cmake
deleted file mode 100644
index ea0af18350624a979a3e278d351094fedc57278e..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/cccc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-find_program(CCCC_EXE "cccc")
-
-if(CCCC_EXE)
-    
-    message(STATUS "[CCCC] at ${CCCC_EXE}")
-    add_custom_target(cccc)
-
-    add_custom_command(TARGET cccc POST_BUILD
-        COMMAND ${CCCC_EXE} 
-    )
-else()
-    message(FATAL_ERROR "[CCCC] Could not find cccc executable")
-endif()
diff --git a/03_TMR/cmake/coloroutput.cmake b/03_TMR/cmake/coloroutput.cmake
deleted file mode 100644
index 1280d32bd454884daeef7e6a35e446a43a8b9236..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/coloroutput.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-if(NOT WIN32)
-  string(ASCII 27 Esc)
-  set(ColourReset "${Esc}[m")
-  set(ColourBold  "${Esc}[1m")
-  set(Red         "${Esc}[31m")
-  set(Green       "${Esc}[32m")
-  set(Yellow      "${Esc}[33m")
-  set(Blue        "${Esc}[34m")
-  set(Magenta     "${Esc}[35m")
-  set(Cyan        "${Esc}[36m")
-  set(White       "${Esc}[37m")
-  set(BoldRed     "${Esc}[1;31m")
-  set(BoldGreen   "${Esc}[1;32m")
-  set(BoldYellow  "${Esc}[1;33m")
-  set(BoldBlue    "${Esc}[1;34m")
-  set(BoldMagenta "${Esc}[1;35m")
-  set(BoldCyan    "${Esc}[1;36m")
-  set(BoldWhite   "${Esc}[1;37m")
-endif()
-
diff --git a/03_TMR/cmake/compilerwarnings.cmake b/03_TMR/cmake/compilerwarnings.cmake
deleted file mode 100644
index e89c8c3b080d6d7350836a74ed6ae7a04427fd05..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/compilerwarnings.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Werror" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wall" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wextra" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -pedantic" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wcast-align" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wconversion" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-nonliteral" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-security" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winit-self" )
-
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-  message("-- gcc detected")
-  if(CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.0.0")
-    message("-- gcc >= 4.0.0 detected")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=pointer-to-int-cast" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=cast-qual" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=float-equal" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unknown-pragmas")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=write-strings" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=switch-default" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=switch-enum" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-function")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-macros" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-variable" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-parameter" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=shadow" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=missing-noreturn" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=packed" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unreachable-code" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-but-set-variable" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wlogical-op" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wmissing-include-dirs" )
-  endif()
-endif()
-if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-  if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.0.0")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=overloaded-virtual" )
-  endif()
-endif()
-
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpointer-arith" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wundef" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wredundant-decls" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-inline" )
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wbad-function-cast")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wold-style-definition")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wnested-externs")
-
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++" )
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast" )
diff --git a/03_TMR/cmake/cppcheck.cmake b/03_TMR/cmake/cppcheck.cmake
deleted file mode 100644
index 6c5f00597d1f1d9b77623a13595f1446018debb9..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/cppcheck.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-find_program(CPPCHECK_EXE "cppcheck")
-
-if(CPPCHECK_EXE)
-    
-    message(STATUS "[CPPCHECK] at ${CPPCHECK_EXE}")
-    add_custom_target(cppcheck)
-
-    add_custom_command(TARGET cppcheck POST_BUILD
-        COMMAND ${CPPCHECK_EXE} --template=gcc -f --std=posix --std=c99 --std=c++11 --enable=all -i ${PROJECT_BINARY_DIR} -I ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}
-    )
-else()
-    message(FATAL_ERROR "[CPPCHECK] Could not find cppcheck executable")
-endif()
diff --git a/03_TMR/cmake/doxy.cmake b/03_TMR/cmake/doxy.cmake
deleted file mode 100644
index 4037ae09255fcb77f950894083d551b96bc2fe51..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/doxy.cmake
+++ /dev/null
@@ -1,31 +0,0 @@
-
-  FIND_PACKAGE(Doxygen)
-
-  # set output path
-  set(DOXY_OUTPUT "doc")
-  set(DOXY_GENERATE_LATEX "NO")
-  set(DOXY_IGNORE "")
-  set(DOXY_INPUT_DIR "${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src")
-
-  if(DOXYGEN_DOT_FOUND)
-      set(DOXY_USE_GRAPHVIZ "YES" ) 
-      message(STATUS "[DOXYGEN] Using graphviz to draw nice graphs.")
-  else(DOXYGEN_DOT_FOUND) 
-      set(DOXY_USE_GRAPHVIY "NO" ) 
-      message(STATUS "[DOXYGEN] GraphViz' Dot tool not found.")
-  endif(DOXYGEN_DOT_FOUND) 
-   
-  if (NOT DOXYGEN_FOUND)
-    message(FATAL_ERROR 
-      "Doxygen is needed to build the documentation. Please install it correctly")
-  endif()
-  ## Configure the Template Doxyfile for our specific project
-  configure_file(${PROJECT_SOURCE_DIR}/cmake/Doxyfile.in 
-                 ${PROJECT_BINARY_DIR}/Doxyfile  @ONLY IMMEDIATE)
-  ## Add a custom target to run Doxygen (make doc)
-  add_custom_target ( doxy
-  		COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
-  		SOURCES ${PROJECT_BINARY_DIR}/Doxyfile
-		COMMAND echo "HTML ouput at ${DOXY_OUTPUT}/html/index.html"
-		)
-
diff --git a/03_TMR/cmake/emu.cmake b/03_TMR/cmake/emu.cmake
deleted file mode 100644
index d7d0471d5626bb8e4057d46dd51da50d22cc27a8..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/emu.cmake
+++ /dev/null
@@ -1,224 +0,0 @@
-include(processorcount)
-
-# Grub
-find_program(GRUB_MKRESCUE "grub-mkrescue")
-if(NOT GRUB_MKRESCUE)
-		message(FATAL_ERROR "grub-mkrescue not found, cannot create bootable iso :(")
-endif()
-
-
-macro(ADDEMU TGT)
-# Prepare some useful variable for use in config files
-set(TGT_ELF "${CMAKE_CURRENT_BINARY_DIR}/${TGT}.elf")
-set(ISODIR "${PROJECT_BINARY_DIR}/grub_iso")
-set(FAIL_BINARY "$ENV{EZS_BASE_DIR}/fail/fail-client")
-set(ISOFILE "${PROJECT_BINARY_DIR}/${TGT}.iso")
-set(ELFFILE "${PROJECT_BINARY_DIR}/${TGT}.elf")
-set(RUNNER "/proj/i4ezs/tools/fail/vezs/bochs-experiment-runner.py")
-
-
-set(FAILVARIANT "not_set" CACHE PATH "Variant name for Fail* injection")
-
-####deprecated
-# Setup Bochs configuration
-set(BOCHS_BIOS "${CMAKE_CURRENT_SOURCE_DIR}/BIOS-bochs-latest")
-set(BOCHS_GUEST_RAM 32)
-set(BOCHS_HOST_RAM 32)
-set(BOCHS_VGA_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/vgabios.bin")
-set(BOCHS_ISO_IMAGE "${ISOFILE}")
-####
-
-
-set(STARTUP_SCRIPTS ${PROJECT_BINARY_DIR}/startup_scripts)
-file(MAKE_DIRECTORY ${STARTUP_SCRIPTS})
-
-#####deprecated bochsrc includes iso name :-(
-#set(BOCHSRC "${STARTUP_SCRIPTS}/bochsrc")
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc.in" ${BOCHSRC} )
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc-gdb.in" "${BOCHSRC}-gdb" )
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc-term.in" "${BOCHSRC}-term" )
-#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/frun.sh.in ${STARTUP_SCRIPTS}/frun.sh)
-#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pts.sh.in ${STARTUP_SCRIPTS}/pts.sh)
-#####
-
-configure_file(${PROJECT_SOURCE_DIR}/emu/qrun.sh.in ${STARTUP_SCRIPTS}/qrun.sh)
-configure_file(${SCRIPT_DIR}/findport.pl ${STARTUP_SCRIPTS}/findport.pl)
-
-#message(STATUS "Fail* @ ${FAIL_BINARY}")
-#set(GDBINITFILE ${STARTUP_SCRIPTS}/.gdbinit)
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gdbinit.in" ${GDBINITFILE})
-
-
-# message(STATUS "Building bootable ISO for ${TGT}")
-
-# Generate build directory for grub-mkrescue
-set(BOOTDIR "${ISODIR}/boot/")
-set(GRUBDIR "${BOOTDIR}/grub")
-file(MAKE_DIRECTORY ${GRUBDIR})
-
-####TODO: make iso-genration generic
-## Copy and configure grub configuration file
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/grub.cfg.in" "${GRUBDIR}/grub.cfg")
-## Create bootable ISO from TGT
-#add_custom_command(
-#	DEPENDS ${TGT}
-#        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TGT}> ${BOOTDIR}/${TGT_ELF}
-#	COMMAND ${GRUB_MKRESCUE}
-#		ARGS -o ${ISOFILE} ${ISODIR}
-#	COMMAND objdump -CDS ${BOOTDIR}/${TGT_ELF} > ${PROJECT_BINARY_DIR}/${TGT}.dis
-#        OUTPUT ${ISOFILE} ${BOOTDIR}/${TGT_ELF} ${PROJECT_BINARY_DIR}/${TGT}.dis
-#	COMMENT "Generating bootable grub iso."
-#		)
-#
-## Create bootable ISO
-#add_custom_target( iso DEPENDS ${ISOFILE} )
-
-
-
-# Start FAIL
-# comment for 02_filter
-##add_custom_target( sim
-##        COMMAND ${STARTUP_SCRIPTS}/frun.sh
-##		DEPENDS ${ISOFILE}
-##		COMMENT "Starting Fail*"
-##        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-##		)
-
-# Start qemu
-add_custom_target(run_${TGT}
-		DEPENDS ${TGT_ELF} ${TGT}
-		COMMAND echo "Running ${TGT_ELF}..."
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF}
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-		)
-
-add_custom_target( ddd_${TGT}
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} ddd
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( gdb_${TGT}
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} gdb
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( gdbtui_${TGT}
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} gdbtui
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-
-add_custom_target( cgdb_${TGT}
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} cgdb
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-# add legacytargets
-if( NOT TARGET run )
-  add_custom_target(run DEPENDS run_${TGT})
-  add_custom_target(ddd DEPENDS ddd_${TGT})
-  add_custom_target(gdb DEPENDS gdb_${TGT})
-  add_custom_target(gdbtui DEPENDS gdbtui_${TGT})
-  add_custom_target(cgdb DEPENDS cgdb_${TGT})
-endif()
-
-#add_custom_target( fail-1-trace
-#  # Start Qemu in Debug mode.
-#  DEPENDS ${ISOFILE}
-#  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE} -1 
-#     -f /proj/i4ezs/tools/fail/vezs/fail-x86-tracing
-#     -m 32 -- 
-#     -Wf,--start-symbol=fail_trace_start
-#     -Wf,--save-symbol=fail_trace_start
-#     -Wf,--end-symbol=fail_trace_stop
-#     -Wf,--trace-file=${PROJECT_BINARY_DIR}/trace.pb
-#     -Wf,--elf-file=${PROJECT_BINARY_DIR}/${TGT}.elf -q
-#  COMMENT "Trace the app for golden run"
-#  OUTPUT ${PROJECT_BINARY_DIR}/trace.pb
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-#
-#add_custom_target( fail-2-import
-#  # Start Qemu in Debug mode.
-#  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-#  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/import-trace -t ${PROJECT_BINARY_DIR}/trace.pb -i mem -v aufgabe1 -b ${FAILVARIANT} -e ${ELFFILE} --faultspace-rightmargin R
-#  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/import-trace -i ElfImporter --objdump objdump -e ${ELFFILE} -v aufgabe1 -b ${FAILVARIANT}
-#  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/prune-trace -p basic -v aufgabe1 -b ${FAILVARIANT} --overwrite
-#  COMMENT "Import the golden run into the database"
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-#
-#add_custom_target( fail-3-server
-#  # Start Qemu in Debug mode.
-#  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-#  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/generic-experiment-server -v aufgabe1 -b ${FAILVARIANT}
-#  COMMENT "Start the campaign server"
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-#
-#add_custom_target( fail-4-client
-#  # Start Qemu in Debug mode.
-#  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-#  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE}
-#          -f /proj/i4ezs/tools/fail/vezs/generic-experiment-client -m 32
-#           -e ${ELFFILE}
-#           -i ${BOCHS_ISO_IMAGE}
-#           -V vgabios.bin -b BIOS-bochs-latest -- 
-#           -Wf,--state-dir=state
-#           -Wf,--trap -Wf,--timeout=10
-#           -Wf,--ok-marker=fail_marker_positive
-#           -Wf,--fail-marker=fail_marker_negative
-#           -Wf,--detected-marker=fail_marker_detected
-#           -Wf,--catch-write-textsegment
-#           -Wf,--catch-write-outerspace # 2>/dev/null | grep -C 4 'INJECT'
-#  COMMENT "Start one fail-client"
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-#
-#add_custom_target( fail-4-client-parallel
-#  # Start Qemu in Debug mode.
-#  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-#  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ nice -n 19 ionice -c3 ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE}
-#          -f /proj/i4ezs/tools/fail/vezs/generic-experiment-client -m 32
-#           -e ${ELFFILE}
-#           -i ${BOCHS_ISO_IMAGE}
-#           -V vgabios.bin -b BIOS-bochs-latest -j${PROCESSOR_COUNT} --
-#           -Wf,--state-dir=state
-#           -Wf,--trap -Wf,--timeout=10
-#           -Wf,--ok-marker=fail_marker_positive
-#           -Wf,--fail-marker=fail_marker_negative
-#           -Wf,--detected-marker=fail_marker_detected
-#           -Wf,--catch-write-textsegment
-#           -Wf,--catch-write-outerspace # 2>/dev/null | grep -C 4 'INJECT'
-#  COMMENT "Start many fail-clients (use FAIL_SERVER_HOST for different campaign server)"
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-#
-#add_custom_target( fail-5-result
-#  # Start Qemu in Debug mode.
-#  COMMAND mysql -t < ${PROJECT_SOURCE_DIR}/eval/report.sql
-#  COMMENT "Generate a report"
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-#
-#add_custom_target( fail-5-browse
-#  # Start Qemu in Debug mode.
-#  COMMAND mysql -t < ${PROJECT_SOURCE_DIR}/eval/report.sql
-#  COMMAND /proj/i4ezs/tools/fail/vezs/resultbrowser/run.py
-#  COMMENT "Generate HTML report"
-#  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-#)
-endmacro(ADDEMU TGT)
-
diff --git a/03_TMR/cmake/framac.cmake b/03_TMR/cmake/framac.cmake
deleted file mode 100644
index ecc49a14a3ae5d13a1f0be4086b9e554c1400dce..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/framac.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-
-find_program(FRAMA_GUI_EXE "frama-c-gui")
-find_program(FRAMA_EXE "frama-c")
-find_program(WHY_EXE "why3ide")
-
-if(FRAMA_GUI_EXE)
-  add_custom_target(frama-c-gui)
-  message(STATUS "[FRAMA-C] at ${FRAMA_GUI_EXE}")
-  add_custom_command(TARGET frama-c-gui POST_BUILD
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}	
-    COMMAND ${FRAMA_GUI_EXE} -cpp-extra-args='-I ${PROJECT_SOURCE_DIR}/include'
-    )
-else()
-  message(FATAL_ERROR "[FRAMA-C] Could not find frama-c-gui executable")
-endif()
-
-if(FRAMA_EXE AND WHY_EXE)
-  add_custom_target(jessie)
-  message(STATUS "[JESSIE] at ${FRAMA_EXE} and ${WHY_EXE}")
-  add_custom_command(TARGET jessie POST_BUILD
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}	
-    COMMAND ${FRAMA_EXE} -add-path /local/why-2.34/lib/frama-c-plugin -jessie -jessie-atp why3ide -cpp-extra-args='-I ${PROJECT_SOURCE_DIR}/include'
-    )
-else()
-  message(FATAL_ERROR "[JESSIE] Could not find frama-c or why3ide executable")
-endif()
diff --git a/03_TMR/cmake/lcov.cmake b/03_TMR/cmake/lcov.cmake
deleted file mode 100644
index b4efe2f69ab1962a5e7dd39d6fa7a2aab98daf47..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/lcov.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-
-find_program(LCOV_TOOL "lcov")
-find_program(LCOV_HTML "genhtml")
-
-#This is very ugly but we need to have the oldest gcov to support llvm
-find_program(GCOV_LEGACY "gcov-4.2" )
-
-if(NOT GCOV_LEGACY)
-  find_program(GCOV_LEGACY "gcov-4.3" )
-endif()
-
-if(NOT GCOV_LEGACY)
-  find_program(GCOV_LEGACY "gcov-4.4" )
-endif()
-
-if(LCOV_TOOL AND LCOV_HTML)
-    
-  message(STATUS "[LCOV] lcov    at ${LCOV_TOOL}")
-  message(STATUS "[LCOV] genhtml at ${LCOV_HTML}")
-
-    if(NOT DEFINED "LCOV_OUTPUT_DIR")
-        set(LCOV_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doc)
-    endif()
-
-    if(NOT DEFINED "LCOV_SCAN_DIR")
-      set(LCOV_SCAN_DIR_FLAG --directory ${CMAKE_CURRENT_BINARY_DIR}/src)
-    endif()
-
-    if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-      if(GCOV_LEGACY)
-        message(STATUS "[LCOV] lcov support for clang is rather buggy")
-        message(STATUS "[LCOV] using old gcov to support clang at ${GCOV_LEGACY}")
-        set(OPTION_GCOV_TOOL "--gcov-tool" "${GCOV_LEGACY}")
-      else()
-        message(WARNING "lcov won't work with clang")
-        set(OPTION_GCOV_TOOL "")
-      endif()
-    else()
-        set(OPTION_GCOV_TOOL "")
-    endif()
-
-    add_custom_target(lcov)
-
-    add_custom_command(TARGET lcov POST_BUILD
-        COMMAND ${LCOV_TOOL} ${OPTION_GCOV_TOOL} --capture ${LCOV_SCAN_DIR_FLAG} --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-      	COMMAND ${LCOV_TOOL} --remove ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov '*.h' --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-      	COMMAND ${LCOV_TOOL} --remove ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov '/usr/include/*' --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-        COMMAND ${LCOV_HTML} ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov --show-details --legend --output-directory ${LCOV_OUTPUT_DIR}/lcov
-        COMMAND echo "HTML results at: file://${LCOV_OUTPUT_DIR}/lcov/index.html"
-    )
-endif()
diff --git a/03_TMR/cmake/processorcount.cmake b/03_TMR/cmake/processorcount.cmake
deleted file mode 100644
index bc9b4d6de81b6695c8e79a06d9e00f413ac1737c..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/processorcount.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-if(NOT DEFINED PROCESSOR_COUNT)
-  # Unknown:
-  set(PROCESSOR_COUNT 0)
-
-  # Linux:
-  set(cpuinfo_file "/proc/cpuinfo")
-  if(EXISTS "${cpuinfo_file}")
-    file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
-    list(LENGTH procs PROCESSOR_COUNT)
-  endif()
-
-  # Mac:
-  if(APPLE)
-    find_program(cmd_sys_pro "system_profiler")
-    if(cmd_sys_pro)
-      execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
-      string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1"
-        PROCESSOR_COUNT "${info}")
-    endif()
-  endif()
-
-  # Windows:
-  if(WIN32)
-    set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
-  endif()
-endif()
-
-message("-- Processor count: " ${PROCESSOR_COUNT})
diff --git a/03_TMR/cmake/sanitizer.cmake b/03_TMR/cmake/sanitizer.cmake
deleted file mode 100644
index dbeaafbabbfa9f891b9101a5ac201238434223e3..0000000000000000000000000000000000000000
--- a/03_TMR/cmake/sanitizer.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address,undefined,enum,null,shift,signed-integer-overflow,vla-bound")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address,undefined,enum,null,shift,signed-integer-overflow,vla-bound")
-elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address,integer,undefined,bounds,enum,float-cast-overflow,float-divide-by-zero,null,object-size,shift,signed-integer-overflow,vla-bound")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address,integer,undefined,bounds,enum,float-cast-overflow,float-divide-by-zero,null,object-size,shift,signed-integer-overflow,vla-bound")
-endif()
diff --git a/03_TMR/ecos/ecos.ecc b/03_TMR/ecos/ecos.ecc
deleted file mode 100644
index 9ff15a51e17fe8d7aedd5db184fe8ebcd084f94d..0000000000000000000000000000000000000000
--- a/03_TMR/ecos/ecos.ecc
+++ /dev/null
@@ -1,15595 +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    pc_i82559 ;
-    template    default ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_IO current ;
-    package -template CYGPKG_IO_SERIAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_KERNEL current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_SETJMP current ;
-    package -template CYGPKG_LIBC_SIGNALS current ;
-    package -template CYGPKG_LIBC_STARTUP current ;
-    package -template CYGPKG_LIBC_STDIO current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_LIBC_TIME current ;
-    package -template CYGPKG_LIBM current ;
-    package -template CYGPKG_IO_WALLCLOCK current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_HAL_I386 current ;
-    package -hardware CYGPKG_HAL_I386_GENERIC current ;
-    package -hardware CYGPKG_HAL_I386_PC current ;
-    package -hardware CYGPKG_HAL_I386_PCMB current ;
-    package -hardware CYGPKG_IO_PCI current ;
-    package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
-    package -hardware CYGPKG_IO_SERIAL_I386_PC current ;
-    package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
-    package -hardware CYGPKG_DEVS_ETH_I386_PC_I82559 current ;
-    package -hardware CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 current ;
-    package -hardware CYGPKG_DEVICES_WALLCLOCK_I386_PC current ;
-    package -hardware CYGPKG_DEVS_FRAMEBUF_I386 v3_0 ;
-    package CYGPKG_IO_FRAMEBUF current ;
-    package CYGPKG_BLOCK_LIB current ;
-    package CYGPKG_LINUX_COMPAT current ;
-    package CYGPKG_POSIX current ;
-    package CYGPKG_IO_FILEIO current ;
-    package CYGPKG_USTL 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. If your host operating system
-# is Linux you can set this to empty to use your native tools.
-# If so, your native gcc must be gcc-2.95.2 or later, and
-# "ld -v" must report a version more recent than 2.9.1.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value i386-elf
-    # value_source user
-    # Default value: i386-elf
-};
-
-# 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 "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    # value_source user
-    # Default value:  CYGBLD_GLOBAL_WARNFLAGS . " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " 
-    #     CYGBLD_GLOBAL_WARNFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings "
-    #   --> "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-
-    # The following properties are affected by this value
-    # option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    # option CYGBLD_INFRA_CFLAGS_PIPE
-    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-};
-
-# Global linker flags
-# This option controls the global linker flags. Individual
-# packages may define options which override these global flags.
-#
-cdl_option CYGBLD_GLOBAL_LDFLAGS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-g -nostdlib -Wl,--gc-sections -Wl,-static"
-    # value_source default
-    # Default value: "-g -nostdlib -Wl,--gc-sections -Wl,-static"
-};
-
-# Build GDB stub loader image
-# This option enables the building of the GDB stubs for the
-# board. The common HAL controls takes care of most of the
-# build process, but the final conversion from ELF image to
-# binary data is handled by the platform CDL, allowing
-# relocation of the data if necessary.
-#
-cdl_option CYGBLD_BUILD_GDB_STUBS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 0
-    #   --> 0
-    # Requires: CYGBLD_BUILD_COMMON_GDB_STUBS
-    #     CYGBLD_BUILD_COMMON_GDB_STUBS == 0
-    #   --> 0
-    # 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
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
-    #   --> 0
-};
-
-# Standard compiler warning flags
-# This option specifies the default warning-related compiler flags used
-# on all eCos platforms.
-#
-cdl_option CYGBLD_GLOBAL_WARNFLAGS {
-    # Calculated value:  "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings " 
-    # Flavor: data
-    # Current_value: -Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings 
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     DefaultValue:  CYGBLD_GLOBAL_WARNFLAGS . " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " 
-};
-
-# 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
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: CYGBLD_BUILD_COMMON_GDB_STUBS
-};
-
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# Build RedBoot binary image
-#
-cdl_component CYGBLD_BUILD_REDBOOT_BIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_HAL_OPTIONS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Build Redboot FLOPPY binary image
-# This option enables the conversion of the Redboot 
-# ELF image to a binary image suitable for
-# copying to a floppy disk.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN_FLOPPY {
-    # This option is not active
-    # The parent CYGBLD_BUILD_REDBOOT_BIN is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "FLOPPY" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# 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_ROM {
-    # This option is not active
-    # The parent CYGBLD_BUILD_REDBOOT_BIN is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# <
-# Intel 82559 ethernet driver
-# Ethernet driver for Intel 82559 controller.
-#
-cdl_package CYGPKG_DEVS_ETH_INTEL_I82559 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED
-    #     CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED == 0
-    #   --> 0
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# Prints ethernet device status info during startup
-# Definining this will cause the ethernet device initialization code 
-# to print lots of info
-# to confirm that it has found the devices on the PCI bus, read
-# the MAC address from EEPROM correctly, and so on, and also
-# displays the mode (10/100MHz, half/full duplex) of the
-# connection.  If the value is set higher than one then
-# additional information about each packet sent will be printed.
-#
-cdl_option CYGDBG_DEVS_ETH_INTEL_I82559_CHATTER {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of supported interfaces.
-# This option selects the number of PCI ethernet interfaces to
-# be supported by the driver.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Calculated value:  CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED 
-    #     CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED == 0
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Keep Ethernet statistics
-# The ethernet device can maintain statistics about the network,
-# specifically a great variety of error rates which are useful
-# for network management.  SNMP for example uses this
-# information.  There is some performance cost in maintaining
-# this information; disable this option to recoup that.
-#
-cdl_component CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_STATISTICS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Keep i82559 Internal statistics
-# The i82559 keeps internal counters, and it is possible to
-# acquire these.  But the i82559 (reputedly) does not service
-# the network whilst uploading the data to RAM from its
-# internal registers.  If throughput is a problem, disable
-# this option to acquire only those statistics gathered by
-# software, so that the i82559 never sleeps.
-#
-cdl_option CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_82559_STATISTICS {
-    # This option is not active
-    # The parent CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_STATISTICS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# SIOCSIFHWADDR records MAC address in EEPROM
-# The ioctl() socket call with operand SIOCSIFHWADDR sets the
-# interface hardware address - the MAC address or ethernet
-# address.  This option causes the new MAC address to be written
-# into the EEPROM associated with the interface, so that the new
-# MAC address is permanently recorded.  Doing this should be a
-# carefully chosen decision, hence this option.
-#
-cdl_component CYGPKG_DEVS_ETH_INTEL_I82559_WRITE_EEPROM {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Maximum number of RX descriptors
-# An RX descriptor is used for each ethernet frame required
-# to be passed to the upper networking layers. This option
-# sets the maximum number of these. Higher numbers use more
-# memory, lower numbers will reduce performance. The system
-# appears to work OK with as few as 8 descriptors but limps
-# painfully with only 4. Performance is better with more than
-# 8, but assuming the size of non-cached (so useless for anything
-# else) memory window is 1Mb, we might as well use it all.
-# 128 RX and TX descriptors uses the whole 1Mb, near enough.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_MAX_RX_DESCRIPTORS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 4 : 128 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 128
-};
-
-# Maximum number of TX descriptors
-# A TX descriptor is used for each ethernet frame passed down
-# from upper networking layers for transmission. This option
-# sets the maximum number of these. Higher numbers use more
-# memory, lower numbers will reduce performance. The system
-# appears to work OK with as few as 8 descriptors but limps
-# painfully with only 4. Performance is better with more than
-# 8, but assuming the size of non-cached (so useless for anything
-# else) memory window is 1Mb, we might as well use it all.
-# 128 RX and TX descriptors uses the whole 1Mb, near enough.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_MAX_TX_DESCRIPTORS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 4 : 128 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 128
-};
-
-# Intel 82559 ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_INTEL_I82559_OPTIONS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Intel 82559 ethernet driver
-# package. These flags are used in addition to the set of
-# global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_INTEL_I82559_CFLAGS_ADD {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D_KERNEL -D__ECOS"
-    # value_source default
-    # Default value: "-D_KERNEL -D__ECOS"
-};
-
-# <
-# <
-# PC board ethernet driver
-# Ethernet driver for PC.
-#
-cdl_package CYGPKG_DEVS_ETH_I386_PC_I82559 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGPKG_HAL_I386_PC
-    #     CYGPKG_HAL_I386_PC == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# Intel i82559 ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_INTEL_I82559
-    #     ActiveIf: CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED
-    # option CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT
-    #     Calculated:  CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED 
-};
-
-# Ethernet port 0 driver
-#
-cdl_component CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Device name for the ETH0 ethernet port 0 driver
-# This option sets the name of the ethernet device for the
-# i82559 ethernet port 0.
-#
-cdl_option CYGDAT_DEVS_ETH_I386_PC_I82559_ETH0_NAME {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# Set the ethernet station address
-# Enabling this option will allow the ethernet
-# station address to be forced to the value set by the
-# configuration.  This may be required if the hardware does
-# not include a serial EEPROM for the ESA.
-#
-cdl_component CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# The ethernet station address
-# The ethernet station address
-#
-cdl_option CYGDAT_DEVS_ETH_I386_PC_I82559_ETH0_ESA {
-    # This option is not active
-    # The parent CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA is not active
-    # The parent CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{0x08, 0x00, 0x00, 0x00, 0x00, 0x01}"
-    # value_source default
-    # Default value: "{0x08, 0x00, 0x00, 0x00, 0x00, 0x01}"
-};
-
-# <
-# <
-# <
-# <
-# 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
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-};
-
-# >
-# Platform-independent HAL options
-# A number of configuration options are common to most or all
-# HAL packages, for example options controlling how much state
-# should be saved during a context switch. The implementations
-# of these options will vary from architecture to architecture.
-#
-cdl_component CYGPKG_HAL_COMMON {
-    # There is no associated value.
-};
-
-# >
-# Provide eCos kernel support
-# The HAL can be configured to either support the full eCos
-# kernel, or to support only very simple applications which do
-# not require a full kernel. If kernel support is not required
-# then some of the startup, exception, and interrupt handling
-# code can be eliminated.
-#
-cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# HAL exception support
-# When a processor exception occurs, for example an attempt to
-# execute an illegal instruction or to perform a divide by
-# zero, this exception may be handled in a number of different
-# ways. If the target system has gdb support then typically
-# the exception will be handled by gdb code. Otherwise if the
-# HAL exception support is enabled then the HAL will invoke a
-# routine deliver_exception(). Typically this routine will be
-# provided by the eCos kernel, but it is possible for
-# application code to provide its own implementation. If the
-# HAL exception support is not enabled and a processor
-# exception occurs then the behaviour of the system is
-# undefined.
-#
-cdl_option CYGPKG_HAL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS == 1
-    #   --> 1
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_KERNEL_EXCEPTIONS
-    #     Requires: CYGPKG_HAL_EXCEPTIONS
-};
-
-# Stop calling constructors early
-# This option supports environments where some constructors
-# must be run in the context of a thread rather than at
-# simple system startup time. A boolean flag named
-# cyg_hal_stop_constructors is set to 1 when constructors
-# should no longer be invoked. It is up to some other
-# package to deal with the rest of the constructors.
-# In the current version this is only possible with the
-# C library.
-#
-cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-};
-
-# HAL uses the MMU and allows for CDL manipulation of it's use
-#
-cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_INSTALL_MMU_TABLES
-    #     ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES
-};
-
-# Install MMU tables.
-# This option controls whether this application installs
-# its own Memory Management Unit (MMU) tables, or relies on the
-# existing environment to run.
-#
-cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES
-    #     CYGINT_HAL_SUPPORTS_MMU_TABLES == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 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 (unknown) == 0
-    #     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 == GRUB
-    #   --> 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"
-};
-
-# <
-# Grouped libraries for linking
-# This option provides a list of libraries used to satisfy
-# linker dependencies, but necessary for building eCos. It is passed
-# to a GROUP() directive in the linker script, which is analogous
-# to using the "-(" aka "--start-group", and "-)" aka
-# "--end-group" options on the linker command line.
-# It provides a similar function to adding "-llibname" to the
-# linker, but with the added feature that each library in the group
-# is scanned in turn for unresolved symbols, and this process is
-# repeated until there are no more unresolved symbols. This is important
-# for system libraries as there are often mutual dependencies.
-# This option should not be used for adding application specific
-# libraries. That should be done in the application's own makefile
-# or link line.
-# Users wishing to use the GNU Compiler prior to GCC 3.0 will
-# need to remove libsupc++.a from this option.
-# Note that libtarget.a is always required to build eCos.
-#
-cdl_component CYGBLD_HAL_LINKER_GROUPED_LIBS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "libtarget.a libgcc.a libsupc++.a"
-    # value_source default
-    # Default value: CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT
-    #     CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT == "libtarget.a libgcc.a libsupc++.a"
-    #   --> "libtarget.a libgcc.a libsupc++.a"
-    # Requires:  is_substr(CYGBLD_HAL_LINKER_GROUPED_LIBS, "libtarget.a") 
-    #     CYGBLD_HAL_LINKER_GROUPED_LIBS == "libtarget.a libgcc.a libsupc++.a"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_HAL_LINKER_GROUPED_LIBS
-    #     Requires:  is_substr(CYGBLD_HAL_LINKER_GROUPED_LIBS, "libtarget.a") 
-};
-
-# >
-# Default setting
-# This option is intended to be used by other eCos packages (including
-# HAL packages) to provide a different default value for
-# CYGBLD_HAL_LINKER_GROUPED_LIBS.
-# This is separated into its own option to continue to
-# allow the user to make customisations to the grouped library
-# list.
-#
-cdl_option CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "libtarget.a libgcc.a libsupc++.a"
-    # value_source default
-    # Default value: "libtarget.a libgcc.a libsupc++.a"
-
-    # The following properties are affected by this value
-    # component CYGBLD_HAL_LINKER_GROUPED_LIBS
-    #     DefaultValue: CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT
-};
-
-# <
-# <
-# HAL interrupt handling
-# A number of configuration options related to interrupt
-# handling are common to most or all HAL packages, even though
-# the implementations will vary from architecture to
-# architecture.
-#
-cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
-    # There is no associated value.
-};
-
-# >
-# Use separate stack for interrupts
-# When an interrupt occurs this interrupt can be handled either
-# on the current stack or on a separate stack maintained by the
-# HAL. Using a separate stack requires a small number of extra
-# instructions in the interrupt handling code, but it has the
-# advantage that it is no longer necessary to allow extra space
-# in every thread stack for the interrupt handlers. The amount
-# of extra space required depends on the interrupt handlers
-# that are being used.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Interrupt stack size
-# This configuration option specifies the stack size in bytes
-# for the interrupt stack. Typically this should be a multiple
-# of 16, but the exact requirements will vary from architecture
-# to architecture. The interrupt stack serves two separate
-# purposes. It is used as the stack during system
-# initialization. In addition, if the interrupt system is
-# configured to use a separate stack then all interrupts will
-# be processed on this stack. The exact memory requirements
-# will vary from application to application, and will depend
-# heavily on whether or not other interrupt-related options,
-# for example nested interrupts, are enabled. On most targets,
-# in a configuration with no kernel this stack will also be
-# the stack used to invoke the application, and must obviously
-# be appropriately large in that case.
-#
-cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL == current
-    #   --> 4096
-    # Legal values: 128 to 1048576
-};
-
-# Allow nested interrupts
-# When an interrupt occurs the HAL interrupt handling code can
-# either leave interrupts disabled for the duration of the
-# interrupt handling code, or by doing some extra work it can
-# reenable interrupts before invoking the interrupt handler and
-# thus allow nested interrupts to happen. If all the interrupt
-# handlers being used are small and do not involve any loops
-# then it is usually better to disallow nested interrupts.
-# However if any of the interrupt handlers are more complicated
-# than nested interrupts will usually be required.
-#
-cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Save minimum context on interrupt
-# The HAL interrupt handling code can exploit the calling conventions
-# defined for a given architecture to reduce the amount of state
-# that has to be saved. Generally this improves performance and
-# reduces code size. However it can make source-level debugging
-# more difficult.
-#
-cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-};
-
-# Chain all interrupts together
-# Interrupts can be attached to vectors either singly, or be
-# chained together. The latter is necessary if there is no way
-# of discovering which device has interrupted without
-# inspecting the device itself. It can also reduce the amount
-# of RAM needed for interrupt decoding tables and code.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_KERNEL_INTERRUPTS_CHAIN
-    #     Requires: CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-};
-
-# Ignore spurious [fleeting] interrupts
-# On some hardware, interrupt sources may not be de-bounced or
-# de-glitched.  Rather than try to handle these interrupts (no
-# handling may be possible), this option allows the HAL to simply
-# ignore them.  In most cases, if the interrupt is real it will
-# reoccur in a detectable form.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# HAL context switch support
-# A number of configuration options related to thread contexts
-# are common to most or all HAL packages, even though the
-# implementations will vary from architecture to architecture.
-#
-cdl_component CYGPKG_HAL_COMMON_CONTEXT {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Use minimum thread context
-# The thread context switch code can exploit the calling
-# conventions defined for a given architecture to reduce the
-# amount of state that has to be saved during a context
-# switch. Generally this improves performance and reduces
-# code size. However it can make source-level debugging more
-# difficult.
-#
-cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-};
-
-# <
-# Explicit control over cache behaviour
-# These options let the default behaviour of the caches 
-# be easily configurable.
-#
-cdl_component CYGPKG_HAL_CACHE_CONTROL {
-    # There is no associated value.
-};
-
-# >
-# Enable DATA cache on startup
-# Enabling this option will cause the data cache to be enabled
-# as soon as practicable when eCos starts up.  One would choose
-# to disable this if the data cache cannot safely be turned on,
-# such as a case where the cache(s) require additional platform
-# specific setup.
-#
-cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# DATA cache mode on startup
-# This option controls the mode the cache will be set to
-# when enabled on startup.
-#
-cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value COPYBACK
-    # value_source default
-    # Default value: COPYBACK
-    # Legal values:  "COPYBACK" "WRITETHRU" 
-};
-
-# <
-# Enable INSTRUCTION cache on startup
-# Enabling this option will cause the instruction cache to be enabled
-# as soon as practicable when eCos starts up.  One would choose
-# to disable this if the instruction cache cannot safely be turned on,
-# such as a case where the cache(s) require additional platform
-# specific setup.
-#
-cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Source-level debugging support
-# If the source level debugger gdb is to be used for debugging
-# application code then it may be necessary to configure in support
-# for this in the HAL.
-#
-cdl_component CYGPKG_HAL_DEBUG {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Support for GDB stubs
-# The HAL implements GDB stubs for the target.
-#
-cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS {
-    # Implemented by CYGPKG_HAL_I386_PC, 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
-};
-
-# 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
-    # value_source default
-    # 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 == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
-    #   --> 0
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 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 CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK
-    #     ActiveIf: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     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_I386_PC, 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 CYGBLD_BUILD_GDB_STUBS
-    #     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 CYGBLD_BUILD_GDB_STUBS
-    #     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 == 0
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT == 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 CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     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"
-};
-
-# Enable initial breakpoint
-# This option causes an application that has GDB stubs built in
-# to take a breakpoint immediately before calling cyg_start().
-# This gives the developer a chance to set any breakpoints or
-# inspect the system state before it proceeds.
-#
-cdl_option CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK {
-    # This option is not active
-    # ActiveIf constraint: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  !CYGPKG_REDBOOT 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 1
-};
-
-# <
-# 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_I386_PC, 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Enable use of virtual vector calling interface
-# Virtual vector support allows the HAL to let the ROM
-# monitor handle certain operations. The virtual vector table
-# defines a calling interface between applications running in
-# RAM and the ROM monitor.
-#
-cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Inherit console settings from ROM monitor
-# When this option is set, the application will inherit
-# the console as set up by the ROM monitor. This means
-# that the application will use whatever channel and
-# mangling style was used by the ROM monitor when
-# the application was launched.
-#
-cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
-    # This option is not active
-    # 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
-};
-
-# 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
-};
-
-# 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 == GRUB
-    #     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_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_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_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 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 board, 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
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-    # Requires:  !CYGHWR_HAL_I386_FPU_SWITCH_LAZY 
-    #     CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 1
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-};
-
-# 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 == GRUB
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 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 {
-    # Implemented by CYGPKG_HAL_I386_PCMB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Saved interrupt state required
-# Components requiring access to saved interrupt state via the
-# hal_saved_interrupt_state symbol should implement this
-# interface.
-#
-cdl_interface CYGINT_HAL_COMMON_SAVED_INTERRUPT_STATE_REQUIRED {
-    # Implemented by CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT, active, disabled
-    # Implemented by CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-};
-
-# File I/O operations via GDB
-# This option enables support for various file I/O
-# operations using the GDB remote protocol to communicate
-# with GDB. The operations are then performed on the
-# debugging host by proxy. These operations are only
-# currently available by using a system call interface
-# to RedBoot. This may change in the future.
-#
-cdl_option CYGPKG_HAL_GDB_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-};
-
-# Build Compiler sanity checking tests
-# Enabling this option causes compiler tests to be built.
-#
-cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_HAL_TESTS
-    #     Calculated:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-};
-
-# Common HAL tests
-# This option specifies the set of tests for the common HAL.
-#
-cdl_component CYGPKG_HAL_TESTS {
-    # Calculated value:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-    #     CYGINT_HAL_TESTS_NO_CACHES == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache
-};
-
-# >
-# 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" : "") 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# <
-# i386 architecture
-# The i386 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_I386 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBM_CFLAGS_ADD
-    #     DefaultValue:  "-fno-strict-aliasing" .  ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") 
-};
-
-# >
-# SMP support
-#
-cdl_component CYGPKG_HAL_SMP_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 
-    #     CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 1
-    #   --> 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_KERNEL_SMP_SUPPORT
-    #     Requires: CYGPKG_HAL_SMP_SUPPORT
-    # component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT
-    #     ActiveIf:  CYGPKG_HAL_SMP_SUPPORT 
-    # component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT
-    #     Calculated:  CYGPKG_HAL_SMP_SUPPORT 
-};
-
-# >
-# Max number of CPUs supported
-#
-cdl_option CYGPKG_HAL_SMP_CPU_MAX {
-    # This option is not active
-    # The parent CYGPKG_HAL_SMP_SUPPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-};
-
-# <
-# Enable I386 FPU support
-# This component enables support for the
-# I386 floating point unit.
-#
-cdl_component CYGHWR_HAL_I386_FPU {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use lazy FPU state switching
-# This option enables lazy FPU state switching.
-# The default behaviour for eCos is to save and
-# restore FPU state on every thread switch, interrupt
-# and exception. While simple and deterministic, this
-# approach can be expensive if the FPU is not used by
-# all threads. The alternative, enabled by this option,
-# is to use hardware features that allow the FPU state
-# of a thread to be left in the FPU after it has been
-# descheduled, and to allow the state to be switched to
-# a new thread only if it actually uses the FPU. Where
-# only one or two threads use the FPU this can avoid a
-# lot of unnecessary state switching.
-#
-cdl_option CYGHWR_HAL_I386_FPU_SWITCH_LAZY {
-    # 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_HAL_SMP_SUPPORT
-    #     Requires:  CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  !CYGHWR_HAL_I386_FPU_SWITCH_LAZY 
-};
-
-# <
-# Enable Pentium class CPU features
-# This component enables support for various
-# features of Pentium class CPUs.
-#
-cdl_component CYGHWR_HAL_I386_PENTIUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Save/Restore SSE registers on context switch
-# This option enables SSE state switching. The default
-# behaviour for eCos is to ignore the SSE registers.
-# Enabling this option adds SSE state information to
-# every thread context.
-#
-cdl_option CYGHWR_HAL_I386_PENTIUM_SSE {
-    # This option is not active
-    # The parent CYGHWR_HAL_I386_PENTIUM is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support extra Pentium registers in GDB stub
-# This option enables support for extra Pentium registers
-# in the GDB stub. These are registers such as CR0-CR4, and
-# all MSRs. Not all GDBs support these registers, so the
-# default behaviour for eCos is to not include them in the
-# GDB stub support code.
-#
-cdl_option CYGHWR_HAL_I386_PENTIUM_GDB_REGS {
-    # This option is not active
-    # The parent CYGHWR_HAL_I386_PENTIUM is disabled
-
-    # 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/i386.ld" 
-    # Flavor: data
-    # Current_value: src/i386.ld
-};
-
-# Implementations of hal_i386_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_I386_MEM_REAL_REGION_TOP {
-    # Implemented by CYGPKG_HAL_I386_PCMB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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_I386_LINUX_EXEC {
-    # This option is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC (unknown) == 0
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# Address for the trampoline code
-# This is the address to where the trampoline code is
-# copied.  The trampoline copies the image to its
-# final location and jumps to its entry point.
-#
-cdl_option CYGHWR_REDBOOT_I386_TRAMPOLINE_ADDRESS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_I386_LINUX_EXEC is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0007C000
-    # value_source default
-    # Default value: 0x0007C000
-};
-
-# <
-# i386 generic target
-# This package provides support for generic IA32 CPU variants.
-# Any CPU from an 80386 to the latest Pentium/Athlon should work
-# with this variant HAL. Essentially this variant is empty, it
-# just avoids providing any configuration to the generic architecture
-# support in the architecture HAL.
-#
-cdl_package CYGPKG_HAL_I386_GENERIC {
-    # 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
-};
-
-# i386 PC Target
-# The i386 PC Target HAL package provides the 
-# support needed to run eCos binaries on an i386 PC.
-#
-cdl_package CYGPKG_HAL_I386_PC {
-    # 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_DEVS_ETH_I386_PC_I82559
-    #     ActiveIf: CYGPKG_HAL_I386_PC
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     ActiveIf: CYGPKG_HAL_I386_PC
-};
-
-# >
-# How to discover the size of available RAM.
-# It is possible for the HAL to discover the 
-# size of RAM In several ways. Currently this
-# can be done by querying the BIOS or by 
-# hardcoding the values into the executable.
-#
-cdl_component CYGPKG_HAL_I386_PC_MEMSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value BIOS
-    # value_source default
-    # Default value: BIOS
-    # Legal values: "BIOS" "HARDCODE"
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_I386_PC_MEMSIZE_BASE
-    #     ActiveIf:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    # option CYGNUM_HAL_I386_PC_MEMSIZE_EXTENDED
-    #     ActiveIf:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-};
-
-# >
-# Amount of Base RAM available.
-#
-cdl_option CYGNUM_HAL_I386_PC_MEMSIZE_BASE {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    #     CYGPKG_HAL_I386_PC_MEMSIZE == BIOS
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000F0000
-    # value_source default
-    # Default value: 0x000F0000
-};
-
-# Amount of Extended RAM available.
-#
-cdl_option CYGNUM_HAL_I386_PC_MEMSIZE_EXTENDED {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    #     CYGPKG_HAL_I386_PC_MEMSIZE == BIOS
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Startup type
-# It is possible to configure eCos for the PC target to build for:
-# RAM startup (generally when being run under an existing
-# Monitor program like RedBoot); FLOPPY startup (for writing
-# to a floppy disk, which can then be used for booting
-# on PCs with a standard BIOS), GRUB startup (for being booted
-# by the GRUB bootloader) ROM startup (for writing
-# straight to a boot ROM/Flash). ROM startup is experimental
-# at this time.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    user_value GRUB
-    # value_source user
-    # Default value: RAM
-    # Legal values: "RAM" "FLOPPY" "ROM" "GRUB"
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_I386_ROMBOOT
-    #     Calculated:  CYG_HAL_STARTUP == "ROM" 
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGHWR_HAL_I386_PC_LOAD_HIGH
-    #     Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGHWR_HAL_I386_PC_LOAD_HIGH
-    #     Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # 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 CYGBLD_BUILD_REDBOOT_BIN_FLOPPY
-    #     ActiveIf:  CYG_HAL_STARTUP == "FLOPPY" 
-    # option CYGBLD_BUILD_REDBOOT_BIN_ROM
-    #     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 
-};
-
-# Build ROM bootstrap code
-#
-cdl_option CYGBLD_BUILD_I386_ROMBOOT {
-    # Calculated value:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == GRUB
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the diagnostic port.
-# Note: this should match the value chosen for the GDB port if the
-# diagnostic 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 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option controls the baud rate used for the GDB connection.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the board
-# This define the number of serial ports that will be used by the HAL.
-# Ports 0 and 1 equate to COM1 and COM2 and port 2 is the PC screen and
-# keyboard.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value:  CYGSEM_HAL_I386_PC_DIAG_SCREEN ? 3 : 2 
-    #     CYGSEM_HAL_I386_PC_DIAG_SCREEN == 1
-    #   --> 3
-    # Legal values: 1 to 3
-
-    # 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
-# On PCs with two 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 {
-    # 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 == 3
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # 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 == 3
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Diagnostic serial port
-# On PCs with two serial ports, this option
-# chooses which port will be used for diagnostic output.
-# Selecting port 2 will cause the PC screen to be used.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # 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 == 3
-};
-
-# Output to PC screen
-# This option enables use of the PC screen and keyboard as a
-# third virtual serial device.
-#
-cdl_option CYGSEM_HAL_I386_PC_DIAG_SCREEN {
-    # 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_HAL_VIRTUAL_VECTOR_COMM_CHANNELS
-    #     DefaultValue:  CYGSEM_HAL_I386_PC_DIAG_SCREEN ? 3 : 2 
-    # option CYGNUM_HAL_I386_PC_STARTUP_VIDEO_MODE
-    #     Requires:  !CYGSEM_HAL_I386_PC_DIAG_SCREEN 
-};
-
-# Load into higher memory (2MB)
-# This option enables building RAM applications
-# which have a start address outside of the area
-# used by redboot_GRUB.
-#
-cdl_option CYGHWR_HAL_I386_PC_LOAD_HIGH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-};
-
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: i386_pc_grub
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_i386_pc_grub.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_i386_pc_grub.h>
-};
-
-# <
-# <
-# i386 PC Motherboard Support
-# The i386 PC Motherboard HAL package provides the
-# support needed to run eCos binaries on an i386 PC
-# using a standard motherboard. This package provides
-# support for the standard PC devices: timers, interrupt
-# controller, serial ports, ASCII display, keyboard, PCI
-# bus etc. that are found on all PC compatible platforms.
-# It does not provide support for devices that may also be
-# found on modern motherboards, such as ethernet, sound and
-# video devices. These are supported by drivers elsewhere.
-#
-cdl_package CYGPKG_HAL_I386_PCMB {
-    # 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_IO_SERIAL_I386_PC
-    #     ActiveIf: CYGPKG_HAL_I386_PCMB
-};
-
-# >
-# Real-time clock constants.
-# The RTC period is based on the clock input
-# to the 8254, which is 1193180 Hz.
-# CYGNUM_HAL_RTC_PERIOD is set for 100 ticks
-# per second.
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Flavor: data
-    user_value 1000000000
-    # value_source user
-    # Default value: 1000000000
-};
-
-# Real-time clock denominator
-#
-cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
-    # Flavor: data
-    user_value 1000
-    # value_source user
-    # Default value: 100
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Flavor: data
-    user_value 1193
-    # value_source user
-    # Default value: 11932
-};
-
-# <
-# Search entire PCI space
-# This option enables searching the entire PCI address space, including
-# up to 256 busses, etc.  Probably only useful when there are bridges or
-# other PCI expanding devices (such as a board with it's own PCI bus)
-# in the system.  If disabled, the system will revert to the default
-# PCI space size (typically 8 busses).
-#
-cdl_option CYGSEM_HAL_I386_PC_LARGE_PCI_SPACE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Switch the display to an alternative video mode
-# This option can be used when building RedBoot to switch
-# the display to a suitable mode, typically before running
-# an eCos graphical application. The mode switch involves
-# calling the PC Video BIOS, so needs to happen while the
-# processor is still running in real mode. Some information
-# about the video BIOS, the current mode, and the available
-# modes will be written to video memory so that the eCos
-# application knows what happened.
-# Different graphics cards use different numbers for the
-# various modes, so there is no simple way of knowing which
-# mode should be specified to achieve the desired resolution.
-# Instead RedBoot can be built with a suitable default, for
-# example 0x0100, and then a simple eCos application can be
-# built using an appropriate eCos configuration and
-# run to find out about all the available mode. RedBoot can
-# then be reconfigured and rebuilt to use a suitable mode.
-# The PC motherboard support package comes with a simple
-# eCos program gfxmode.c which can be used for this.
-#
-cdl_option CYGNUM_HAL_I386_PC_STARTUP_VIDEO_MODE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  !CYGSEM_HAL_I386_PC_DIAG_SCREEN 
-    #     CYGSEM_HAL_I386_PC_DIAG_SCREEN == 1
-    #   --> 0
-};
-
-#
-cdl_component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_SMP_SUPPORT 
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value:  CYGPKG_HAL_SMP_SUPPORT 
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Support for gprof profiling
-# The PC HAL support can provide a profiling timer for use
-# by the gprof package. However the hardware only provides a
-# single source of timer interrupts so this must be shared
-# between the system clock and the profiling code. The current
-# implementation requires that the system clock be initialized
-# first (which happens in a static constructor with priority
-# CYG_INIT_CLOCK), then profiling can be enabled via a call
-# to profile_on().
-#
-cdl_option CYGFUN_HAL_I386_PCMB_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_PROFILE_GPROF
-    #     CYGPKG_PROFILE_GPROF (unknown) == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-};
-
-# Enable PC screen support
-# This option enables support for the PC screen and
-# keyboard. These are combined into a virtual serial
-# device that may be used for diagnostic output.
-# Note that there is little point in trying to use it
-# as a debug channel.
-#
-cdl_interface CYGINT_HAL_I386_PCMB_SCREEN_SUPPORT {
-    # Implemented by CYGSEM_HAL_I386_PC_DIAG_SCREEN, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# <
-# <
-# <
-# I/O sub-system
-# doc: ref/io.html
-# The eCos system is supplied with a number of different
-# device drivers.  This option enables the basic I/O system
-# support which is the basis for all drivers.
-#
-cdl_package CYGPKG_IO {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL
-    #     ActiveIf: CYGPKG_IO
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_IO
-    # option CYGPKG_IO_FILEIO_DEVFS_SUPPORT
-    #     ActiveIf: CYGPKG_IO
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_IO
-};
-
-# >
-# Debug I/O sub-system
-# This option enables verbose messages to be displayed on the
-# system 'diag' device during I/O system initialization.
-#
-cdl_option CYGDBG_IO_INIT {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 0
-};
-
-# Basic support for file based I/O
-# This option control support for simple file I/O primitives. It is only
-# present if the FILEIO package is not included.
-#
-cdl_component CYGPKG_IO_FILE_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: !CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Number of open files
-# This option controls the number of open files.
-#
-cdl_option CYGPKG_IO_NFILE {
-    # This option is not active
-    # The parent CYGPKG_IO_FILE_SUPPORT is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-};
-
-# <
-# Serial device drivers
-# doc: ref/io.html
-# This option enables drivers for basic I/O services on
-# serial devices.
-#
-cdl_package CYGPKG_IO_SERIAL {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     ActiveIf: CYGPKG_IO_SERIAL
-    # package CYGPKG_IO_SERIAL_I386_PC
-    #     ActiveIf: CYGPKG_IO_SERIAL
-};
-
-# >
-# Support non-blocking read and write calls
-# This option enables extra code in the generic serial driver
-# which allows clients to switch read() and write() call
-# semantics from blocking to non-blocking.
-#
-cdl_option CYGOPT_IO_SERIAL_SUPPORT_NONBLOCKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Driver requires block transfer callback functions
-# Some low-level drivers can be optimized to transfer blocks
-# of data instead of a single character at a time. These usually
-# rely on a hardware FIFO of some sort.
-#
-cdl_interface CYGINT_IO_SERIAL_BLOCK_TRANSFER {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Serial driver supports line status
-#
-cdl_interface CYGINT_IO_SERIAL_LINE_STATUS_HW {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
-    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     DefaultValue:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
-};
-
-# Support line status callbacks
-# This option indicates that if the serial driver supports it,
-# serial line status and modem status information should be
-# propagated to higher layers via callbacks.
-#
-cdl_option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
-    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 2
-    #   --> 1
-    # Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
-    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-};
-
-# Flow control
-# This component contains options related to flow control.
-#
-cdl_component CYGPKG_IO_SERIAL_FLOW_CONTROL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE == 0
-    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-};
-
-# >
-# Software flow control
-# This component enables support of software flow control.
-#
-cdl_component CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
-    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-};
-
-# >
-# Start character
-# This option specifies the ascii character used to
-# indicate that transmission should start.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XON_CHAR {
-    # This option is not active
-    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 17
-    # value_source default
-    # Default value: 17
-    # Legal values: 0 to 255
-};
-
-# Stop character
-# This option specifies the ascii character used to
-# indicate that transmission should stop.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XOFF_CHAR {
-    # This option is not active
-    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 19
-    # value_source default
-    # Default value: 19
-    # Legal values: 0 to 255
-};
-
-# <
-# Hardware flow control
-# If the hardware supports it, this option allows hardware
-# flow control to be enabled. This may be in the form of
-# either or both of RTS/CTS, or DSR/DTR flow control.
-#
-cdl_option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-    # ActiveIf constraint:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 1
-    #   --> 0
-    # Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-    # Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
-    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-};
-
-# Serial h/w supports hardware flow control
-#
-cdl_interface CYGINT_IO_SERIAL_FLOW_CONTROL_HW {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     ActiveIf:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-};
-
-# Default flow control method
-# This option allows a default flow control method
-# to be defined. Combinations of flow control methods
-# may also be set, but this is only possible by
-# using the cyg_io_set_config() API in source code.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NONE
-    # value_source default
-    # Default value: NONE
-    # Legal values:  "NONE" "XONXOFF" "RTSCTS" "DSRDTR" 
-};
-
-# Rx flow control low water mark
-# This sets the water mark used for determining
-# when to disable flow control, expressed
-# as a percentage of the buffer size. When the
-# receive buffer size is lower than this percentage,
-# if the transmitter had previously been throttled, it
-# will now be informed it can restart.
-#
-cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 33
-    # value_source default
-    # Default value: 33
-    # Legal values: 1 to 100
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
-    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-};
-
-# Rx flow control high water mark
-# This sets the water mark used for determining
-# when to enable flow control, expressed
-# as a percentage of the buffer size. When the
-# receive buffer size exceeds this percentage,
-# signals are sent to the transmitter to tell it
-# to throttle tranmission.
-#
-cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 66
-    # value_source default
-    # Default value: 66
-    # Legal values: 1 to 100
-    # Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT == 0
-    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
-    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-};
-
-# <
-# TTY-mode serial device drivers
-# This option enables a simple terminal-like device driver 
-# that can be used for serial devices that interact with humans,
-# such as a system console.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# HAL/diag serial device driver
-# This option enables the use of the HAL diagnostic channel
-# via the standard I/O drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_HALDIAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-};
-
-# Console device name
-# This option selects the TTY device to use for the console.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_CONSOLE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ttydiag\""
-    # value_source default
-    # Default value: "\"/dev/ttydiag\""
-
-    # The following properties are affected by this value
-    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
-    #     DefaultValue:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
-    #     DefaultValue:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-};
-
-# TTY mode HAL/diag channel
-# This option causes '/dev/ttydiag' to be included in the standard
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTYDIAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# TTY mode channel #0
-# This option causes '/dev/tty0' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #0 device
-# This option selects the physical device to use for 
-# '/dev/tty0'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY0_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY0 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-};
-
-# <
-# TTY mode channel #1
-# This option causes '/dev/tty1' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #1 device
-# This option selects the physical device to use for 
-# '/dev/tty1'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY1_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# <
-# TTY mode channel #2
-# This option causes '/dev/tty2' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY2 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #2 device
-# This option selects the physical device to use for 
-# '/dev/tty2'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY2_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY2 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser2\""
-    # value_source default
-    # Default value: "\"/dev/ser2\""
-};
-
-# <
-# TTY mode channel #3
-# This option causes '/dev/tty3' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY3 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #3 device
-# This option selects the physical device to use for 
-# '/dev/tty3'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY3_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY3 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser3\""
-    # value_source default
-    # Default value: "\"/dev/ser3\""
-};
-
-# <
-# <
-# Termios compatible TTY drivers
-# This option enables terminal drivers compatible with
-# POSIX termios.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    #     CYGPKG_ISOINFRA == current
-    #     CYGPKG_IO_FILEIO == current
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# Interface for termios tty driver file enabling
-#
-cdl_interface CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY {
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY
-    #     ActiveIf:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
-};
-
-# Build termios tty driver file
-#
-cdl_option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
-    #     CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Termios TTY channel #0
-# This option causes '/dev/termios0' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #0 device
-# This option selects the physical device to use for 
-# '/dev/termios0'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS0_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-};
-
-# <
-# Termios TTY channel #1
-# This option causes '/dev/termios1' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #1 device
-# This option selects the physical device to use for 
-# '/dev/termios1'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS1_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# <
-# Termios TTY channel #2
-# This option causes '/dev/termios2' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #2 device
-# This option selects the physical device to use for 
-# '/dev/termios2'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS2_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser2\""
-    # value_source default
-    # Default value: "\"/dev/ser2\""
-};
-
-# <
-# Termios TTY channel #3
-# This option causes '/dev/termios3' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #3 device
-# This option selects the physical device to use for 
-# '/dev/termios3'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS3_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser3\""
-    # value_source default
-    # Default value: "\"/dev/ser3\""
-};
-
-# <
-# Support signals
-# This option selects whether those parts of the termios
-# interface involving signals is supported. This includes
-# BRKINT mode, the INTR and QUIT characters, and whether
-# SIGHUP is sent on terminal close.
-#
-cdl_option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_IMPL
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-};
-
-# <
-# Hardware serial device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_component CYGPKG_IO_SERIAL_DEVICES {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_IO_SERIAL_TESTS
-    #     Calculated:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2" : "" 
-};
-
-# >
-# 16x5x generic serial device drivers
-# This option enables the serial device drivers for the
-# 16x5x compatiple controllers.
-#
-cdl_package CYGPKG_IO_SERIAL_GENERIC_16X5X {
-    # 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_SERIAL
-    #     CYGPKG_IO_SERIAL == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
-    #     CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED == 2
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Per channel interrupt priority support
-# A platform should implement this interface if it supports
-# per channel interrupt priorities. If a platform implements
-# this interface it needs to provide an interrupt priority
-# value for each UART channel it supports.
-#
-cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_CHAN_INTPRIO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Transmission require priming
-# This option should be switched on when enabling THRE interrupt
-# does not generate interrupt unless bytes are posted to the FIFO.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# 16x5x FIFO support
-# Options to configure the FIFO on a 16550 (or above) variant.
-#
-cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Threshold for RX interrupt on 16550 FIFO
-# This options configures the threshold value at which
-# the RX interrupt occurs when a FIFO is used. (16550 and
-# above only), this may be after 1, 4, 8 or 14 characters.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO_RX_THRESHOLD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values:  14 8 4 1 
-};
-
-# 16x5x TX FIFO size
-# Configures the maximum number of bytes written to the
-# 16x5x UART transmit FIFO when the TX interrupt occurs.
-#
-cdl_option CYGNUM_IO_SERIAL_GENERIC_16X5X_FIFO_TX_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-};
-
-# <
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building these serial device drivers. These flags are
-# used in addition to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_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 these serial device drivers. These flags are
-# removed from the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# PC serial device drivers
-# This option enables the serial device drivers for the
-# PC.
-#
-cdl_package CYGPKG_IO_SERIAL_I386_PC {
-    # 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_SERIAL
-    #     CYGPKG_IO_SERIAL == current
-    #   --> 1
-    # ActiveIf constraint: CYGPKG_HAL_I386_PCMB
-    #     CYGPKG_HAL_I386_PCMB == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Generic 16x5x serial driver required
-#
-cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     ActiveIf: CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
-};
-
-# PC serial port 0 driver
-# This option includes the serial device driver for port 0 on the 
-# PC.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_SERIAL0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_I386_PC_TESTING
-    #     ActiveIf: CYGPKG_IO_SERIAL_I386_PC_SERIAL0
-};
-
-# >
-# Device name for PC serial port 0
-# This option specifies the device name port 0 on the PC.
-#
-cdl_option CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-
-    # The following properties are affected by this value
-    # option CYGPRI_SER_TEST_SER_DEV
-    #     DefaultValue:  CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME 
-};
-
-# Baud rate for the PC serial port 0 driver
-# This option specifies the default baud rate (speed) for the
-# PC port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600
-    #                           4800 7200 9600 14400 19200 38400 57600 115200 230400
-    #             
-};
-
-# Buffer size for the PC serial port 0 driver
-# This option specifies the size of the internal buffers used
-# for the PC port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 0 to 8192
-};
-
-# I/O base address for the i386-PC serial port 0
-# This option specifies the I/O address of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IOBASE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000003F8
-    # value_source default
-    # Default value: 0x000003F8
-    # Legal values: 0 to 0xFF8
-};
-
-# IRQ for the i386-PC serial port 0
-# This option specifies the IRQ of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 0 to 15
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_INT
-    #     DefaultValue:  CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ + 32 
-};
-
-# INT for the i386-PC serial port 0
-# This option specifies the interrupt vector of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_INT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 36
-    # value_source default
-    # Default value:  CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ + 32 
-    #     CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ == 4
-    #   --> 36
-    # Legal values: 32 to 47
-};
-
-# <
-# PC serial port 1 driver
-# This option includes the serial device driver for port 1 on
-# the PC.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_SERIAL1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Device name for PC serial port 1
-# This option specifies the device name port 1 on the PC.
-#
-cdl_option CYGDAT_IO_SERIAL_I386_PC_SERIAL1_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# Baud rate for the PC serial port 1 driver
-# This option specifies the default baud rate (speed) for the
-# PC port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600
-    #                           4800 7200 9600 14400 19200 38400 57600 115200 230400
-    #             
-};
-
-# Buffer size for the PC serial port 1 driver
-# This option specifies the size of the internal buffers used
-# for the PC port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 0 to 8192
-};
-
-# I/O base address for the i386-PC serial port 1
-# This option specifies the I/O address of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IOBASE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000002F8
-    # value_source default
-    # Default value: 0x000002F8
-    # Legal values: 0 to 0xFF8
-};
-
-# IRQ for the i386-PC serial port 1
-# This option specifies the IRQ of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 0 to 15
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_INT
-    #     DefaultValue:  CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ + 32 
-};
-
-# INT for the i386-PC serial port 1
-# This option specifies the interrupt vector of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_INT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 35
-    # value_source default
-    # Default value:  CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ + 32 
-    #     CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ == 3
-    #   --> 35
-    # Legal values: 32 to 47
-};
-
-# <
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building these serial device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_I386_PC_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 these serial device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_I386_PC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# Testing parameters
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_TESTING {
-    # ActiveIf constraint: CYGPKG_IO_SERIAL_I386_PC_SERIAL0
-    #     CYGPKG_IO_SERIAL_I386_PC_SERIAL0 == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Serial device used for testing
-#
-cdl_option CYGPRI_SER_TEST_SER_DEV {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value:  CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME 
-    #     CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME == "\"/dev/ser0\""
-    #   --> "\"/dev/ser0\""
-};
-
-# <
-# <
-# <
-# Build extra serial tests
-# This option enables the building of some extra tests which
-# can be used when testing / debugging serial drivers. These
-# are not built by default since they do not use the dedicated
-# testing infrastructure.
-#
-cdl_option CYGBLD_IO_SERIAL_EXTRA_TESTS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the serial device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the serial device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Serial device driver tests
-# This option specifies the set of tests for the serial device drivers.
-#
-cdl_option CYGPKG_IO_SERIAL_TESTS {
-    # Calculated value:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2" : "" 
-    #     CYGPKG_IO_SERIAL_DEVICES == 1
-    # Flavor: data
-    # Current_value: tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2
-};
-
-# <
-# Enable serial device select support
-# This option enables support for the select() API function on all
-# serial devices.
-#
-cdl_option CYGPKG_IO_SERIAL_SELECT_SUPPORT {
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGFUN_IO_FILEIO_SELECT == 1 
-    #     CYGFUN_IO_FILEIO_SELECT == 1
-    #   --> 1
-};
-
-# Serial testing specification
-#
-cdl_component CYGPKG_IO_SERIAL_TEST_SPECS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Skip 9600 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_9600 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 14400 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_14400 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 19200 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_19200 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 38400 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_38400 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 57600 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_57600 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 115200 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_115200 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip even-parity testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_EVEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip odd-parity testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_ODD {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 2-stop bit testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_STOP_2 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# PCI configuration library
-# doc: ref/io-pci.html
-# The PCI configuration library provides initialization of devices
-# on the PCI bus. Functions to find and access these devices are
-# also provided.
-#
-cdl_package CYGPKG_IO_PCI {
-    # 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
-};
-
-# >
-# PCI 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_PCI_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the PCI configuration library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_PCI_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 PCI configuration library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_PCI_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Enable debugging.
-# This option enables minimal debugging of the PCI library.
-# In particular, it will print information about devices as the
-# PCI bus is being scanned/searched.
-#
-cdl_option CYGPKG_IO_PCI_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# PCI tests
-# This option specifies the set of tests for the PCI configuration library.
-#
-cdl_option CYGPKG_IO_PCI_TESTS {
-    # Calculated value:  "tests/pci1 tests/pci2" 
-    # Flavor: data
-    # Current_value: tests/pci1 tests/pci2
-};
-
-# Writeback Interrupt Line register.
-# This option causes a PCI device interrupt vector to be
-# written to the Interrupt Line register in config space.
-# This is traditionally done by a BIOS so that device
-# drivers can read the interrupt vector directly from
-# device configuration space.
-#
-cdl_option CYGPKG_IO_PCI_CONFIGURE_INTLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# <
-# Infrastructure
-# Common types and useful macros.
-# Tracing and assertion facilities.
-# Package startup options.
-#
-cdl_package CYGPKG_INFRA {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL
-    #     Requires: CYGPKG_INFRA
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-};
-
-# >
-# 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
-    # component CYGFUN_KERNEL_THREADS_STACK_CHECKING
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-    # component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
-    #     DefaultValue:  0 != CYGPKG_INFRA_DEBUG 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# >
-# Use asserts
-# If this option is defined, asserts in the code are tested.
-# Assert functions (CYG_ASSERT()) are defined in
-# 'include/cyg/infra/cyg_ass.h' within the 'install' tree.
-# If it is not defined, these result in no additional
-# object code and no checking of the asserted conditions.
-#
-cdl_component CYGDBG_USE_ASSERTS {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    #     CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # component CYGFUN_KERNEL_THREADS_STACK_CHECKING
-    #     ActiveIf: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != CYGDBG_USE_ASSERTS 
-    # option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
-    #     Requires: CYGDBG_USE_ASSERTS
-};
-
-# >
-# Preconditions
-# This option allows individual control of preconditions.
-# A precondition is one type of assert, which it is
-# useful to control separately from more general asserts.
-# The function is CYG_PRECONDITION(condition,msg).
-#
-cdl_option CYGDBG_INFRA_DEBUG_PRECONDITIONS {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Postconditions
-# This option allows individual control of postconditions.
-# A postcondition is one type of assert, which it is
-# useful to control separately from more general asserts.
-# The function is CYG_POSTCONDITION(condition,msg).
-#
-cdl_option CYGDBG_INFRA_DEBUG_POSTCONDITIONS {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Loop invariants
-# This option allows individual control of loop invariants.
-# A loop invariant is one type of assert, which it is
-# useful to control separately from more general asserts,
-# particularly since a loop invariant is typically evaluated
-# a great many times when used correctly.
-# The function is CYG_LOOP_INVARIANT(condition,msg).
-#
-cdl_option CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use assert text
-# All assertions within eCos contain a text message
-# which should give some information about the condition
-# being tested.
-# These text messages will end up being embedded in the
-# application image and hence there is a significant penalty
-# in terms of image size.
-# It is possible to suppress the use of these messages by
-# disabling this option.
-# This results in smaller code size, but there is less
-# human-readable information if an assertion actually gets
-# triggered.
-#
-cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Use tracing
-# If this option is defined, tracing operations
-# result in output or logging, depending on other options.
-# This may have adverse effects on performance, if the time
-# taken to output message overwhelms the available CPU
-# power or output bandwidth.
-# Trace functions (CYG_TRACE()) are defined in
-# 'include/cyg/infra/cyg_trac.h' within the 'install' tree.
-# If it is not defined, these result in no additional
-# object code and no trace information.
-#
-cdl_component CYGDBG_USE_TRACING {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    #     CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_KERNEL_TRACE_TIMESLICE
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # component CYGPKG_LIBM_TRACE
-    #     Requires: CYGDBG_USE_TRACING
-};
-
-# >
-# Trace function reports
-# This option allows individual control of
-# function entry/exit tracing, independent of
-# more general tracing output.
-# This may be useful to remove clutter from a
-# trace log.
-#
-cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS {
-    # This option is not active
-    # The parent CYGDBG_USE_TRACING is not active
-    # The parent CYGDBG_USE_TRACING is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use trace text
-# All trace calls within eCos contain a text message
-# which should give some information about the circumstances.
-# These text messages will end up being embedded in the
-# application image and hence there is a significant penalty
-# in terms of image size.
-# It is possible to suppress the use of these messages by
-# disabling this option.
-# This results in smaller code size, but there is less
-# human-readable information available in the trace output,
-# possibly only filenames and line numbers.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE {
-    # This option is not active
-    # The parent CYGDBG_USE_TRACING is not active
-    # The parent CYGDBG_USE_TRACING is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Trace output implementations
-#
-cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL {
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # component CYGDBG_USE_ASSERTS
-    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    # component CYGDBG_USE_TRACING
-    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-};
-
-# Null output
-# A null output module which is useful when
-# debugging interactively; the output routines
-# can be breakpointed rather than have them actually
-# 'print' something.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple output
-# An output module which produces simple output
-# from tracing and assertion events.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_TRACE_TIMESLICE
-    #     Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
-};
-
-# Fancy output
-# An output module which produces fancy output
-# from tracing and assertion events.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_TRACE_TIMESLICE
-    #     Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
-};
-
-# Buffered tracing
-# An output module which buffers output
-# from tracing and assertion events. The stored
-# messages are output when an assert fires, or
-# CYG_TRACE_PRINT() (defined in <cyg/infra/cyg_trac.h>)
-# is called.
-# Of course, there will only be stored messages
-# if tracing per se (CYGDBG_USE_TRACING)
-# is enabled above.
-#
-cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Trace buffer size
-# The size of the trace buffer. This counts the number
-# of trace records stored. When the buffer fills it
-# either wraps, stops recording, or generates output.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 5 to 65535
-};
-
-# Wrap trace buffer when full
-# When the trace buffer has filled with records it
-# starts again at the beginning. Hence only the last
-# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
-# be recorded.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Halt trace buffer when full
-# When the trace buffer has filled with records it
-# stops recording. Hence only the first
-# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
-# be recorded.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer when full
-# When the trace buffer has filled with records it
-# prints the contents of the buffer. The buffer is then
-# emptied and the system continues.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # 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 0
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 0
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    #   --> 0
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    #   --> 0
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# <
-# eCos kernel
-# doc: ref/kernel.html
-# This package contains the core functionality of the eCos
-# kernel. It relies on functionality provided by various HAL
-# packages and by the eCos infrastructure. In turn the eCos
-# kernel provides support for other packages such as the device
-# drivers and the uITRON compatibility layer.
-#
-cdl_package CYGPKG_KERNEL {
-    # 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 CYGFUN_HAL_COMMON_KERNEL_SUPPORT
-    #     Requires: CYGPKG_KERNEL
-    # option CYGFUN_HAL_COMMON_KERNEL_SUPPORT
-    #     DefaultValue: CYGPKG_KERNEL
-    # option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
-    #     DefaultValue:  CYGPKG_KERNEL ? 4096 : 32768 
-    # option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE
-    #     Requires: CYGPKG_KERNEL
-    # option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGFUN_MEMALLOC_KAPI
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_I18N_PER_THREAD_MB
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_SIGNALS_THREAD_SAFE
-    #     Requires: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT
-    #     DefaultValue:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     Requires: CYGPKG_KERNEL
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     DefaultValue:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_EXIT_STOPS_SYSTEM
-    #     Requires: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGPKG_WALLCLOCK_EMULATE
-    #     Requires: CYGPKG_KERNEL
-    # option CYGIMP_WALLCLOCK_NONE
-    #     DefaultValue:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    # option CYGPKG_IO_WALLCLOCK_TESTS
-    #     Calculated:  CYGPKG_KERNEL ? "tests/wallclock tests/wallclock2" : "" 
-    # package CYGPKG_POSIX
-    #     Requires: CYGPKG_KERNEL
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires: CYGPKG_KERNEL
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGPKG_KERNEL
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGPKG_KERNEL
-    # option CYGFUN_IO_FILEIO_SELECT
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGPKG_IO_FILEIO_SOCKET_SUPPORT
-    #     ActiveIf: CYGPKG_KERNEL
-};
-
-# >
-# Kernel interrupt handling
-# doc: ref/kernel-interrupts.html
-# The majority of configuration options related to interrupt
-# handling are in the HAL packages, since usually the code has
-# to be platform-specific. There are a number of options
-# provided within the kernel related to slightly higher-level
-# concepts, for example Delayed Service Routines.
-#
-cdl_component CYGPKG_KERNEL_INTERRUPTS {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_INTR
-    #     ActiveIf: CYGPKG_KERNEL_INTERRUPTS
-};
-
-# >
-# Use delayed service routines (DSRs)
-# In eCos the recommended way to handle device interrupts is to
-# do a minimum amount of work inside the low level interrupt
-# handler itself, and instead do as much as possible in a
-# Delayed Service Routine or DSR. If an application does not
-# make use of DSRs directly or indirectly then it is possible
-# to disable the DSR support completely, which reduces the
-# overheads of context switches and interrupt handling. Note
-# that the kernel real-time clock makes use of DSRs, as do many
-# of the device drivers. 
-#
-cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS {
-    # 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 CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     Requires: CYGIMP_KERNEL_INTERRUPTS_DSRS
-};
-
-# >
-#
-cdl_interface CYGINT_KERNEL_INTERRUPTS_DSRS {
-    # Implemented by CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST, active, enabled
-    # Implemented by CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_KERNEL_INTERRUPTS_DSRS
-    #     CYGINT_KERNEL_INTERRUPTS_DSRS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_KERNEL_INTERRUPTS_DSRS
-    #     Requires: 1 == CYGINT_KERNEL_INTERRUPTS_DSRS
-};
-
-# Use linked lists for DSRs
-# When DSR support is enabled the kernel must keep track of all
-# the DSRs that are pending. This information can be kept in a
-# fixed-size table or in a linked list. The list implementation
-# requires that the kernel disable interrupts for a very short
-# period of time outside interrupt handlers, but there is no
-# possibility of a table overflow occurring.
-#
-cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Schedule DSRs in FIFO order
-# When this option is set, DSRs are scheduled
-# in the natural FIFO (first in, first out) order,
-# otherwise they are scheduled in LIFO (last in, first
-# out) order. Applications should not rely on any
-# particular order of scheduling of DSRs. LIFO
-# scheduling is kept for backward compatibility only and
-# is not recommended as it may lead to high (up to 2
-# times higher then FIFO) IRQ-to-DSR latencies at some
-# (typically rare) conditions. If unsure, leave this set.
-#
-cdl_option CYGSEM_KERNEL_INTERRUPTS_DSRS_LIST_FIFO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Use fixed-size table for DSRs
-# When DSR support is enabled the kernel must keep track of all
-# the DSRs that are pending. This information can be kept in a
-# fixed-size table or in a linked list. The table
-# implementation involves a very small risk of overflow at
-# run-time if a given interrupt source is able to have more
-# than one pending DSR. However it has the advantage that
-# the kernel does not need to disable interrupts outside
-# interrupt handlers.
-#
-cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Number of entries in fixed-size DSR table
-# When DSR support is enabled the kernel must keep track of all
-# the DSRs that are pending. One approach involves a fixed-size
-# table, which involves a very small risk of overflow at
-# run-time. By increasing the table size it is possible to reduce
-# this risk.
-#
-cdl_option CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE {
-    # This option is not active
-    # The parent CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 2 to 1024
-};
-
-# <
-# 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_KERNEL_INTERRUPTS_CHAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN == 0
-    #   --> 0
-};
-
-# <
-# <
-# Exception handling
-# doc: ref/kernel-exceptions.html
-# In the context of the eCos kernel exceptions are unexpected
-# events detected by the hardware, for example an attempt to
-# execute an illegal instruction. There is no relation with
-# other forms of exception, for example the catch and throw
-# facilities of languages like C++. It is possible to disable
-# all support for exceptions and thus save some memory.
-#
-cdl_component CYGPKG_KERNEL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_HAL_EXCEPTIONS
-    #     CYGPKG_HAL_EXCEPTIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_HAL_EXCEPTIONS
-    #     Requires: CYGPKG_KERNEL_EXCEPTIONS
-    # option CYGPKG_HAL_EXCEPTIONS
-    #     DefaultValue: CYGPKG_KERNEL_EXCEPTIONS
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires: CYGPKG_KERNEL_EXCEPTIONS
-};
-
-# >
-# Decode exception types in kernel
-# On targets where several different types of exception are
-# possible, for example executing an illegal instruction and
-# division by zero, it is possible for the kernel to do some
-# decoding of the exception type and deliver the different
-# types of exception to different handlers in the application
-# code. Alternatively the kernel can simply pass all
-# exceptions directly to application code, leaving the
-# decoding to be done by the application
-#
-cdl_option CYGSEM_KERNEL_EXCEPTIONS_DECODE {
-    # 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 CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
-    #     Requires: CYGSEM_KERNEL_EXCEPTIONS_DECODE
-};
-
-# Use global exception handlers
-# In the context of the eCos kernel exceptions are
-# unexpected events detected by the hardware, for
-# example an attempt to execute an illegal
-# instruction. If the kernel is configured
-# to support exceptions then two implementations are
-# possible. The default implementation involves a single set
-# of exception handlers that are in use for the entire
-# system. The alternative implementation allows different
-# exception handlers to be specified for each thread.
-#
-cdl_option CYGSEM_KERNEL_EXCEPTIONS_GLOBAL {
-    # 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_LIBC_SIGNALS_HWEXCEPTIONS
-    #     Requires: CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
-};
-
-# <
-# Kernel schedulers
-# doc: ref/kernel-overview.html#KERNEL-OVERVIEW-SCHEDULERS
-# The eCos kernel provides a choice of schedulers. In addition
-# there are a number of configuration options to control the
-# detailed behaviour of these schedulers.
-#
-cdl_component CYGPKG_KERNEL_SCHED {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_SCHED
-    #     ActiveIf: CYGPKG_KERNEL_SCHED
-};
-
-# >
-# Number of schedulers in this configuration
-#
-cdl_interface CYGINT_KERNEL_SCHEDULER {
-    # Implemented by CYGSEM_KERNEL_SCHED_MLQUEUE, active, enabled
-    # Implemented by CYGSEM_KERNEL_SCHED_BITMAP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_KERNEL_SCHEDULER
-    #     CYGINT_KERNEL_SCHEDULER == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_KERNEL_SCHEDULER
-    #     Requires: 1 == CYGINT_KERNEL_SCHEDULER
-};
-
-# Non-zero if the active schedule only has unique priorities
-# Not all schedulers allow mutiple threads to use the same
-# priority. That property is signalled via this option, allowing
-# scheduler and tests to behave accordingly.
-#
-cdl_interface CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES {
-    # Implemented by CYGSEM_KERNEL_SCHED_BITMAP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL
-    #     Requires:  CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 
-};
-
-# Multi-level queue scheduler
-# The multi-level queue scheduler supports multiple priority
-# levels and multiple threads at each priority level.
-# Preemption between priority levels is automatic. Timeslicing
-# within a given priority level is controlled by a separate
-# configuration option.
-#
-cdl_component CYGSEM_KERNEL_SCHED_MLQUEUE {
-    # 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_KERNEL_SCHED_IMPL_HXX
-    #     Calculated:   CYGSEM_KERNEL_SCHED_BITMAP  ? "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ? "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ? "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler selected --!!!"
-    # component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL
-    #     ActiveIf:  CYGSEM_KERNEL_SCHED_MLQUEUE 
-    # option CYGDBG_KERNEL_INSTRUMENT_MLQ
-    #     ActiveIf: CYGSEM_KERNEL_SCHED_MLQUEUE
-    # option _POSIX_PRIORITY_SCHEDULING
-    #     Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-    # option _POSIX_THREAD_PRIORITY_SCHEDULING
-    #     Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-};
-
-# >
-# Output timeslices when tracing
-# When tracing is enabled, output trace messages every
-# timeslice. This can be quite verbose so is disabled by
-# default.
-#
-cdl_option CYGDBG_KERNEL_TRACE_TIMESLICE {
-    # This option 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
-    # Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
-    #     CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE == 0
-    #   --> 1
-    # Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
-    #     CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY == 0
-    #   --> 1
-};
-
-# <
-# Bitmap scheduler
-# The bitmap scheduler supports multiple priority levels but
-# only one thread can exist at each priority level. This means
-# that scheduling decisions are very simple and hence the
-# scheduler is efficient. Preemption between priority levels is
-# automatic. Timeslicing within a given priority level is
-# irrelevant since there can be only one thread at each
-# priority level.
-#
-cdl_option CYGSEM_KERNEL_SCHED_BITMAP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGPKG_KERNEL_SMP_SUPPORT
-    #     CYGPKG_KERNEL_SMP_SUPPORT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_KERNEL_SCHED_IMPL_HXX
-    #     Calculated:   CYGSEM_KERNEL_SCHED_BITMAP  ? "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ? "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ? "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler selected --!!!"
-    # component CYGSEM_KERNEL_SCHED_TIMESLICE
-    #     Requires: !CYGSEM_KERNEL_SCHED_BITMAP
-    # option CYGDBG_KERNEL_INSTRUMENT_BITMAP
-    #     ActiveIf: CYGSEM_KERNEL_SCHED_BITMAP
-};
-
-# Scheduler header file
-# This option sets a preprocessor symbol which names the header
-# file for the selected scheduler.  It is used internally by the
-# common scheduler code to include the correct header file.
-#
-cdl_option CYGPRI_KERNEL_SCHED_IMPL_HXX {
-    # Calculated value:   CYGSEM_KERNEL_SCHED_BITMAP  ? "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ? "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ? "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler selected --!!!"
-    #     CYGSEM_KERNEL_SCHED_BITMAP == 0
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #     CYGSEM_KERNEL_SCHED_LOTTERY (unknown) == 0
-    # Flavor: data
-    # Current_value: <cyg/kernel/mlqueue.hxx>
-};
-
-# Number of priority levels
-# This option controls the number of priority levels that are
-# available. For some types of scheduler including the bitmap
-# scheduler this may impose an upper bound on the number of
-# threads in the system. For other schedulers such as the
-# mlqueue scheduler the number of threads is independent from
-# the number of priority levels. Note that the lowest priority
-# level is normally used only by the idle thread, although
-# application threads can run at this priority if necessary.
-#
-cdl_component CYGNUM_KERNEL_SCHED_PRIORITIES {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 1 to 32
-
-    # The following properties are affected by this value
-    # option CYGIMP_IDLE_THREAD_YIELD
-    #     ActiveIf: (CYGNUM_KERNEL_SCHED_PRIORITIES == 1)
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY
-    #     LegalValues: 0 to  CYGNUM_KERNEL_SCHED_PRIORITIES - 1 
-};
-
-# >
-# Bitmap size
-# This option automatically defines the size of bitmap
-# used to track occupied priority levels.
-#
-cdl_option CYGNUM_KERNEL_SCHED_BITMAP_SIZE {
-    # Calculated value: "CYGNUM_KERNEL_SCHED_PRIORITIES"
-    # Flavor: data
-    # Current_value: CYGNUM_KERNEL_SCHED_PRIORITIES
-};
-
-# Dequeue highest priority threads first
-# With this option enabled, threads queued in a thread queue
-# will be dequeued in priority order, rather than first in,
-# first out (FIFO). Threads of equal priority are dequeued
-# oldest first. The only exception is the scheduler run 
-# queues where order is less important as each is already
-# sorted by priority. Note that this makes the thread queueing
-# less deterministic.
-#
-cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires: CYGIMP_KERNEL_SCHED_SORTED_QUEUES
-};
-
-# <
-# Scheduler timeslicing
-# Some schedulers including the mlqueue scheduler support
-# timeslicing. This means that the kernel will check regularly
-# whether or not there is another runnable thread with the
-# same priority, and if there is such a thread there will be
-# an automatic context switch. Not all applications require
-# timeslicing, for example because every thread performs a
-# blocking operation regularly. For these applications it is
-# possible to disable timeslicing, which reduces the overheads
-# associated with timer interrupts.
-#
-cdl_component CYGSEM_KERNEL_SCHED_TIMESLICE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGSEM_KERNEL_SCHED_BITMAP
-    #     CYGSEM_KERNEL_SCHED_BITMAP == 0
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option _POSIX_THREADS
-    #     Requires: CYGSEM_KERNEL_SCHED_TIMESLICE
-};
-
-# >
-# Number of clock ticks between timeslices
-# Assuming timeslicing is enabled, how frequently should it
-# take place? The value of this option corresponds to the
-# number of clock ticks that should occur before a timeslice
-# takes place, so increasing the value reduces the frequency
-# of timeslices.
-#
-cdl_option CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-    # Legal values: 1 to 65535
-};
-
-# Support runtime enable of timeslice per-thread
-# This option makes timslicing a per-thread runtime
-# option. When enabled, threads may have timeslicing
-# turned on or off dynamically. This is generally used
-# by higher level APIs (such as POSIX) to implement
-# differing scheduling policies.
-#
-cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: false
-    #     false (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE
-};
-
-# <
-# Enable ASR support
-# This component controls support for Asynchronous Service
-# Routines (ASRs). This is a function that may be called
-# from the scheduler when it has just exited the scheduler
-# lock. This is primarily for use by API compatibility layers.
-#
-cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: false
-    #     false (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGSEM_KERNEL_SCHED_ASR_SUPPORT
-};
-
-# >
-# Make ASR function global
-# This option controls whether the ASR function is shared by
-# all threads, or whether each thread may have its own ASR
-# function.
-#
-cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: true
-    #     true (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGSEM_KERNEL_SCHED_ASR_GLOBAL
-};
-
-# Make ASR data global
-# This option controls whether the ASR data is shared by
-# all threads, or whether each thread may have its own ASR
-# data. This is independent of the previous option because
-# it may be useful to pass per-thread data to a shared ASR
-# function.
-#
-cdl_option CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: true
-    #     true (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: !CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL
-};
-
-# <
-# <
-# SMP support
-#
-cdl_component CYGPKG_KERNEL_SMP_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGPKG_HAL_SMP_SUPPORT
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_KERNEL_SCHED_BITMAP
-    #     Requires: !CYGPKG_KERNEL_SMP_SUPPORT
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# Counters and clocks
-# doc: ref/kernel-counters.html
-# The counter objects provided by the kernel provide an
-# abstraction of the clock facility that is generally provided.
-# Application code can associate alarms with counters, where an
-# alarm is identified by the number of ticks until it triggers,
-# the action to be taken on triggering, and whether or not the
-# alarm should be repeated.
-#
-cdl_component CYGPKG_KERNEL_COUNTERS {
-    # There is no associated value.
-};
-
-# >
-# Provide real-time clock
-# On all current target systems the kernel can provide a
-# real-time clock. This clock serves two purposes. First it is
-# necessary to support clock and alarm related functions.
-# Second it is needed to implement timeslicing in some of the
-# schedulers including the mlqueue scheduler. If the
-# application does not require any of these facilities then it
-# is possible to disable the real time clock support
-# completely.
-#
-cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGIMP_KERNEL_INTERRUPTS_DSRS
-    #     CYGIMP_KERNEL_INTERRUPTS_DSRS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_KERNEL_SCHED_TIMESLICE
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGNUM_KERNEL_COUNTERS_CLOCK_ISR_PRIORITY
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGFUN_KERNEL_THREADS_TIMER
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGDBG_KERNEL_INSTRUMENT_CLOCK
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGDBG_KERNEL_INSTRUMENT_ALARM
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGDBG_KERNEL_INSTRUMENT_SMP
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # component CYGPKG_HAL_TESTS
-    #     Calculated:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-    # option CYGSEM_LIBC_TIME_CLOCK_WORKING
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGFUN_HAL_I386_PCMB_GPROF_SUPPORT
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-};
-
-# Interrupt priority for the real-time clock
-# The implementation of the kernel's real-time clock typically
-# involves installing an interrupt handler on a suitable hardware
-# timer. This option controls the priority level used for that
-# interrupt. On most platforms the value is not important because 
-# the clock ISR leaves most of the work to be done by the DSR. 
-# However some processors have interrupt controllers with special
-# requirements for the interrupt priorities, in which case
-# application developers must be able to manipulate the clock's
-# priority.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_CLOCK_ISR_PRIORITY {
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  is_loaded(CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY) ?
-    #      	                      CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY : 1 
-    #     CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY (unknown) == 0
-    #     CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY (unknown) == 0
-    #   --> 1
-};
-
-#
-cdl_interface CYGINT_KERNEL_COUNTERS {
-    # Implemented by CYGIMP_KERNEL_COUNTERS_SINGLE_LIST, active, enabled
-    # Implemented by CYGIMP_KERNEL_COUNTERS_MULTI_LIST, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_KERNEL_COUNTERS
-    #     CYGINT_KERNEL_COUNTERS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_KERNEL_COUNTERS
-    #     Requires: 1 == CYGINT_KERNEL_COUNTERS
-};
-
-# Implement counters using a single list
-# There are two different implementations of the counter
-# objects. The first implementation stores all alarms in a
-# single linked list. The alternative implementation uses a
-# table of linked lists. A single list is more efficient in
-# terms of memory usage and is generally adequate when the
-# application only makes use of a small number of alarms.
-#
-cdl_option CYGIMP_KERNEL_COUNTERS_SINGLE_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Implement counters using a table of lists
-# There are two different implementations of the counter
-# objects. The first implementation stores all alarms in a
-# single linked list. The alternative implementation uses a
-# table of linked lists, with the size of the table being a
-# separate configurable option. For more complicated
-# operations it is better to have a table of lists since this
-# reduces the amount of computation whenever the timer goes
-# off. Assuming a table size of 8 (the default value) on
-# average the timer code will only need to check 1/8 of the
-# pending alarms instead of all of them.
-#
-cdl_component CYGIMP_KERNEL_COUNTERS_MULTI_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of counter list table
-# If counters are implemented using an array of linked lists
-# then this option controls the size of the array. A larger
-# size reduces the amount of computation that needs to take
-# place whenever the timer goes off, but requires extra
-# memory.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE {
-    # This option is not active
-    # The parent CYGIMP_KERNEL_COUNTERS_MULTI_LIST is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 1 to 1024
-};
-
-# <
-# Sort the counter list
-# Sorting the counter lists reduces the amount of work that
-# has to be done when a counter tick is processed, since the
-# next alarm to expire is always at the front of the list.
-# However, it makes adding an alarm to the list more expensive
-# since a search must be done for the correct place to put it.
-# Many alarms are used to implement timeouts, which seldom trigger,
-# so it is worthwhile optimizing this case. For this reason
-# sorted list are disabled by default.
-#
-cdl_option CYGIMP_KERNEL_COUNTERS_SORT_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Measure real-time [clock] interrupt latency
-# Measure the interrupt latency as seen by the real-time clock
-# timer interrupt.  This requires hardware support, defined by
-# the HAL_CLOCK_LATENCY() macro.
-#
-cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    # option CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY
-    #     DefaultValue: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-};
-
-# Measure real-time [clock] DSR latency
-# Measure the DSR latency as seen by the real-time clock
-# timer interrupt.  This requires hardware support, defined by
-# the HAL_CLOCK_LATENCY() macro.
-#
-cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY == 0
-    #   --> 0
-};
-
-# RTC resolution
-# This option automatically defines the tuple which is used to
-# initialize the RTC resolution, consisting of a numerator and
-# denominator. The values of the numerator and denominator are
-# defined by the HAL.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {
-    # Calculated value: "{CYGNUM_HAL_RTC_NUMERATOR, CYGNUM_HAL_RTC_DENOMINATOR}"
-    # Flavor: data
-    # Current_value: {CYGNUM_HAL_RTC_NUMERATOR, CYGNUM_HAL_RTC_DENOMINATOR}
-};
-
-# RTC period
-# This option defines the RTC period to be used in
-# setting the system clock hardware. It is essentially
-# an alias for CYGNUM_HAL_RTC_PERIOD, which is defined
-# in the HAL.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_RTC_PERIOD {
-    # Calculated value: "CYGNUM_HAL_RTC_PERIOD"
-    # Flavor: data
-    # Current_value: CYGNUM_HAL_RTC_PERIOD
-};
-
-# <
-# Thread-related options
-# There are a number of configuration options related to the
-# implementation of threads, for example whether or not the
-# eCos kernel supports per-thread data.
-#
-cdl_component CYGPKG_KERNEL_THREADS {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_THREAD
-    #     ActiveIf: CYGPKG_KERNEL_THREADS
-};
-
-# >
-# Allow per-thread timers
-# This option controls whether or not the kernel should support
-# per-thread clock and alarm related functions. Also some of
-# the synchronization primitives such as semaphore and
-# condition variable timed wait operations require per-thread
-# timer support. If none of these facilities are required then
-# the option can be disabled.
-#
-cdl_option CYGFUN_KERNEL_THREADS_TIMER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT
-    #     Requires: CYGFUN_KERNEL_THREADS_TIMER
-    # option CYGSEM_LIBC_TIME_CLOCK_WORKING
-    #     Requires: CYGFUN_KERNEL_THREADS_TIMER
-};
-
-# Support optional name for each thread
-# Threads may optionally be supplied with a name string that is
-# used to identify them during debugging. This name is only
-# present if `this option is defined. Disabling it reduces both
-# code and data size.
-#
-cdl_option CYGVAR_KERNEL_THREADS_NAME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Keep track of all threads using a linked list
-# Threads may optionally be placed on a housekeeping list so
-# that all threads may be located easily. This is useful mainly
-# in conjunction with source-level debugging.
-#
-cdl_option CYGVAR_KERNEL_THREADS_LIST {
-    # 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 CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING
-    #     Requires: CYGVAR_KERNEL_THREADS_LIST
-    # option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     Requires: CYGVAR_KERNEL_THREADS_LIST
-};
-
-# Keep track of the base of each thread's stack
-# This option makes the kernel keep track of the lower limit on
-# each thread's stack. It allows the kernel to adjust the lower
-# limit, thus making space for per-thread data. Note that it
-# does not imply any form of run-time stack overflow checking.
-#
-cdl_option CYGFUN_KERNEL_THREADS_STACK_LIMIT {
-    # 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 CYGVAR_KERNEL_THREADS_DATA
-    #     Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-};
-
-# Check thread stacks for overflows
-# This option enables a variety of checks for stack overflow
-# including signatures at the top and base of thread stacks,
-# which are asserted for correctness whenever a thread switches.
-#
-cdl_component CYGFUN_KERNEL_THREADS_STACK_CHECKING {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-    # ActiveIf constraint: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Check all threads whenever possible
-# This option enables more active checking of all threads for
-# wrongdoing.  In theory, checking threads other than the old and new
-# executing threads in a thread-switch is pointless, because no other
-# thread has run, so no other stack can be exceeded.  But errors such
-# as memory scribbling, dangling pointers, overlapping use of store
-# or errors accessing objects adjacent to a stack which can be very
-# hard to find can be detected this way, saving debug time.
-#
-cdl_option CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING {
-    # This option is not active
-    # The parent CYGFUN_KERNEL_THREADS_STACK_CHECKING is not active
-
-    # 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_LIST
-    #     CYGVAR_KERNEL_THREADS_LIST == 1
-    #   --> 1
-};
-
-# Signature size in bytes, at stack top and bottom
-# This is the size of the area reserved for a signature at the top
-# and bottom of all stacks.  It also provides a buffer zone for
-# detecting overflow before external objects are corrupted, hence the
-# ability to vary it here.  But if you are short of stack, increasing
-# this value will make the overflow more, not less likely, of course.
-#
-cdl_option CYGNUM_KERNEL_THREADS_STACK_CHECK_DATA_SIZE {
-    # This option is not active
-    # The parent CYGFUN_KERNEL_THREADS_STACK_CHECKING is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 8 to 512
-};
-
-# <
-# Measure stack usage
-# This option allows measurement of each thread's stack by initializing
-# it to a predefined value at thread creation time. Later use of the
-# cyg_thread_measure_stack_usage() function allows the maximum stack
-# usage of the thread so far to be obtained. Note that this is not
-# necessarily the true maximum stack usage that the thread will ever
-# use since all that has been measured is the stack usage corresponding
-# to the code path followed this time, and not the code path that may
-# be followed in future.
-#
-cdl_component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_INFRA_DEBUG 
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-};
-
-# >
-# Output stack usage on thread exit
-# This will output the measured stack usage on the diagnostic
-# output when a thread exits.
-#
-cdl_option CYGDBG_KERNEL_THREADS_STACK_MEASUREMENT_VERBOSE_EXIT {
-    # This option is not active
-    # The parent CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT 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 per-thread data
-# doc: ref/kernel-thread-data.html
-# It is possible for the kernel to support per-thread data, in
-# other words an area of memory specific to each thread which
-# can be used to store data for that thread. This per-thread
-# data can be used by applications or by other packages such as
-# the ISO C library.
-#
-cdl_component CYGVAR_KERNEL_THREADS_DATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-    #     CYGFUN_KERNEL_THREADS_STACK_LIMIT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_I18N_PER_THREAD_MB
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBC_I18N_PER_THREAD_MB
-    #     DefaultValue:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    # option CYGSEM_LIBC_PER_THREAD_RAND
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
-    #     DefaultValue: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_ERROR_PER_THREAD_ERRNO
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option _POSIX_THREADS
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-};
-
-# >
-# Number of words of per-thread data
-# It is possible for the kernel to support per-thread data, in
-# other words an area of memory specific to each thread which
-# can be used to store data for that thread. This per-thread
-# data can be used by applications or by other packages such as
-# the ISO C library. This configuration option controls the
-# number of words of per-thread data that the kernel will
-# allow. In the current implementation a bitmask is used to identify
-# used per-thread data slots and so the maximum legal value must
-# remain 32.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 6
-    # value_source default
-    # Default value: 6
-    # Legal values: 4 to 32
-};
-
-# Bitmap of preallocated slots of thread data
-# Per thread data options. Per thread data support is based loosely
-# on that defined by POSIX. Each thread has an array of slots, up to
-# CYGNUM_KERNEL_THREADS_DATA_MAX, that may contain data. Some of the
-# slots have been preallocated to specific packages. Others may be
-# allocated dynamically.
-#
-cdl_component CYGNUM_KERNEL_THREADS_DATA_ALL {
-    # Calculated value: 15
-    # Flavor: data
-    # Current_value: 15
-};
-
-# >
-# Slot 0 preallocated for the kernel
-# This option defines the index of a per-thread data
-# slot which is reserved by
-# the eCos kernel
-# for private use.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_KERNEL {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Slot 1 preallocated for uITRON
-# This option defines the index of a per-thread data
-# slot which is reserved by
-# the uITRON compatibility layer
-# for private use.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_ITRON {
-    # Calculated value: 1
-    # Flavor: data
-    # Current_value: 1
-};
-
-# Slot 2 preallocated for errno
-# This option defines the index of a per-thread data
-# slot which is reserved for use by an errno variable.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_ERRNO {
-    # Calculated value: 2
-    # Flavor: data
-    # Current_value: 2
-};
-
-# Slot 3 preallocated for POSIX
-# This option defines the index of a per-thread data
-# slot which is reserved by
-# POSIX
-# for private use.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_POSIX {
-    # Calculated value: 3
-    # Flavor: data
-    # Current_value: 3
-};
-
-# <
-# <
-# Thread destructors
-# doc: ref/kernel-thread-destructors.html
-# This option enables support for registered destructor functions to
-# be called on thread exit.
-#
-cdl_component CYGPKG_KERNEL_THREADS_DESTRUCTORS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Number of possible destructors
-# This option gives the number of possible destructors allowed.
-# Increasing this will increase the size of every
-# thread control structure if per-thread destructors are
-# enabled.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DESTRUCTORS {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_THREADS_DESTRUCTORS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 1 to 65535
-};
-
-# Per-thread destructors
-# Enabling this option makes the thread destructors a per-thread
-# property, with each thread having its own list of destructors.
-# Disabling this option makes the thread destructor list
-# global so all threads have the same destructors.
-#
-cdl_option CYGSEM_KERNEL_THREADS_DESTRUCTORS_PER_THREAD {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_THREADS_DESTRUCTORS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Stack size for the idle thread
-# This configuration option specifies the stack size in bytes
-# for the idle thread. Unless the HAL is configured to use a
-# separate interrupt stack this size must be sufficient to meet
-# the requirements of all interrupt handlers - these
-# requirements are cumulative if nested interrupted are
-# enabled. Depending on the target architecture, the stack size
-# typically has to be a multiple of eight or sixteen bytes.
-# This will be overridden where it is used if the
-# architectural HAL requires a minimum stack size
-# to handle interrupts correctly.
-#
-cdl_option CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2048
-    # value_source default
-    # Default value: 2048
-    # Legal values: 512 to 65536
-};
-
-# Maximal suspend count
-# This option provides for an assertion that the count value for
-# counted thread suspends do not exceed set limits.  This is to help
-# with debugging, to allow a runaway loop, for example, to be
-# detected more easily.
-# If the option is not defined, no assert is included.  Whether asserts
-# are themselves included depends on infrastructure configury in
-# infra.h
-#
-cdl_option CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 500
-    # value_source default
-    # Default value: 500
-};
-
-# Maximal wake count
-# This option provides for an assertion that the count value for
-# counted thread wakeups do not exceed set limits.  This is to
-# help with debugging, to allow a runaaway loop, for example, to
-# be detected more easily.
-# If the option is not defined, no assert is included.  Whether asserts
-# are themselves included depends on infrastructure configury in
-# infra.h
-#
-cdl_option CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 500
-    # value_source default
-    # Default value: 500
-};
-
-# Idle thread must always yield
-# If the scheduler configuration only has a single priority
-# level, then the idle thread must yield each time around its loop.
-#
-cdl_option CYGIMP_IDLE_THREAD_YIELD {
-    # This option is not active
-    # ActiveIf constraint: (CYGNUM_KERNEL_SCHED_PRIORITIES == 1)
-    #     CYGNUM_KERNEL_SCHED_PRIORITIES == 32
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# Synchronization primitives
-# The eCos kernel supports a number of different
-# synchronization primitives such as mutexes, semaphores,
-# condition variables, and message boxes. There are
-# configuration options to control the exact behaviour of some
-# of these synchronization primitives.
-#
-cdl_component CYGPKG_KERNEL_SYNCH {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_MUTEX
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_CONDVAR
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_BINSEM
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_CNTSEM
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_MBOXT
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_FLAG
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-};
-
-# >
-# Priority inversion protection protocols
-# doc: ref/kernel-mutexes.html
-# This component controls the protocols used to protect mutexes against
-# priority inversion. If this option is enabled it defines which
-# algorithm is used to implement this protection. At present only
-# one such algorithm is defined: "SIMPLE". The implementation
-# will only work in the mlqueue scheduler, and it does not handle the
-# rare case of nested mutexes completely correctly. However it is
-# both fast and deterministic.
-#
-cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL {
-    # ActiveIf constraint:  CYGSEM_KERNEL_SCHED_MLQUEUE 
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 SIMPLE
-    # value_source default
-    # Default value: 1 SIMPLE
-    # Legal values:  "SIMPLE" 
-    # Requires:  CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 
-    #     CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0
-    #   --> 1
-};
-
-# >
-# Enable priority inheritance protocol
-# This option enables priority inheritance protocol. This protocol
-# causes the owner of a mutex to be executed at the highest priority
-# of the threads waiting for access to the mutex.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT {
-    # 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_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT
-    #     DefaultValue:  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
-    #                             "INHERIT" :
-    #                             CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
-    #                             "CEILING" : "NONE" 
-    # option _POSIX_THREAD_PRIO_INHERIT
-    #     Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
-};
-
-# Enable priority ceiling protocol
-# This option enables priority ceiling protocol. This protocol
-# causes the owner of a mutex to be executed at a  priority
-# associated with the mutex.
-#
-cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING {
-    # 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_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY
-    #     ActiveIf: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT
-    #     DefaultValue:  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
-    #                             "INHERIT" :
-    #                             CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
-    #                             "CEILING" : "NONE" 
-    # option _POSIX_THREAD_PRIO_PROTECT
-    #     Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-};
-
-# >
-# Default priority ceiling
-# This option defines the default priority ceiling to be
-# used if the chosen default priority inversion protocol is
-# priority ceoptioniling protocol. The default value for this is zero,
-# making all such mutexes boost threads to the maximum priority.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY {
-    # ActiveIf constraint: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING == 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_KERNEL_SCHED_PRIORITIES - 1 
-    #     CYGNUM_KERNEL_SCHED_PRIORITIES == 32
-};
-
-# <
-# No priority inversion protocol
-# This option enables the ability to have no priority inversion protocol.
-# It is equivalent to disabling the priority inversion protocol at
-# the top level, but is necessary for the runtime and default
-# selection options.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Default priority inversion protocol
-# This option defines the default inversion protocol used for mutexes that
-# are created without an explicit protocol being specified. The protocol
-# chosen by default is to use priority inheritance if it is present otherwise
-# priority ceiling, or none if neither is present.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT {
-    # ActiveIf constraint:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-    #     CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT == 3
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value INHERIT
-    # value_source default
-    # Default value:  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
-    #                             "INHERIT" :
-    #                             CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
-    #                             "CEILING" : "NONE" 
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT == 1
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING == 1
-    #   --> INHERIT
-    # Legal values:  "INHERIT" "CEILING" "NONE" 
-};
-
-# Specify mutex priority inversion protocol at runtime
-# This option controls whether the priority inversion protocol used by
-# a mutex can be specified when that mutex is created.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC {
-    # ActiveIf constraint:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-    #     CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT == 3
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Number of protocols selected
-#
-cdl_interface CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT {
-    # Implemented by CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT, active, enabled
-    # Implemented by CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING, active, enabled
-    # Implemented by CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 3
-
-    # The following properties are affected by this value
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT
-    #     ActiveIf:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC
-    #     ActiveIf:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-};
-
-# <
-# Use mboxt_plain mbox implementation
-# Use the plain mboxt implementation instead of the mboxt2
-# implementation. The mboxt2 version is designed to provide
-# semantics compatible with UITRON, the plain implementation
-# is adquate in most other situations.
-#
-cdl_option CYGIMP_MBOX_USE_MBOXT_PLAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Message box blocking put support
-# doc: ref/kernel-mail-boxes.html
-# Message boxes can support three different versions of the
-# put-message operation. The first is tryput(), which will fail
-# if the message box is already full. The other two are the
-# ordinary put() function which will block if the message box
-# is full, and a timed put() operation which will block for
-# upto a certain length of time if the message box is currently
-# full. The blocking versions require extra memory in the
-# message box data structure and extra code in the other
-# message box functions, so they can be disabled if the
-# application does not require them. If this option is enabled
-# then the system will always provide the blocking put()
-# function, and it will also provide the timed put() function
-# if thread timers are enabled.
-#
-cdl_option CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Message box queue size
-# doc: ref/kernel-mail-boxes.html
-# This configuration option controls the number of messages
-# that can be queued in a message box before a non-blocking
-# put() operation will fail or a blocking put() operation will
-# block. The cost in memory is one pointer per message box for
-# each possible message.
-#
-cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-    # Legal values: 1 to 65535
-};
-
-# Condition variable timed-wait support
-# doc: ref/kernel-condition-variables.html
-# This option enables the condition variable timed wait
-# facility.
-#
-cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_TIMER
-    #     CYGFUN_KERNEL_THREADS_TIMER == 1
-    #   --> 1
-};
-
-# Condition variable explicit mutex wait support
-# doc: ref/kernel-condition-variables.html
-# This option enables the condition variable explicit mutex wait
-# facility. By default condition variables in eCos are created with
-# a statically associated mutex. This option permits wait (and timed wait
-# if CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT is enabled) to provide a
-# different mutex as an argument. This makes no difference to the semantics
-# the wait operation except that a different mutex will be used during it.
-#
-cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_WAIT_MUTEX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Avoid inlines in mqueue implementation
-# With this option disabled, the 'mqueue' message queue implementation
-# provides most of its implementation via inlines. However this can
-# adversely affect code size in application that make lots of mqueue
-# calls from different places, so enabling this option provides
-# non-inline versions to be used instead.
-#
-cdl_option CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Kernel instrumentation
-# doc: user-guide/kernel-instrumentation.html
-# The current release of the kernel contains an initial version
-# of instrumentation support. The various parts of the kernel
-# will invoke instrumentation routines whenever appropriate
-# events occur, and these will be stored in a circular buffer
-# for later reference.
-#
-cdl_component CYGPKG_KERNEL_INSTRUMENT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# >
-# Use buffer provided by the application
-# In most circumstances the kernel should provide the
-# instrumentation circular buffer itself. Occasionally
-# application code may wish to provide the buffer instead,
-# giving the application code more convenient access to the
-# buffer. This also makes it possible to put the circular
-# buffer in special areas of memory, for example a region that
-# is shared with the host.
-#
-cdl_option CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instrumentation buffer size
-# If kernel instrumentation is enabled then the instrumentation
-# data goes into a circular buffer. A larger buffer allows
-# more data to be stored, but at a significant cost in memory.
-# The value of this option corresponds to the number of entries
-# in the table, and typically each entry will require 16 bytes
-# of memory.
-#
-cdl_option CYGNUM_KERNEL_INSTRUMENT_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-    # Legal values: 16 to 0x100000
-};
-
-# Wrap instrumentation buffer
-# When the instrumentation buffer is full it can either be restarted
-# from the beginning, overwriting older data, or it can stop at the
-# end. The former is useful if you want to look at the last entries
-# made while the latter is useful if you want to look at the first
-# few.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Perform selective instrumentation
-# The kernel can either collect all instrumentation events, or
-# it can filter out events at runtime based on a set of flags.
-# For example it would be possible to decide at runtime that
-# only scheduler and interrupt instrumentation flags are of
-# interest and that all other flags should be ignored. This
-# flag mechanism involves extra code and processor cycle
-# overhead in the instrumentation code, so it can be disabled
-# if the application developer is interested in all
-# instrumentation events.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_FLAGS {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument common scheduler operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the scheduling code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_SCHED {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SCHED
-    #     CYGPKG_KERNEL_SCHED == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument thread operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code that manipulates threads.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_THREAD {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_THREADS
-    #     CYGPKG_KERNEL_THREADS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument interrupt-related operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the interrupt handling code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_INTR {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_INTERRUPTS
-    #     CYGPKG_KERNEL_INTERRUPTS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument mutex operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the mutex code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MUTEX {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument condition variable operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the condition variable code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_CONDVAR {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument binary semaphore operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the binary semaphore code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BINSEM {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument counting semaphore operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the counting semaphore code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_CNTSEM {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument message box operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the message box code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MBOXT {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument event flag operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the event flag code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_FLAG {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument clock operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the real-time clock code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_CLOCK {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument alarm-related operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code related to alarm operations.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_ALARM {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument SMP-related operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code related to SMP operations.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_SMP {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument multi-level queue scheduler operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code for the multi-level queue scheduler.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MLQ {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGSEM_KERNEL_SCHED_MLQUEUE
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument bitmap scheduler operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code for the bitmap scheduler.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BITMAP {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGSEM_KERNEL_SCHED_BITMAP
-    #     CYGSEM_KERNEL_SCHED_BITMAP == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support application-level instrumentation
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not application-level instrumentation gets
-# compiled in.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_USER {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Provide user-friendly instrumentation messages
-# Include code which will convert the instrument type field 
-# into a more human understandable string
-#
-cdl_component CYGDBG_KERNEL_INSTRUMENT_MSGS {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Rebuild the header file
-# Make (using a shell script) include/cyg/kernel/instrument_desc.h in
-# your build tree; this is normally simply copied from the repository.
-# If you make a permanent change to include/instrmnt.h, such that
-# instrument_desc.h needs updating, it's up to you to first delete the
-# master file
-# ECOS_REPOSITORY/kernel/VERSION/include/instrument_desc.h
-# in your source repository, make the new version by enabling this
-# option then copy the new file
-# back from your build place to its source in
-# ECOS_REPOSITORY/kernel/VERSION/include/instrument_desc.h
-# and/or commit this to any version control system that you use.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE {
-    # This option is not active
-    # The parent CYGDBG_KERNEL_INSTRUMENT_MSGS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Build the host tool to print out a dump
-# Generate a host program which can dump the instrumentation
-# data in a human readable format. You have to somehow get the
-# instrumentation buffer into a file on the host. 'Exercise for
-# the reader' as university lecturers tend to say.
-#
-cdl_component CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP {
-    # This option is not active
-    # The parent CYGDBG_KERNEL_INSTRUMENT_MSGS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# 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 kernel.
-#
-cdl_component CYGPKG_KERNEL_DEBUG {
-    # There is no associated value.
-};
-
-# >
-# Include GDB multi-threading debug support
-# This option enables some extra kernel code which is needed
-# to support multi-threaded source level debugging.
-#
-cdl_option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_LIST
-    #     CYGVAR_KERNEL_THREADS_LIST == 1
-    #   --> 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-};
-
-# <
-# Kernel APIs
-# The eCos kernel is implemented in C++, so a C++ interface
-# to the kernel is always available. There is also an optional
-# C API. Additional API's may be provided in future versions.
-#
-cdl_component CYGPKG_KERNEL_API {
-    # There is no associated value.
-};
-
-# >
-# Provide C API
-# The eCos kernel is implemented in C++, but there is an
-# optional C API for use by application code. This C API can be
-# disabled if the application code does not invoke the kernel
-# directly, but instead uses higher level code such as the
-# uITRON compatibility layer.
-#
-cdl_option CYGFUN_KERNEL_API_C {
-    # 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_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGFUN_MEMALLOC_KAPI
-    #     DefaultValue: CYGFUN_KERNEL_API_C
-};
-
-# <
-# Kernel 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_KERNEL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos kernel. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_KERNEL_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 eCos kernel. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_KERNEL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Kernel tests
-# This option specifies the set of tests for the eCos kernel.
-#
-cdl_option CYGPKG_KERNEL_TESTS {
-    # Calculated value:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    #     CYGFUN_KERNEL_API_C == 1
-    #     CYGPKG_INFRA_DEBUG == 0
-    #     CYGPKG_KERNEL_INSTRUMENT == 0
-    #     CYGFUN_KERNEL_API_C == 1
-    #     CYGPKG_KERNEL_SMP_SUPPORT == 0
-    #     CYGFUN_KERNEL_API_C == 1
-    #     CYGINT_HAL_TESTS_NO_CACHES == 0
-    #     CYGFUN_KERNEL_API_C == 1
-    # Flavor: data
-    # Current_value: tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2 tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0 tests/dhrystone tests/kcache1 tests/kcache2
-};
-
-# <
-# <
-# 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
-    # package CYGPKG_BLOCK_LIB
-    #     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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# 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 have been reported
-# to be faster in some circumstances. The use of "MEMCPY"
-# in the CDL option name is an anachronism and only
-# present for backwards compatibility.
-#
-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) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    #     CYGPKG_ISOINFRA == current
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C == 1
-    #   --> 1
-};
-
-# 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 ""
-    # 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# 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 CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGPKG_ISOINFRA
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  (0 != CYGPKG_ISOINFRA) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_SETJMP
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STARTUP
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_BLOCK_LIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_POSIX
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_USTL
-    #     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 {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    # package CYGPKG_USTL
-    #     Requires: CYGINT_ISO_MAIN_STARTUP
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-    # package CYGPKG_USTL
-    #     Requires: 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_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # component CYGPKG_FILEIO_FNMATCH
-    #     DefaultValue: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    # package CYGPKG_USTL
-    #     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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_POSIX
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_ERRNO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO
-    # option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_POSIX
-    #     Requires: CYGINT_ISO_ERRNO
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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 {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILETYPES_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_STREAMS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEOPS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGSEM_LIBC_EXIT_CALLS_FFLUSH
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-    # option CYGSEM_LIBC_EXIT_CALLS_FFLUSH
-    #     DefaultValue:  0 != CYGINT_ISO_STDIO_FILEACCESS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEACCESS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # package CYGPKG_USTL
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_CHAR_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_DIRECT_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEPOS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_ERROR_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # Implemented by CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 1
-    #   --> 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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: 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, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     Requires: CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM &&
-    #                                 0 != 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, enabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, disabled
-    # 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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_MALLOC
-    # option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
-    #     Requires: CYGINT_ISO_MALLOC
-    # option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
-    #     DefaultValue:  0 != CYGINT_ISO_MALLOC 
-    # component CYGPKG_LIBC_STDIO_OPEN
-    #     Requires: CYGINT_ISO_MALLOC
-    # component CYGPKG_LIBC_STDIO_OPEN
-    #     DefaultValue:  0 != CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_MALLOC
-    # component CYGPKG_IO_FILEIO_INODE
-    #     Requires: CYGINT_ISO_MALLOC
-    # package CYGPKG_USTL
-    #     Requires: 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 {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 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 
-    # package CYGPKG_USTL
-    #     Requires: CYGINT_ISO_EXIT
-};
-
-# 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
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGINT_ISO_ABS
-};
-
-# 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
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGINT_ISO_DIV
-};
-
-# 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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    # option CYGFUN_LIBC_TIME_POSIX
-    #     Requires: 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 
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  (0 != CYGPKG_ISOINFRA) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # package CYGPKG_USTL
-    #     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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_FILEIO_FNMATCH
-    #     DefaultValue: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    # package CYGPKG_USTL
-    #     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
-    user_value 1 <cyg/posix/sys/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires:  CYGBLD_ISO_STRUCTTIMEVAL_HEADER ==  "<cyg/posix/sys/time.h>" 
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/fileio/fnmatch.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_FILEIO_FNMATCH
-    #     Requires:  CYGBLD_ISO_FNMATCH_HEADER ==  "<cyg/fileio/fnmatch.h>" 
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # Implemented by CYGPKG_POSIX_TIMERS, active, disabled
-    # 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires:  CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # Implemented by CYGPKG_POSIX_CLOCKS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 1
-    #   --> 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires:  CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # Implemented by CYGPKG_LIBC_TIME, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/time/time.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_TIME
-    #     Requires:  CYGBLD_ISO_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" 
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # Implemented by CYGPKG_POSIX_TIMERS, active, disabled
-    # 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires:  CYGBLD_ISO_POSIX_TIMERS_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # Implemented by CYGPKG_POSIX_CLOCKS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGINT_ISO_POSIX_CLOCKS
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires:  CYGBLD_ISO_POSIX_CLOCKS_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # Implemented by CYGPKG_LIBC_TIME, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/time/time.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_TIME
-    #     Requires:  CYGBLD_ISO_C_CLOCK_FUNCS_HEADER ==  "<cyg/libc/time/time.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_LIBC_SIGNALS, active, enabled
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     DefaultValue:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/signals/signal.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/posix/signal.h>" 
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # Implemented by CYGPKG_LIBC_SIGNALS, active, enabled
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     Requires: CYGINT_ISO_SIGNAL_IMPL
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     DefaultValue:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/signals/signal.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/posix/signal.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # 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 {
-    # Implemented by CYGPKG_LIBC_SETJMP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/setjmp/setjmp.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SETJMP
-    #     Requires:  CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" 
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # 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
-    user_value 1 <cyg/posix/sigsetjmp.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGSETJMP_HEADER ==  "<cyg/posix/sigsetjmp.h>" 
-};
-
-# <
-# 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 1
-    #   --> 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
-    user_value 1 <cyg/fileio/dirent.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_POSIX_PTHREAD_REQUIREMENTS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 1
-    #   --> 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
-    user_value 1 <cyg/posix/types.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires:  CYGBLD_ISO_PTHREADTYPES_HEADER ==  "<cyg/posix/types.h>" 
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # Implemented by CYGPKG_POSIX_PTHREAD_MUTEX, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/posix/muttypes.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires:  CYGBLD_ISO_PMUTEXTYPES_HEADER ==  "<cyg/posix/muttypes.h>" 
-};
-
-# 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
-    user_value 1 <cyg/posix/utsname.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_UTSNAME
-    #     Requires:  CYGBLD_ISO_UTSNAME_HEADER ==  "<cyg/posix/utsname.h>" 
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # Implemented by CYGPKG_POSIX_SCHED, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_POSIX_SEMAPHORES, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 1
-    #   --> 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
-    user_value 1 <cyg/posix/semaphore.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_SEMAPHORES
-    #     Requires:  CYGBLD_ISO_SEMAPHORES_HEADER ==  "<cyg/posix/semaphore.h>" 
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # Implemented by CYGPKG_POSIX_MQUEUES, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 1
-    #   --> 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 {
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 8
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX == 8
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX == 8
-    #   --> 1 8
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 1
-    #   --> 1
-
-    # 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 {
-    # Implemented by CYGPKG_POSIX_PTHREAD_REQUIREMENTS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 1
-    #   --> 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
-    user_value 1 <cyg/posix/pthread.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires:  CYGBLD_ISO_PTHREAD_IMPL_HEADER ==  "<cyg/posix/pthread.h>" 
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # Implemented by CYGPKG_POSIX_PTHREAD_MUTEX, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_PTHREAD_MUTEX
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/posix/mutex.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires:  CYGBLD_ISO_PTHREAD_MUTEX_HEADER ==  "<cyg/posix/mutex.h>" 
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # Implemented by CYGPKG_POSIX, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 1
-    #   --> 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
-    user_value 1 <cyg/posix/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires:  CYGBLD_ISO_POSIX_LIMITS_HEADER ==  "<cyg/posix/limits.h>" 
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/fileio/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" 
-};
-
-# 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
-    user_value 1 <cyg/fileio/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_POSIX_TIMERS, active, disabled
-    # 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 {
-    # Implemented by CYGPKG_POSIX_CLOCKS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 1
-    #   --> 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 {
-    # Implemented by CYGFUN_IO_FILEIO_SELECT, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 1
-    #   --> 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: ""
-};
-
-# <
-# <
-# ISO C library
-# doc: ref/libc.html
-# The packages under this package enable compatibility with the ISO C
-# standard - ISO/IEC 9899:1990. This allows the user application to use
-# well known standard C library functions, and in eCos starts a thread
-# to invoke the user function main(). This package is a top-level placeholder
-# to contain the implementations.
-#
-cdl_package CYGPKG_LIBC {
-    # 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 CYGNUM_LIBM_COMPATIBILITY
-    #     Requires: CYGPKG_LIBC
-};
-
-# >
-# 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
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_LIBC_I18N
-};
-
-# >
-# 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 setjmp/longjmp functions
-# doc: ref/libc.html
-# This package provides non-local jumps based on setjmp() and
-# longjmp() in <setjmp.h> as specified by the ISO C
-# standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_SETJMP {
-    # 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:  CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" 
-    #     CYGBLD_ISO_SETJMP_HEADER == <cyg/libc/setjmp/setjmp.h>
-    #   --> 1
-};
-
-# >
-# C library setjmp 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_SETJMP_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_SETJMP_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_SETJMP_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library setjmp tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_SETJMP_TESTS {
-    # Calculated value:  "tests/setjmp" 
-    # Flavor: data
-    # Current_value: tests/setjmp
-};
-
-# <
-# <
-# ISO C library signal functions
-# doc: ref/libc.html
-# This component controls signal functionality,
-# as implemented in ISO/IEC 9899:1990 chapter 7.7 with
-# the signal() and raise() functions. As well as
-# allowing a program to send itself signals, it is
-# also possible to cause hardware exceptions to
-# be signalled to the program in a similar way.
-#
-cdl_package CYGPKG_LIBC_SIGNALS {
-    # 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_SIGNAL_NUMBERS_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_IMPL_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Thread safe signals
-# Because signal handlers are global, and not
-# thread-specific (as mandated by POSIX 1003.1)
-# it is possible for multiple threads to clash
-# and corrupt data if setting the same signal
-# handler at the same time. With this option
-# enabled, a kernel mutex will be used to protect
-# the shared data.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_THREAD_SAFE {
-    # 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 == current
-    #   --> 1
-};
-
-# Hardware exceptions cause signals
-# This causes hardware exceptions like
-# arithmetic exceptions (e.g. divide by zero)
-# or bad memory accesses to be passed through as
-# signals. It is thus possible for a program to
-# handle these exceptions in a generic way using
-# the appropriate signal handlers. The details of
-# exactly which exceptions are passed through
-# under what circumstances depend on the
-# underlying HAL implementation. Consequently it
-# must be remembered that signal handlers cannot
-# be guaranteed to be invoked in the expected
-# circumstances if you do not know about the
-# underlying HAL implementation - it is possible
-# that the architecture is unable to detect that
-# exception.
-#
-cdl_component CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
-    #     CYGSEM_KERNEL_EXCEPTIONS_GLOBAL == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_EXCEPTIONS_DECODE
-    #     CYGSEM_KERNEL_EXCEPTIONS_DECODE == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_SIGNALS_TESTS
-    #     Calculated:  
-    #                     "tests/signal1"
-    #                     . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
-    #                 
-};
-
-# >
-# Chain old exception handlers
-# When hardware exceptions are generated, it
-# is possible to chain into the old kernel exception
-# handler before calling any registered signal
-# handler. If this is not required, disable this
-# option and only the signal handler will be
-# called when this exception occurs. Disabling
-# this option will also save some space and code
-# usage.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS {
-    # This option is not active
-    # The parent CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Inline versions of functions
-# Some functions can be made inline instead of
-# being function calls. These can be set here.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_INLINE {
-    # There is no associated value.
-};
-
-# >
-# raise()
-# Enabling this option makes raise() an inline function.
-#
-cdl_option CYGIMP_LIBC_SIGNALS_RAISE_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# signal()
-# Enabling this option makes signal() an inline function.
-#
-cdl_option CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Error handling
-# You may or may not want errno to be set by
-# certain functions. Not using errno could save
-# both space, code, and avoid worrying about
-# interactions between multiple threads when
-# setting it.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_ERROR_HANDLING {
-    # There is no associated value.
-};
-
-# >
-# Bad signal fatal
-# Enabling this option will cause an assertion
-# failure if the signal handling code is
-# passed a bad signal. Otherwise an error will
-# be returned, or in the case of a
-# hardware-generated exception it will be silently
-# ignored.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# raise() sets errno
-# You may or may not want errno to be set by
-# raise() on error conditions. Not using errno
-# could save both space, code, and avoid worrying
-# about interactions between multiple threads when
-# setting it. Strictly ISO C does not mandate
-# that errno be set by raise().
-#
-cdl_option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-};
-
-# signal() sets errno
-# You may or may not want errno to be set by
-# signal() on error conditions. Not using errno
-# could save both space, code, and avoid worrying
-# about interactions between multiple threads when
-# setting it. Strictly ISO C mandates
-# that errno be set by signal().
-#
-cdl_option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-};
-
-# <
-# Tracing
-# These options control the trace output for the C
-# library internal signal implementation.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_TRACING {
-    # There is no associated value.
-};
-
-# >
-# Default trace level for raise()
-# This gives the default tracing level for the
-# raise() function. Higher numbers are more
-# verbose.
-#
-cdl_option CYGNUM_LIBC_SIGNALS_RAISE_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
-};
-
-# Default hardware exception handler trace level
-# This gives the default tracing level for the
-# hardware exception handler function (if enabled).
-# Higher numbers are more verbose.
-#
-cdl_option CYGNUM_LIBC_SIGNALS_HWHANDLER_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 signal 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_SIGNALS_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_SIGNALS_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 C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library signal function tests
-# This option specifies the set of tests for the C library
-# signal functions.
-#
-cdl_option CYGPKG_LIBC_SIGNALS_TESTS {
-    # Calculated value:  
-    #                     "tests/signal1"
-    #                     . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
-    #                 
-    #     CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS == 0
-    # Flavor: data
-    # Current_value: tests/signal1
-};
-
-# <
-# <
-# ISO environment startup/termination
-# doc: ref/c-library-startup.html
-# This package manages the control of the
-# environment (in the general sense) that an
-# application would require for full ISO C / POSIX
-# compatibility, including a main() entry point
-# supplied with arguments and an environment
-# (as retrievable by the getenv() function).
-# It also includes at the other end of things,
-# what happens when main() returns or exit() is
-# called.
-#
-cdl_package CYGPKG_LIBC_STARTUP {
-    # 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_LIBC_STARTUP_CONTEXT == 1 
-    #     CYGINT_LIBC_STARTUP_CONTEXT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_MAIN_THREAD
-    #     Requires:  0 != CYGPKG_LIBC_STARTUP 
-};
-
-# >
-# main() can be invoked elsewhere
-# Implementors of this interface show that they
-# allow main() to be invoked elsewhere.
-#
-cdl_interface CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE {
-    # Implemented by CYGPKG_POSIX_MAIN_THREAD, active, enabled
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT
-    #     DefaultValue:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     DefaultValue:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     DefaultValue:  0 !=  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     Requires: CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
-};
-
-# Arguments to main()
-# This option allows the setting of the arguments
-# to the main function. This only has any effect
-# when cyg_iso_c_start() is used to start the
-# ISO C compatibility. This will automatically
-# invoke main() in an ISO C compatible fashion.
-# This option is in fact used as argv, and so is
-# an n-tuple of string constants. The final
-# entry must be NULL. Conventionally if argv[0]
-# is supplied, it is used to inform the program
-# of its name.
-#
-cdl_option CYGDAT_LIBC_ARGUMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{(char *)\"\", (char *)NULL}"
-    # value_source default
-    # Default value: "{(char *)\"\", (char *)NULL}"
-};
-
-# Startup context for main()
-# This component describes the options available for
-# what context main() is invoked in, such as in a thread
-# etc.
-#
-cdl_component CYGPKG_LIBC_STARTUP_CONTEXT {
-    # There is no associated value.
-};
-
-# >
-# Startup context implementors
-#
-cdl_interface CYGINT_LIBC_STARTUP_CONTEXT {
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT, active, disabled
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_THREAD, active, disabled
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_OTHER, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STARTUP
-    #     Requires:  CYGINT_LIBC_STARTUP_CONTEXT == 1 
-};
-
-# Invoked from initialization context
-# With this option selected, main() will be
-# called via cyg_user_start() (unless the program
-# overrides the default cyg_user_start()). This
-# means it is run in the context of the system
-# initialization code, without the eCos kernel
-# scheduler running, and using the startup stack.
-# This means that any functions that may require 
-# interactions with a running kernel will not
-# work (including libc functions, if configured
-# to be thread safe for example), so you should
-# restrict yourself to only calling fully
-# re-entrant functions from within main() in
-# this case.
-#
-cdl_option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGPKG_KERNEL == current
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 0
-};
-
-# Invoked as eCos thread
-# With this option selected, main() is invoked from an eCos
-# thread.
-#
-cdl_component CYGSEM_LIBC_STARTUP_MAIN_THREAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGPKG_KERNEL == current
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-};
-
-# >
-# System provides stack for main()'s thread
-# This option controls whether the stack of
-# main()'s thread is provided by the application or
-# provided by the system. When disabled, the
-# application must declare a pointer variable
-# cyg_libc_main_stack which is a pointer to an
-# appropriately aligned region of memory. The
-# application must also declare a variable of
-# type `int' called cyg_libc_main_stack_size
-# which contains the size of the stack in bytes.
-# This must be a multiple of 8.
-#
-cdl_option CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM {
-    # This option is not active
-    # The parent CYGSEM_LIBC_STARTUP_MAIN_THREAD is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Priority of main()'s thread
-# This option is used to provide the thread
-# priority which main()'s thread runs at. Be
-# sure to check that this number is appropriate
-# for the kernel scheduler chosen. Different
-# kernel schedulers impose different restrictions
-# on the usable priorities.
-#
-cdl_option CYGNUM_LIBC_MAIN_THREAD_PRIORITY {
-    # This option is not active
-    # The parent CYGSEM_LIBC_STARTUP_MAIN_THREAD is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-    # Legal values: 0 to 0x7fffffff
-};
-
-# <
-# Invoked elsewhere
-# With this option selected, main() must be
-# invoked by a separate package, or by the user.
-#
-cdl_option CYGSEM_LIBC_STARTUP_MAIN_OTHER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 !=  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 1
-    # Requires: CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-    # component CYGPKG_POSIX_MAIN_THREAD
-    #     Requires: CYGSEM_LIBC_STARTUP_MAIN_OTHER
-};
-
-# <
-# Don't allow main()'s stack size to be set
-# This interface describes whether the stack size
-# value set in this package is supported by the
-# implementation that invokes main. If not, that
-# option is disabled.
-#
-cdl_interface CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE {
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT, active, disabled
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
-    #     ActiveIf: !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
-};
-
-# main()'s default thread stack size
-# This option sets the size of the stack used
-# in the context that invokes main(). For example,
-# with an eCos kernel, when the cyg_iso_c_start()
-# function is used to invoke the user-supplied
-# main() function in an ISO C compatible fashion,
-# a separate thread is created to call main().
-# This option controls the size of that thread's
-# stack, which is allocated in the BSS. It
-# must be a multiple of 8. Note, a low number
-# here may be overriden by the HAL if there is
-# a minimum requirement to process interrupts
-# etc. This option cannot be set if the implementation
-# that invokes main() does not use it.
-#
-cdl_option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE {
-    # ActiveIf constraint: !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
-    #     CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE == 0
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8192
-    # value_source default
-    # Default value: 8192
-    # Legal values: 16 to 0x7fffffff
-};
-
-# Include atexit() function
-# This option enables the use of the atexit()
-# function, and ensure that the atexit handlers
-# are invoked from within exit() as defined in
-# the ISO C standard.
-#
-cdl_component CYGFUN_LIBC_ATEXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Number of functions atexit() supports
-# This option sets the number of functions
-# that atexit() has room for. In other words,
-# the number of separate atexit() calls that
-# can be made before calling exit() or returning
-# from main() ( in an environment controlled by
-# cyg_iso_c_start() ). For strict compliance
-# with the ISO C standard this should be at
-# least 32.
-#
-cdl_option CYGNUM_LIBC_ATEXIT_HANDLERS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 1 to 0x7fffffff
-};
-
-# <
-# Make exit() call fflush()
-# This option will ensure that all output
-# streams are flushed when exitting using
-# exit() as prescribed by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_EXIT_CALLS_FFLUSH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-};
-
-# _exit() stops all threads
-# If this option is enabled then _exit(),
-# which is called from exit() which itself is
-# called on return from main(), stops the eCos
-# scheduler. For strict POSIX 1003.1
-# compatibility this would be the normal
-# behaviour. To allow the thread to simply
-# exit, without affecting other threads, simply
-# leave this option disabled. If there is no eCos
-# scheduler, then _exit() simply loops
-# irrespective of the setting of this option.
-#
-cdl_option CYGSEM_LIBC_EXIT_STOPS_SYSTEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# Default environment
-# This option allows the setting of the default
-# contents of the environment. This is in fact
-# the contents of the global environment pointer
-# char **environ defined by POSIX 1003.1. Strings
-# must be of the form NAME=VALUE, and the final
-# entry must be NULL.
-#
-cdl_option CYGDAT_LIBC_DEFAULT_ENVIRONMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ NULL }"
-    # value_source default
-    # Default value: "{ NULL }"
-};
-
-# Invoke default static constructors
-# This option causes the C library to call
-# static constructors with default priority
-# from within the context of the main() thread,
-# working with the co-operation of the HAL.
-# This may be needed for environments that
-# expect static constructors to be run in a
-# thread context. Note that this uses an object
-# with priority 65534. Therefore do not use
-# priority 65534 for any other static objects
-# with this option enabled.
-#
-cdl_option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-    #     CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG == 0
-    #   --> 0
-    # Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-    #     CYGSEM_LIBC_STARTUP_MAIN_THREAD == 0
-    #     CYGSEM_LIBC_STARTUP_MAIN_OTHER == 1
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-    #     Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-};
-
-# ISO environment startup/termination 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_STARTUP_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_STARTUP_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STARTUP_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# ISO environment startup/termination tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STARTUP_TESTS {
-    # Calculated value:  "tests/atexit" 
-    # Flavor: data
-    # Current_value: tests/atexit
-};
-
-# <
-# <
-# ISO C library standard input/output functions
-# doc: ref/libc.html
-# This package provides standard input/output functions associated
-# with the header file <stdio.h> as specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDIO {
-    # 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_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-    # Requires: CYGPKG_LIBC_I18N
-    #     CYGPKG_LIBC_I18N == current
-    #   --> 1
-    # Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-    #     CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\""
-    #     CYGPKG_IO_SERIAL_HALDIAG == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILETYPES_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILETYPES_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEACCESS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEACCESS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEPOS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEPOS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEOPS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEOPS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_CHAR_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_CHAR_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_DIRECT_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_DIRECT_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_ERROR_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_ERROR_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_STREAMS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_STREAMS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRERROR
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDLIB_STRCONV
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBM_USE_STDERR
-    #     Requires: CYGPKG_LIBC_STDIO
-};
-
-# >
-# Inline versions of <stdio.h> functions
-# This option chooses whether some of the
-# particularly simple functions from
-# <stdio.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_STDIO_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Permitted number of open files
-# This option controls the guaranteed minimum
-# number of simultaneously open files. The ISO
-# C standard requires it to be defined (para
-# 7.9.1), and if strictly compliant, it must be
-# at least 8 (para 7.9.3). In practice it can be
-# as low as 3 - for stdin, stdout and stderr.
-#
-cdl_option FOPEN_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 3 to 0x7fffffff
-};
-
-# Maximum length of filename
-# This option defines the maximum allowed size of
-# a filename in characters. The ISO C standard
-# requires it to be defined (para 7.9.1).
-#
-cdl_option FILENAME_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 0x7fffffff
-};
-
-# Maximum length of filenames for temporary files
-# This option defines the maximum allowed size of
-# filenames for temporary files as generated by
-# tmpnam(). It is measured in characters, and the
-# ISO C standard requires it to be defined (para 
-# 7.9.1).
-#
-cdl_option L_tmpnam {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 4 to 0x7fffffff
-};
-
-# Unique file names generated by tmpnam()
-# This option defines the minimum number of
-# unique file names generated by tmpnam(). The
-# ISO C standard requires it to be defined (para
-# 7.9.1) and for ISO compliance it should be at least
-# 25. Note that TMP_MAX names may not be generated
-# if L_tmpnam is too small.
-#
-cdl_option TMP_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 25
-    # value_source default
-    # Default value: 25
-    # Legal values: 1 to 0x7fffffff
-};
-
-# Buffered I/O
-# This option controls whether input/output
-# through the <stdio.h> functions is buffered.
-# This may save some memory per file. It
-# is equivalent to putting every file into
-# non-buffered mode (_IONBF) through setvbuf(),
-# except now it can never be altered back to
-# buffered mode. Disabling buffering is strictly 
-# non-compliant with the ISO C standard.
-#
-cdl_component CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO {
-    # 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 BUFSIZ
-    #     Calculated: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     Requires: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
-};
-
-# >
-# Default buffer size
-# This option defines the default size of buffer
-# used with calls to setbuf(), and is the default
-# size for buffered streams that have not had
-# either setbuf() or setvbuf() invoked on them.
-# It is exactly equivalent to the standard
-# constant BUFSIZ, except that it is 0 if
-# CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO is disabled.
-# The ISO C standard requires this to be defined
-# (para 7.9.1), and says it must be at least 256
-# (para 7.9.2).
-#
-cdl_option CYGNUM_LIBC_STDIO_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-    # Legal values: 1 to 0x7fffffff
-
-    # The following properties are affected by this value
-    # option BUFSIZ
-    #     Calculated: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-};
-
-# setbuf()/setvbuf() allows dynamic setting
-# This option controls whether I/O buffers are
-# implemented dynamically within the stdio
-# implementation. Otherwise they will be static,
-# and cannot be changed by setbuf()/setvbuf(). If
-# they are static (i.e. this option is disabled),
-# any attempt to use an arbitrary buffer size, or
-# to pass a user-supplied buffer to setbuf() or
-# setvbuf() will fail - the buffer is implemented
-# internally as a static array taking the size
-# of the configuration option BUFSIZ. The only
-# exception is if a user buffer is not supplied,
-# and the buffer size requested is less than
-# BUFSIZ. In this case, the buffer will
-# be configured to only use that amount of
-# buffering. However the unused memory left over
-# will NOT be freed. If this option is enabled,
-# then setvbuf() can be used to assign a user supplied
-# buffer to the stream.
-# Either setting can be considered to
-# be compliant with the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF {
-    # 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_LIBC_STDIO_SETVBUF_MALLOC
-    #     Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-};
-
-# setbuf()/setvbuf() uses malloc()
-# This option controls whether buffers set by setbuf() and
-# setvbuf() may be allocated using malloc().
-#
-cdl_option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    #     CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF == 1
-    #   --> 1
-};
-
-# <
-# Default buffer size (BUFSIZ)
-#
-cdl_option BUFSIZ {
-    # Calculated value: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-    #     CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO == 1
-    #     CYGNUM_LIBC_STDIO_BUFSIZE == 256
-    # Flavor: data
-    # Current_value: 256
-};
-
-# Support for ungetc()
-# This option controls whether ungetc() is
-# supported. If not, then some space can be
-# saved, and speed is improved. Note that you
-# MUST have this defined if you want to use the
-# scanf() family of functions.
-#
-cdl_option CYGFUN_LIBC_STDIO_ungetc {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Dynamic opening/closing of files
-# fopen() and fclose() use dynamic memory
-# allocation routines to allocate memory for
-# new FILE structure pointers. If a malloc
-# implementation is available, this option
-# may be enabled to use
-# fopen() and fclose(). If disabled, only the
-# default console streams - stdin, stdout and
-# stderr - will be available.
-#
-cdl_component CYGPKG_LIBC_STDIO_OPEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# POSIX fdopen/fileno functions
-# This identifies to the rest of the system
-# whether the POSIX fdopen() and
-# fileno() functions are implemented.
-#
-cdl_option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS {
-    # ActiveIf constraint: CYGPKG_LIBC_STDIO_FILEIO
-    #     CYGPKG_LIBC_STDIO_FILEIO == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# Default console device
-# This option allows you to choose the
-# default console device. In the current
-# implementation, all these devices begin
-# with the prefix /dev/ and are followed by
-# the name of a device. The name of the device
-# depends on the device drivers you have
-# configured in your system. For example,
-# /dev/ttydiag could be the HAL diagnostic output
-# pseudo-device, or /dev/tty0 could be your
-# first serial driver, depending on your
-# configuration.
-#
-cdl_option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ttydiag\""
-    # value_source default
-    # Default value:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-    #     CYGDAT_IO_SERIAL_TTY_CONSOLE == "\"/dev/ttydiag\""
-    #     CYGDAT_IO_SERIAL_TTY_CONSOLE == "\"/dev/ttydiag\""
-    #   --> "\"/dev/ttydiag\""
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-};
-
-# Floating point support
-# This component allows floating point support
-# to be enabled in certain standard I/O
-# functions.
-#
-cdl_component CYGPKG_LIBC_STDIO_FLOATING_POINT {
-    # There is no associated value.
-};
-
-# >
-# printf() family
-# This option enables the use of floating point
-# number output in the printf() family (i.e.
-# printf(), sprintf(), vprintf(), etc.) of
-# functions. A substantial amount of code space
-# can be saved if this option is disabled. If it
-# is disabled then floating point specifiers
-# (%e, %f, %g) are ignored, and nothing is
-# output.
-#
-cdl_option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-};
-
-# scanf() family
-# This option enables the use of floating point
-# number conversion in the scanf() family (i.e.
-# scanf(), sscanf(), vscanf(), etc.) of
-# functions. A substantial amount of code space
-# can be saved if this option is disabled. If it
-# is disabled then floating point specifiers
-# (%e, %f, %g) are ignored, and nothing is
-# converted.
-#
-cdl_option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM &&
-    #                                 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGPKG_LIBM == current
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-};
-
-# <
-# Long long support
-# This option allows various functions in the C Standard I/O
-# library to support the 'long long' datatype. Doing so
-# will come with a noticeable code size penalty however.
-#
-cdl_option CYGFUN_LIBC_STDIO_LONGLONG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_STDLIB_CONV_LONGLONG
-    #     CYGFUN_LIBC_STDLIB_CONV_LONGLONG == 1
-    #   --> 1
-};
-
-# Thread safe I/O streams
-# doc: ref/libc-thread-safety.html
-# This option controls whether standard I/O streams
-# are thread-safe. Having this option set allows
-# the streams to be locked when accessed by
-# multiple threads simultaneously.
-#
-cdl_option CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# C99 compliant snprintf() family
-# This option allows C99 compliant implementation of 
-# snprintf() family (i.e. snprintf(), vsnprintf()) 
-# of functions. C99 compliant snprintf() functions
-# return the number of characters that would have been written 
-# to a sufficiently sized buffer (excluding the '\0'). 
-# If this option is disabled, the functions simply return 
-# the number of bytes that have been written to the buffer.
-#
-cdl_option CYGIMP_LIBC_STDIO_C99_SNPRINTF {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_USTL
-    #     Requires: CYGIMP_LIBC_STDIO_C99_SNPRINTF
-};
-
-# Enable use of FILEIO package for IO operations.
-# This CDL exists to control how the standard I/O functions
-# interface to the underlying I/O system. Either using the
-# File I/O package, or the generic I/O package which is used
-# by fewer devices.
-#
-cdl_option CYGPKG_LIBC_STDIO_FILEIO {
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
-    #     CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO == 1
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    #     CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS
-    #     ActiveIf: CYGPKG_LIBC_STDIO_FILEIO
-};
-
-# C library stdio 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_STDIO_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_STDIO_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 C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STDIO_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library stdio function tests
-# This option specifies the set of tests for the C library
-# stdio functions.
-#
-cdl_option CYGPKG_LIBC_STDIO_TESTS {
-    # Calculated value:  
-    #                     "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput " 
-    #                     . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
-    #                 
-    #     CYGPKG_IO_FILEIO == current
-    #     CYGPKG_FS_RAM (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput 
-};
-
-# <
-# <
-# 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 == 1
-    #   --> 1
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # 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 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-};
-
-# 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
-    # 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 CYGFUN_LIBC_STDIO_LONGLONG
-    #     Requires: CYGFUN_LIBC_STDLIB_CONV_LONGLONG
-};
-
-# 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 ""
-    # 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# 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
-    # value_source default
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-};
-
-# 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
-};
-
-# Provide strnlen() GNU extension
-# This option controls support for the strnlen() function.
-# (This is a GNU extension, not part of ANSI C.)
-#
-cdl_option CYGFUN_LIBC_STRING_GNU_STRNLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 tests/strnlen" 
-    # 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 tests/strnlen
-};
-
-# <
-# <
-# ISO C library date and time functions
-# doc: ref/libc.html
-# This package provides time functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_TIME {
-    # 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_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" 
-    #     CYGBLD_ISO_C_TIME_TYPES_HEADER == <cyg/libc/time/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_C_CLOCK_FUNCS_HEADER ==  "<cyg/libc/time/time.h>" 
-    #     CYGBLD_ISO_C_CLOCK_FUNCS_HEADER == <cyg/libc/time/time.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_DIV
-    #     CYGINT_ISO_DIV == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ABS
-    #     CYGINT_ISO_ABS == 1
-    #   --> 1
-};
-
-# >
-# Working clock() function
-# This option controls whether clock() will
-# actually try and determine the process time
-# usage. With this option disabled, clock() does
-# not disappear, but will permanently return
-# (clock_t)-1 as mandated by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_TIME_CLOCK_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_TIMER
-    #     CYGFUN_KERNEL_THREADS_TIMER == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-};
-
-# Working time() function
-# This option controls whether time() will
-# actually try and determine the current calendar
-# time. With this option disabled, time() does
-# not disappear, but will permanently return
-# (time_t)-1 as mandated by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_TIME_TIME_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_IO_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-};
-
-# Working cyg_libc_time_settime() function
-# This option controls whether cyg_libc_time_settime()
-# will actually try and set the current calendar
-# time. With this option disabled,
-# cyg_libc_time_settime() does not disappear, but
-# will permanently return an error.
-#
-cdl_option CYGSEM_LIBC_TIME_SETTIME_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_IO_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-};
-
-# POSIX time functions
-# Enabling this option allows the use of the
-# following functions defined in POSIX 1003.1:
-# asctime_r(), ctime_r(), gmtime_r(), strptime(), and
-# localtime_r().
-#
-cdl_option CYGFUN_LIBC_TIME_POSIX {
-    # 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_BSD_FUNCS
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_CTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_GMTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGPKG_LIBC_TIME_TESTS
-    #     Calculated:  
-    #                     "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time " 
-    #                     . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
-    #                 
-};
-
-# Single UNIX extensions
-# Enabling this option allows the use of
-# certain additional conversion specifiers
-# in the strftime function.
-#
-cdl_option CYGFUN_LIBC_TIME_SUS_EXTNS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time zone offsets
-# These options control the default STandarD (STD)
-# and Daylight Savings Time (DST)
-# time offsets so that dates can be set correctly
-# for the local environment.
-#
-cdl_component CYGPKG_LIBC_TIME_ZONES {
-    # There is no associated value.
-};
-
-# >
-# Default Daylight Savings Time state
-# This option controls whether the initial
-# time environment is set up as STD, DST or
-# unknown. Use the value 1 for DST, 0 for STD, 
-# and (-1) for unknown. This can also be set at
-# runtime using the cyg_libc_time_setdst()
-# function.
-#
-cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_STATE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -1
-    # value_source default
-    # Default value: -1
-    # Legal values: -1 to 1
-};
-
-# Default Standard Time offset
-# This option controls the offset from UTC in
-# seconds when in local Standard Time. This
-# value can be positive or negative. It
-# can also be set at run time using the
-# cyg_libc_time_setzoneoffsets() function.
-#
-cdl_option CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: -90000 to 90000
-};
-
-# Default Daylight Savings Time offset
-# This option controls the offset from UTC in
-# seconds when in local Daylight Savings Time. This
-# value can be positive or negative. It
-# can also be set at run time using the
-# cyg_libc_time_setzoneoffsets() function.
-#
-cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3600
-    # value_source default
-    # Default value: 3600
-    # Legal values: -90000 to 90000
-};
-
-# <
-# Inline functions
-# These options control whether certain functions
-# are available in inline form. This may lead to
-# faster code at the expense of code space. But for
-# some functions, or some functions with constant
-# arguments, it may in fact lead to smaller code.
-#
-cdl_component CYGPKG_LIBC_TIME_INLINES {
-    # There is no associated value.
-};
-
-# >
-# asctime()
-# Allow the asctime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_ASCTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# ctime()
-# Allow the ctime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_CTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# difftime()
-# Allow the difftime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_DIFFTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# gmtime()
-# Allow the gmtime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_GMTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# localtime()
-# Allow the localtime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_LOCALTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# mktime()
-# Allow the mktime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_MKTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# asctime_r()
-# Allow the asctime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# ctime_r()
-# Allow the ctime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_CTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# gmtime_r()
-# Allow the gmtime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_GMTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# localtime_r()
-# Allow the localtime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# <
-# clock() tracing level
-# Trace verbosity level for debugging the clock()
-# function. Increase this value to get
-# additional trace output when tracing is enabled.
-#
-cdl_option CYGNUM_LIBC_TIME_CLOCK_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 time 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_TIME_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_TIME_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-format
-    # value_source default
-    # Default value: -Wno-format
-};
-
-# 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_TIME_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library time and date function tests
-# This option specifies the set of tests for the C library
-# time and date functions.
-#
-cdl_option CYGPKG_LIBC_TIME_TESTS {
-    # Calculated value:  
-    #                     "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time " 
-    #                     . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
-    #                 
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    # Flavor: data
-    # Current_value: tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time tests/strptime
-};
-
-# <
-# <
-# <
-# Math library
-# doc: ref/libc.html
-# ISO standard floating point mathematical library
-# containing many useful functions for mathematical
-# calculations.
-#
-cdl_package CYGPKG_LIBM {
-    # 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_LIBC_STDIO_PRINTF_FLOATING_POINT
-    #     Requires: CYGPKG_LIBM
-    # option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM 
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     Requires: CYGPKG_LIBM
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM &&
-    #                                 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    # option CYGFUN_LIBC_strtod
-    #     Requires: CYGPKG_LIBM
-    # option CYGFUN_LIBC_strtod
-    #     DefaultValue:  0 != CYGPKG_LIBM 
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_LIBM
-};
-
-# >
-# Compatibility mode
-# These options deal with behaviour related to
-# the various compatibility modes - POSIX, IEEE,
-# X/OPEN and SVID.
-#
-cdl_component CYGPKG_LIBM_COMPATIBILITY {
-    # There is no associated value.
-};
-
-# >
-#
-cdl_interface CYGINT_LIBM_COMPAT {
-    # Implemented by CYGSEM_LIBM_COMPAT_IEEE_ONLY, active, disabled
-    # Implemented by CYGNUM_LIBM_COMPATIBILITY, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_LIBM_COMPAT
-    #     CYGINT_LIBM_COMPAT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBM_COMPAT
-    #     Requires: 1 == CYGINT_LIBM_COMPAT
-};
-
-# IEEE-only
-# The math library can be hard-coded to only
-# behave in one compatibility mode - IEEE. This
-# cannot be changed at run-time. IEEE mode is the
-# most minimal of the compatibility modes, and so
-# this will best help code size and speed, as well
-# as omitting the code for other compatibility
-# modes. If not defined, the math library can be
-# set at run-time to any of the supported
-# compatibility modes.
-#
-cdl_option CYGSEM_LIBM_COMPAT_IEEE_ONLY {
-    # 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 CYGSEM_LIBM_USE_STDERR
-    #     Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    # option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-};
-
-# Default mode
-# If you want to have support for more than one
-# compatibility mode settable at run-time, rather
-# than hard-coded IEEE mode, this component lets
-# you choose which mode should be the default.
-#
-cdl_component CYGNUM_LIBM_COMPATIBILITY {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 POSIX
-    # value_source default
-    # Default value: 1 POSIX
-    # Legal values:  "POSIX" "IEEE" "XOPEN" "SVID" 
-    # Requires: CYGPKG_LIBC
-    #     CYGPKG_LIBC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-};
-
-# >
-# Numeric representation
-# This option automatically defines the default compatibility
-# mode for numeric representation in terms of the values used
-# to set that mode at run-time.
-#
-cdl_option CYGNUM_LIBM_COMPAT_DEFAULT {
-    # Calculated value:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    # Flavor: data
-    # Current_value: CYGNUM_LIBM_COMPAT_POSIX
-};
-
-# <
-# SVID3-style scalb()
-# SVID3 defined the scalb() function as double
-# scalb(double, double) rather than double
-# scalb(double, int) which is used by IBM, DEC, and
-# probably others. Enabling this option chooses
-# the (double, double) version. Note there is a
-# function double scalbn(double, int) which is
-# unaffected by this choice.
-#
-cdl_option CYGFUN_LIBM_SVID3_scalb {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Reduce namespace pollution
-# If you do not want to use either the X/Open or
-# SVID3 compatibility modes, you may want to define
-# this option to reduce the chance of namespace
-# pollution. This is particularly likely to occur
-# here as these standards define symbols with
-# names that often appear in applications, such as
-# exception, DOMAIN, OVERFLOW, etc. If your
-# application also used these names, it may cause
-# problems.
-#
-cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Output to stderr for math errors
-# The SVID3 standard says that error
-# messages should be output on the stderr console
-# output stream. This option allows this ability
-# to be explicitly controlled. However, this still
-# only has an effect in SVID3 compatibility mode.
-#
-cdl_option CYGSEM_LIBM_USE_STDERR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    #     CYGSEM_LIBM_COMPAT_IEEE_ONLY == 0
-    #   --> 1
-    # Requires: CYGPKG_LIBC_STDIO
-    #     CYGPKG_LIBC_STDIO == current
-    #   --> 1
-};
-
-# <
-# Thread safety
-# This option controls whether the C library has
-# support for thread safe operation in general.
-# This requires eCos kernel support for per-thread
-# data, and adjustment of the stack limit.
-#
-cdl_component CYGPKG_LIBM_THREAD_SAFETY {
-    # There is no associated value.
-};
-
-# >
-# Compatibility mode setting
-# This option makes the setting of the compatiblity
-# mode be a per-thread property. This directly
-# implies that it also becomes thread-safe.
-#
-cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    #     CYGSEM_LIBM_COMPAT_IEEE_ONLY == 0
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL
-    #     Requires: CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-};
-
-# gamma() and lgamma()
-# This option makes the gamma() and lgamma()
-# functions be thread-safe. Note that these
-# functions are identical - they take the log of
-# the absolute value of their argument. The sign
-# of the argument is stored in a variable called
-# signgam. Enabling this option makes signgam
-# a per-thread variable. Note there are also
-# gamma_r() and lgamma_r() alternatives that
-# allow signgam to be passed in by reference as
-# an argument.
-#
-cdl_option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS {
-    # 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 == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL
-    #     Requires: CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-};
-
-# <
-# Tracing output levels in math library
-# Tracing support is useful for debugging. Some
-# Math library modules can be configured with
-# different levels of tracing verbosity. These
-# levels can be configured here.
-#
-cdl_component CYGPKG_LIBM_TRACE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-};
-
-# >
-# Compatibility mode get/set
-# Trace level for debugging the getting and
-# setting of the compatibility mode when it is
-# configured to be thread-safe.
-#
-cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
-    # This option is not active
-    # The parent CYGPKG_LIBM_TRACE is disabled
-
-    # 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
-    # Requires: CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE == 0
-    #   --> 0
-};
-
-# signgam variable access
-# Trace level for debugging all accesses to the
-# signgam variable in thread-safe mode.
-#
-cdl_option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL {
-    # This option is not active
-    # The parent CYGPKG_LIBM_TRACE is disabled
-
-    # 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
-    # Requires: CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-    #     CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS == 0
-    #   --> 0
-};
-
-# <
-# Bessel function limit of significance
-# For the Bessel functions (j0(), j1(), jn(),
-# y0(), y1(), yn()) this option defines the
-# maximum absolute value of the ordinate
-# before we assume total loss of significance.
-# This number must be a floating-point number (e.g.
-# contains a decimal point), and should be
-# large.
-#
-cdl_option CYGNUM_LIBM_X_TLOSS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1.41484755040569E+16
-    # value_source default
-    # Default value: 1.41484755040569E+16
-    # Legal values: 1 to 1e308
-};
-
-# Math library 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_LIBM_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the math library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBM_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-strict-aliasing -ffloat-store"
-    # value_source default
-    # Default value:  "-fno-strict-aliasing" .  ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") 
-    #     CYGPKG_HAL_I386 == current
-    #     CYGPKG_HAL_SYNTH_I386 (unknown) == 0
-    #   --> "-fno-strict-aliasing -ffloat-store"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the math library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBM_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Math library tests
-# This option specifies the set of tests for the math library.
-#
-cdl_option CYGPKG_LIBM_TESTS {
-    # Calculated value:  "tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh" 
-    # Flavor: data
-    # Current_value: tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh
-};
-
-# <
-# <
-# Wallclock device
-# The wallclock device provides real time stamps, as opposed
-# to the eCos kernel timers which typically just count the
-# number of clock ticks since the hardware was powered up.
-# Depending on the target platform this device may involve
-# interacting with a suitable clock chip, or it may be
-# emulated by using the kernel timers.
-#
-cdl_package CYGPKG_IO_WALLCLOCK {
-    # 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_LIBC_TIME_TIME_WORKING
-    #     Requires: CYGPKG_IO_WALLCLOCK
-    # option CYGSEM_LIBC_TIME_SETTIME_WORKING
-    #     Requires: CYGPKG_IO_WALLCLOCK
-    # package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     ActiveIf: CYGPKG_IO_WALLCLOCK
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     ActiveIf: CYGPKG_IO_WALLCLOCK
-};
-
-# >
-# Number of wallclock hardware implementations
-#
-cdl_interface CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS {
-    # Implemented by CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_WALLCLOCK_EMULATE
-    #     DefaultValue:  0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    # option CYGIMP_WALLCLOCK_NONE
-    #     DefaultValue:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-};
-
-# Number of wallclock implementations
-#
-cdl_interface CYGINT_WALLCLOCK_IMPLEMENTATIONS {
-    # Implemented by CYGPKG_WALLCLOCK_EMULATE, active, disabled
-    # Implemented by CYGIMP_WALLCLOCK_NONE, active, disabled
-    # Implemented by CYGIMP_WALLCLOCK_HARDWARE, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
-    #     CYGINT_WALLCLOCK_IMPLEMENTATIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_WALLCLOCK_IMPLEMENTATIONS
-    #     Requires: 1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
-};
-
-# Wallclock driver supports set/get mode
-#
-cdl_interface CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED {
-    # Implemented by CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_WALLCLOCK_MODE
-    #     DefaultValue:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ?  "set_get" : "init_get" 
-    # option CYGSEM_WALLCLOCK_MODE
-    #     Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-};
-
-# Wallclock mode
-# The wallclock driver can be used in one of two
-# modes. Set/get mode allows time to be kept during power
-# off (assuming there's a battery backed clock). Init/get
-# mode is slightly smaller and can be used when there is no
-# battery backed clock - in this mode time 0 is the time of
-# the board power up.
-#
-cdl_option CYGSEM_WALLCLOCK_MODE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value set_get
-    # value_source default
-    # Default value:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ?  "set_get" : "init_get" 
-    #     CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED == 1
-    #   --> set_get
-    # Legal values:  "init_get" "set_get" 
-    # Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-    #     CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED == 1
-    #     CYGSEM_WALLCLOCK_MODE == set_get
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_WALLCLOCK_MODE
-    #     Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-    # option CYGSEM_WALLCLOCK_SET_GET_MODE
-    #     Calculated:  CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 
-};
-
-# Wallclock set/get mode
-#
-cdl_option CYGSEM_WALLCLOCK_SET_GET_MODE {
-    # Calculated value:  CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 
-    #     CYGSEM_WALLCLOCK_MODE == set_get
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Wallclock implementation
-# Implementations of the wallclock device.
-#
-cdl_component CYGPKG_IO_WALLCLOCK_IMPLEMENTATION {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Wallclock emulator
-# When this option is enabled, a wallclock device will be
-# emulated using the kernel real-time clock.
-#
-cdl_option CYGPKG_WALLCLOCK_EMULATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    #     CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS == 1
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# No wallclock
-# Disables the wallclock.
-#
-cdl_option CYGIMP_WALLCLOCK_NONE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    #     CYGPKG_KERNEL == current
-    #     CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS == 1
-    #   --> 0
-};
-
-# Hardware wallclock
-#
-cdl_option CYGIMP_WALLCLOCK_HARDWARE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     ActiveIf: CYGIMP_WALLCLOCK_HARDWARE
-};
-
-# <
-# Wallclock 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_WALLCLOCK_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the wallclock device. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_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 wallclock device. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Wallclock tests
-# This option specifies the set of tests for the
-# wallclock device.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_TESTS {
-    # Calculated value:  CYGPKG_KERNEL ? "tests/wallclock tests/wallclock2" : "" 
-    #     CYGPKG_KERNEL == current
-    # Flavor: data
-    # Current_value: tests/wallclock tests/wallclock2
-};
-
-# <
-# Wallclock device driver for Dallas 12887
-# This package provides a file with init, get and set functions
-# for the Dallas 12887 clock part.
-#
-cdl_package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 {
-    # 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_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-    # ActiveIf constraint: CYGIMP_WALLCLOCK_HARDWARE
-    #     CYGIMP_WALLCLOCK_HARDWARE == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     Requires: CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-};
-
-# >
-# DS12887 wallclock 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_DEVICES_WALLCLOCK_DALLAS_DS12887_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the wallclock device. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887_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 wallclock device. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# PC board RTC Driver
-# RTC driver for PC.
-#
-cdl_package CYGPKG_DEVICES_WALLCLOCK_I386_PC {
-    # 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_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-    # ActiveIf constraint: CYGPKG_HAL_I386_PC
-    #     CYGPKG_HAL_I386_PC == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 == current
-    #   --> 1
-};
-
-# >
-# IO port address of the ADDRESS register
-# This option sets the io address of the address port for
-# accessing the PC RTC
-#
-cdl_option CYGDAT_DEVS_WALLCLOCK_I386_PC_RTC_ADDRESS_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000070
-    # value_source default
-    # Default value: 0x00000070
-};
-
-# IO port address of the DATA register
-# This option sets the io address of the data port for
-# accessing the PC RTC
-#
-cdl_option CYGDAT_DEVS_WALLCLOCK_I386_PC_RTC_DATA_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000071
-    # value_source default
-    # Default value: 0x00000071
-};
-
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL_I386_PC
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-    # package CYGPKG_BLOCK_LIB
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_POSIX
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_ERROR
-};
-
-# >
-# 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
-    # value_source default
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-};
-
-# 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: ""
-};
-
-# <
-# <
-# Framebuffer support
-# doc: ref/io-framebuf.html
-# The generic framebuffer package provides an API for accessing
-# one or more framebuffers, plus support for appropriate device
-# drivers.
-#
-cdl_package CYGPKG_IO_FRAMEBUF {
-    # 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_HAL CYGPKG_ERROR
-    #     CYGPKG_INFRA == current
-    #     CYGPKG_HAL == current
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_FRAMEBUF_I386
-    #     ActiveIf: CYGPKG_IO_FRAMEBUF
-};
-
-# >
-# Number of available framebuffer devices
-# This interface specifies the number of framebuffer devices
-# supported by device driver(s) on this platform.
-#
-cdl_interface CYGINT_IO_FRAMEBUF_DEVICES {
-    # Implemented by CYGPKG_DEVS_FRAMEBUF_I386_FB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     ActiveIf: CYGINT_IO_FRAMEBUF_DEVICES
-    # option CYGPKG_IO_FRAMEBUF_TESTS
-    #     ActiveIf: CYGINT_IO_FRAMEBUF_DEVICES
-};
-
-# Names of available framebuffer devices
-# This option provides a list of the framebuffer devices available
-# on the current platform. It is controlled by the appropriate
-# device driver(s) and should not be edited by users.
-#
-cdl_option CYGDAT_IO_FRAMEBUF_DEVICES {
-    # Flavor: data
-    user_value " fb0 "
-    # value_source user
-    # Default value: ""
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-    # component CYGPKG_DEVS_FRAMEBUF_I386_FB
-    #     Requires: is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " fb0 ")
-};
-
-# Framebuffer device to use for testing
-# This option determines the framebuffer device to be used for running
-# the testcases. By default the build system will automatically select
-# the first entry in CYGDAT_IO_FRAMEBUF_DEVICES, which will be the
-# only entry if there is only framebuffer device in the system.
-#
-cdl_option CYGDAT_IO_FRAMEBUF_TEST_DEVICE {
-    # ActiveIf constraint: CYGINT_IO_FRAMEBUF_DEVICES
-    #     CYGINT_IO_FRAMEBUF_DEVICES == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-    #     CYGDAT_IO_FRAMEBUF_DEVICES == " fb0 "
-    #     CYGDAT_IO_FRAMEBUF_TEST_DEVICE == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-};
-
-# Functionality supported by the platform's framebuffer(s)
-# This component holds details of the functionality provided by the
-# framebuffer device driver(s) for the current platform.
-#
-cdl_component CYGPKG_IO_FRAMEBUF_FUNCTIONALITY {
-    # There is no associated value.
-};
-
-# >
-# 32bpp pixel support required
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provides a 32 bits
-# per pixel display. This constrains the cyg_colour data type
-# to be at least 32 bits.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_32BPP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-};
-
-# Framebuffer supports true colour mode
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform support true colour
-# operation. In other words the contents of the framebuffer
-# defines the colours directly and there is no indirection via
-# a palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_TRUE_COLOUR {
-    # Implemented by CYGHWR_DEVS_FRAMEBUF_SYNTH_TRUE_COLOUR, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Framebuffer uses a palette for colours
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform use a palette. In
-# other words the contents of the framebuffer's memory do not
-# represent colours directly, but instead are treated as indices
-# into a separate table known as the palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_PALETTE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-};
-
-# Framebuffer uses a writeable palette for colours
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform use a palette, and this
-# palette can be modified at run-time. In other words the contents
-# of the framebuffer's memory do not represent colours directly,
-# but instead are treated as indices into a separate table known
-# as the palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE {
-    # 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 CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE
-    #     ActiveIf: CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
-};
-
-# Framebuffer provides viewport support
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provide viewport support.
-# In other words only a subset of the framebuffer, the viewport,
-# is actually visible on the display and application code can move
-# this viewport.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_VIEWPORT {
-    # Implemented by CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Framebuffer provides double buffering support
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provide support for
-# double buffering. In other words the framebuffer memory that
-# is updated by graphics operations is not what actually gets
-# displayed. Instead there is a separate hidden area of memory
-# used for the display, and when drawing is complete a flush
-# operation is needed to move the framebuffer contents to that
-# hidden area. This makes it possible to update the display more
-# smoothly, at the cost of potentially expensive memory copy
-# operations.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_DOUBLE_BUFFER {
-    # Implemented by CYGPKG_DEVS_FRAMEBUF_I386_FB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-
-    # The following properties are affected by this value
-};
-
-# <
-# Framebuffers should install a default palette
-# Framebuffer devices which involve a writeable palette may set this
-# to a default palette when activated by cyg_fb_on() or equivalent
-# functionality. This is useful when the application will access the
-# framebuffer directly. It is less useful if a higher-level graphics
-# library is in use because typically that will install its own
-# palette, and typically there is a code/data overhead of approximately 1K.
-#
-cdl_option CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE {
-    # This option is not active
-    # ActiveIf constraint: CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
-    #     CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Framebuffer build options
-# Package specific build options including control over
-# compiler flags used only in building the generic frame
-# buffer package, and details of which tests are built.
-#
-cdl_component CYGPKG_IO_FRAMEBUF_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the generic framebuffer package. These flags
-# are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_IO_FRAMEBUF_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 generic framebuffer package. These flags
-# are removed from the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FRAMEBUF_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Framebuffer tests
-# This option specifies the set of tests for the framebuffer package
-#
-cdl_option CYGPKG_IO_FRAMEBUF_TESTS {
-    # ActiveIf constraint: CYGINT_IO_FRAMEBUF_DEVICES
-    #     CYGINT_IO_FRAMEBUF_DEVICES == 1
-    #   --> 1
-
-    # Calculated value:  "tests/fb tests/fbmacro" 
-    # Flavor: booldata
-    # Current value: 1 tests/fb tests/fbmacro
-};
-
-# <
-# i386 Target Framebuffer device driver
-# doc: ref/devs-framebuf-i386-ref.html
-# This package provides a framebuffer device driver for the
-# i386 target.
-#
-cdl_package CYGPKG_DEVS_FRAMEBUF_I386 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # ActiveIf constraint: CYGPKG_IO_FRAMEBUF
-    #     CYGPKG_IO_FRAMEBUF == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 v3_0
-};
-
-# >
-# Provide framebuffer device fb0
-# The synthetic target framebuffer driver can provide up to
-# four framebuffer devices, named fb0 to fb3. Each device's
-# width, height, depth, and colour format can be controlled.
-# This option enables device fb
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_FB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " fb0 ")
-    #     CYGDAT_IO_FRAMEBUF_DEVICES == " fb0 "
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FRAMEBUF_I386_FUNCTIONALITY
-    #     ActiveIf:  CYGPKG_DEVS_FRAMEBUF_I386_FB 
-};
-
-# >
-# fb base address
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_BASE_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000A000
-    # value_source default
-    # Default value: 0x0000A000
-};
-
-# fb0 width
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 320
-    # value_source default
-    # Default value: 320
-    # Legal values: 16 to 4096
-
-    # The following properties are affected by this value
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH
-    #     DefaultValue: CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH
-    #     LegalValues: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-};
-
-# fb0 height
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 240
-    # value_source default
-    # Default value: 240
-    # Legal values: 16 to 4096
-
-    # The following properties are affected by this value
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT
-    #     DefaultValue: CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT
-    #     LegalValues: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-};
-
-# fb0 format
-# Each synthetic target framebuffer device can be configured
-# to emulate a particular format. This consists of two fields:
-# depth and colour. The depth is in bits per pixel and can be
-# 8bpp, 16bpp or 32bpp. Colour can be either paletted or true colour.
-# 16bpp and 32bpp implies true colour. 8bpp can be either paletted
-# or true colour. For 8bpp the default palette is VGA. The application
-# can change these default palettes as required to match the hardware being emulated.
-#
-cdl_option CYGDAT_DEVS_FRAMEBUF_I386_FB_FORMAT {
-    # Flavor: data
-    user_value 8BPP_TRUE_332
-    # value_source user
-    # Default value: 8BPP_PAL888
-    # Legal values: 
-    #                             "8BPP_PAL888"     "8BPP_TRUE_332"
-    #                             "16BPP_TRUE_565"  "16BPP_TRUE_555"
-    #                             "32BPP_TRUE_0888"
-    #                         
-};
-
-# fb0 provides viewport support
-# Optionally framebuffer device  can support a viewport.
-# In other words only a subset of the framebuffer, the viewport,
-# is actually visible on the display and application code can
-# move this viewport.
-#
-cdl_component CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# fb0 viewport width
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH {
-    # This option is not active
-    # The parent CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 320
-    # value_source default
-    # Default value: CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH == 320
-    #   --> 320
-    # Legal values: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH == 320
-};
-
-# fb0 viewport height
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT {
-    # This option is not active
-    # The parent CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 240
-    # value_source default
-    # Default value: CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT == 240
-    #   --> 240
-    # Legal values: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT == 240
-};
-
-# <
-# fb0 supports page flipping
-# Optionally framebuffer device  can support page flipping.
-# The device supports between two and four pages, only one
-# of which is visible on the display. This allows code to
-# update one page without disturbing what is currently visible.
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_PAGE_FLIPPING {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Legal values: 2 3 4
-};
-
-# <
-# Functionality supported by the enabled framebuffer(s)
-# The generic framebuffer code needs configure-time information about
-# functionality of the enabled framebuffer or framebuffers. Usually
-# all this information is fixed by the hardware, but the i386
-# target framebuffer support is more flexible than real hardware. To
-# cope with this some dummy options are needed.
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_FUNCTIONALITY {
-    # ActiveIf constraint:  CYGPKG_DEVS_FRAMEBUF_I386_FB 
-    #     CYGPKG_DEVS_FRAMEBUF_I386_FB == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# One or more of the enabled framebuffer devices uses a true colour display
-#
-cdl_option CYGHWR_DEVS_FRAMEBUF_SYNTH_TRUE_COLOUR {
-    # Calculated value:  is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB0_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB1_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB2_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB3_FORMAT, "TRUE") 
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB0_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB1_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB2_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB3_FORMAT (unknown) == 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Framebuffer build options
-# Package specific build options including control over
-# compiler flags used only in building the synthetic
-# target framebuffer device driver.
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for building
-# the synthetic target framebuffer device driver. These flags
-# are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_FRAMEBUF_I386_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 synthetic target framebuffer device driver. These flags
-# are removed from the set of global flags if present.
-#
-cdl_option CYGPKG_DEVS_FRAMEBUF_I386_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# <
-# Block cache and access library
-#
-cdl_package CYGPKG_BLOCK_LIB {
-    # 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_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-    # Requires: CYGPKG_LINUX_COMPAT
-    #     CYGPKG_LINUX_COMPAT == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Block access statistics support
-# This option enables statistics for
-# block access operations.
-#
-cdl_option CYGIMP_BLOCK_LIB_STATISTICS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# <
-# Linux compatibility layer
-# eCos supports a basic Linux compatibility Layer providing various
-# functions, equivalents or stubs expected by Linux kernel code, for
-# assistance in porting drivers and file system code from Linux.
-# Note this does not provide Linux compatibility to applications.
-#
-cdl_package CYGPKG_LINUX_COMPAT {
-    # 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_BLOCK_LIB
-    #     Requires: CYGPKG_LINUX_COMPAT
-};
-
-# >
-# Define page size
-# Define the page size. The value entered here is used as an
-# exponent X in the expression 2^^X to ensure that the page
-# size is always an integer power of two.
-#
-cdl_option CYGNUM_LINUX_COMPAT_PAGE_SIZE_EXPONENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 12
-    # value_source default
-    # Default value: 12
-    # Legal values: 10 to 16
-};
-
-# <
-# POSIX compatibility layer
-# doc: ref/posix-compatibility.html
-# This package enables the POSIX compatibility
-# layer that implements IEEE 1003.1.
-#
-cdl_package CYGPKG_POSIX {
-    # 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_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGIMP_KERNEL_SCHED_SORTED_QUEUES
-    #     CYGIMP_KERNEL_SCHED_SORTED_QUEUES == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_POSIX_LIMITS_HEADER ==  "<cyg/posix/limits.h>" 
-    #     CYGBLD_ISO_POSIX_LIMITS_HEADER == <cyg/posix/limits.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PMUTEXTYPES_HEADER ==  "<cyg/posix/muttypes.h>" 
-    #     CYGBLD_ISO_PMUTEXTYPES_HEADER == <cyg/posix/muttypes.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PTHREAD_MUTEX_HEADER ==  "<cyg/posix/mutex.h>" 
-    #     CYGBLD_ISO_PTHREAD_MUTEX_HEADER == <cyg/posix/mutex.h>
-    #   --> 1
-};
-
-# >
-# POSIX pthread mutexes
-# This component provides support for POSIX pthreads
-# mutexes.
-#
-cdl_component CYGPKG_POSIX_PTHREAD_MUTEX {
-    # 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_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# >
-# POSIX mutex priority inheritance feature test macro
-# This option defines the POSIX feature test macro for
-# supporting priority inheritance protocol in mutexes.
-#
-cdl_option _POSIX_THREAD_PRIO_INHERIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT == 1
-    #   --> 1
-};
-
-# POSIX mutex priority ceiling feature test macro
-# This option defines the POSIX feature test macro for 
-# supporting priority ceiling protocol in mutexes.
-#
-cdl_option _POSIX_THREAD_PRIO_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING == 1
-    #   --> 1
-};
-
-# <
-# POSIX scheduling configuration
-# This component provides controls over scheduling in POSIX.
-#
-cdl_component CYGPKG_POSIX_SCHED {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_POSIX_CLOCKS
-    #     CYGPKG_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGPKG_POSIX_SCHED
-};
-
-# >
-# POSIX priority scheduling feature test macro
-# This option defines the POSIX feature test macro that 
-# indicates that priority scheduling is present. This 
-# should not be undefined.
-#
-cdl_option _POSIX_PRIORITY_SCHEDULING {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-};
-
-# <
-# POSIX pthread configuration
-# This component provides configuration controls for the 
-# POSIX pthreads package.
-#
-cdl_component CYGPKG_POSIX_PTHREAD {
-    # 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_POSIX_TIMERS
-    #     Requires: CYGPKG_POSIX_PTHREAD
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires: CYGPKG_POSIX_PTHREAD
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-};
-
-# >
-# Generic requirements of pthread package
-# This option exists merely to carry the pthread
-# package requirements.
-#
-cdl_option CYGPKG_POSIX_PTHREAD_REQUIREMENTS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGPKG_POSIX_SCHED
-    #     CYGPKG_POSIX_SCHED == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE
-    #     CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_SCHED_ASR_SUPPORT
-    #     CYGSEM_KERNEL_SCHED_ASR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_SCHED_ASR_GLOBAL
-    #     CYGSEM_KERNEL_SCHED_ASR_GLOBAL == 1
-    #   --> 1
-    # Requires: !CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL
-    #     CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL == 0
-    #   --> 1
-    # Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-    #     CYGFUN_KERNEL_THREADS_STACK_LIMIT == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PTHREADTYPES_HEADER ==  "<cyg/posix/types.h>" 
-    #     CYGBLD_ISO_PTHREADTYPES_HEADER == <cyg/posix/types.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PTHREAD_IMPL_HEADER ==  "<cyg/posix/pthread.h>" 
-    #     CYGBLD_ISO_PTHREAD_IMPL_HEADER == <cyg/posix/pthread.h>
-    #   --> 1
-};
-
-# Constant values used in pthread package
-# These are values that are either configurable, or derived
-# from system parameters.
-#
-cdl_component CYGPKG_POSIX_PTHREAD_VALUES {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Maximum number of iterations of key destructors
-# Maximum number of iterations of key destructors allowed.
-#
-cdl_option CYGNUM_POSIX_PTHREAD_DESTRUCTOR_ITERATIONS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 4 to 100
-};
-
-# Maximum number of per-thread data keys allowed
-# Number of per-thread data keys supported.
-#
-cdl_option CYGNUM_POSIX_PTHREAD_KEYS_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 128 to 65535
-};
-
-# Maximum number of threads allowed
-# Maximum number of threads supported.
-#
-cdl_option CYGNUM_POSIX_PTHREAD_THREADS_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 64 to 1024
-};
-
-# <
-# Fixed Feature test macros for POSIX
-# These options define POSIX feature test macros that
-# describe the eCos implementation of pthreads. These
-# are not changeable configuration options.
-#
-cdl_component CYGPKG_POSIX_PTHREAD_FEATURES {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# POSIX thread support feature test macro
-# This option defines the POSIX feature test macro
-# for thread support.
-#
-cdl_option _POSIX_THREADS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_KERNEL_SCHED_TIMESLICE
-    #     CYGSEM_KERNEL_SCHED_TIMESLICE == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option _POSIX_THREAD_PRIORITY_SCHEDULING
-    #     Requires: _POSIX_THREADS
-};
-
-# POSIX thread priority scheduling feature test macro
-# This option defines the POSIX feature test macro
-# for thread priority scheduling support.
-#
-cdl_option _POSIX_THREAD_PRIORITY_SCHEDULING {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-    # Requires: _POSIX_THREADS
-    #     _POSIX_THREADS == 1
-    #   --> 1
-};
-
-# POSIX stack address attribute feature test macro
-# This option defines the POSIX feature test macro
-# for supporting the thread stack address in the thread
-# attribute object.
-#
-cdl_option _POSIX_THREAD_ATTR_STACKADDR {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# POSIX stack size attribute feature test macro
-# This option defines the POSIX feature test macro
-# for supporting the thread stack size in the thread
-# attribute object.
-#
-cdl_option _POSIX_THREAD_ATTR_STACKSIZE {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# POSIX process shared attribute feature test macro
-# This option defines the POSIX feature test macro
-# for supporting process shared mutexes. Since eCos
-# does not have processes, this attribute is undefined.
-#
-cdl_option _POSIX_THREAD_PROCESS_SHARED {
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Main thread configuration
-# These options control the thread used to
-# run the main() application entry routine.
-#
-cdl_component CYGPKG_POSIX_MAIN_THREAD {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires:  0 != CYGPKG_LIBC_STARTUP 
-    #     CYGPKG_LIBC_STARTUP == current
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     CYGSEM_LIBC_STARTUP_MAIN_OTHER == 1
-    #   --> 1
-};
-
-# >
-# main()'s default thread priority
-# POSIX compatibility requires that the application's
-# main() function be invoked in a thread.
-# This option controls the priority of that thread. This
-# priority is the POSIX priority and is NOT the same as
-# an eCos thread priority. With POSIX thread priorities,
-# lower numbers are lower priority, and higher numbers are
-# higher priority.
-#
-cdl_option CYGNUM_POSIX_MAIN_DEFAULT_PRIORITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 0 to 31
-};
-
-# <
-# <
-# POSIX clocks
-# This component provides configuration controls for
-# the POSIX clocks and the sleep(), nanosleep() and 
-# gettimeofday() functions.
-#
-cdl_option CYGPKG_POSIX_CLOCKS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_POSIX_CLOCKS_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_CLOCKS_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRUCTTIMEVAL_HEADER ==  "<cyg/posix/sys/time.h>" 
-    #     CYGBLD_ISO_STRUCTTIMEVAL_HEADER == <cyg/posix/sys/time.h>
-    #   --> 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_SCHED
-    #     Requires: CYGPKG_POSIX_CLOCKS
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGPKG_POSIX_CLOCKS
-};
-
-# POSIX timers
-# This component provides configuration controls for
-# the POSIX timers.
-#
-cdl_option CYGPKG_POSIX_TIMERS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_POSIX_TIMERS_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_TIMERS_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_PTHREAD
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_SIGNALS
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_POSIX_CLOCKS
-    #     CYGINT_ISO_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires: CYGPKG_POSIX_TIMERS
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# POSIX semaphores
-# This component provides configuration controls for
-# POSIX semaphores.
-#
-cdl_option CYGPKG_POSIX_SEMAPHORES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_SEMAPHORES_HEADER ==  "<cyg/posix/semaphore.h>" 
-    #     CYGBLD_ISO_SEMAPHORES_HEADER == <cyg/posix/semaphore.h>
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# POSIX message queues
-# This component provides configuration controls for
-# POSIX message queues.
-#
-cdl_component CYGPKG_POSIX_MQUEUES {
-    # 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 == current
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_PTHREAD_MUTEX
-    #     CYGINT_ISO_PTHREAD_MUTEX == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_CLOCKS
-    #     CYGPKG_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# >
-# Maximum number of message queues
-#
-cdl_option CYGNUM_POSIX_MQUEUE_OPEN_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 1 to 999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     DefaultValue:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     DefaultValue:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-};
-
-# Validate queue descriptors
-# This option turns on checking that message queue descriptors
-# (of type mqd_t) passed into mq_* functions are valid. If so,
-# the functions will fail with EBADF, as POSIX 1003.1 mandates.
-# If this option is disabled, if an invalid descriptor is used,
-# random corruption may occur, or the system may crash. If
-# you are confident invalid descriptors will not be used,
-# you may wish to be disable this to save some per-instance
-# memory and execution time.
-#
-cdl_option CYGIMP_POSIX_MQUEUE_VALIDATE_DESCRIPTOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Allow empty queue notification
-# Enabling this option adds the function mq_notify() to the
-# API. Without it, some code and per-message queue descriptor
-# space is saved, as well as no longer requiring POSIX realtime
-# signal support.
-#
-cdl_option CYGFUN_POSIX_MQUEUE_NOTIFY {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: CYGPKG_POSIX_SIGNALS
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #   --> 0
-    # Requires: CYGPKG_POSIX_SIGNALS
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #   --> 0
-};
-
-# <
-# POSIX signals configuration
-# This component provides configuration controls for
-# the POSIX signals.
-#
-cdl_component CYGPKG_POSIX_SIGNALS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_PTHREAD
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_TIMERS
-    #     CYGPKG_POSIX_TIMERS == 0
-    #   --> 0
-    # Requires:  CYGBLD_ISO_SIGSETJMP_HEADER ==  "<cyg/posix/sigsetjmp.h>" 
-    #     CYGBLD_ISO_SIGSETJMP_HEADER == <cyg/posix/sigsetjmp.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/posix/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 0
-    # Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/posix/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_IMPL_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGPKG_POSIX_SIGNALS
-    # option CYGFUN_POSIX_MQUEUE_NOTIFY
-    #     Requires: CYGPKG_POSIX_SIGNALS
-    # option CYGFUN_POSIX_MQUEUE_NOTIFY
-    #     DefaultValue: CYGPKG_POSIX_SIGNALS
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# POSIX utsname configuration
-# This component provides configuration controls for
-# the POSIX utsname structure and the uname() function.
-#
-cdl_component CYGPKG_POSIX_UTSNAME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_UTSNAME_HEADER ==  "<cyg/posix/utsname.h>" 
-    #     CYGBLD_ISO_UTSNAME_HEADER == <cyg/posix/utsname.h>
-    #   --> 1
-};
-
-# >
-# Length of name strings in utsname structure
-#
-cdl_option CYG_POSIX_UTSNAME_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 65
-    # value_source default
-    # Default value: 65
-    # Legal values: 1 to 99999999
-
-    # The following properties are affected by this value
-    # option CYG_POSIX_UTSNAME_NODENAME_LENGTH
-    #     DefaultValue:  CYG_POSIX_UTSNAME_LENGTH 
-};
-
-# Length of nodename string in utsname structure
-#
-cdl_option CYG_POSIX_UTSNAME_NODENAME_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 65
-    # value_source default
-    # Default value:  CYG_POSIX_UTSNAME_LENGTH 
-    #     CYG_POSIX_UTSNAME_LENGTH == 65
-    #   --> 65
-    # Legal values: 1 to 99999999
-};
-
-# <
-# POSIX tests
-# This option specifies the set of tests for the POSIX package.
-#
-cdl_option CYGPKG_POSIX_TESTS {
-    # Calculated value:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #     CYGPKG_POSIX_PTHREAD_MUTEX == 1
-    #     CYGPKG_POSIX_MQUEUES == 1
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #     CYGPKG_POSIX_TIMERS == 0
-    #     CYGPKG_POSIX_SEMAPHORES == 1
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #     CYGPKG_POSIX_TIMERS == 0
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #     CYGPKG_POSIX_SEMAPHORES == 1
-    # Flavor: data
-    # Current_value: tests/pthread1 tests/pthread2 tests/pthread3 tests/pmutex3 tests/pmqueue1 tests/pmqueue2 
-};
-
-# <
-# POSIX File IO compatibility layer
-# doc: ref/fileio.html
-# This package enables the POSIX compatibility
-# layer that implements IEEE 1003.1 file IO.
-#
-cdl_package CYGPKG_IO_FILEIO {
-    # 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_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" 
-    #     CYGBLD_ISO_DIRENT_HEADER == <cyg/fileio/dirent.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" 
-    #     CYGBLD_ISO_OPEN_MAX_HEADER == <cyg/fileio/limits.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" 
-    #     CYGBLD_ISO_NAME_MAX_HEADER == <cyg/fileio/limits.h>
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_FILE_SUPPORT
-    #     ActiveIf: !CYGPKG_IO_FILEIO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGPKG_IO_FILEIO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGPKG_IO_SERIAL_SELECT_SUPPORT
-    #     ActiveIf: CYGPKG_IO_FILEIO
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     ActiveIf: CYGPKG_IO_FILEIO
-    # option CYGPKG_LIBC_STDIO_TESTS
-    #     Calculated:  
-    #                     "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput " 
-    #                     . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
-    #                 
-    # component CYGCLS_USTL_FSTREAMS
-    #     DefaultValue: CYGPKG_IO_FILEIO
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: CYGPKG_IO_FILEIO
-};
-
-# >
-# Filesystems interfacing to FILEIO
-# Each filesystem driver which FILEIO can use implements
-# this interface. You can use this to determine if there are
-# any filesystems configured in the system.
-#
-cdl_interface CYGINT_IO_FILEIO_FS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Enable support for select()
-# This option enables support for select().
-#
-cdl_option CYGFUN_IO_FILEIO_SELECT {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == 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 CYGPKG_IO_SERIAL_SELECT_SUPPORT
-    #     Requires:  CYGFUN_IO_FILEIO_SELECT == 1 
-};
-
-# Enable devfs support
-# This option enables support for the devfs file system.
-#
-cdl_option CYGPKG_IO_FILEIO_DEVFS_SUPPORT {
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 0 : 1 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 1
-};
-
-# Enable socket support
-# This option enables support for the socket interface. It is
-# only present if the NET package is included.
-#
-cdl_option CYGPKG_IO_FILEIO_SOCKET_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Maximum number of open files
-# This option controls the number of open files
-# that are allowed for all filesystems.
-#
-cdl_option CYGNUM_FILEIO_NFILE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 9999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_FILEIO_NFD
-    #     LegalValues: CYGNUM_FILEIO_NFILE to 9999999
-};
-
-# Maximum number of open file descriptors
-# This option controls the number of open file descriptors
-# that are allowed for all filesystems.
-#
-cdl_option CYGNUM_FILEIO_NFD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: CYGNUM_FILEIO_NFILE to 9999999
-    #     CYGNUM_FILEIO_NFILE == 16
-};
-
-# Maximum number of installed filesystems
-# This option controls the maximum number of filesystems
-# that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_FSTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 1 to 9999999
-};
-
-# Maximum number of mounted filesystems
-# This option controls the maximum number of mounted
-# filesystems that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_MTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: CYGNUM_FILEIO_MTAB_EXTRA to 9999999
-    #     CYGNUM_FILEIO_MTAB_EXTRA == 8
-};
-
-# Number of dynamically mounted filesystems
-# This option controls the number of mounted
-# filesystems that can be created dynamically.
-#
-cdl_option CYGNUM_FILEIO_MTAB_EXTRA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 0 to 9999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_FILEIO_MTAB_MAX
-    #     LegalValues: CYGNUM_FILEIO_MTAB_EXTRA to 9999999
-};
-
-# Maximum number of installed network stacks
-# This option controls the maximum number of installed
-# network stacks that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_NSTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 1 to 9999999
-};
-
-# Enable current directory tracking
-# This option enables tracking of the name of the current
-# directory in the FILEIO package, to support the getcwd()
-# function. When this option is enabled the FILEIO package
-# will attempt to maintain a string that names the current
-# directory. It does this textually, dealing with "." and
-# ".." entries by textual manipulation. While this should
-# always provide a path for the current directory, it may not
-# be the best, if symbolic links are present. This tracked CWD
-# is only used if a filesystem does not support the
-# FS_INFO_GETCWD key. 
-#
-cdl_option CYGPKG_IO_FILEIO_TRACK_CWD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Generic inode support
-# This option enables generic inode support useful to
-# some filesystems. Not all filesystems require this
-# so it is not enabled by default.
-#
-cdl_component CYGPKG_IO_FILEIO_INODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# Maximum space for unused cached inodes
-# The inode cache allows a maximum limit to be set
-# for the number of unused inodes still in the
-# cache before they are freed. It may be set to 0
-# to indicate no dead inode caching should be
-# provided.
-#
-cdl_option CYGNUM_IO_FILEIO_MAX_INODE_CACHE_DEAD {
-    # This option is not active
-    # The parent CYGPKG_IO_FILEIO_INODE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# <
-# Maximum size of iovec used by readv/writev
-# This option controls the maximum size of the iovec
-# structure that can be used by readv()/writev().  This
-# limit is required because the iovec structure must be
-# invariant (to the user), thus a copy needs to be made
-# by the interface routines.  The limit is merely a 
-# control over the amount of stack space used by the
-# readv()/writev() functions.
-#
-cdl_option CYGNUM_FILEIO_IOVEC_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 9999999
-};
-
-# cyg_fs_getinfo call for disk usage
-# Enabling this option includes code in some filesystems to
-# implement a call using cyg_fs_getinfo to return the current
-# filesystem block usage.
-#
-cdl_option CYGSEM_FILEIO_INFO_DISK_USAGE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# POSIX fnmatch configuration
-# This component provides configuration controls for
-# the POSIX fnmatch() function.
-#
-cdl_component CYGPKG_FILEIO_FNMATCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_FNMATCH_HEADER ==  "<cyg/fileio/fnmatch.h>" 
-    #     CYGBLD_ISO_FNMATCH_HEADER == <cyg/fileio/fnmatch.h>
-    #   --> 1
-};
-
-# Struct dirent contains a d_type field
-# If this option is enabled then struct dirent contains a
-# d_type field. With this field, file type may be
-# distinguished directly without calling stat.  Note: This
-# member is not part of the POSIX standard, however is
-# commonely implemented in Linux, FreeBSD, but not SunOS.
-# Also, not all filesystems support it.  So this feature is
-# not portable and should be used with caution.
-#
-cdl_option CYGPKG_FILEIO_DIRENT_DTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Fileio tests
-# This option specifies the set of tests for the FileIO package.
-#
-cdl_option CYGPKG_IO_FILEIO_TESTS {
-    # Calculated value:  "tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch" 
-    # Flavor: data
-    # Current_value: tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch
-};
-
-# <
-# uSTL library
-# doc: ref/ustl.html
-# This package provides the uSTL library. uSTL is a 
-# partial implementation of the STL specification intended to 
-# reduce code size of the derivative programs. This allows the 
-# user application to use well known standard C++ STL library 
-# containers, streams, iterators, algorithms and functors.
-#
-cdl_package CYGPKG_USTL {
-    # 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_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_CHAR_IO
-    #     CYGINT_ISO_STDIO_CHAR_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_DIRECT_IO
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_ERROR
-    #     CYGINT_ISO_STDIO_ERROR == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_IMPL
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_C_TIME_TYPES
-    #     CYGINT_ISO_C_TIME_TYPES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MAIN_STARTUP
-    #     CYGINT_ISO_MAIN_STARTUP == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ENVIRON
-    #     CYGINT_ISO_ENVIRON == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRTOK_R
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 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_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_LOCALE
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-    # Requires: CYGIMP_LIBC_STDIO_C99_SNPRINTF
-    #     CYGIMP_LIBC_STDIO_C99_SNPRINTF == 1
-    #   --> 1
-};
-
-# >
-# File streams support
-# This option enables file stream support. For file stream
-# support the File I/O package is required.
-#
-cdl_component CYGCLS_USTL_FSTREAMS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILETYPES
-    #     CYGINT_ISO_STDIO_FILETYPES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_STREAMS
-    #     CYGINT_ISO_STDIO_STREAMS == 1
-    #   --> 1
-};
-
-# >
-# cin, cout & cerr support
-# Enable this option if you want the standard streams
-# cin, cout and cerr to be included. You will not be able 
-# to run bvt tests if you don't enable this option.
-#
-cdl_option CYGVAR_USTL_CIN_COUT_CERR {
-    # This option is not active
-    # The parent CYGCLS_USTL_FSTREAMS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_USTL_TESTS
-    #     Calculated:  (CYGVAR_USTL_CIN_COUT_CERR ? "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" : "" )
-};
-
-# <
-# Stream bounds checking
-# Enable this option if you want stream operations to throw 
-# exceptions on insufficient data or insufficient space. 
-# All these errors should be preventable in output code; 
-# the input code should verify the data in a separate step. 
-# It slows down stream operations a lot, but it's your call. 
-# Debug builds always throws exceptions - this option is
-# only valid for release builds.
-#
-cdl_option CYGSEM_USTL_STREAM_BOUNDS_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# uSTL library 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_USTL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the uSTL library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_USTL_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-I\$(PREFIX)/include/ustl"
-    # value_source default
-    # Default value: "-I\$(PREFIX)/include/ustl"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the uSTL library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_USTL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wundef
-    # value_source default
-    # Default value: -Wundef
-};
-
-# uSTL tests
-# This option specifies the set of tests for the uSTL library.
-#
-cdl_option CYGPKG_USTL_TESTS {
-    # Calculated value:  (CYGVAR_USTL_CIN_COUT_CERR ? "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" : "" )
-    #     CYGVAR_USTL_CIN_COUT_CERR == 0
-    # Flavor: data
-    # Current_value: 
-};
-
-# <
-# <
-# <
-
diff --git a/03_TMR/ecosenv.sh b/03_TMR/ecosenv.sh
deleted file mode 100755
index 2b98e8d5767f25afb438b024cde5d60e0fca64bb..0000000000000000000000000000000000000000
--- a/03_TMR/ecosenv.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-EZS_BASE_DIR=/proj/i4ezs/tools/ ; export EZS_BASE_DIR
-
-ECOS_BASE_DIR=$EZS_BASE_DIR/ecos/repo_ezs ; export ECOS_BASE_DIR
-EZS_COMPILER_DIR=$EZS_BASE_DIR/gnutools_422 ; export EZS_COMPILER_DIR
-EZS_CMAKE_MODULE_DIR=$ECOS_BASE_DIR/tools ; export EZS_CMAKE_MODULE_DIR
-ECOS_REPOSITORY=$ECOS_BASE_DIR/packages ; export ECOS_REPOSITORY
-UBUNTU_MENUPROXY=0 ; export UBUNTU_MENUPROXY
-if [[ $PATH != *ecos* ]] ;	then
-	# eCos paths - do not modify this line, it is used by the installer
-	PATH=$ECOS_BASE_DIR/tools:$EZS_COMPILER_DIR/bin:$PATH ; export PATH
-fi
-
-if [[ $PATH != */proj/i4ezs/tools/fail/vezs ]] ;	then
-	PATH=$EZS_BASE_DIR/fail:$PATH
-fi
diff --git a/03_TMR/emu/BIOS-bochs-latest b/03_TMR/emu/BIOS-bochs-latest
deleted file mode 100644
index 2d3fea31f67a8c140e70b71cf14ceacd397923ab..0000000000000000000000000000000000000000
Binary files a/03_TMR/emu/BIOS-bochs-latest and /dev/null differ
diff --git a/03_TMR/emu/CMakeLists.txt b/03_TMR/emu/CMakeLists.txt
deleted file mode 100644
index 4eb8d33557905425dc60f90687baed191d80cb7a..0000000000000000000000000000000000000000
--- a/03_TMR/emu/CMakeLists.txt
+++ /dev/null
@@ -1,205 +0,0 @@
-include(processorcount)
-
-# Prepare some useful variable for use in config files
-set(TGT_ELF "${TGT}.elf")
-set(ISODIR "${PROJECT_BINARY_DIR}/grub_iso")
-set(FAIL_BINARY "$ENV{EZS_BASE_DIR}/fail/fail-client")
-set(ISOFILE "${PROJECT_BINARY_DIR}/${TGT}.iso")
-set(ELFFILE "${PROJECT_BINARY_DIR}/${TGT}.elf")
-set(RUNNER "/proj/i4ezs/tools/fail/vezs/bochs-experiment-runner.py")
-
-
-set(FAILVARIANT "not_set" CACHE PATH "Variant name for Fail* injection")
-
-# Setup Bochs configuration
-set(BOCHS_BIOS "${CMAKE_CURRENT_SOURCE_DIR}/BIOS-bochs-latest")
-set(BOCHS_GUEST_RAM 32)
-set(BOCHS_HOST_RAM 32)
-set(BOCHS_VGA_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/vgabios.bin")
-set(BOCHS_ISO_IMAGE "${ISOFILE}")
-
-set(STARTUP_SCRIPTS ${PROJECT_BINARY_DIR}/startup_scripts)
-file(MAKE_DIRECTORY ${STARTUP_SCRIPTS})
-set(BOCHSRC "${STARTUP_SCRIPTS}/bochsrc")
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc.in" ${BOCHSRC} )
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc-gdb.in" "${BOCHSRC}-gdb" )
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bochsrc-term.in" "${BOCHSRC}-term" )
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qrun.sh.in ${STARTUP_SCRIPTS}/qrun.sh)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/frun.sh.in ${STARTUP_SCRIPTS}/frun.sh)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pts.sh.in ${STARTUP_SCRIPTS}/pts.sh)
-configure_file(${SCRIPT_DIR}/findport.pl ${STARTUP_SCRIPTS}/findport.pl)
-
-#message(STATUS "Fail* @ ${FAIL_BINARY}")
-#set(GDBINITFILE ${STARTUP_SCRIPTS}/.gdbinit)
-#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gdbinit.in" ${GDBINITFILE})
-
-# Grub
-find_program(GRUB_MKRESCUE "grub-mkrescue")
-if(NOT GRUB_MKRESCUE)
-		message(FATAL_ERROR "grub-mkrescue not found, cannot create bootable iso :(")
-endif()
-
-
-# message(STATUS "Building bootable ISO for ${TGT}")
-
-# Generate build directory for grub-mkrescue
-set(BOOTDIR "${ISODIR}/boot/")
-set(GRUBDIR "${BOOTDIR}/grub")
-file(MAKE_DIRECTORY ${GRUBDIR})
-
-# Copy and configure grub configuration file
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/grub.cfg.in" "${GRUBDIR}/grub.cfg")
-
-# Create bootable ISO from TGT
-add_custom_command(
-	DEPENDS ${TGT}
-        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TGT}> ${BOOTDIR}/${TGT_ELF}
-	COMMAND ${GRUB_MKRESCUE}
-		ARGS -o ${ISOFILE} ${ISODIR}
-	COMMAND objdump -CDS ${BOOTDIR}/${TGT_ELF} > ${PROJECT_BINARY_DIR}/${TGT}.dis
-        OUTPUT ${ISOFILE} ${BOOTDIR}/${TGT_ELF} ${PROJECT_BINARY_DIR}/${TGT}.dis
-	COMMENT "Generating bootable grub iso."
-		)
-
-# Create bootable ISO
-add_custom_target( iso DEPENDS ${ISOFILE} )
-
-# Start FAIL
-# comment for 02_filter
-##add_custom_target( sim
-##        COMMAND ${STARTUP_SCRIPTS}/frun.sh
-##		DEPENDS ${ISOFILE}
-##		COMMENT "Starting Fail*"
-##        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-##		)
-
-# Start qemu
-add_custom_target(run
-		DEPENDS ${ISOFILE} ${TGT}
-		COMMAND echo "Running ${ISOFILE}..."
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-		)
-
-add_custom_target( ddd
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh ddd
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( gdb
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh gdb
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( gdbtui
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh gdbtui
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-
-add_custom_target( cgdb
-# Start Qemu in Debug mode.
-        DEPENDS ${TGT}
-        COMMAND ${STARTUP_SCRIPTS}/qrun.sh cgdb
-		COMMENT "Debugging in Qemu"
-        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-
-add_custom_target( fail-1-trace
-  # Start Qemu in Debug mode.
-  DEPENDS ${ISOFILE}
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE} -1 
-     -f /proj/i4ezs/tools/fail/vezs/fail-x86-tracing
-     -m 32 -- 
-     -Wf,--start-symbol=fail_trace_start
-     -Wf,--save-symbol=fail_trace_start
-     -Wf,--end-symbol=fail_trace_stop
-     -Wf,--trace-file=${PROJECT_BINARY_DIR}/trace.pb
-     -Wf,--elf-file=${PROJECT_BINARY_DIR}/${TGT}.elf -q
-  COMMENT "Trace the app for golden run"
-  OUTPUT ${PROJECT_BINARY_DIR}/trace.pb
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-2-import
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/import-trace -t ${PROJECT_BINARY_DIR}/trace.pb -i mem -v aufgabe1 -b ${FAILVARIANT} -e ${ELFFILE} --faultspace-rightmargin R
-  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/import-trace -i ElfImporter --objdump objdump -e ${ELFFILE} -v aufgabe1 -b ${FAILVARIANT}
-  COMMAND  LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/prune-trace -p basic -v aufgabe1 -b ${FAILVARIANT} --overwrite
-  COMMENT "Import the golden run into the database"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-3-server
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ /proj/i4ezs/tools/fail/vezs/generic-experiment-server -v aufgabe1 -b ${FAILVARIANT}
-  COMMENT "Start the campaign server"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-4-client
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE}
-          -f /proj/i4ezs/tools/fail/vezs/generic-experiment-client -m 32
-           -e ${ELFFILE}
-           -i ${BOCHS_ISO_IMAGE}
-           -V vgabios.bin -b BIOS-bochs-latest -- 
-           -Wf,--state-dir=state
-           -Wf,--trap -Wf,--timeout=10
-           -Wf,--ok-marker=fail_marker_positive
-           -Wf,--fail-marker=fail_marker_negative
-           -Wf,--detected-marker=fail_marker_detected
-           -Wf,--catch-write-textsegment
-           -Wf,--catch-write-outerspace # 2>/dev/null | grep -C 4 'INJECT'
-  COMMENT "Start one fail-client"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-4-client-parallel
-  # Start Qemu in Debug mode.
-  DEPENDS ${PROJECT_BINARY_DIR}/trace.pb
-  COMMAND LD_LIBRARY_PATH=/proj/i4ezs/tools/fail/vezs/ nice -n 19 ionice -c3 ${RUNNER} -e ${ELFFILE} -i ${BOCHS_ISO_IMAGE}
-          -f /proj/i4ezs/tools/fail/vezs/generic-experiment-client -m 32
-           -e ${ELFFILE}
-           -i ${BOCHS_ISO_IMAGE}
-           -V vgabios.bin -b BIOS-bochs-latest -j${PROCESSOR_COUNT} --
-           -Wf,--state-dir=state
-           -Wf,--trap -Wf,--timeout=10
-           -Wf,--ok-marker=fail_marker_positive
-           -Wf,--fail-marker=fail_marker_negative
-           -Wf,--detected-marker=fail_marker_detected
-           -Wf,--catch-write-textsegment
-           -Wf,--catch-write-outerspace # 2>/dev/null | grep -C 4 'INJECT'
-  COMMENT "Start many fail-clients (use FAIL_SERVER_HOST for different campaign server)"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-5-result
-  # Start Qemu in Debug mode.
-  COMMAND mysql -t < ${PROJECT_SOURCE_DIR}/eval/report.sql
-  COMMENT "Generate a report"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
-add_custom_target( fail-5-browse
-  # Start Qemu in Debug mode.
-  COMMAND mysql -t < ${PROJECT_SOURCE_DIR}/eval/report.sql
-  COMMAND /proj/i4ezs/tools/fail/vezs/resultbrowser/run.py
-  COMMENT "Generate HTML report"
-  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-)
-
diff --git a/03_TMR/emu/bochs-experiment-runner.py b/03_TMR/emu/bochs-experiment-runner.py
deleted file mode 100755
index 2b0ac6ba2ffd40a33e9caec09071566ec610a065..0000000000000000000000000000000000000000
--- a/03_TMR/emu/bochs-experiment-runner.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/python
-
-import os, sys
-from optparse import OptionParser
-from subprocess import *
-from tempfile import mkstemp, mkdtemp
-import shutil
-import multiprocessing
-from threading import Thread
-
-def parseArgs():
-    parser = OptionParser()
-    parser.add_option("-e", "--elf-file", dest="elf_file",
-                      help="elf file to be executed", metavar="ELF")
-    parser.add_option("-i", "--iso-file", dest="iso_file",
-                      help="iso file to be executed", metavar="ISO")
-    parser.add_option("-f", "--fail-client", dest="fail_client",
-                      help="fail-client to be executed", metavar="ISO")
-    parser.add_option("-m", "--memory", dest="memory", default="16",
-                      help="memory for the bochs VM", metavar="SIZE")
-
-    parser.add_option("-b", "--bios", dest="bios", default="/proj/i4ciao/tools/fail/BIOS-bochs-latest",
-                      help="bios image for bochs", metavar="BIOS")
-
-    parser.add_option("-V", "--vgabios", dest="vgabios", default="/proj/i4ciao/tools/fail/vgabios.bin",
-                      help="vgabios image for bochs", metavar="VGABIOS")
-
-    parser.add_option("-1", "--once",
-                      action="store_false", dest="forever", default=True,
-                      help="fail-client to be executed")
-    parser.add_option("-j", "--jobs",
-                      action="store", dest="jobs", default=1,
-                      help="fail-clients to be executed")
-
-
-
-    (options, args) = parser.parse_args()
-
-    if not (options.elf_file and options.iso_file and options.fail_client):
-        parser.error("elf, iso and fail-client are required")
-
-    return options, args
-
-def execute(options, args, bochsrc, statedir):
-    command = "env FAIL_ELF_PATH=%s FAIL_STATEDIR=%s %s -q -f %s %s" %\
-    (options.elf_file, statedir, options.fail_client, bochsrc, " ".join(args))
-    print "executing: " + command
-    p = Popen(command, shell=True)
-    p.wait()
-
-    return p.returncode
-
-def main(options, args):
-    bochsrc_args = {
-        "memory": options.memory,
-        "bios": options.bios,
-        "vgabios": options.vgabios,
-        "iso": options.iso_file
-        }
-
-    bochsrc_text = """
-config_interface: textconfig
-display_library: nogui
-romimage: file="{bios}"
-cpu: count=1, ips=5000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-memory: guest={memory}, host={memory}
-vgaromimage: file="{vgabios}"
-vga: extension=vbe
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=0, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-ata0-slave: type=cdrom, path="{iso}", status=inserted
-boot: cdrom
-clock: sync=none, time0=946681200
-floppy_bootsig_check: disabled=0
-panic: action=fatal
-error: action=fatal
-info: action=ignore
-debug: action=ignore
-pass: action=ignore
-debugger_log: -
-parport1: enabled=0
-vga_update_interval: 300000
-keyboard_serial_delay: 250
-keyboard_paste_delay: 100000
-private_colormap: enabled=0
-i440fxsupport: enabled=0, slot1=pcivga
-""".format(**bochsrc_args)
-
-    bochsrc = mkstemp()
-    fd = os.fdopen(bochsrc[0], "w")
-    fd.write(bochsrc_text)
-    fd.close()
-    bochsrc = bochsrc[1]
-
-    statedir = mkdtemp()
-
-    if options.forever:
-        while True:
-            res = execute(options, args, bochsrc, statedir)
-            if res != 0:
-                break
-
-        ret = 0
-    else:
-        ret = execute(options, args, bochsrc, statedir)
-
-    os.unlink(bochsrc)
-    shutil.rmtree(statedir)
-    sys.exit(ret)
-
-if __name__ == "__main__":
-    (options, args) = parseArgs()
-    if options.jobs == "0":
-        jobs = multiprocessing.cpu_count()
-    else:
-        jobs = int(options.jobs)
-
-    threads = []
-    for i in range(0, jobs):
-        t = Thread(target = main, args = (options, args))
-        t.start()
-        threads.append(t)
-
-    for thread in threads:
-        thread.join()
diff --git a/03_TMR/emu/bochsrc-gdb.in b/03_TMR/emu/bochsrc-gdb.in
deleted file mode 100644
index 23567fceb539167aac7f4d79e5f3b483e709bccf..0000000000000000000000000000000000000000
--- a/03_TMR/emu/bochsrc-gdb.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# You may now use double quotes around pathnames, in case
-# your pathname includes spaces.
-
-#=======================================================================
-# CONFIG_INTERFACE
-#
-# The configuration interface is a series of menus or dialog boxes that
-# allows you to change all the settings that control Bochs's behavior.
-# Depending on the platform there are up to 3 choices of configuration
-# interface: a text mode version called "textconfig" and two graphical versions
-# called "win32config" and "wx".  The text mode version uses stdin/stdout and
-# is always compiled in, unless Bochs is compiled for wx only. The choice
-# "win32config" is only available on win32 and it is the default there.
-# The choice "wx" is only available when you use "--with-wx" on the configure
-# command.  If you do not write a config_interface line, Bochs will
-# choose a default for you.
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#=======================================================================
-config_interface: textconfig
-#config_interface: wx
-
-#=======================================================================
-# DISPLAY_LIBRARY
-#
-# The display library is the code that displays the Bochs VGA screen.  Bochs 
-# has a selection of about 10 different display library implementations for 
-# different platforms.  If you run configure with multiple --with-* options, 
-# the display_library command lets you choose which one you want to run with.
-# If you do not write a display_library line, Bochs will choose a default for
-# you.
-#
-# The choices are: 
-#   x              use X windows interface, cross platform
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
-#   term           text only, uses curses/ncurses library, cross platform
-#   wx             use wxWidgets library, cross platform
-#   nogui          no display at all
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#
-# Specific options:
-# Some display libraries now support specific option to control their
-# behaviour. See the examples below for currently supported options.
-#=======================================================================
-#display_library: nogui
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
-display_library: term
-#display_library: wx
-#display_library: x
-#display_library: x, options="hideIPS" # disable IPS output in status bar
-#display_library: x, options="gui_debug" # use GTK debugger gui
-
-#=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-romimage: file=@BOCHS_BIOS@
-#romimage: file=bios/seabios-0.5.1.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-
-#=======================================================================
-# CPU:
-# This defines cpu-related parameters inside Bochs:
-#
-#  COUNT:
-#  Set the number of processors:cores per processor:threads per core 
-#  when Bochs is compiled for SMP emulation.
-#  Bochs currently supports up to 8 threads running simultaniosly. 
-#  If Bochs is compiled without SMP support, it won't accept values 
-#  different from 1.
-#
-#  QUANTUM:
-#  Maximum amount of instructions allowed to execute by processor before
-#  returning control to another cpu. This option exists only in Bochs 
-#  binary compiled with SMP support.
-#
-#  RESET_ON_TRIPLE_FAULT:
-#  Reset the CPU when triple fault occur (highly recommended) rather than
-#  PANIC. Remember that if you trying to continue after triple fault the 
-#  simulation will be completely bogus !
-#
-#  MSRS:
-#  Define path to user CPU Model Specific Registers (MSRs) specification.
-#  See example in msrs.def.
-#
-#  IGNORE_BAD_MSRS:
-#  Ignore MSR references that Bochs does not understand; print a warning
-#  message instead of generating #GP exception. This option is enabled
-#  by default but will not be avaiable if configurable MSRs are enabled.
-#
-#  IPS:
-#  Emulated Instructions Per Second. This is the number of IPS that bochs
-#  is capable of running on your machine. You can recompile Bochs with
-#  --enable-show-ips option enabled, to find your host's capability.
-#  Measured IPS value will then be logged into your log file or shown
-#  in the status bar (if supported by the gui).
-#
-#  IPS is used to calibrate many time-dependent events within the bochs 
-#  simulation.  For example, changing IPS affects the frequency of VGA
-#  updates, the duration of time before a key starts to autorepeat, and
-#  the measurement of BogoMips and other benchmarks.
-#
-#  Examples:
-#
-#  Bochs Machine/Compiler                                 Mips
-# ____________________________________________________________________
-#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
-#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
-#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
-#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
-#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
-#=======================================================================
-cpu: count=1, ips=@BOCHS_CPU_SPEED_MHZ@000000, reset_on_triple_fault=0, ignore_bad_msrs=1, msrs="msrs.def"
-
-#=======================================================================
-# CPUID:
-#
-# This defines features and functionality supported by Bochs emulated CPU:
-#
-#  MMX:
-#  Select MMX instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
-#
-#  SEP:
-#  Select SYSENTER/SYSEXIT instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  SSE:
-#  Select SSE instruction set support.
-#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XAPIC:
-#  Select XAPIC extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  AES:
-#  Select AES instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  MOVBE:
-#  Select MOVBE Intel(R) Atom instruction support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XSAVE:
-#  Select XSAVE extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  1G_PAGES:
-#  Enable 1G page size support in long mode.
-#  This option exists only if Bochs compiled with x86-64 support.
-#
-#  MWAIT_IS_NOP:
-#  When this option is enabled MWAIT will not put the CPU into a sleep state.
-#  This option exists only if Bochs compiled with --enable-monitor-mwait.
-#
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#=======================================================================
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-
-#=======================================================================
-# MEMORY
-# Set the amount of physical memory you want to emulate.
-#
-# GUEST:
-# Set amount of guest physical memory to emulate. The default is 32MB,
-# the maximum amount limited only by physical address space limitations.
-#
-# HOST:
-# Set amount of host memory you want to allocate for guest RAM emulation.
-# It is possible to allocate less memory than you want to emulate in guest
-# system. This will fake guest to see the non-existing memory. Once guest
-# system touches new memory block it will be dynamically taken from the
-# memory pool. You will be warned (by FATAL PANIC) in case guest already
-# used all allocated host memory and wants more.
-#
-#=======================================================================
-#memory: guest=512, host=256
-memory: guest=@BOCHS_GUEST_RAM@, host=@BOCHS_HOST_RAM@
-
-#=======================================================================
-# OPTROMIMAGE[1-4]:
-# You may now load up to 4 optional ROM images. Be sure to use a 
-# read-only area, typically between C8000 and EFFFF. These optional
-# ROM images should not overwrite the rombios (located at
-# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
-# Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA) and a valid checksum.
-# It can also be a convenient way to upload some arbitrary code/data
-# in the simulation, that can be retrieved by the boot loader
-#=======================================================================
-#optromimage1: file=optionalrom.bin, address=0xd0000
-#optromimage2: file=optionalrom.bin, address=0xd1000
-#optromimage3: file=optionalrom.bin, address=0xd2000
-#optromimage4: file=optionalrom.bin, address=0xd3000
-
-#optramimage1: file=/path/file1.img, address=0x0010000
-#optramimage2: file=/path/file2.img, address=0x0020000
-#optramimage3: file=/path/file3.img, address=0x0030000
-#optramimage4: file=/path/file4.img, address=0x0040000
-
-#=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-vgaromimage: file=@BOCHS_VGA_IMAGE@
-#vgaromimage: file=/usr/share/vgabios/vgabios.debug.bin
-
-#=======================================================================
-# VGA:
-# Here you can specify the display extension to be used. With the value
-# 'none' you can use standard VGA with no extension. Other supported
-# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
-#=======================================================================
-#vga: extension=cirrus
-vga: extension=vbe
-
-#=======================================================================
-# FLOPPYA:
-# Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're
-# booting from 'a' (or 'floppy').
-#
-# You can set the initial status of the media to 'ejected' or 'inserted'.
-#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
-#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
-#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
-#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
-#   floppya: 360k=path, status=inserted   (360K  5.25" media)
-#   floppya: 320k=path, status=inserted   (320K  5.25" media)
-#   floppya: 180k=path, status=inserted   (180K  5.25" media)
-#   floppya: 160k=path, status=inserted   (160K  5.25" media)
-#   floppya: image=path, status=inserted  (guess media type from image size)
-#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
-#
-# The path should be the name of a disk image file.  On Unix, you can use a raw
-# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
-# such as a: or b: as the path.  The parameter 'image' works with image files
-# only. In that case the size must match one of the supported types.
-# The parameter 'type' can be used to enable the floppy drive without media
-# and status specified. Usually the drive type is set up based on the media type.
-#=======================================================================
-#floppya: 1_44=/dev/fd0, status=inserted
-#floppya: image=../1.44, status=inserted
-#floppya: 1_44=/dev/fd0H1440, status=inserted
-#floppya: 1_2=../1_2, status=inserted
-#floppya: 1_44=a:, status=inserted
-#floppya: 1_44=a.img, status=inserted
-#floppya: 1_44=/dev/rfd0a, status=inserted
-#floppya: 1_44=bootdisk.vmi, status=inserted
-#floppya: 1_44=oostubs/guarded.vmi, status=inserted
-
-#=======================================================================
-# FLOPPYB:
-# See FLOPPYA above for syntax
-#=======================================================================
-#floppyb: 1_44=b:, status=inserted
-#floppyb: 1_44=b.img, status=inserted
-
-#=======================================================================
-# ATA0, ATA1, ATA2, ATA3
-# ATA controller for hard disks and cdroms
-#
-# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
-# 
-# These options enables up to 4 ata channels. For each channel
-# the two base io addresses and the irq must be specified.
-# 
-# ata0 and ata1 are enabled by default with the values shown below
-#
-# Examples:
-#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
-#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-
-#=======================================================================
-# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
-#
-# This defines the type and characteristics of all attached ata devices:
-#   type=       type of attached device [disk|cdrom] 
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile]
-#   path=       path of the image
-#   cylinders=  only valid for disks
-#   heads=      only valid for disks
-#   spt=        only valid for disks
-#   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
-#   model=      string returned by identify device command
-#   journal=    optional filename of the redolog for undoable and volatile disks
-#
-# Point this at a hard disk image file, cdrom iso file, or physical cdrom
-# device.  To create a hard disk image, try running bximage.  It will help you
-# choose the size and then suggest a line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# The path is mandatory for hard disks. Disk geometry autodetection works with
-# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
-# using  heads=16 and spt=63). For other hard disk images and modes the
-# cylinders, heads, and spt are mandatory. In all cases the disk size reported
-# from the image must be exactly C*H*S*512.
-#
-# Default values are:
-#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
-#
-# The biosdetect option has currently no effect on the bios
-#
-# Examples:
-#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
-#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
-#=======================================================================
-#ata0-master: type=disk, mode=flat, path="d.sample"
-#ata0-master: type=disk, mode=flat, path="$HOME/.bochs/guest.hd0", cylinders=#cylinders#, heads=16, spt=63
-#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
-ata0-slave: type=cdrom, path=@BOCHS_ISO_IMAGE@, status=inserted
-
-#=======================================================================
-# BOOT:
-# This defines the boot sequence. Now you can specify up to 3 boot drives,
-# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
-# Legacy 'a' and 'c' are also supported.
-# Examples:
-#   boot: floppy
-#   boot: cdrom, disk
-#   boot: network, disk
-#   boot: cdrom, floppy, disk
-#=======================================================================
-#boot: floppy
-#boot: disk
-boot: cdrom
-
-#=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time 
-#  value as returned by the time(2) system call. If no time0 value is 
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-# 
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=realtime, time0=local
-
-
-#=======================================================================
-# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
-# Enables or disables the 0xaa55 signature check on boot floppies
-# Defaults to disabled=0
-# Examples:
-#   floppy_bootsig_check: disabled=0
-#   floppy_bootsig_check: disabled=1
-#=======================================================================
-floppy_bootsig_check: disabled=0
-
-#=======================================================================
-# LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbiage
-# to be written to. If you don't use this option or set the filename to
-# '-' the output is written to the console. If you really don't want it,
-# make it "/dev/null" (Unix) or "nul" (win32). :^(
-#
-# Examples:
-#   log: ./bochs.out
-#   log: /dev/tty
-#=======================================================================
-#log: /dev/stdout
-#log: /dev/null
-#log: /tmp/bochsout.txt
-log: bochsout.txt
-
-#=======================================================================
-# LOGPREFIX:
-# This handles the format of the string prepended to each log line.
-# You may use those special tokens :
-#   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
-#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
-#   %d : 5 characters string of the device, between brackets
-# 
-# Default : %t%e%d
-# Examples:
-#   logprefix: %t-%e-@%i-%d
-#   logprefix: %i%e%d
-#=======================================================================
-#logprefix: %t%e%d
-
-#=======================================================================
-# LOG CONTROLS
-#
-# Bochs now has four severity levels for event logging.
-#   panic: cannot proceed.  If you choose to continue after a panic, 
-#          don't be surprised if you get strange behavior or crashes.
-#   error: something went wrong, but it is probably safe to continue the
-#          simulation.
-#   info: interesting or useful messages.
-#   debug: messages useful only when debugging the code.  This may
-#          spit out thousands per second.
-#
-# For events of each level, you can choose to crash, report, or ignore.
-# TODO: allow choice based on the facility: e.g. crash on panics from
-#       everything except the cdrom, and only report those.
-#
-# If you are experiencing many panics, it can be helpful to change
-# the panic action to report instead of fatal.  However, be aware
-# that anything executed after a panic is uncharted territory and can 
-# cause bochs to become unstable.  The panic is a "graceful exit," so
-# if you disable it you may get a spectacular disaster instead.
-#=======================================================================
-#panic: action=fatal
-panic: action=ignore
-error: action=ignore
-info: action=ignore
-debug: action=ignore
-#pass: action=fatal
-
-#=======================================================================
-# DEBUGGER_LOG:
-# Give the path of the log file you'd like Bochs to log debugger output.
-# If you really don't want it, make it /dev/null or '-'. :^(
-#
-# Examples:
-#   debugger_log: ./debugger.out
-#=======================================================================
-#debugger_log: /dev/null
-#debugger_log: debugger.out
-debugger_log: -
-
-#=======================================================================
-# COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
-# window using the `tty' command, and use that as the `dev' parameter.
-# Then do `sleep 1000000' in the com1 window to keep the shell from
-# messing with things, and run bochs in the other window.  Serial I/O to
-# com1 (port 0x3f8) will all go to the other window.
-# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
-# client or server. In client mode it connects to an already running server (if
-# connection fails Bochs treats com port as not connected). In server mode it
-# opens socket/named pipe and waits until a client application connects to it
-# before starting simulation. This mode is useful for remote debugging (e.g.
-# with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
-# Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
-#
-# Examples:
-#   com1: enabled=1, mode=null
-#   com1: enabled=1, mode=mouse
-#   com2: enabled=1, mode=file, dev=serial.out
-#   com3: enabled=1, mode=raw, dev=com1
-#   com3: enabled=1, mode=socket-client, dev=localhost:8888
-#   com3: enabled=1, mode=socket-server, dev=localhost:8888
-#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
-#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
-#=======================================================================
-#com1: enabled=1, mode=term, dev=/dev/ttyS0
-
-
-#=======================================================================
-# PARPORT1, PARPORT2:
-# This defines a parallel (printer) port. When turned on and an output file is
-# defined the emulated printer port sends characters printed by the guest OS
-# into the output file. On some platforms a device filename can be used to
-# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
-#
-# Examples:
-#   parport1: enabled=1, file="parport.out"
-#   parport2: enabled=1, file="/dev/lp0"
-#   parport1: enabled=0
-#=======================================================================
-#parport1: enabled=1, file="/dev/lp0"
-
-#=======================================================================
-# SB16:
-# This defines the SB16 sound emulation. It can have several of the
-# following properties.
-# All properties are in the format sb16: property=value
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
-# loglevel:
-#      0=no log
-#      1=resource changes, midi program and bank changes
-#      2=severe errors
-#      3=all errors
-#      4=all errors plus all port accesses
-#      5=all errors and port accesses plus a lot of extra info
-# dmatimer:
-#      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continuous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for the IPS parameter of the CPU option.
-#
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
-#=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=/dev/stdout, dmatimer=600000
-
-#=======================================================================
-# VGA_UPDATE_INTERVAL:
-# Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
-# you must tweak the 'cpu: ips=N' directive to be as close to the number
-# of emulated instructions-per-second your workstation can do, for this
-# to be accurate.
-#
-# Examples:
-#   vga_update_interval: 250000
-#=======================================================================
-vga_update_interval: 300000
-
-# using for Winstone '98 tests
-#vga_update_interval:  100000
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works 
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# The Bochs gui creates mouse "events" unless the 'enabled' option is
-# set to 0. The hardware emulation itself is not disabled by this.
-# Unless you have a particular reason for enabling the mouse by default,
-# it is recommended that you leave it off. You can also toggle the mouse
-# usage at runtime (control key + middle mouse button on X11, SDL,
-# wxWidgets and Win32).
-# With the mouse type option you can select the type of mouse to emulate.
-# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
-# or 'usb_ohci' option (requires PCI and USB support).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: enabled=1, type=imps2
-#   mouse: enabled=1, type=serial
-#   mouse: enabled=0
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# ne2k: NE2000 compatible ethernet adapter
-#
-# Examples:
-# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
-# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
-#
-# mac: The MAC address MUST NOT match the address of any machine on the net.
-# Also, the first byte must be an even number (bit 0 set means a multicast
-# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
-# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
-# be other restrictions too.  To be safe, just use the b0:c4... address.
-#
-# ethdev: The ethdev value is the name of the network interface on your host
-# platform.  On UNIX machines, you can get the name by running ifconfig.  On
-# Windows machines, you must run niclist to get the name of the ethdev.
-# Niclist source code is in misc/niclist.c and it is included in Windows 
-# binary releases.
-#
-# script: The script value is optional, and is the name of a script that 
-# is executed after bochs initialize the network interface. You can use 
-# this script to configure this network interface, or enable masquerading.
-# This is mainly useful for the tun/tap devices that only exist during
-# Bochs execution. The network interface name is supplied to the script
-# as first parameter
-#
-# If you don't want to make connections to any physical networks,
-# you can use the following 'ethmod's to simulate a virtual network.
-#   null: All packets are discarded, but logged to a few files.
-#   arpback: ARP is simulated. Disabled by default.
-#   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
-#         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the ethdev value for the root directory and doesn't
-#         overwrite files.
-#
-#=======================================================================
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-
-#=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
-#
-# Example:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
-# supports the same networking modules as the NE2000 adapter. In addition to
-# this, it must be assigned to a PCI slot.
-#=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
-
-#=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a 
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-# 
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-#keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-de.map
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# I440FXSUPPORT:
-# This option controls the presence of the i440FX PCI chipset. You can
-# also specify the devices connected to PCI slots. Up to 5 slots are
-# available now. These devices are currently supported: ne2k, pcivga,
-# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
-# support you'll have the additional choice 'cirrus'.
-#
-# Example:
-#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
-#=======================================================================
-i440fxsupport: enabled=1
-
-#=======================================================================
-# USB_UHCI:
-# This option controls the presence of the USB root hub which is a part
-# of the i440FX PCI chipset. With the portX option you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer').
-#
-# If you connect the mouse or tablet to one of the ports, Bochs forwards the
-# mouse movement data to the USB device instead of the selected mouse type.
-# When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
-#
-# To connect a flat image as an USB hardisk you can use the 'disk' device with
-# the path to the image separated with a colon (see below). To emulate an USB
-# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
-# device name also separated with a colon.
-#
-# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
-# to the root hub. To specify the number of ports you have to add the value
-# separated with a colon. Connecting devices to the external hub ports is only
-# available in the runtime configuration.
-#
-# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
-# sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
-#=======================================================================
-#usb_uhci: enabled=1
-#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
-#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
-
-#=======================================================================
-# USB_OHCI:
-# This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot.
-#=======================================================================
-#usb_ohci: enabled=1
-#usb_ohci: enabled=1, port1=printer:usbprinter.bin
-
-#=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
-#=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
-
-#=======================================================================
-# MAGIC_BREAK:
-# This enables the "magic breakpoint" feature when using the debugger.
-# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
-# debugger mode. This might be useful for software development.
-#
-# Example:
-#   magic_break: enabled=1
-#=======================================================================
-#magic_break: enabled=1
-
-#=======================================================================
-# PORT_E9_HACK:
-# The 0xE9 port doesn't exists in normal ISA architecture. However, we
-# define a convention here, to display on the console of the system running
-# Bochs anything that is written to it. The idea is to provide debug output
-# very early when writing BIOS or OS code for example, without having to
-# bother with setting up a serial port or etc. Reading from port 0xE9 will
-# will return 0xe9 to let you know if the feature is available.
-# Leave this 0 unless you have a reason to use it.
-#
-# Example:
-#   port_e9_hack: enabled=1
-#=======================================================================
-#port_e9_hack: enabled=1
-
-#=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
-#
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
-#=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#text_snapshot_check: enabled=1
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-gdbstub: enabled=1, port=BOCHSGDBSTUBPORTNUMBER, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# PLUGIN_CTRL:
-# Controls the presence of optional plugins without a separate option.
-# By default all existing plugins are enabled. These plugins are currently
-# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
-# 'pci_ide', 'speaker' and 'unmapped'.
-#=======================================================================
-#plugin_ctrl: biosdev=0, speaker=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
diff --git a/03_TMR/emu/bochsrc-term.in b/03_TMR/emu/bochsrc-term.in
deleted file mode 100644
index 37448d4b8b259d69522545815ece54a07a059f24..0000000000000000000000000000000000000000
--- a/03_TMR/emu/bochsrc-term.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# You may now use double quotes around pathnames, in case
-# your pathname includes spaces.
-
-#=======================================================================
-# CONFIG_INTERFACE
-#
-# The configuration interface is a series of menus or dialog boxes that
-# allows you to change all the settings that control Bochs's behavior.
-# Depending on the platform there are up to 3 choices of configuration
-# interface: a text mode version called "textconfig" and two graphical versions
-# called "win32config" and "wx".  The text mode version uses stdin/stdout and
-# is always compiled in, unless Bochs is compiled for wx only. The choice
-# "win32config" is only available on win32 and it is the default there.
-# The choice "wx" is only available when you use "--with-wx" on the configure
-# command.  If you do not write a config_interface line, Bochs will
-# choose a default for you.
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#=======================================================================
-config_interface: textconfig
-#config_interface: wx
-
-#=======================================================================
-# DISPLAY_LIBRARY
-#
-# The display library is the code that displays the Bochs VGA screen.  Bochs 
-# has a selection of about 10 different display library implementations for 
-# different platforms.  If you run configure with multiple --with-* options, 
-# the display_library command lets you choose which one you want to run with.
-# If you do not write a display_library line, Bochs will choose a default for
-# you.
-#
-# The choices are: 
-#   x              use X windows interface, cross platform
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
-#   term           text only, uses curses/ncurses library, cross platform
-#   wx             use wxWidgets library, cross platform
-#   nogui          no display at all
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#
-# Specific options:
-# Some display libraries now support specific option to control their
-# behaviour. See the examples below for currently supported options.
-#=======================================================================
-#display_library: nogui
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
-display_library: term
-#display_library: wx
-#display_library: x
-#display_library: x, options="hideIPS" # disable IPS output in status bar
-#display_library: x, options="gui_debug" # use GTK debugger gui
-
-#=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-romimage: file=@BOCHS_BIOS@
-#romimage: file=bios/seabios-0.5.1.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-
-#=======================================================================
-# CPU:
-# This defines cpu-related parameters inside Bochs:
-#
-#  COUNT:
-#  Set the number of processors:cores per processor:threads per core 
-#  when Bochs is compiled for SMP emulation.
-#  Bochs currently supports up to 8 threads running simultaniosly. 
-#  If Bochs is compiled without SMP support, it won't accept values 
-#  different from 1.
-#
-#  QUANTUM:
-#  Maximum amount of instructions allowed to execute by processor before
-#  returning control to another cpu. This option exists only in Bochs 
-#  binary compiled with SMP support.
-#
-#  RESET_ON_TRIPLE_FAULT:
-#  Reset the CPU when triple fault occur (highly recommended) rather than
-#  PANIC. Remember that if you trying to continue after triple fault the 
-#  simulation will be completely bogus !
-#
-#  MSRS:
-#  Define path to user CPU Model Specific Registers (MSRs) specification.
-#  See example in msrs.def.
-#
-#  IGNORE_BAD_MSRS:
-#  Ignore MSR references that Bochs does not understand; print a warning
-#  message instead of generating #GP exception. This option is enabled
-#  by default but will not be avaiable if configurable MSRs are enabled.
-#
-#  IPS:
-#  Emulated Instructions Per Second. This is the number of IPS that bochs
-#  is capable of running on your machine. You can recompile Bochs with
-#  --enable-show-ips option enabled, to find your host's capability.
-#  Measured IPS value will then be logged into your log file or shown
-#  in the status bar (if supported by the gui).
-#
-#  IPS is used to calibrate many time-dependent events within the bochs 
-#  simulation.  For example, changing IPS affects the frequency of VGA
-#  updates, the duration of time before a key starts to autorepeat, and
-#  the measurement of BogoMips and other benchmarks.
-#
-#  Examples:
-#
-#  Bochs Machine/Compiler                                 Mips
-# ____________________________________________________________________
-#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
-#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
-#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
-#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
-#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
-#=======================================================================
-cpu: count=1, ips=@BOCHS_CPU_SPEED_MHZ@000000, reset_on_triple_fault=0, ignore_bad_msrs=1, msrs="msrs.def"
-
-#=======================================================================
-# CPUID:
-#
-# This defines features and functionality supported by Bochs emulated CPU:
-#
-#  MMX:
-#  Select MMX instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
-#
-#  SEP:
-#  Select SYSENTER/SYSEXIT instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  SSE:
-#  Select SSE instruction set support.
-#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XAPIC:
-#  Select XAPIC extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  AES:
-#  Select AES instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  MOVBE:
-#  Select MOVBE Intel(R) Atom instruction support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XSAVE:
-#  Select XSAVE extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  1G_PAGES:
-#  Enable 1G page size support in long mode.
-#  This option exists only if Bochs compiled with x86-64 support.
-#
-#  MWAIT_IS_NOP:
-#  When this option is enabled MWAIT will not put the CPU into a sleep state.
-#  This option exists only if Bochs compiled with --enable-monitor-mwait.
-#
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#=======================================================================
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-
-#=======================================================================
-# MEMORY
-# Set the amount of physical memory you want to emulate.
-#
-# GUEST:
-# Set amount of guest physical memory to emulate. The default is 32MB,
-# the maximum amount limited only by physical address space limitations.
-#
-# HOST:
-# Set amount of host memory you want to allocate for guest RAM emulation.
-# It is possible to allocate less memory than you want to emulate in guest
-# system. This will fake guest to see the non-existing memory. Once guest
-# system touches new memory block it will be dynamically taken from the
-# memory pool. You will be warned (by FATAL PANIC) in case guest already
-# used all allocated host memory and wants more.
-#
-#=======================================================================
-#memory: guest=512, host=256
-memory: guest=@BOCHS_GUEST_RAM@, host=@BOCHS_HOST_RAM@
-
-#=======================================================================
-# OPTROMIMAGE[1-4]:
-# You may now load up to 4 optional ROM images. Be sure to use a 
-# read-only area, typically between C8000 and EFFFF. These optional
-# ROM images should not overwrite the rombios (located at
-# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
-# Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA) and a valid checksum.
-# It can also be a convenient way to upload some arbitrary code/data
-# in the simulation, that can be retrieved by the boot loader
-#=======================================================================
-#optromimage1: file=optionalrom.bin, address=0xd0000
-#optromimage2: file=optionalrom.bin, address=0xd1000
-#optromimage3: file=optionalrom.bin, address=0xd2000
-#optromimage4: file=optionalrom.bin, address=0xd3000
-
-#optramimage1: file=/path/file1.img, address=0x0010000
-#optramimage2: file=/path/file2.img, address=0x0020000
-#optramimage3: file=/path/file3.img, address=0x0030000
-#optramimage4: file=/path/file4.img, address=0x0040000
-
-#=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-vgaromimage: file=@BOCHS_VGA_IMAGE@
-#vgaromimage: file=/usr/share/vgabios/vgabios.debug.bin
-
-#=======================================================================
-# VGA:
-# Here you can specify the display extension to be used. With the value
-# 'none' you can use standard VGA with no extension. Other supported
-# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
-#=======================================================================
-#vga: extension=cirrus
-vga: extension=vbe
-
-#=======================================================================
-# FLOPPYA:
-# Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're
-# booting from 'a' (or 'floppy').
-#
-# You can set the initial status of the media to 'ejected' or 'inserted'.
-#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
-#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
-#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
-#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
-#   floppya: 360k=path, status=inserted   (360K  5.25" media)
-#   floppya: 320k=path, status=inserted   (320K  5.25" media)
-#   floppya: 180k=path, status=inserted   (180K  5.25" media)
-#   floppya: 160k=path, status=inserted   (160K  5.25" media)
-#   floppya: image=path, status=inserted  (guess media type from image size)
-#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
-#
-# The path should be the name of a disk image file.  On Unix, you can use a raw
-# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
-# such as a: or b: as the path.  The parameter 'image' works with image files
-# only. In that case the size must match one of the supported types.
-# The parameter 'type' can be used to enable the floppy drive without media
-# and status specified. Usually the drive type is set up based on the media type.
-#=======================================================================
-#floppya: 1_44=/dev/fd0, status=inserted
-#floppya: image=../1.44, status=inserted
-#floppya: 1_44=/dev/fd0H1440, status=inserted
-#floppya: 1_2=../1_2, status=inserted
-#floppya: 1_44=a:, status=inserted
-#floppya: 1_44=a.img, status=inserted
-#floppya: 1_44=/dev/rfd0a, status=inserted
-#floppya: 1_44=bootdisk.vmi, status=inserted
-#floppya: 1_44=oostubs/guarded.vmi, status=inserted
-
-#=======================================================================
-# FLOPPYB:
-# See FLOPPYA above for syntax
-#=======================================================================
-#floppyb: 1_44=b:, status=inserted
-#floppyb: 1_44=b.img, status=inserted
-
-#=======================================================================
-# ATA0, ATA1, ATA2, ATA3
-# ATA controller for hard disks and cdroms
-#
-# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
-# 
-# These options enables up to 4 ata channels. For each channel
-# the two base io addresses and the irq must be specified.
-# 
-# ata0 and ata1 are enabled by default with the values shown below
-#
-# Examples:
-#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
-#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-
-#=======================================================================
-# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
-#
-# This defines the type and characteristics of all attached ata devices:
-#   type=       type of attached device [disk|cdrom] 
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile]
-#   path=       path of the image
-#   cylinders=  only valid for disks
-#   heads=      only valid for disks
-#   spt=        only valid for disks
-#   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
-#   model=      string returned by identify device command
-#   journal=    optional filename of the redolog for undoable and volatile disks
-#
-# Point this at a hard disk image file, cdrom iso file, or physical cdrom
-# device.  To create a hard disk image, try running bximage.  It will help you
-# choose the size and then suggest a line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# The path is mandatory for hard disks. Disk geometry autodetection works with
-# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
-# using  heads=16 and spt=63). For other hard disk images and modes the
-# cylinders, heads, and spt are mandatory. In all cases the disk size reported
-# from the image must be exactly C*H*S*512.
-#
-# Default values are:
-#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
-#
-# The biosdetect option has currently no effect on the bios
-#
-# Examples:
-#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
-#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
-#=======================================================================
-#ata0-master: type=disk, mode=flat, path="d.sample"
-#ata0-master: type=disk, mode=flat, path="$HOME/.bochs/guest.hd0", cylinders=#cylinders#, heads=16, spt=63
-#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
-ata0-slave: type=cdrom, path=@BOCHS_ISO_IMAGE@, status=inserted
-
-#=======================================================================
-# BOOT:
-# This defines the boot sequence. Now you can specify up to 3 boot drives,
-# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
-# Legacy 'a' and 'c' are also supported.
-# Examples:
-#   boot: floppy
-#   boot: cdrom, disk
-#   boot: network, disk
-#   boot: cdrom, floppy, disk
-#=======================================================================
-#boot: floppy
-#boot: disk
-boot: cdrom
-
-#=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time 
-#  value as returned by the time(2) system call. If no time0 value is 
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-# 
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=none, time0=local
-
-
-#=======================================================================
-# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
-# Enables or disables the 0xaa55 signature check on boot floppies
-# Defaults to disabled=0
-# Examples:
-#   floppy_bootsig_check: disabled=0
-#   floppy_bootsig_check: disabled=1
-#=======================================================================
-floppy_bootsig_check: disabled=0
-
-#=======================================================================
-# LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbiage
-# to be written to. If you don't use this option or set the filename to
-# '-' the output is written to the console. If you really don't want it,
-# make it "/dev/null" (Unix) or "nul" (win32). :^(
-#
-# Examples:
-#   log: ./bochs.out
-#   log: /dev/tty
-#=======================================================================
-#log: /dev/stdout
-#log: /dev/null
-#log: /tmp/bochsout.txt
-log: bochsout.txt
-
-#=======================================================================
-# LOGPREFIX:
-# This handles the format of the string prepended to each log line.
-# You may use those special tokens :
-#   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
-#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
-#   %d : 5 characters string of the device, between brackets
-# 
-# Default : %t%e%d
-# Examples:
-#   logprefix: %t-%e-@%i-%d
-#   logprefix: %i%e%d
-#=======================================================================
-#logprefix: %t%e%d
-
-#=======================================================================
-# LOG CONTROLS
-#
-# Bochs now has four severity levels for event logging.
-#   panic: cannot proceed.  If you choose to continue after a panic, 
-#          don't be surprised if you get strange behavior or crashes.
-#   error: something went wrong, but it is probably safe to continue the
-#          simulation.
-#   info: interesting or useful messages.
-#   debug: messages useful only when debugging the code.  This may
-#          spit out thousands per second.
-#
-# For events of each level, you can choose to crash, report, or ignore.
-# TODO: allow choice based on the facility: e.g. crash on panics from
-#       everything except the cdrom, and only report those.
-#
-# If you are experiencing many panics, it can be helpful to change
-# the panic action to report instead of fatal.  However, be aware
-# that anything executed after a panic is uncharted territory and can 
-# cause bochs to become unstable.  The panic is a "graceful exit," so
-# if you disable it you may get a spectacular disaster instead.
-#=======================================================================
-#panic: action=fatal
-panic: action=ignore
-error: action=ignore
-info: action=ignore
-debug: action=ignore
-#pass: action=fatal
-
-#=======================================================================
-# DEBUGGER_LOG:
-# Give the path of the log file you'd like Bochs to log debugger output.
-# If you really don't want it, make it /dev/null or '-'. :^(
-#
-# Examples:
-#   debugger_log: ./debugger.out
-#=======================================================================
-#debugger_log: /dev/null
-#debugger_log: debugger.out
-debugger_log: -
-
-#=======================================================================
-# COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
-# window using the `tty' command, and use that as the `dev' parameter.
-# Then do `sleep 1000000' in the com1 window to keep the shell from
-# messing with things, and run bochs in the other window.  Serial I/O to
-# com1 (port 0x3f8) will all go to the other window.
-# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
-# client or server. In client mode it connects to an already running server (if
-# connection fails Bochs treats com port as not connected). In server mode it
-# opens socket/named pipe and waits until a client application connects to it
-# before starting simulation. This mode is useful for remote debugging (e.g.
-# with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
-# Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
-#
-# Examples:
-#   com1: enabled=1, mode=null
-#   com1: enabled=1, mode=mouse
-#   com2: enabled=1, mode=file, dev=serial.out
-#   com3: enabled=1, mode=raw, dev=com1
-#   com3: enabled=1, mode=socket-client, dev=localhost:8888
-#   com3: enabled=1, mode=socket-server, dev=localhost:8888
-#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
-#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
-#=======================================================================
-#com1: enabled=1, mode=term, dev=/dev/ttyS0
-
-
-#=======================================================================
-# PARPORT1, PARPORT2:
-# This defines a parallel (printer) port. When turned on and an output file is
-# defined the emulated printer port sends characters printed by the guest OS
-# into the output file. On some platforms a device filename can be used to
-# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
-#
-# Examples:
-#   parport1: enabled=1, file="parport.out"
-#   parport2: enabled=1, file="/dev/lp0"
-#   parport1: enabled=0
-#=======================================================================
-#parport1: enabled=1, file="/dev/lp0"
-
-#=======================================================================
-# SB16:
-# This defines the SB16 sound emulation. It can have several of the
-# following properties.
-# All properties are in the format sb16: property=value
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
-# loglevel:
-#      0=no log
-#      1=resource changes, midi program and bank changes
-#      2=severe errors
-#      3=all errors
-#      4=all errors plus all port accesses
-#      5=all errors and port accesses plus a lot of extra info
-# dmatimer:
-#      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continuous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for the IPS parameter of the CPU option.
-#
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
-#=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=/dev/stdout, dmatimer=600000
-
-#=======================================================================
-# VGA_UPDATE_INTERVAL:
-# Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
-# you must tweak the 'cpu: ips=N' directive to be as close to the number
-# of emulated instructions-per-second your workstation can do, for this
-# to be accurate.
-#
-# Examples:
-#   vga_update_interval: 250000
-#=======================================================================
-vga_update_interval: 300000
-
-# using for Winstone '98 tests
-#vga_update_interval:  100000
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works 
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# The Bochs gui creates mouse "events" unless the 'enabled' option is
-# set to 0. The hardware emulation itself is not disabled by this.
-# Unless you have a particular reason for enabling the mouse by default,
-# it is recommended that you leave it off. You can also toggle the mouse
-# usage at runtime (control key + middle mouse button on X11, SDL,
-# wxWidgets and Win32).
-# With the mouse type option you can select the type of mouse to emulate.
-# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
-# or 'usb_ohci' option (requires PCI and USB support).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: enabled=1, type=imps2
-#   mouse: enabled=1, type=serial
-#   mouse: enabled=0
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# ne2k: NE2000 compatible ethernet adapter
-#
-# Examples:
-# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
-# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
-#
-# mac: The MAC address MUST NOT match the address of any machine on the net.
-# Also, the first byte must be an even number (bit 0 set means a multicast
-# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
-# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
-# be other restrictions too.  To be safe, just use the b0:c4... address.
-#
-# ethdev: The ethdev value is the name of the network interface on your host
-# platform.  On UNIX machines, you can get the name by running ifconfig.  On
-# Windows machines, you must run niclist to get the name of the ethdev.
-# Niclist source code is in misc/niclist.c and it is included in Windows 
-# binary releases.
-#
-# script: The script value is optional, and is the name of a script that 
-# is executed after bochs initialize the network interface. You can use 
-# this script to configure this network interface, or enable masquerading.
-# This is mainly useful for the tun/tap devices that only exist during
-# Bochs execution. The network interface name is supplied to the script
-# as first parameter
-#
-# If you don't want to make connections to any physical networks,
-# you can use the following 'ethmod's to simulate a virtual network.
-#   null: All packets are discarded, but logged to a few files.
-#   arpback: ARP is simulated. Disabled by default.
-#   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
-#         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the ethdev value for the root directory and doesn't
-#         overwrite files.
-#
-#=======================================================================
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-
-#=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
-#
-# Example:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
-# supports the same networking modules as the NE2000 adapter. In addition to
-# this, it must be assigned to a PCI slot.
-#=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
-
-#=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a 
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-# 
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-#keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-de.map
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# I440FXSUPPORT:
-# This option controls the presence of the i440FX PCI chipset. You can
-# also specify the devices connected to PCI slots. Up to 5 slots are
-# available now. These devices are currently supported: ne2k, pcivga,
-# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
-# support you'll have the additional choice 'cirrus'.
-#
-# Example:
-#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
-#=======================================================================
-i440fxsupport: enabled=1
-
-#=======================================================================
-# USB_UHCI:
-# This option controls the presence of the USB root hub which is a part
-# of the i440FX PCI chipset. With the portX option you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer').
-#
-# If you connect the mouse or tablet to one of the ports, Bochs forwards the
-# mouse movement data to the USB device instead of the selected mouse type.
-# When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
-#
-# To connect a flat image as an USB hardisk you can use the 'disk' device with
-# the path to the image separated with a colon (see below). To emulate an USB
-# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
-# device name also separated with a colon.
-#
-# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
-# to the root hub. To specify the number of ports you have to add the value
-# separated with a colon. Connecting devices to the external hub ports is only
-# available in the runtime configuration.
-#
-# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
-# sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
-#=======================================================================
-#usb_uhci: enabled=1
-#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
-#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
-
-#=======================================================================
-# USB_OHCI:
-# This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot.
-#=======================================================================
-#usb_ohci: enabled=1
-#usb_ohci: enabled=1, port1=printer:usbprinter.bin
-
-#=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
-#=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
-
-#=======================================================================
-# MAGIC_BREAK:
-# This enables the "magic breakpoint" feature when using the debugger.
-# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
-# debugger mode. This might be useful for software development.
-#
-# Example:
-#   magic_break: enabled=1
-#=======================================================================
-#magic_break: enabled=1
-
-#=======================================================================
-# PORT_E9_HACK:
-# The 0xE9 port doesn't exists in normal ISA architecture. However, we
-# define a convention here, to display on the console of the system running
-# Bochs anything that is written to it. The idea is to provide debug output
-# very early when writing BIOS or OS code for example, without having to
-# bother with setting up a serial port or etc. Reading from port 0xE9 will
-# will return 0xe9 to let you know if the feature is available.
-# Leave this 0 unless you have a reason to use it.
-#
-# Example:
-#   port_e9_hack: enabled=1
-#=======================================================================
-#port_e9_hack: enabled=1
-
-#=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
-#
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
-#=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#text_snapshot_check: enabled=1
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# PLUGIN_CTRL:
-# Controls the presence of optional plugins without a separate option.
-# By default all existing plugins are enabled. These plugins are currently
-# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
-# 'pci_ide', 'speaker' and 'unmapped'.
-#=======================================================================
-#plugin_ctrl: biosdev=0, speaker=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
diff --git a/03_TMR/emu/bochsrc.in b/03_TMR/emu/bochsrc.in
deleted file mode 100644
index 0cff5e5848085de1159b72d45e8cea4b5a0b04f5..0000000000000000000000000000000000000000
--- a/03_TMR/emu/bochsrc.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# You may now use double quotes around pathnames, in case
-# your pathname includes spaces.
-
-#=======================================================================
-# CONFIG_INTERFACE
-#
-# The configuration interface is a series of menus or dialog boxes that
-# allows you to change all the settings that control Bochs's behavior.
-# Depending on the platform there are up to 3 choices of configuration
-# interface: a text mode version called "textconfig" and two graphical versions
-# called "win32config" and "wx".  The text mode version uses stdin/stdout and
-# is always compiled in, unless Bochs is compiled for wx only. The choice
-# "win32config" is only available on win32 and it is the default there.
-# The choice "wx" is only available when you use "--with-wx" on the configure
-# command.  If you do not write a config_interface line, Bochs will
-# choose a default for you.
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#=======================================================================
-config_interface: textconfig
-#config_interface: wx
-
-#=======================================================================
-# DISPLAY_LIBRARY
-#
-# The display library is the code that displays the Bochs VGA screen.  Bochs 
-# has a selection of about 10 different display library implementations for 
-# different platforms.  If you run configure with multiple --with-* options, 
-# the display_library command lets you choose which one you want to run with.
-# If you do not write a display_library line, Bochs will choose a default for
-# you.
-#
-# The choices are: 
-#   x              use X windows interface, cross platform
-#   sdl            use SDL library, cross platform
-#   svga           use SVGALIB library for Linux, allows graphics without X11
-#   term           text only, uses curses/ncurses library, cross platform
-#   wx             use wxWidgets library, cross platform
-#   nogui          no display at all
-#
-# NOTE: if you use the "wx" configuration interface, you must also use
-# the "wx" display library.
-#
-# Specific options:
-# Some display libraries now support specific option to control their
-# behaviour. See the examples below for currently supported options.
-#=======================================================================
-#display_library: nogui
-#display_library: sdl, options="fullscreen" # startup in fullscreen mode
-#display_library: term
-#display_library: wx
-display_library: x
-#display_library: x, options="hideIPS" # disable IPS output in status bar
-#display_library: x, options="gui_debug" # use GTK debugger gui
-
-#=======================================================================
-# ROMIMAGE:
-# The ROM BIOS controls what the PC does when it first powers on.
-# Normally, you can use a precompiled BIOS in the source or binary
-# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
-# starting at address 0xf0000, and it is exactly 64k long. Another option
-# is 128k BIOS which is loaded at address 0xe0000.
-# You can also use the environment variable $BXSHARE to specify the
-# location of the BIOS.
-# The usage of external large BIOS images (up to 512k) at memory top is
-# now supported, but we still recommend to use the BIOS distributed with
-# Bochs. The start address optional, since it can be calculated from image size.
-#=======================================================================
-romimage: file=@BOCHS_BIOS@
-#romimage: file=bios/seabios-0.5.1.bin
-#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
-
-#=======================================================================
-# CPU:
-# This defines cpu-related parameters inside Bochs:
-#
-#  COUNT:
-#  Set the number of processors:cores per processor:threads per core 
-#  when Bochs is compiled for SMP emulation.
-#  Bochs currently supports up to 8 threads running simultaniosly. 
-#  If Bochs is compiled without SMP support, it won't accept values 
-#  different from 1.
-#
-#  QUANTUM:
-#  Maximum amount of instructions allowed to execute by processor before
-#  returning control to another cpu. This option exists only in Bochs 
-#  binary compiled with SMP support.
-#
-#  RESET_ON_TRIPLE_FAULT:
-#  Reset the CPU when triple fault occur (highly recommended) rather than
-#  PANIC. Remember that if you trying to continue after triple fault the 
-#  simulation will be completely bogus !
-#
-#  MSRS:
-#  Define path to user CPU Model Specific Registers (MSRs) specification.
-#  See example in msrs.def.
-#
-#  IGNORE_BAD_MSRS:
-#  Ignore MSR references that Bochs does not understand; print a warning
-#  message instead of generating #GP exception. This option is enabled
-#  by default but will not be avaiable if configurable MSRs are enabled.
-#
-#  IPS:
-#  Emulated Instructions Per Second. This is the number of IPS that bochs
-#  is capable of running on your machine. You can recompile Bochs with
-#  --enable-show-ips option enabled, to find your host's capability.
-#  Measured IPS value will then be logged into your log file or shown
-#  in the status bar (if supported by the gui).
-#
-#  IPS is used to calibrate many time-dependent events within the bochs 
-#  simulation.  For example, changing IPS affects the frequency of VGA
-#  updates, the duration of time before a key starts to autorepeat, and
-#  the measurement of BogoMips and other benchmarks.
-#
-#  Examples:
-#
-#  Bochs Machine/Compiler                                 Mips
-# ____________________________________________________________________
-#  2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4    50 to 55 Mips
-#  2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      38 to 43 Mips
-#  2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4      21 to 25 Mips
-#  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
-#  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
-#=======================================================================
-cpu: count=1, ips=@BOCHS_CPU_SPEED_MHZ@000000, reset_on_triple_fault=0, ignore_bad_msrs=1, msrs="msrs.def"
-
-#=======================================================================
-# CPUID:
-#
-# This defines features and functionality supported by Bochs emulated CPU:
-#
-#  MMX:
-#  Select MMX instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
-#
-#  SEP:
-#  Select SYSENTER/SYSEXIT instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  SSE:
-#  Select SSE instruction set support.
-#  Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XAPIC:
-#  Select XAPIC extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  AES:
-#  Select AES instruction set support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  MOVBE:
-#  Select MOVBE Intel(R) Atom instruction support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  XSAVE:
-#  Select XSAVE extensions support.
-#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
-#
-#  1G_PAGES:
-#  Enable 1G page size support in long mode.
-#  This option exists only if Bochs compiled with x86-64 support.
-#
-#  MWAIT_IS_NOP:
-#  When this option is enabled MWAIT will not put the CPU into a sleep state.
-#  This option exists only if Bochs compiled with --enable-monitor-mwait.
-#
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#=======================================================================
-cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
-
-#=======================================================================
-# MEMORY
-# Set the amount of physical memory you want to emulate.
-#
-# GUEST:
-# Set amount of guest physical memory to emulate. The default is 32MB,
-# the maximum amount limited only by physical address space limitations.
-#
-# HOST:
-# Set amount of host memory you want to allocate for guest RAM emulation.
-# It is possible to allocate less memory than you want to emulate in guest
-# system. This will fake guest to see the non-existing memory. Once guest
-# system touches new memory block it will be dynamically taken from the
-# memory pool. You will be warned (by FATAL PANIC) in case guest already
-# used all allocated host memory and wants more.
-#
-#=======================================================================
-#memory: guest=512, host=256
-memory: guest=@BOCHS_GUEST_RAM@, host=@BOCHS_HOST_RAM@
-
-#=======================================================================
-# OPTROMIMAGE[1-4]:
-# You may now load up to 4 optional ROM images. Be sure to use a 
-# read-only area, typically between C8000 and EFFFF. These optional
-# ROM images should not overwrite the rombios (located at
-# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
-# Those ROM images will be initialized by the bios if they contain 
-# the right signature (0x55AA) and a valid checksum.
-# It can also be a convenient way to upload some arbitrary code/data
-# in the simulation, that can be retrieved by the boot loader
-#=======================================================================
-#optromimage1: file=optionalrom.bin, address=0xd0000
-#optromimage2: file=optionalrom.bin, address=0xd1000
-#optromimage3: file=optionalrom.bin, address=0xd2000
-#optromimage4: file=optionalrom.bin, address=0xd3000
-
-#optramimage1: file=/path/file1.img, address=0x0010000
-#optramimage2: file=/path/file2.img, address=0x0020000
-#optramimage3: file=/path/file3.img, address=0x0030000
-#optramimage4: file=/path/file4.img, address=0x0040000
-
-#=======================================================================
-# VGAROMIMAGE
-# You now need to load a VGA ROM BIOS into C0000.
-#=======================================================================
-vgaromimage: file=@BOCHS_VGA_IMAGE@
-#vgaromimage: file=/usr/share/vgabios/vgabios.debug.bin
-
-#=======================================================================
-# VGA:
-# Here you can specify the display extension to be used. With the value
-# 'none' you can use standard VGA with no extension. Other supported
-# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
-#=======================================================================
-#vga: extension=cirrus
-vga: extension=vbe
-
-#=======================================================================
-# FLOPPYA:
-# Point this to pathname of floppy image file or device
-# This should be of a bootable floppy(image/device) if you're
-# booting from 'a' (or 'floppy').
-#
-# You can set the initial status of the media to 'ejected' or 'inserted'.
-#   floppya: 2_88=path, status=ejected    (2.88M 3.5"  media)
-#   floppya: 1_44=path, status=inserted   (1.44M 3.5"  media)
-#   floppya: 1_2=path, status=ejected     (1.2M  5.25" media)
-#   floppya: 720k=path, status=inserted   (720K  3.5"  media)
-#   floppya: 360k=path, status=inserted   (360K  5.25" media)
-#   floppya: 320k=path, status=inserted   (320K  5.25" media)
-#   floppya: 180k=path, status=inserted   (180K  5.25" media)
-#   floppya: 160k=path, status=inserted   (160K  5.25" media)
-#   floppya: image=path, status=inserted  (guess media type from image size)
-#   floppya: type=1_44                    (1.44M 3.5" floppy drive, no media)
-#
-# The path should be the name of a disk image file.  On Unix, you can use a raw
-# device name such as /dev/fd0 on Linux.  On win32 platforms, use drive letters
-# such as a: or b: as the path.  The parameter 'image' works with image files
-# only. In that case the size must match one of the supported types.
-# The parameter 'type' can be used to enable the floppy drive without media
-# and status specified. Usually the drive type is set up based on the media type.
-#=======================================================================
-#floppya: 1_44=/dev/fd0, status=inserted
-#floppya: image=../1.44, status=inserted
-#floppya: 1_44=/dev/fd0H1440, status=inserted
-#floppya: 1_2=../1_2, status=inserted
-#floppya: 1_44=a:, status=inserted
-#floppya: 1_44=a.img, status=inserted
-#floppya: 1_44=/dev/rfd0a, status=inserted
-#floppya: 1_44=bootdisk.vmi, status=inserted
-#floppya: 1_44=oostubs/guarded.vmi, status=inserted
-
-#=======================================================================
-# FLOPPYB:
-# See FLOPPYA above for syntax
-#=======================================================================
-#floppyb: 1_44=b:, status=inserted
-#floppyb: 1_44=b.img, status=inserted
-
-#=======================================================================
-# ATA0, ATA1, ATA2, ATA3
-# ATA controller for hard disks and cdroms
-#
-# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
-# 
-# These options enables up to 4 ata channels. For each channel
-# the two base io addresses and the irq must be specified.
-# 
-# ata0 and ata1 are enabled by default with the values shown below
-#
-# Examples:
-#   ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-#   ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-#   ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-#   ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
-#=======================================================================
-ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
-ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
-ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
-ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
-
-#=======================================================================
-# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
-#
-# This defines the type and characteristics of all attached ata devices:
-#   type=       type of attached device [disk|cdrom] 
-#   mode=       only valid for disks [flat|concat|external|dll|sparse|vmware3]
-#   mode=       only valid for disks [undoable|growing|volatile]
-#   path=       path of the image
-#   cylinders=  only valid for disks
-#   heads=      only valid for disks
-#   spt=        only valid for disks
-#   status=     only valid for cdroms [inserted|ejected]
-#   biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
-#   translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
-#   model=      string returned by identify device command
-#   journal=    optional filename of the redolog for undoable and volatile disks
-#
-# Point this at a hard disk image file, cdrom iso file, or physical cdrom
-# device.  To create a hard disk image, try running bximage.  It will help you
-# choose the size and then suggest a line that works with it.
-#
-# In UNIX it may be possible to use a raw device as a Bochs hard disk, 
-# but WE DON'T RECOMMEND IT.  In Windows there is no easy way.
-#
-# In windows, the drive letter + colon notation should be used for cdroms.
-# Depending on versions of windows and drivers, you may only be able to 
-# access the "first" cdrom in the system.  On MacOSX, use path="drive"
-# to access the physical drive.
-#
-# The path is mandatory for hard disks. Disk geometry autodetection works with
-# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
-# using  heads=16 and spt=63). For other hard disk images and modes the
-# cylinders, heads, and spt are mandatory. In all cases the disk size reported
-# from the image must be exactly C*H*S*512.
-#
-# Default values are:
-#   mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
-#
-# The biosdetect option has currently no effect on the bios
-#
-# Examples:
-#   ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
-#   ata0-slave:  type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
-#   ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
-#   ata1-slave:  type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
-#   ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
-#   ata2-slave:  type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
-#   ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
-#   ata3-slave:  type=cdrom, path=iso.sample, status=inserted
-#=======================================================================
-#ata0-master: type=disk, mode=flat, path="d.sample"
-#ata0-master: type=disk, mode=flat, path="$HOME/.bochs/guest.hd0", cylinders=#cylinders#, heads=16, spt=63
-#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
-ata0-slave: type=cdrom, path=@BOCHS_ISO_IMAGE@, status=inserted
-
-#=======================================================================
-# BOOT:
-# This defines the boot sequence. Now you can specify up to 3 boot drives,
-# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
-# Legacy 'a' and 'c' are also supported.
-# Examples:
-#   boot: floppy
-#   boot: cdrom, disk
-#   boot: network, disk
-#   boot: cdrom, floppy, disk
-#=======================================================================
-#boot: floppy
-#boot: disk
-boot: cdrom
-
-#=======================================================================
-# CLOCK:
-# This defines the parameters of the clock inside Bochs:
-#
-#  SYNC:
-#  This defines the method how to synchronize the Bochs internal time
-#  with realtime. With the value 'none' the Bochs time relies on the IPS
-#  value and no host time synchronization is used. The 'slowdown' method
-#  sacrifices performance to preserve reproducibility while allowing host
-#  time correlation. The 'realtime' method sacrifices reproducibility to
-#  preserve performance and host-time correlation.
-#  It is possible to enable both synchronization methods.
-#
-#  TIME0:
-#  Specifies the start (boot) time of the virtual machine. Use a time 
-#  value as returned by the time(2) system call. If no time0 value is 
-#  set or if time0 equal to 1 (special case) or if time0 equal 'local', 
-#  the simulation will be started at the current local host time.
-#  If time0 equal to 2 (special case) or if time0 equal 'utc',
-#  the simulation will be started at the current utc time.
-#
-# Syntax:
-#  clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
-#
-# Example:
-#   clock: sync=none,     time0=local       # Now (localtime)
-#   clock: sync=slowdown, time0=315529200   # Tue Jan  1 00:00:00 1980
-#   clock: sync=none,     time0=631148400   # Mon Jan  1 00:00:00 1990
-#   clock: sync=realtime, time0=938581955   # Wed Sep 29 07:12:35 1999
-#   clock: sync=realtime, time0=946681200   # Sat Jan  1 00:00:00 2000
-#   clock: sync=none,     time0=1           # Now (localtime)
-#   clock: sync=none,     time0=utc         # Now (utc/gmt)
-# 
-# Default value are sync=none, time0=local
-#=======================================================================
-#clock: sync=realtime, time0=local
-
-
-#=======================================================================
-# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
-# Enables or disables the 0xaa55 signature check on boot floppies
-# Defaults to disabled=0
-# Examples:
-#   floppy_bootsig_check: disabled=0
-#   floppy_bootsig_check: disabled=1
-#=======================================================================
-floppy_bootsig_check: disabled=0
-
-#=======================================================================
-# LOG:
-# Give the path of the log file you'd like Bochs debug and misc. verbiage
-# to be written to. If you don't use this option or set the filename to
-# '-' the output is written to the console. If you really don't want it,
-# make it "/dev/null" (Unix) or "nul" (win32). :^(
-#
-# Examples:
-#   log: ./bochs.out
-#   log: /dev/tty
-#=======================================================================
-#log: /dev/stdout
-#log: /dev/null
-#log: /tmp/bochsout.txt
-log: -
-
-#=======================================================================
-# LOGPREFIX:
-# This handles the format of the string prepended to each log line.
-# You may use those special tokens :
-#   %t : 11 decimal digits timer tick
-#   %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
-#   %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
-#   %d : 5 characters string of the device, between brackets
-# 
-# Default : %t%e%d
-# Examples:
-#   logprefix: %t-%e-@%i-%d
-#   logprefix: %i%e%d
-#=======================================================================
-#logprefix: %t%e%d
-
-#=======================================================================
-# LOG CONTROLS
-#
-# Bochs now has four severity levels for event logging.
-#   panic: cannot proceed.  If you choose to continue after a panic, 
-#          don't be surprised if you get strange behavior or crashes.
-#   error: something went wrong, but it is probably safe to continue the
-#          simulation.
-#   info: interesting or useful messages.
-#   debug: messages useful only when debugging the code.  This may
-#          spit out thousands per second.
-#
-# For events of each level, you can choose to crash, report, or ignore.
-# TODO: allow choice based on the facility: e.g. crash on panics from
-#       everything except the cdrom, and only report those.
-#
-# If you are experiencing many panics, it can be helpful to change
-# the panic action to report instead of fatal.  However, be aware
-# that anything executed after a panic is uncharted territory and can 
-# cause bochs to become unstable.  The panic is a "graceful exit," so
-# if you disable it you may get a spectacular disaster instead.
-#=======================================================================
-#panic: action=fatal
-panic: action=ignore
-error: action=ignore
-info: action=ignore
-debug: action=ignore
-#pass: action=fatal
-
-#=======================================================================
-# DEBUGGER_LOG:
-# Give the path of the log file you'd like Bochs to log debugger output.
-# If you really don't want it, make it /dev/null or '-'. :^(
-#
-# Examples:
-#   debugger_log: ./debugger.out
-#=======================================================================
-#debugger_log: /dev/null
-#debugger_log: debugger.out
-debugger_log: -
-
-#=======================================================================
-# COM1, COM2, COM3, COM4:
-# This defines a serial port (UART type 16550A). In the 'term' you can specify
-# a device to use as com1. This can be a real serial line, or a pty.  To use
-# a pty (under X/Unix), create two windows (xterms, usually).  One of them will
-# run bochs, and the other will act as com1. Find out the tty the com1
-# window using the `tty' command, and use that as the `dev' parameter.
-# Then do `sleep 1000000' in the com1 window to keep the shell from
-# messing with things, and run bochs in the other window.  Serial I/O to
-# com1 (port 0x3f8) will all go to the other window.
-# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
-# client or server. In client mode it connects to an already running server (if
-# connection fails Bochs treats com port as not connected). In server mode it
-# opens socket/named pipe and waits until a client application connects to it
-# before starting simulation. This mode is useful for remote debugging (e.g.
-# with gdb's "target remote host:port" command or windbg's command line option
-# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
-# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
-# communication, pipe modes use duplex byte mode pipes.
-# Other serial modes are 'null' (no input/output), 'file' (output to a file
-# specified as the 'dev' parameter), 'raw' (use the real serial port - under
-# construction for win32), 'mouse' (standard serial mouse - requires
-# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
-#
-# Examples:
-#   com1: enabled=1, mode=null
-#   com1: enabled=1, mode=mouse
-#   com2: enabled=1, mode=file, dev=serial.out
-#   com3: enabled=1, mode=raw, dev=com1
-#   com3: enabled=1, mode=socket-client, dev=localhost:8888
-#   com3: enabled=1, mode=socket-server, dev=localhost:8888
-#   com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
-#   com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
-#=======================================================================
-com1: enabled=1, mode=term, dev=BOCHSTTYNUM
-
-
-#=======================================================================
-# PARPORT1, PARPORT2:
-# This defines a parallel (printer) port. When turned on and an output file is
-# defined the emulated printer port sends characters printed by the guest OS
-# into the output file. On some platforms a device filename can be used to
-# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
-# win32 platforms).
-#
-# Examples:
-#   parport1: enabled=1, file="parport.out"
-#   parport2: enabled=1, file="/dev/lp0"
-#   parport1: enabled=0
-#=======================================================================
-#parport1: enabled=1, file="/dev/lp0"
-
-#=======================================================================
-# SB16:
-# This defines the SB16 sound emulation. It can have several of the
-# following properties.
-# All properties are in the format sb16: property=value
-# midi: The filename is where the midi data is sent. This can be a
-#       device or just a file if you want to record the midi data.
-# midimode:
-#      0=no data
-#      1=output to device (system dependent. midi denotes the device driver)
-#      2=SMF file output, including headers
-#      3=output the midi data stream to the file (no midi headers and no
-#        delta times, just command and data bytes)
-# wave: This is the device/file where wave output is stored
-# wavemode:
-#      0=no data
-#      1=output to device (system dependent. wave denotes the device driver)
-#      2=VOC file output, incl. headers
-#      3=output the raw wave stream to the file
-# log:  The file to write the sb16 emulator messages to.
-# loglevel:
-#      0=no log
-#      1=resource changes, midi program and bank changes
-#      2=severe errors
-#      3=all errors
-#      4=all errors plus all port accesses
-#      5=all errors and port accesses plus a lot of extra info
-# dmatimer:
-#      microseconds per second for a DMA cycle.  Make it smaller to fix
-#      non-continuous sound.  750000 is usually a good value.  This needs a
-#      reasonably correct setting for the IPS parameter of the CPU option.
-#
-# Examples for output devices:
-#   sb16: midimode=1, midi="", wavemode=1, wave=""           # win32
-#   sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
-#=======================================================================
-#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=/dev/stdout, dmatimer=600000
-
-#=======================================================================
-# VGA_UPDATE_INTERVAL:
-# Video memory is scanned for updates and screen updated every so many
-# virtual seconds.  The default is 50000, about 20Hz. Keep in mind that
-# you must tweak the 'cpu: ips=N' directive to be as close to the number
-# of emulated instructions-per-second your workstation can do, for this
-# to be accurate.
-#
-# Examples:
-#   vga_update_interval: 250000
-#=======================================================================
-#vga_update_interval: 50000
-
-# using for Winstone '98 tests
-#vga_update_interval:  100000
-
-#=======================================================================
-# KEYBOARD_SERIAL_DELAY:
-# Approximate time in microseconds that it takes one character to
-# be transfered from the keyboard to controller over the serial path.
-# Examples:
-#   keyboard_serial_delay: 200
-#=======================================================================
-keyboard_serial_delay: 250
-
-#=======================================================================
-# KEYBOARD_PASTE_DELAY:
-# Approximate time in microseconds between attempts to paste
-# characters to the keyboard controller. This leaves time for the
-# guest os to deal with the flow of characters.  The ideal setting
-# depends on how your operating system processes characters.  The
-# default of 100000 usec (.1 seconds) was chosen because it works 
-# consistently in Windows.
-#
-# If your OS is losing characters during a paste, increase the paste
-# delay until it stops losing characters.
-#
-# Examples:
-#   keyboard_paste_delay: 100000
-#=======================================================================
-keyboard_paste_delay: 100000
-
-#=======================================================================
-# MOUSE:
-# The Bochs gui creates mouse "events" unless the 'enabled' option is
-# set to 0. The hardware emulation itself is not disabled by this.
-# Unless you have a particular reason for enabling the mouse by default,
-# it is recommended that you leave it off. You can also toggle the mouse
-# usage at runtime (control key + middle mouse button on X11, SDL,
-# wxWidgets and Win32).
-# With the mouse type option you can select the type of mouse to emulate.
-# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
-# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
-# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
-# or 'usb_ohci' option (requires PCI and USB support).
-#
-# Examples:
-#   mouse: enabled=1
-#   mouse: enabled=1, type=imps2
-#   mouse: enabled=1, type=serial
-#   mouse: enabled=0
-#=======================================================================
-mouse: enabled=0
-
-#=======================================================================
-# private_colormap: Request that the GUI create and use it's own
-#                   non-shared colormap.  This colormap will be used
-#                   when in the bochs window.  If not enabled, a
-#                   shared colormap scheme may be used.  Not implemented
-#                   on all GUI's.
-#
-# Examples:
-#   private_colormap: enabled=1
-#   private_colormap: enabled=0
-#=======================================================================
-private_colormap: enabled=0
-
-#=======================================================================
-# ne2k: NE2000 compatible ethernet adapter
-#
-# Examples:
-# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
-# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
-# PCI slot.
-#
-# mac: The MAC address MUST NOT match the address of any machine on the net.
-# Also, the first byte must be an even number (bit 0 set means a multicast
-# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
-# address.  For the ethertap module, you must use fe:fd:00:00:00:01.  There may
-# be other restrictions too.  To be safe, just use the b0:c4... address.
-#
-# ethdev: The ethdev value is the name of the network interface on your host
-# platform.  On UNIX machines, you can get the name by running ifconfig.  On
-# Windows machines, you must run niclist to get the name of the ethdev.
-# Niclist source code is in misc/niclist.c and it is included in Windows 
-# binary releases.
-#
-# script: The script value is optional, and is the name of a script that 
-# is executed after bochs initialize the network interface. You can use 
-# this script to configure this network interface, or enable masquerading.
-# This is mainly useful for the tun/tap devices that only exist during
-# Bochs execution. The network interface name is supplied to the script
-# as first parameter
-#
-# If you don't want to make connections to any physical networks,
-# you can use the following 'ethmod's to simulate a virtual network.
-#   null: All packets are discarded, but logged to a few files.
-#   arpback: ARP is simulated. Disabled by default.
-#   vde:  Virtual Distributed Ethernet
-#   vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
-#         The virtual host uses 192.168.10.1.
-#         DHCP assigns 192.168.10.2 to the guest.
-#         TFTP uses the ethdev value for the root directory and doesn't
-#         overwrite files.
-#
-#=======================================================================
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
-# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
-# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
-
-#=======================================================================
-# pnic: Bochs/Etherboot pseudo-NIC
-#
-# Example:
-# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
-#
-# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
-# supports the same networking modules as the NE2000 adapter. In addition to
-# this, it must be assigned to a PCI slot.
-#=======================================================================
-#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
-
-#=======================================================================
-# KEYBOARD_MAPPING:
-# This enables a remap of a physical localized keyboard to a 
-# virtualized us keyboard, as the PC architecture expects.
-# If enabled, the keymap file must be specified.
-# 
-# Examples:
-#   keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
-#=======================================================================
-#keyboard_mapping: enabled=0, map=/usr/share/bochs/keymaps/x11-pc-de.map
-
-#=======================================================================
-# KEYBOARD_TYPE:
-# Type of keyboard return by a "identify keyboard" command to the
-# keyboard controler. It must be one of "xt", "at" or "mf".
-# Defaults to "mf". It should be ok for almost everybody. A known
-# exception is french macs, that do have a "at"-like keyboard.
-#
-# Examples:
-#   keyboard_type: mf
-#=======================================================================
-#keyboard_type: mf
-
-#=======================================================================
-# USER_SHORTCUT:
-# This defines the keyboard shortcut to be sent when you press the "user"
-# button in the headerbar. The shortcut string is a combination of maximum
-# 3 key names (listed below) separated with a '-' character.
-# Valid key names:
-# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
-# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
-# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
-#
-# Example:
-#   user_shortcut: keys=ctrl-alt-del
-#=======================================================================
-#user_shortcut: keys=ctrl-alt-del
-
-#=======================================================================
-# I440FXSUPPORT:
-# This option controls the presence of the i440FX PCI chipset. You can
-# also specify the devices connected to PCI slots. Up to 5 slots are
-# available now. These devices are currently supported: ne2k, pcivga,
-# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
-# support you'll have the additional choice 'cirrus'.
-#
-# Example:
-#   i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
-#=======================================================================
-i440fxsupport: enabled=1
-
-#=======================================================================
-# USB_UHCI:
-# This option controls the presence of the USB root hub which is a part
-# of the i440FX PCI chipset. With the portX option you can connect devices
-# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
-# 'hub' and 'printer').
-#
-# If you connect the mouse or tablet to one of the ports, Bochs forwards the
-# mouse movement data to the USB device instead of the selected mouse type.
-# When connecting the keypad to one of the ports, Bochs forwards the input of
-# the numeric keypad to the USB device instead of the PS/2 keyboard.
-#
-# To connect a flat image as an USB hardisk you can use the 'disk' device with
-# the path to the image separated with a colon (see below). To emulate an USB
-# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
-# device name also separated with a colon.
-#
-# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
-# to the root hub. To specify the number of ports you have to add the value
-# separated with a colon. Connecting devices to the external hub ports is only
-# available in the runtime configuration.
-#
-# The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
-# sent to a file specified in bochsrc.txt. The current code appends the PCL
-# code to the file if the file already existed. It would probably be nice to
-# overwrite the file instead, asking user first.
-#=======================================================================
-#usb_uhci: enabled=1
-#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
-#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
-
-#=======================================================================
-# USB_OHCI:
-# This option controls the presence of the USB OHCI host controller with a
-# 2-port hub. The portX option accepts the same device types with the same
-# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
-# a PCI slot.
-#=======================================================================
-#usb_ohci: enabled=1
-#usb_ohci: enabled=1, port1=printer:usbprinter.bin
-
-#=======================================================================
-# CMOSIMAGE:
-# This defines image file that can be loaded into the CMOS RAM at startup.
-# The rtc_init parameter controls whether initialize the RTC with values stored
-# in the image. By default the time0 argument given to the clock option is used.
-# With 'rtc_init=image' the image is the source for the initial time.
-#
-# Example:
-#   cmosimage: file=cmos.img, rtc_init=image
-#=======================================================================
-#cmosimage: file=cmos.img, rtc_init=time0
-
-#=======================================================================
-# MAGIC_BREAK:
-# This enables the "magic breakpoint" feature when using the debugger.
-# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
-# debugger mode. This might be useful for software development.
-#
-# Example:
-#   magic_break: enabled=1
-#=======================================================================
-#magic_break: enabled=1
-
-#=======================================================================
-# PORT_E9_HACK:
-# The 0xE9 port doesn't exists in normal ISA architecture. However, we
-# define a convention here, to display on the console of the system running
-# Bochs anything that is written to it. The idea is to provide debug output
-# very early when writing BIOS or OS code for example, without having to
-# bother with setting up a serial port or etc. Reading from port 0xE9 will
-# will return 0xe9 to let you know if the feature is available.
-# Leave this 0 unless you have a reason to use it.
-#
-# Example:
-#   port_e9_hack: enabled=1
-#=======================================================================
-#port_e9_hack: enabled=1
-
-#=======================================================================
-# DEBUG_SYMBOLS:
-# This loads symbols from the specified file for use in Bochs' internal
-# debugger. Symbols are loaded into global context. This is equivalent to
-# issuing ldsym debugger command at start up.
-#
-# Example:
-#   debug_symbols: file="kernel.sym"
-#   debug_symbols: file="kernel.sym", offset=0x80000000
-#=======================================================================
-#debug_symbols: file="kernel.sym"
-
-#=======================================================================
-# other stuff
-#=======================================================================
-#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
-#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
-#text_snapshot_check: enabled=1
-#print_timestamps: enabled=1
-
-#-------------------------
-# PCI host device mapping
-#-------------------------
-#pcidev: vendor=0x1234, device=0x5678
-
-#=======================================================================
-# GDBSTUB:
-# Enable GDB stub. See user documentation for details.
-# Default value is enabled=0.
-#=======================================================================
-#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
-
-#=======================================================================
-# PLUGIN_CTRL:
-# Controls the presence of optional plugins without a separate option.
-# By default all existing plugins are enabled. These plugins are currently
-# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
-# 'pci_ide', 'speaker' and 'unmapped'.
-#=======================================================================
-#plugin_ctrl: biosdev=0, speaker=0
-
-#=======================================================================
-# USER_PLUGIN:
-# Load user-defined plugin. This option is available only if Bochs is
-# compiled with plugin support. Maximum 8 different plugins are supported.
-# See the example in the Bochs sources how to write a plugin device.
-#=======================================================================
-#user_plugin: name=testdev
diff --git a/03_TMR/emu/frun.sh.in b/03_TMR/emu/frun.sh.in
deleted file mode 100755
index 9a668ab1609015af55750569c6b66a468d7f2d73..0000000000000000000000000000000000000000
--- a/03_TMR/emu/frun.sh.in
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/bash
-# a shell script to run Fail* emulator 
-
-BOCHSRC=@BOCHSRC@-serial
-
-BINARY=@TGT_ELF@
-
-# Kill plot windows on termination
-on_die() {
-  [[ ! -z $PLOT_PID ]] && kill $PLOT_PID
-  [[ ! -z $TRACE_PID ]] && kill $TRACE_PID
-  [[ ! -z $SERIAL_PID ]] && kill $SERIAL_PID
-}
-
-trap 'on_die' TERM
-
-# start a terminal that will telnet to the virtual machine's serial port
-XTERMEXE="@STARTUP_SCRIPTS@/pts.sh"
-(urxvt -geometry 120x80 -title "eCos Serial 0" -name "eCos Serial 0" -e $XTERMEXE )&
-SERIAL_PID=$!
-sleep 0.5
-
-# MACHINE=$(gcc -dumpmachine|cut -f1 -d-)
-# if [[ $MACHINE == "x86_64" ]]; then
-#   BITS="64"
-# else
-#   BITS="32"
-# fi
-
-# start the emulator
-OUTFILE=/tmp/ezs-dac-$USER.txt
-TRACEFILE=/tmp/ezs-trace-$USER.txt
-
-touch $OUTFILE
-touch $TRACEFILE
-
-python $EZS_CMAKE_MODULE_DIR/plot.py $OUTFILE &
-PLOT_PID=$!
-python $EZS_CMAKE_MODULE_DIR/plot.py $TRACEFILE dotrace &
-TRACE_PID=$!
-
-
-FAIL_ELF_PATH=@PROJECT_BINARY_DIR@/@TGT_ELF@ @FAIL_BINARY@ -f $BOCHSRC -q
-
-
-on_die
diff --git a/03_TMR/emu/gdbinit.in b/03_TMR/emu/gdbinit.in
deleted file mode 100644
index db7597ee291d154b865f0e6a03e10ffc2f059056..0000000000000000000000000000000000000000
--- a/03_TMR/emu/gdbinit.in
+++ /dev/null
@@ -1,6 +0,0 @@
-file @ELF@
-set archi i386:x64-32:intel
-target remote localhost:1234
-
-define pe
-  printf "[vc] %u - [B] %u - [D] %u %% [A] %u = %u (rem %u)\n", $arg0.vc, $arg0.B, $arg0.D, $arg0.A, (($arg0.vc - $arg0.B - $arg0.D) / $arg0.A), (($arg0.vc - $arg0.B - $arg0.D) % $arg0.A)
diff --git a/03_TMR/emu/grub.cfg.in b/03_TMR/emu/grub.cfg.in
deleted file mode 100644
index 993e16b48772aa6fb6e690b7e05017b216f3e063..0000000000000000000000000000000000000000
--- a/03_TMR/emu/grub.cfg.in
+++ /dev/null
@@ -1,7 +0,0 @@
-set timeout=0
-set default=0
-
-menuentry "EZS eCos" {
-	multiboot /boot/@TGT_ELF@
-  boot
-}
diff --git a/03_TMR/emu/pts.sh.in b/03_TMR/emu/pts.sh.in
deleted file mode 100755
index dbf1af82d584c1c8a9453e98feb87c09c0706f23..0000000000000000000000000000000000000000
--- a/03_TMR/emu/pts.sh.in
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-# Retrieve tty device name
-TTY=`tty`
-# Setup com1 ouput to this terminal
-cat @BOCHSRC@ | sed -e "s|BOCHSTTYNUM|$TTY|" > @BOCHSRC@-serial
-echo "Terminal on tty: "
-echo $TTY
-sleep 1000000
-
diff --git a/03_TMR/emu/qrun.sh.in b/03_TMR/emu/qrun.sh.in
deleted file mode 100755
index 227de9710e80f305fcebe4d1daf89d1f78e1ca14..0000000000000000000000000000000000000000
--- a/03_TMR/emu/qrun.sh.in
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-# a shell script to run in the Qemu PC emulator an eCos
-# application that's been built with "Grub" startup mode.
-#
-# It runs Qemu with a 
-# single serial port connected to a telnet
-# server socket.
-#
-# An instance of the "xterm" X11 terminal emulator is started with
-# telnet command to connect to that virtual serial port on port
-#
-# When $2 is 'ddd' a debugger window is opened accordingly
-
-PORTFILENAME=/tmp/$USER.portnum
-@STARTUP_SCRIPTS@/findport.pl > $PORTFILENAME
-PORTNUM=`head -n 1 /tmp/$USER.portnum`
-SERIALPORTNUM=`tail -n 1 /tmp/$USER.portnum`
-GDB_BIN=gdb
-GDB_TUI_BIN=gdbtui
-TERMINAL=urxvt
-
-declare -r COMMON_GDB_ARGS="-ex \"target remote :$PORTNUM\" \
-	-ex \"br cyg_user_start\""
-
-BINARY="$1"
-echo $PWD
-
-if [[ "$2" == "ddd" ]] || [[ "$2" == "gdb" ]] || [[ "$2" == "cgdb" ]]; then
-  DEBUG="-S -gdb tcp::$PORTNUM"
-fi
-
-XTERMEXE="telnet localhost $SERIALPORTNUM"
-
-# start a terminal that will telnet to the virtual machine's serial port
-(sleep 0.5; $TERMINAL -geometry 120x80 -title "eCos Serial 0" -name "eCos Serial 0" -e $XTERMEXE )&
-
-sleep 0.5
-# start ddd Debugger
-if [[ "$2" == "ddd" ]]; then
-	(sleep 0.5;	$TERMINAL -e sh -c "ddd $COMMON_GDB_ARGS --gdb --debugger $GDB_BIN   $BINARY" ) &
-fi
-
-# start GDB in xterm terminal
-if [[ "$2" == "gdb" ]]; then
-	(sleep 0.5; $TERMINAL -e sh -c "$GDB_BIN $COMMON_GDB_ARGS $BINARY" ) &
-fi
-
-# start GDBTUI in xterm terminal
-if [[ "$2" == "gdbtui" ]]; then
-	(sleep 0.5; $TERMINAL -e sh -c "$GDB_TUI_BIN $COMMON_GDB_ARGS $BINARY" ) &
-fi
-
-
-# start cgdb in xterm terminal
-if [[ "$2" == "cgdb" ]]; then
-	(sleep 0.5; $TERMINAL -e sh -c "cgdb $COMMON_GDB_ARGS $BINARY" ) &
-fi
-
-
-# MACHINE=$(gcc -dumpmachine|cut -f1 -d-)
-# if [[ $MACHINE == "x86_64" ]]; then
-#   BITS="64"
-# else
-#   BITS="32"
-# fi
-
-qemu-system-i386 -machine pc,accel=tcg \
-  $DEBUG \
-  -kernel $BINARY \
-  -serial telnet:localhost:$SERIALPORTNUM,server,nowait
-
diff --git a/03_TMR/emu/vgabios.bin b/03_TMR/emu/vgabios.bin
deleted file mode 100644
index fa9806b76fca32f6e44cbb4a8e0bec637fb9e8ab..0000000000000000000000000000000000000000
Binary files a/03_TMR/emu/vgabios.bin and /dev/null differ
diff --git a/03_TMR/include/filter.h b/03_TMR/include/filter.h
deleted file mode 100644
index 54410c1e46fb7ff869eb4396dac67464f0b682fc..0000000000000000000000000000000000000000
--- a/03_TMR/include/filter.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CONVOLVE_FILTER_H
-#define CONVOLVE_FILTER_H
-
-#include <stdint.h>
-
-typedef struct convolve_filter_struct {
-	/**
-	 * The Filter parameters;
-	 */
-	int8_t a, b, c;
-
-	/**
-	 * The internal filter state;
-	 */
-	int8_t z1, z2;
-} convolve_filter;
-
-void convolve_filter_init(convolve_filter *f, int8_t a, int8_t b, int8_t c);
-
-int8_t convolve_filter_step(convolve_filter *f, int8_t in);
-
-#endif
diff --git a/03_TMR/include/filter.hpp b/03_TMR/include/filter.hpp
deleted file mode 100644
index a959a6c5d0ff89308fc2063507d3d2b40ff361b3..0000000000000000000000000000000000000000
--- a/03_TMR/include/filter.hpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <int NUM, typename T>
-T abs(T a)
-{
-  return a;
-}
-
diff --git a/03_TMR/include/watchdog.h b/03_TMR/include/watchdog.h
deleted file mode 100644
index 52e2aea3d9bbd7471ad4c578c919da9c220300c0..0000000000000000000000000000000000000000
--- a/03_TMR/include/watchdog.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef WATCHDOG_H
-#define WATCHDOG_H
-
-/**
- * init watchdog
- **/
-void watchdog_init(void);
-
-/**
- * activate watchdog
- **/
-void watchdog(void);
-
-#endif
diff --git a/03_TMR/libEZS/drivers/i386/ezs_adc.c b/03_TMR/libEZS/drivers/i386/ezs_adc.c
deleted file mode 100644
index d5676fc23bc27b99008c87004488dc699ee9c6c3..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/drivers/i386/ezs_adc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-
-/*!
- * @file ezs_adc.c
- * @brief A very simple AD converter, based on Fail*
- * @author Martin Hoffmann 
- * \ingroup adc 
- */
-#include <stdint.h>
-#include "ezs_dac.h"
-
-static volatile uint8_t ezs_adc_in_register;
-/*!
- * \brief Get a value from the ADC
- */
-uint8_t ezs_adc_read(void){
-  return ezs_adc_in_register;
-}
-
-
-
diff --git a/03_TMR/libEZS/drivers/i386/ezs_counter.c b/03_TMR/libEZS/drivers/i386/ezs_counter.c
deleted file mode 100644
index a4ad16c19d17c7b5dd25feeab80759083c03a051..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/drivers/i386/ezs_counter.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#define EZS_HPET_ADDR  0xFED00000
-
-#include "ezs_counter.h"
-#include <stdio.h>
-#include <stdint.h>
-
-typedef struct hpetReg {
-  uint64_t  GCAP_ID;    /* General capabilities */
-  uint64_t  rsv1;
-  uint64_t  GEN_CONF;   /* General configuration */
-  uint64_t  rsv2;
-  uint64_t  GINTR_STA;    /* General Interrupt status */
-  uint64_t  rsv3[25];
-  uint64_t  MAIN_CNT;   /* Main counter */
-  uint64_t  rsv4;
-  uint64_t  TIM0_CONF;    /* Timer 0 config and cap */
-#define     TIM_CONF 0
-#define     Tn_INT_ENB_CNF 4
-  uint64_t  TIM0_COMP;    /* Timer 0 comparator */
-#define     TIM_COMP 8
-  uint64_t  rsv5[2];
-  uint64_t  TIM1_CONF;    /* Timer 1 config and cap */
-  uint64_t  TIM1_COMP;    /* Timer 1 comparator */
-  uint64_t  rsv6[2];
-  uint64_t  TIM2_CONF;    /* Timer 2 config and cap */
-  uint64_t  TIM2_COMP;    /* Timer 2 comparator */
-  uint64_t  rsv7[2];
-} hpetReg;
-typedef struct  hpetReg hpetReg_t;
-
-volatile hpetReg_t *hpet = (volatile hpetReg_t *) EZS_HPET_ADDR;
-
-static uint64_t hpet_divisor = 0;
-static uint32_t hpet_period = 0;
-static bool use_hpet = true;
-
-
-uint32_t ezs_hpet_period_fs(void)
-{
-  return hpet->GCAP_ID >> 32;
-}
-
-bool ezs_hpet_init(void)
-{
-  uint64_t test = hpet->GCAP_ID;
-  uint64_t gcap = hpet->GCAP_ID;
-
-  hpet_period = (gcap & 0xffffffff00000000ULL) >> 32;
-
-  if( hpet_period > 0x5f5e100 ){
-    use_hpet = false;
-    printf("HPET invalid, using Time Stamp Counter\n");
-    return false;
-  } else {
-    use_hpet = true;
-  }
-
-  uint8_t rev_id = gcap & 0xFF;
-  uint8_t num_timers = (gcap >> 8) & 0x1F;
-  uint8_t counter_size = (gcap >> 13) & 0x1;
-  uint16_t vendor_id = (gcap >> 16) & 0xFFFF;
-
-  hpet_divisor = 1000000000ULL / hpet_period; // 10e9 fs == 1 us
-
-  printf("HPET enabled\n");
-  /* enable HPET */
-  hpet->GEN_CONF = 0x1;
-}
-
-uint64_t ezs_hpet_read(void)
-{
-  uint64_t cnt = hpet->MAIN_CNT;
-  //printf("CNT: 0x%llx\n", cnt);
-  return cnt;
-}
-
-uint64_t ezs_hpet_resolution_us(void)
-{
-  return 1;
-}
-
-uint64_t ezs_hpet_read_us(void)
-{
-  return ezs_hpet_read() / hpet_divisor;
-}
-
-/* Timestamp counter implementation */
-
-#ifndef BOCHS_CPU_MHZ
-#error Bochs CPU Speed not defined
-#endif
-
-static inline unsigned long long getticks(void)
-{
-  unsigned int lo, hi;
-  // RDTSC copies contents of 64-bit TSC into EDX:EAX
-  asm volatile("rdtsc" : "=a" (lo), "=d" (hi));
-  return (unsigned long long)hi << 32 | lo;
-}
-
-cyg_uint64 ezs_rdtsc_get_us(void) {
-  return getticks() / (BOCHS_CPU_MHZ);
-}
-
-void ezs_tsc_init(void){
-  printf("Using time stamp counter, cpu running @ %d MHz\n", BOCHS_CPU_MHZ);
-}
-
-static volatile uint32_t FAILBOCHSID = 0;
-
-/* EZS API implementation */
-void ezs_counter_init(void)
-{
-  if (FAILBOCHSID == 42) { // We run in Fail*
-    ezs_tsc_init();
-    use_hpet = false;
-  } else { // not in Fail* try using HPET
-    if ( ! ezs_hpet_init() ) { // HPET not accurate enough fall back to TSC
-      ezs_tsc_init();
-      use_hpet = false;
-    }
-  }
-}
-
-
-cyg_uint64 ezs_counter_get(void)
-{
-  if(use_hpet){
-    return ezs_hpet_read_us();
-  } else {
-    return ezs_rdtsc_get_us();
-  }
-}
-
-cyg_uint64 ezs_counter_resolution_us(void)
-{
-  return ezs_hpet_resolution_us();
-}
-
-cyg_uint64 ezs_counter_resolution_ps(void)
-{
-  return ezs_hpet_resolution_us() * 1000000;
-}
-
diff --git a/03_TMR/libEZS/drivers/i386/ezs_dac.c b/03_TMR/libEZS/drivers/i386/ezs_dac.c
deleted file mode 100644
index f3cff1259c7d56af8b280e9921edff1c388fa345..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/drivers/i386/ezs_dac.c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/*!
- * @file ezs_dac.c
- * @brief A very simple DA converter, based on Fail*
- * @author Martin Hoffmann 
- * \ingroup dac 
- */
-#include <stdint.h>
-#include "ezs_dac.h"
-
-static volatile uint8_t ezs_dac_out_register;
-
-/*!
- * \brief Write a value to the DAC
- */
-void ezs_dac_write(uint8_t value){
-  ezs_dac_out_register = value;
-}
-
diff --git a/03_TMR/libEZS/drivers/i386/ezs_fb.c b/03_TMR/libEZS/drivers/i386/ezs_fb.c
deleted file mode 100644
index 7bbebc3c9afd07fdcd02b0ebff213b406828a3fe..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/drivers/i386/ezs_fb.c
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "ezs_fb.h"
-
-typedef struct {
-	int x;
-	int y;
-} cursor_t;
-
-static cursor_t cursor; 
-void ezs_fb_init(void)
-{
-    CYG_FB_ON(FRAMEBUF);
-    CYG_FB_FILL_BLOCK(FRAMEBUF, 0, 0, FB_WIDTH, FB_HEIGHT, 0);
-	cursor.x = 0;
-	cursor.y = 0;
-}
-
-
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,cyg_ucount16 height,cyg_fb_colour color)
-{
-	CYG_FB_FILL_BLOCK(FRAMEBUF, x, y, width, height, color);
-}
-
-
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color)
-{
-	CYG_FB_WRITE_HLINE(FRAMEBUF, x, y, len, color);
-}
-
-
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color)
-{
-
-	CYG_FB_WRITE_VLINE(FRAMEBUF, x, y, len, color);
-}
-
-void ezs_fb_clear(cyg_fb_colour color)
-{
-	ezs_fb_fill_block(0, 0, FB_WIDTH, FB_HEIGHT, color);
-}
-
-
-void ezs_fb_print_char( int ch, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color){
-	int i, j;
-	for (i = ch*8; i < (ch*8)+8; i++){
-		unsigned char row = g_8x8_font[i];
-		for (j = 0; j < 8; j++){
-			if((row & (0x80 >> j)) != 0){
-				ezs_fb_fill_block(x+j, y+(i-ch*8), 1, 1, color);
-			}
-		}
-	}
-	
-}
-
-void ezs_fb_print_string(char*c,  cyg_fb_colour color){
-	ezs_fb_print_string_cur(c, cursor.x, cursor.y, color);
-}
-
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color){
-	char* ch = c;
-	
-	while(*ch != '\0'){
-		if(*ch == '\n'){
-			ezs_fb_newline();
-		}else{
-			ezs_fb_print_char((*ch)+0, x , y, color);
-			x = x+8;
-			if( x >= FB_WIDTH - 8){
-				y += 8;
-				x = 0;
-			}
-		}
-		ch++;
-	}
-	cursor.x = x;
-	cursor.y = y;
-}
-
-void ezs_fb_newline(void){
-	cursor.x = 0;
-	cursor.y += 8;
-}
-
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y){
-	cursor.x = x;
-	cursor.y = y;
-}
-
diff --git a/03_TMR/libEZS/drivers/i386/ezs_keycodes.c b/03_TMR/libEZS/drivers/i386/ezs_keycodes.c
deleted file mode 100644
index 3b7ff903c45b898b4916e657901b0a146b2a291f..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/drivers/i386/ezs_keycodes.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#include "ezs_keycodes.h"
-#include <assert.h>
-#include <stdio.h>
-
-#define NUMBER_OF_KEYCODES 89
-unsigned char char_of_key[] = {
-  0, 0, '1', '2', '3', '4', '5', '6', '7', '8',
-  '9', '0', 225, 39, '\b', 0, 'q', 'w', 'e', 'r',
-  't', 'z', 'u', 'i', 'o', 'p', 129, '+', '\n', 0,
-  'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 148,
-  132, '^', 0, '#', 'y', 'x', 'c', 'v', 'b', 'n',
-  'm', ',', '.', '-', 0, '*', 0, ' ', 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
-  0, 0, 0, 0, 0, 0, '<', 0, 0 };
-
-unsigned char ezs_get_char_from_keycode(unsigned char code) {
-  assert(code < NUMBER_OF_KEYCODES);
-
-  return char_of_key[code];
-}
diff --git a/03_TMR/libEZS/drivers/i386/ezs_tracer.cpp b/03_TMR/libEZS/drivers/i386/ezs_tracer.cpp
deleted file mode 100644
index 635b57af2cb30dbb956638bfeccf6e607ffabe20..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/drivers/i386/ezs_tracer.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <pkgconf/system.h>
-#include <cyg/io/io.h>
-#include <cyg/error/codes.h>
-#include <stdint.h>
-#include <stdio.h>
-
-//! The magic tracer variable Fail* is listening on.
-volatile unsigned ezs_tracer_register;
-
-//! No Time triggered kernel -> normal event triggered ecos:
-#ifndef SMLPKG_TTKERNEL
-#include <cyg/kernel/kernel.hxx> 	// C Kernel-API
-extern "C" {
-#include <cyg/kernel/kapi.h> 	// C Kernel-API
-}
-class Cyg_Thread;
-
-
-extern "C" void ezs_instrument(Cyg_Thread* current, Cyg_Thread* next) {
-    // Get priority from next thread
-	int prio = next->get_priority();
-	if(prio > 32) prio = 32;
-
-    // Write priority to tracer register
-    ezs_tracer_register = prio;
-}
-
-#else
-#include <sml/ttkernel/task.hxx>
-extern "C" void ezs_instrument(TT_Task* current, TT_Task* next){
-    ezs_tracer_register = next->get_id();
-}
-#endif
-
diff --git a/03_TMR/libEZS/hal/drivers/CMakeLists.txt b/03_TMR/libEZS/hal/drivers/CMakeLists.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/03_TMR/libEZS/hal/drivers/DAC.cpp b/03_TMR/libEZS/hal/drivers/DAC.cpp
deleted file mode 100644
index bf192b3b91aa52a9437e4c732c7124ea4bb4c3b2..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/drivers/DAC.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "DAC.h"
-
-#include "GPTA.h"
-#include "GPIO.h"
-#include "IOLS.h"
-#include "LTC.h"
-#include "OSAbstraction.h"
-
-#define PERIOD 0xfff
-#define MIN 0x058 //minimal value. below dac outputs zero
-#define MAX 0xff0 //maximal value. above dac outputs full duty cycle
-
-void DAC::init(unsigned char port, unsigned char baseLtc)
-{
-    
-    this->ltc = baseLtc;
-    this->port = port;
-    
-    GPIO::setFunction(IO_PORT(port), IO_PIN(port), GPIO_FUNCTION_GPTA0);
-
-    //configure the connects
-    if ( !IOLS<0>::connectLTCInputClock(baseLtc, 0) )
-    {
-        osPanic();    //main clock to the first ltc
-    }
-    if ( !IOLS<0>::connectIoLTC(port, baseLtc+2) )
-    {
-        osPanic();    //wiring the output pin with the last ltc (base+2)
-    }
-    //initializing the counting time for comparing
-    LTC<0>::setupResetTimer(baseLtc);
-
-    //Timer for the main period
-    LTC<0>::setupComparator(baseLtc+1, PERIOD, LTC_SO_BOTH);
-    LTC<0>::setComparatorAction(baseLtc+1, LTC_COMPARATOR_ACTION_SET, LTC_EVENT_LOCAL);
-
-    //Timer for the high-period
-    LTC<0>::setupComparator(baseLtc+2, 0, LTC_SO_BOTH);
-    LTC<0>::setComparatorAction(baseLtc+2, LTC_COMPARATOR_ACTION_RESET, LTC_EVENT_ALL);
-    on();
-}
-
-void DAC::on() {
-    if ( ! state ) {
-        LTC<0>::setX(ltc+2, 0);
-        GPIO::setFunction(IO_PORT(port), IO_PIN(port), GPIO_FUNCTION_GPTA0);
-        state = true;
-    }
-}
-
-void DAC::off()
-{
-    if ( state ) {
-        LTC<0>::setX(ltc+2, 0);
-        GPIO::setFunction(IO_PORT(port), IO_PIN(port), GPIO_FUNCTION_INPUT_PULLDOWN);
-        state = false;
-    }
-}
-
-void DAC::write(uint8_t v)
-{
-  uint16_t value = 0;
-  if(v == 0) {
-    value = 0;
-  }
-  else if (v == UINT8_MAX) {
-    value = PERIOD-1;
-  }
-  else {
-    uint16_t diff = MAX-MIN;
-    float frac = (float)v / (float) UINT8_MAX;
-    uint16_t mapped = frac * (float) diff;
-    value = MIN + mapped;
-  }
-  LTC<0>::setX(ltc+2, value);
-}
diff --git a/03_TMR/libEZS/hal/drivers/DAC.h b/03_TMR/libEZS/hal/drivers/DAC.h
deleted file mode 100644
index ef5f0e622c4db737f617f3a11c6b2138ff2e829f..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/drivers/DAC.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*====================================================================
-* Function: Driver for generell PWM with GPTA
-*
-* Copyright I4Copter Project 2007-2011
-* http://www4.informatik.uni-erlangen.de/Research/I4Copter
-*=====================================================================
-* Author: Peter,Tobias
-*====================================================================
-* $Id: Beeper.h 3494 2011-01-31 17:36:26Z ulbrich $
-*====================================================================*/
-#ifndef DAC_PWM_H_INCLUDED
-#define DAC_PWM_H_INCLUDED
-
-
-#include <stdint.h>
-class DAC {
-
-    private:
-        unsigned char ltc;
-        unsigned char port;
-        bool state;
-
-    public:
-        void init(unsigned char port, unsigned char baseLtc);
-        void on();
-        void off();
-        void write(uint8_t v);
-        bool getState() const { return state; };
-//         void setState(bool state) { state ? on() : off(); }
-};
-
-#endif // BEEPER_H_INCLUDED
diff --git a/03_TMR/libEZS/hal/include/AnalogDevice.h b/03_TMR/libEZS/hal/include/AnalogDevice.h
deleted file mode 100644
index 2040d39b5f369a3b1a526909662a9935a71169fa..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/AnalogDevice.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2012
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file AnalogDevice.h
- * \ingroup hal
- * \brief Abstract interface for an analog device
- * \author Peter Ulbrich <ulbrich@cs.fau.de>
- *
- */
-
-#ifndef ANALOGDEVICE_H_
-#define ANALOGDEVICE_H_
-
-#include <stdint.h>
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "AnalogDeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class AnalogDevice
- * \brief Abstract interface for an analog device (pin)
- * \note This class is just a wrapper for the platform specific implementation (AnalogDeviceImpl)
- */
-class AnalogDevice {
-public:
-	/**
-	 * constructor...
-	 * @param pin
-	 */
-	AnalogDevice(AnalogDeviceImpl::channelnum const pin) :
-			m_impl(pin) {
-	}
-
-	/**
-	 * Initialize implementation object
-	 * \todo Do this explicitly or implicitly in the constructor?
-	 * @return
-	 */
-	bool init() {
-		return m_impl.init();
-	}
-
-	/**
-	 * Trigger the sampling of the analog pin
-	 * \note Even in case of autoscan/DMA operation, this is a necessary step. Otherwise the raw and the millivolt value would differ!
-	 */
-	void sample() {
-		m_value = m_impl.sample();
-		m_millivolt = toMillivolt(m_value);
-	}
-
-	/**
-	 * Convert a analog raw value to millivolt
-	 * \note It is assumed that the raw value has a 12bit resolution (3300mV = 4095raw). The conversion factor is thereof 0.80581!
-	 * @param value A raw value from a 3.3V ADC
-	 * @return Millivolt
-	 */
-	float toMillivolt(const int16_t value) const {
-		return static_cast<float>(value) * 0.80581f;
-	}
-
-	/**
-	 * Get the sampled raw value of the analog pin
-	 * \waring sample() must be called before reading the result!
-	 * @return A raw sample value
-	 */
-	uint16_t getValue() const {
-		return m_value;
-	}
-
-	/**
-	 * Get the sampled value of the analog pin
-	 * \waring sample() must be called before reading the result!
-	 * @return A sample value in millivolt
-	 */
-	float getMillivolt() const {
-		return m_millivolt;
-	}
-
-protected:
-	// Raw value
-		uint16_t m_value;
-
-	// millivolt
-		float m_millivolt;
-
-private:
-//! HW specific implementation object
-	AnalogDeviceImpl m_impl;
-
-};
-// End of class AnalogDevice
-
-/**
- * \class AnalogDeviceBiased
- * \brief Abstract interface for an biased analog device (pin)
- * \note This class is just a wrapper for the platform specific implementation (AnalogDeviceImpl)
- */
-class AnalogDeviceBiased: protected AnalogDevice {
-public:
-
-	/**
-	 * constructor...
-	 * @param pin
-	 * @param calCycles Number of cycles to be used for calibaration
-	 */
-	AnalogDeviceBiased(AnalogDeviceImpl::channelnum const pin,
-			uint16_t calCycles) :
-			AnalogDevice(pin), m_calCycles(calCycles) {
-		reset();
-	}
-
-	/**
-	 * Initialize implementation object
-	 * \todo Do this explicitly or implicitly in the constructor?
-	 * @return
-	 */
-	bool init() {
-		reset();
-		return AnalogDevice::init();
-	}
-
-	void reset() {
-		m_isBiased = false;
-		m_iterator = 0;
-		m_biasSum = 0;
-		m_bias = 0;
-	}
-
-	bool sample() {
-		AnalogDevice::sample();
-
-		if (!m_isBiased) {
-			calibrateBias();
-		} else {
-			m_valueBiased = AnalogDevice::getValue() - m_bias;
-			m_millivoltBiased = AnalogDevice::toMillivolt(m_valueBiased);
-		}
-
-		return m_isBiased;
-	}
-
-	int16_t getValue() const {
-		return m_valueBiased;
-	}
-
-	float getMillivolt() const {
-		return m_millivoltBiased;
-	}
-
-	uint16_t getValue_ub() const {
-		return AnalogDevice::getValue();
-	}
-
-	float getMillivolt_ub() const {
-		return AnalogDevice::getMillivolt();
-	}
-
-	uint16_t getBias() const {
-		return m_bias;
-	}
-
-protected:
-
-private:
-	// Bias calibration data
-	const uint16_t m_calCycles;
-	uint16_t m_iterator;
-	uint32_t m_biasSum;
-	bool m_isBiased;
-
-	// Bias
-	uint16_t m_bias;
-
-	// Biased values
-	int16_t m_valueBiased;
-	float m_millivoltBiased;
-
-	void calibrateBias() {
-		m_iterator++;
-		m_biasSum += AnalogDevice::getValue();
-
-		if (m_iterator == m_calCycles) {
-			m_bias = m_biasSum / m_calCycles;
-			m_isBiased = true;
-		}
-	}
-
-};
-// End of class AnalogDeviceBiased
-
-
-} // End of namespace hal
-
-#endif /* ANALOGDEVICE_H_ */
diff --git a/03_TMR/libEZS/hal/include/Config.h b/03_TMR/libEZS/hal/include/Config.h
deleted file mode 100644
index 883d28aa29a41c5546fceed2f38839ec88297fa7..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/Config.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * SPIConfig.h
- *
- *  Created on: Aug 21, 2012
- *      Author: hoffmann
- */
-
-#ifndef SPICONFIG_H_
-#define SPICONFIG_H_
-
-namespace hal {
-namespace spi {
-
-	enum Mode_t {
-		Master = 1,
-		Slave,
-		NotConfigured,
-	};
-
-	typedef void(*tx_callback)(void*);
-	typedef void(*rx_callback)(void*);
-
-} // spi
-
-namespace digitaldevice {
-
-	enum IRQDIR_t {
-		Falling = 1,
-		Rising,
-		Rising_Falling,
-	};
-
-	enum PINDIR_t {
-		Input = 1,
-		Output,
-	};
-
-	typedef void(*callback)(void*);
-
-} // digitaldevice
-
-namespace dma {
-
-	typedef void(*callback)(void*);
-
-} // dma
-
-} // hal
-
-#endif /* SPICONFIG_H_ */
diff --git a/03_TMR/libEZS/hal/include/DMA.h b/03_TMR/libEZS/hal/include/DMA.h
deleted file mode 100644
index 46428be2b89dc4f18c7bcd5e46bcef98e450a2e8..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/DMA.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2013
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file DMA.h
- * \ingroup hal
- * \brief Abstract interface for a DMA channel
- * \author Florian Lukas <florian.lukas@gmail.com>
- *
- */
-
-#ifndef DMA_H_
-#define DMA_H_
-
-#include <stdint.h>
-#include "Config.h"
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "DMAImpl.h"
-
-namespace hal {
-
-/**
- * \class DMAChannel
- * \brief Abstract interface for a DMA channel
- * \note This class is just a wrapper for the platform specific implementation (DMAChannelImpl)
- */
-class DMAChannel {
-public:
-	typedef DMAChannelImpl::unitnum unitnum;
-	typedef DMAChannelImpl::channelnum channelnum;
-	typedef DMAChannelImpl::move_size move_size;
-
-	/**
-	 * Constructor
-	 * @param channel DMA channel number
-	 */
-	DMAChannel(DMAChannelImpl::unitnum const unit, DMAChannelImpl::channelnum const channel) : m_impl(unit, channel) {}
-
-	/**
-	 * Initialize DMA.
-	 */
-	void init() {
-		m_impl.init();
-	}
-
-	/**
-	 * Set DMA transfer source address and increment mode.
-	 * @param src_addr source address
-	 * @param increment increment source address after each move (0: always read same address)
-	 */
-	void set_source(uint32_t* src_addr, bool increment) {
-		m_impl.set_source(src_addr, increment);
-	}
-
-	/**
-	 * Set DMA transfer destination address and increment mode.
-	 * @param dest_addr destination address
-	 * @param increment increment destination address after each move (0: always write same address)
-	 */
-	void set_destination(uint32_t* dest_addr, bool increment) {
-		m_impl.set_destination(dest_addr, increment);
-	}
-
-	/**
-	 * Set DMA transfer length and move unit.
-	 * @param length transfer length in number of moves
-	 * @param size of one DMA move
-	 */
-	void set_length(uint32_t length, move_size movesize) {
-		m_impl.set_length(length, movesize);
-	}
-
-	/**
-	 * Request start of DMA transaction.
-	 */
-	void start() {
-		m_impl.start();
-	}
-
-	/**
-	 * Check if DMA transfer is done.
-	 */
-	bool done() {
-		return m_impl.done();
-	}
-
-	/**
-	 * Start DMA transaction and BLOCK until finish.
-	 */
-	void start_block() {
-		start();
-		while(!done()) {};
-	}
-
-	/**
-	 * Set IRQ handler to be called (with argument) when DMA transaction is finished
-	 * @param cb call
-	 * @param arg
-	 */
-	void set_irq_handler(hal::dma::callback cb, void* arg) {
-		m_impl.set_irq_handler(cb, arg);
-	}
-
-	/**
-	 * Enable DMA finish interrupt.
-	 */
-	void enable_irq() {
-		m_impl.set_irq(true);
-	}
-
-	/**
-	 * Disable DMA finish interrupt.
-	 */
-	void disable_irq(){
-		m_impl.set_irq(false);
-	}
-
-private:
-	//! HW specific implementation object
-	DMAChannelImpl m_impl;
-}; // End of class DMAChannel
-
-} // End of namespace hal
-
-#endif /* DMA_H_ */
diff --git a/03_TMR/libEZS/hal/include/DigitalDevice.h b/03_TMR/libEZS/hal/include/DigitalDevice.h
deleted file mode 100644
index 385400e5196007285d4283417ed4d5ab72b57719..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/DigitalDevice.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2012
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file DigitalDevice.h
- * \ingroup hal
- * \brief Abstract interface for an digital device (I/O Pin)
- * \author Martin Hoffmann <hoffmanh@cs.fau.de>
- *
- */
-
-#ifndef DIGITALDEVICE_H_
-#define DIGITALDEVICE_H_
-
-#include "Config.h"
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "DigitalDeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class DigitalDevice
- * \brief Abstract interface for an digital device (pin)
- * \note This class is just a wrapper for the platform specific implementation (DigitalDeviceImpl)
- */
-class DigitalDevice {
-public:
-	/**
-	 * constructor...
-	 * @param pin
-	 */
-	DigitalDevice(DigitalDeviceImpl::pin_t const pin, hal::digitaldevice::PINDIR_t dir) :
-			m_impl(pin, dir) {
-	}
-	/**
-	 * constructor...
-	 * @param pin
-	 */
-	DigitalDevice(DigitalDeviceImpl::pin_t const pin) :
-			m_impl(pin, hal::digitaldevice::Output) {
-	}
-
-
-	/**
-	 * Initialize implementation object
-	 */
-	bool init()  {
-		return m_impl.init();
-	}
-
-	/**
-	 * Set the pin to hight
-	 */
-	void set() const {
-		m_impl.set();
-	}
-
-
-	/**
-	 * Set the pin to hight
-	 */
-	void clear() const {
-		m_impl.clear();
-	}
-
-	/**
-	 * Toggle pin
-	 * @return The current pin level
-	 */
-	bool toggle() const {
-		return m_impl.toggle();
-	}
-
-	void set_irq_handler(hal::digitaldevice::callback cb, void* arg)  {
-		m_impl.set_irq_handler(cb, arg);
-	}
-
-	void enable_irq(hal::digitaldevice::IRQDIR_t dir){
-		m_impl.enable_irq(dir);
-	}
-
-
-	void disable_irq(){
-		m_impl.disable_irq();
-	}
-
-	bool isSet(){
-		return m_impl.isSet();
-	}
-private:
-//! HW specific implementation object
-	DigitalDeviceImpl m_impl;
-
-};
-// End of class AnalogDevice
-
-
-} // End of namespace hal
-
-#endif /* DIGITALDEVICE_H_ */
diff --git a/03_TMR/libEZS/hal/include/HalStartup.h b/03_TMR/libEZS/hal/include/HalStartup.h
deleted file mode 100644
index c07f579817e8d3a09db9721f5dcc03c80e9bd7d1..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/HalStartup.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * \defgroup hal General hardware abstraction layer
- */
-
-/**
- * \defgroup tc1796 TC1796 hardware abstraction layer
- * \ingroup hal
- */
-
-/**
- * \defgroup stm32f1 STM32F1xx hardware abstraction layer
- * \ingroup hal
- */
-
-/**
- * \namespace hal
- * \brief Namespace for the hardware abstraction layer
- */
-
-/**
- * \namespace tc1796
- * \brief Namespace for the TriCore TC1796 specific part of the hardware abstraction layer
- */
-
-/**
- * \namespace stm32f1
- * \brief Namespace for the STM32F1 specific part of the hardware abstraction layer
- */
-
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file HalStartup.h
- * \ingroup hal
- * \brief All HAL Startup routines are called here.
- * \author Peter Ulbrich <ulbrich@cs.fau.de>
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-#ifndef HALSTARTUP_H
-#define HALSTARTUP_H
-
-namespace hal {
-
-/**
- * \class HalStartup
- *
- * \brief The abstract interface for the HAL startup
- *
- * This class implements a run method.
- */
-class HalStartup {
-public:
-	/**
-	 * This is the basic run method for proper
-	 * hal initialization
-	 */
-	static void run(void);
-
-protected:
-private:
-};
-
-}
-#endif // HALSTARTUP_H
diff --git a/03_TMR/libEZS/hal/include/I2CDevice.h b/03_TMR/libEZS/hal/include/I2CDevice.h
deleted file mode 100644
index a53cb453542bc61a2a4cf8e05883791749de9784..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/I2CDevice.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file I2C.h
- * \ingroup hal
- * \brief I2C Abstraction Layer
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-#ifndef I2C_H_
-#define I2C_H_
-
-#include <stdint.h>
-
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "I2CDeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class I2C
- * \brief I2C Interface Abstractions
- *
- * This is the basic "abstract" class of the
- * I2C interface (some sort of Pimpl pattern).
- * A I2C::Impl class
- * holds the hardware dependent implementation.
- */
-class I2C {
-
-public:
-	/**
-	 * \brief Interface initialization
-	 *
-	 * This method just calls the init method
-	 * of a global I2C::Impl "Singleton"
-	 */
-	static void init() { i2cDeviceImpl.init(); }
-
-
-	/**
-	 * \brief I2C send routine
-	 * @param address I2C Slave address
-	 * @param data 	  Buffer to read data to send
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	static uint32_t send(uint8_t address, uint8_t* data, uint32_t length) {
-		return i2cDeviceImpl.send(address, data, length);
-	}
-
-	/**
-	 * \brief I2C receive routine
-	 * @param address I2C Slave address
-	 * @param data 	  Buffer to write received data to
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	static uint32_t receive(uint8_t address, uint8_t* data, uint32_t length) {
-		return i2cDeviceImpl.receive(address, data, length);
-	}
-};
-
-} // end of namespace
-
-#endif /* I2C_H_ */
diff --git a/03_TMR/libEZS/hal/include/OSAbstraction.h b/03_TMR/libEZS/hal/include/OSAbstraction.h
deleted file mode 100644
index d8e372937a2cb5dc20fe67761c2ef299308af029..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/OSAbstraction.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef OSABSTRACTION_H
-#define OSABSTRACTION_H
-
-void osPanic(void) {
-  while(1)
-    ;
-}
-
-#endif
\ No newline at end of file
diff --git a/03_TMR/libEZS/hal/include/RS232Device.h b/03_TMR/libEZS/hal/include/RS232Device.h
deleted file mode 100644
index 291271c7e04e8b3d944d17d40e36dafe3eaf2027..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/RS232Device.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file RS232Device.h
- * \ingroup hal
- * \brief RS232 Abstraction Layer
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-
-#ifndef RS232DEVICE_H
-#define RS232DEVICE_H
-
-#include <stdint.h>
-
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "RS232DeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class RS232Device
- * \brief RS232 Interface Abstractions
- */
-class RS232Device {
-	RS232DeviceImpl m_impl;
-public:
-
-	//! A baudrate type..
-	enum Baudrate {
-		BR9600 = 9600,
-		BR38400 = 38400,
-		BR115200 = 115200,
-	} ;
-
-	/**
-	 * Constructor defines the RS232 Device number
-	 * @param device number
-	 */
-	RS232Device(uint8_t const device) : m_impl(device){};
-
-	/**
-	 * Initalizer mainly sets the baudrate
-	 * @param baudrate
-	 * @return true if initalization was successful
-	 */
-	bool init(RS232Device::Baudrate baudrate){ return m_impl.init(baudrate); };
-
-	/**
-	 * \brief Send a byte blocking
-	 * @param b Byte to send
-	 */
-	void send(uint8_t b) { m_impl.send(b); };
-
-	/**
-	 * \brief Send an array of bytes (blocking)
-	 *
-	 * @param buf Array to be sent
-	 * @param length Length of the array
-	 * @return Number of bytes sent
-	 */
-	void send(uint8_t * buf, uint32_t length){ m_impl.send(buf, length); };
-
-
-	/**
-	 * \brief Send byte non-blocking
-	 * \param b Byte to send
-	 * \return \c true if byte is scheduled for sending, else \c false
-	 */
-	bool send_nb(uint8_t b){ return m_impl.send_nb(b); };
-
-	/**
-	 * \brief Send an array of bytes non-blocking
-	 * \param buf Pointer to the array to send
-	 * \param length Length of the array
-	 * \return Number of bytes sent, -1 on error TODO
-	 */
-	bool send_nb(uint8_t const * buf, uint32_t length){ return  m_impl.send_nb(buf, length); };
-
-	/**
-	 * \brief Receive a single byte blocking
-	 * @return The received byte
-	 */
-	uint8_t recv() { return m_impl.recv(); };
-	/**
-	 * \brief Enable RS232 RX Interrupt
-	 */
-
-	void enable_rx_int(){ m_impl.enable_rx_irq(); };
-
-	/**
-	 * \brief Disable RS232 RX Interrupt
-	 */
-	void disable_rx_int(){ m_impl.disable_rx_irq(); };
-
-	/**
-	 * \brief Received byte from within RX IRQ Handler
-	 * @param dest Reference where to store the received byte
-	 * @return true if byte was received, false on error
-	 * \note The hw dependent implementation can reset status bits here.
-	 */
-	bool getc_irq(uint8_t& dest){ return  m_impl.getc_irq(dest); };
-
-	/**
-	 * \brief Setup DMA based reception of a string
-	 *
-	 * @param buffer The destination where to store the bytes
-	 * @param length The number of bytes to receive
-	 * \note The hw dependent implementation can reset status bits here.
-	 * \note This method enables DMA Interrupt after complete reception! (\see dma_rx_completed_irq)
-	 */
-	void config_dma_rx_irq(uint8_t* buffer, uint32_t length){ m_impl.config_dma_rx_irq(buffer, length); };
-
-	/**
-	 * \brief Test and acknowledge dma rx interrupt
-	 * @return \c true if IRQ was an DMA RX complete, \c false on error
-	 * \note The hw dependent implementation can reset status bits here.
-	 * \note This must be called from within the according IRQ Handler
-	 */
-	bool dma_rx_completed_irq()  { return m_impl.rx_dma_handler_completed(); };
-
-
-	/**
-	 * \brief Test and acknowledge dma tx interrupt
-	 * @return \c true if IRQ was an DMA TX complete, \c false on error
-	 * \note The hw dependent implementation can reset status bits here.
-	 * \note This must be called from within the according IRQ Handler
-	 */
-	bool dma_tx_completed_irq()  { return m_impl.tx_dma_handler(); };
-
-
-};
-
-
-}
-
-
-#endif
diff --git a/03_TMR/libEZS/hal/include/SPIBus.h b/03_TMR/libEZS/hal/include/SPIBus.h
deleted file mode 100644
index a3ab5385e987ae7fb9362795e36467cb63cf8fc3..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/hal/include/SPIBus.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file SPI.h
- * \ingroup hal
- * \brief SPI Abstraction Layer
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-#ifndef SPIBUS_H_
-#define SPIBUS_H_
-
-#include <stdint.h>
-#include "DigitalDevice.h"
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "Config.h"
-#include "SPIBusImpl.h"
-
-namespace hal {
-
-/**
- * \class SPIBus
- * \brief SPI Interface Abstractions
- *
- * This is the basic "abstract" class of the
- * SPI interface (some sort of Pimpl pattern).
- * A SPI::Impl class
- * holds the hardware dependent implementation.
- */
-class SPIBus {
-	SPIBusImpl* m_impl;
-public:
-
-	SPIBus(uint8_t const device)  {
-		if(device == 1) m_impl = &spibus1;
-		if(device == 2) m_impl = &spibus2;
-	};
-	/**
-	 * \brief Interface initialization
-	 *
-	 * This method just calls the init method
-	 * of a global SPI::Impl "Singleton"
-	 */
-	void init( hal::spi::Mode_t mode) const { m_impl->init(mode); }
-
-
-	/**
-	 * \brief SPI send routine
-	 * @param address SPI Slave address
-	 * @param data 	  Buffer to read data to send
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	uint32_t master_send(DigitalDevice& slave, uint8_t* txbuf, uint8_t* rxbuf, uint32_t length, hal::spi::tx_callback cb) const {
-		return m_impl->send_nonblocking(slave, txbuf, rxbuf, length, cb);
-	}
-
-
-	/**
-	 * \brief SPI slave receive routine
-	 * @param address Slave Select line to wait for data
-	 * @param data 	  Buffer to input/output data
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	uint32_t slave_receive(DigitalDevice& slave, uint8_t* rxbuf, uint8_t* txbuf, uint32_t length, hal::spi::rx_callback cb) const {
-		return m_impl->receive_nonblocking(slave, rxbuf, txbuf, length, cb);
-	}
-};
-
-} // end of namespace
-
-#endif /* SPIBUS_H_ */
diff --git a/03_TMR/libEZS/include/ezs_adc.h b/03_TMR/libEZS/include/ezs_adc.h
deleted file mode 100644
index 0af07fac905ff6e52d468ff159a650da6000e1ca..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_adc.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef EZS_ADC_H_INCLUDED
-#define EZS_ADC_H_INCLUDED
-
-/*!
- * @file ezs_adc.h
- * @brief A very simple AD converter, based on Fail*
- * @author Martin Hoffmann
- * \ingroup dac
- */
-
-#include <stdint.h>
-
-/*!
- * \brief Get a value from the ADC.
- */
-uint8_t ezs_adc_read(void);
-
-
-#endif // EZS_ADC_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_common.h b/03_TMR/libEZS/include/ezs_common.h
deleted file mode 100644
index c6454a4712398b1afe82ba5d5c4dad4869241926..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_common.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef EZS_COMMON_H_INCLUDED
-#define EZS_COMMON_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann
- * \ingroup common
- */
-
-#include <stdint.h>
-
-
-
-/*!
- * \brief returns the low byte of value
- */
-uint8_t ezs_low_byte(uint16_t value);
-
-/*!
- * \brief returns the high byte of value
- */
-uint8_t ezs_high_byte(uint16_t value);
-
-
-#endif // EZS_COMMON_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_counter.h b/03_TMR/libEZS/include/ezs_counter.h
deleted file mode 100644
index f5b8fc2db34f7eb26e1e1e4661db940900e1f771..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_counter.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef EZS_COUNTER_H_INCLUDED
-#define EZS_COUNTER_H_INCLUDED
-
-/*!
- * @file ezs_counter.h
- * @brief A simple counter interface. Implemented for tricore and for fail*
- * @authors Martin Hoffmann, Tobias Klaus
- * \ingroup counter
- */
-
-#include <cyg/infra/cyg_type.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*!
- * \brief This function has to be called exactly once so ezs_counter_get()
- *        yields meaningfull results.
- */
-void ezs_counter_init(void);
-
-/**
- * \brief Read the current counter value from the hardware counter.
- * @return counter value (for time resolution \see ezs_counter_resolution_us)
- */
-cyg_uint64 ezs_counter_get(void);
-
-/**
- * \brief Returns the current time resolution of the hardware counter.
- * @return tick resolution in microseconds
- * @retval 0 Resolution cannot be expressed in this granularity. Try another one.
- */
-cyg_uint64 ezs_counter_resolution_us(void);
-/**
- * \brief Returns the current time resolution of the hardware counter.
- * @return tick resolution in picoseconds
- * @retval 0 Resolution cannot be expressed in this granularity. Try another one.
- */
-cyg_uint64 ezs_counter_resolution_ps(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // EZS_COUNTER_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_dac.h b/03_TMR/libEZS/include/ezs_dac.h
deleted file mode 100644
index 8ede635aaab9ba8e0af9e9726d8aab012a39313f..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_dac.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef EZS_DAC_H_INCLUDED
-#define EZS_DAC_H_INCLUDED
-
-/*!
- * @file ezs_dac.h
- * @brief A very simple DA converter. Implemented for tricore and for fail*
- * @authors Martin Hoffmann, Tobias Klaus
- * \ingroup dac
- */
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
- * \brief Initializes the DAC. This function has to be called exactly once
- *        so ezs_dac_write() exhibits defined behaviour.
- */
-void ezs_dac_init(void);
-
-/*!
- * \brief Write a value to the DAC.
- */
-void ezs_dac_write(uint8_t value);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // EZS_DAC_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_fb.h b/03_TMR/libEZS/include/ezs_fb.h
deleted file mode 100644
index 2720196f504570ba078d4ad15691c65fd9754b12..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_fb.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*!
- * @file ezs_fb.h
- * @brief eCos framebuffer helper
- * @author Martin Hoffmann
- * \ingroup hw
- * Some helper functions for the eCos framebuffer driver.
- * \note You can still use the eCos functions directly, of course
- *
- */
-
-#ifndef __FB_H_
-#define __FB_H_
-
-#include <cyg/infra/cyg_type.h>
-#include <cyg/infra/diag.h>
-#include <cyg/hal/hal_arch.h>
-#include <cyg/io/framebuf.h>
-#include <string.h>
-#include <stdio.h>
-
-#define FRAMEBUF fb0
-#define FB_WIDTH    CYG_FB_WIDTH(FRAMEBUF)
-#define FB_HEIGHT   CYG_FB_HEIGHT(FRAMEBUF)
-
-#define FB_BLACK 0
-#define FB_WHITE ((16*4)-1)
-
-#define FB_FONT_SMILE 1
-
-/*!
- *  \brief Initialize the framebuffer. Call this function exactly once before
- *  using any of the other framebuffer related functions.
- */
-void ezs_fb_init(void);
-
-/*!
- *  \brief Fill block.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param width Width of the box.
- *  \param height Height of the box.
- *  \param color Color.
- */
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,
-                       cyg_ucount16 height, cyg_fb_colour color);
-
-/*!
- *  \brief Draw horizontal line.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param len length of the line.
- *  \param color Color.
- */
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color);
-
-/*!
- *  \brief Draw vertical line.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param len length of the line.
- *  \param color Color.
- */
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color);
-
-/*!
- *  \brief Clear the framebuffer.
- *  \param color Color.
- */
-void ezs_fb_clear(cyg_fb_colour color);
-
-/*  and so on.. see: http://ecos.sourceware.org/docs-latest/ref/framebuf-drawing.html   */
-
-/*!
- * \brief Prints a character at a given position.
- * \param c Character to print.
- * \param x X-Axis position.
- * \param y Y-Axis position.
- * \param color Color.
- */
-void ezs_fb_print_char(int c, cyg_ucount16 x, cyg_ucount16 y,
-                       cyg_fb_colour color);
-
-/*!
- * \brief Prints a string at a given position.
- * \param c Pointer to null terminated string.
- * \param x X-Axis position.
- * \param y Y-Axis position.
- * \param color Color.
- */
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y,
-                             cyg_fb_colour color);
-
-/*!
- * \brief Prints a string.
- * \param c Pointer to null terminated string.
- * \param color String color.
- */
-void ezs_fb_print_string(char* c, cyg_fb_colour color);
-
-/*!
- * \brief Sets the cursor to a new line.
- */
-void ezs_fb_newline(void);
-
-/*!
- * \brief Sets the cursor to an arbitrary position.
- * \param x X-axis position (0 .. FB_WIDTH)
- * \param y Y-axis position (0 .. FB_HEIGHT)
- */
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y);
-
-#endif
-
diff --git a/03_TMR/libEZS/include/ezs_fft.h b/03_TMR/libEZS/include/ezs_fft.h
deleted file mode 100644
index 39095aa438782ed5913bd4907619f369c7076af3..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_fft.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef EZS_DSP_FFT_H
-#define EZS_DSP_FFT_H
-
-
-/**
- * \defgroup dsp Digital Signal Processing (DSP)
- */
-
-/**
- * \file ezs_fft.h Fast fourier transformation
- * \ingroup dsp
- * \brief calculates the power density spectrum of in[]
- */
-
-
-
-/**
- * \brief Calculates the PDS of a given time domain signal
- * \param in input, time domain signal.
- * \param out output, out[0] to out[length / 2 - 1] contains the power density spectrum of in[] in dB
- * \param length of in[]. Must be a power of 2. The size of out[] must be at least length / 2 - 1.
- *
- * \note Be careful, only rudimentary error checking is performed.
- * \see http://en.wikipedia.org/wiki/Spectral_density
- */
-void ezs_power_density_spectrum(float in[], float out[], int length);
-
-/**
- * \brief Calculates the PDS of a given time domain signal
- * \param in input, time domain signal.
- * \param out output, contains the power density spectrum of in[] in dB.
- * \param length of in[]. Must be a power of 2. The size of out[] must be at least length/2 - 1.
- *
- * This is a convenience function that calls ezs_power_density_spectrum().
- *
- * \note Be careful, only rudimentary error checking is performed.
- * \see http://en.wikipedia.org/wiki/Spectral_density
- */
-void ezs_easy_pds(cyg_uint32 in[], float out[], int length);
-
-
-#endif // EZS_DSP_FFT_H
diff --git a/03_TMR/libEZS/include/ezs_gcd.h b/03_TMR/libEZS/include/ezs_gcd.h
deleted file mode 100644
index 76aabd192ee0c115d170641a36526d488d1a3ded..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_gcd.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef EZS_MATH_GCD_H
-#define EZS_MATH_GCD_H
-/**
- * \defgroup math Math stuff
- */
-
-/**
- * \file ezs_gcd.h
- * \ingroup math
- * \brief Greatest common divisor implementation
- */
-
-
-/**
- * \brief calculates the greatest common divisor of a and b
- */
-int ezs_greatest_common_divisor(int a, int b);
-
-/**
- * \brief calculates the lowest common multiple of a and b
- */
-int ezs_lowest_common_multiple(int a, int b);
-
-#endif // EZS_MATH_GCD_H
diff --git a/03_TMR/libEZS/include/ezs_gpio.h b/03_TMR/libEZS/include/ezs_gpio.h
deleted file mode 100644
index 9532d9745674cbc9b7cfa5def0a77d0ea652eb14..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_gpio.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef EZS_GPIO_H_INCLUDED
-#define EZS_GPIO_H_INCLUDED
-
-#include <stdbool.h>
-/**
- * \file ezs_gpio.h
- * \ingroup hw
- * \brief Access to General Purpose Input/Output pins
- */
-
-/**
- * \brief Call this function exactly once to initialize the GPIO system.
- * As long as this function has not been called, calls to other functions in
- * this module have undefined behaviour.
- */
-void ezs_gpio_init(void);
-
-/**
- * \brief Sets the GPIO pin to high (enabled == true) or low (enabled ==
- * false).
- */
-void ezs_gpio_set(bool /* enabled */);
-
-#endif // EZS_GPIO_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_interpolation.h b/03_TMR/libEZS/include/ezs_interpolation.h
deleted file mode 100644
index c1dab000e947c8cb8ba3d6fab7bf5875d5d738dd..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_interpolation.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef EZS_INTERPOLATION_H
-#define EZS_INTERPOLATION_H
-
-/**
- * \file ezs_interpolation.h
- * \ingroup dsp
- * \brief performs linear resampling of in[] and writes the result to out[]
- * @see http://en.wikipedia.org/wiki/Sample_rate_conversion
- * @see http://en.wikipedia.org/wiki/Linear_interpolation
- */
-void ezs_resample_linear(float in[], size_t in_length, float out[],
-                         size_t out_length);
-#endif // EZS_INTERPOLATION_H
diff --git a/03_TMR/libEZS/include/ezs_io.h b/03_TMR/libEZS/include/ezs_io.h
deleted file mode 100644
index d0935bc23d40821d56911350646d4261bdc70bca..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_io.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef EZS_IO_H_INCLUDED
-#define EZS_IO_H_INCLUDED
-
-#include <cyg/infra/cyg_type.h>
-
-/**
- * \file ezs_io.h
- * \brief Input/Output primitives
- */
-
-/**
- * \brief print value annotated with timestamp. The exact means of printing are
- * subject to the underlying hardware.
- */
-void ezs_print_measurement(cyg_uint32 timestamp, cyg_uint32 value);
-
-#endif // EZS_IO_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_keycodes.h b/03_TMR/libEZS/include/ezs_keycodes.h
deleted file mode 100644
index c9cdf8cdf2eae720d00bc6f40aed210cda01f9c4..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_keycodes.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __KEYCODES_H__
-#define __KEYCODES_H__
-/**
- * @file ezs_keycodes.h
- *
- * @brief Keyboard keycodes.
- * @author Martin Hoffmann
- */
-
-
-/**
- *  Get character from keyboard code.
- */
-unsigned char ezs_get_char_from_keycode(unsigned char code);
-
-#endif
diff --git a/03_TMR/libEZS/include/ezs_outputs.h b/03_TMR/libEZS/include/ezs_outputs.h
deleted file mode 100644
index c2fd3a7cd3c448dfc0cd8768c696bbcea1fafc79..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_outputs.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef EZS_OUTPUTS_H_INCLUDED
-#define EZS_OUTPUTS_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann
- * \ingroup common
- */
-
-#include <stdint.h>
-
-void outputs_init(void);
-
-/*!
- * \brief returns the low byte of value
- */
-void ezs_setOutputA(uint16_t);
-void ezs_setOutputB(uint16_t);
-void ezs_setOutputC(uint16_t);
-
-#endif // EZS_OUTPUTS_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_plot.h b/03_TMR/libEZS/include/ezs_plot.h
deleted file mode 100644
index 4d85004474f29c27703de2f8a514ad854b1f5bd1..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_plot.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef EZS_PLOT_H
-#define EZS_PLOT_H
-#include <cyg/infra/cyg_type.h>
-#include <cyg/io/framebuf.h>
-
-/**
- * \defgroup plot Graph plotting
- */
-
-
-/**
- * \file ezs_plot.h
- * \ingroup plot
- * \brief Helper function to plot a <b>time domain signal</b>
- */
-
-/**
- * \brief Plots a <b>time signal</b> of given length to framebuffer
- *
- * @param data  A pointer of data values
- * @param length The size of the data array
- * @param foreground The foreground color: e.g. FB_WHITE
- * @param background The background color: e.g. FB_BLACK
- */
-void ezs_plot(cyg_uint32 data[], size_t length, cyg_fb_colour foreground,
-              cyg_fb_colour background);
-
-#endif // EZS_PLOT_H
diff --git a/03_TMR/libEZS/include/ezs_plot_pds.h b/03_TMR/libEZS/include/ezs_plot_pds.h
deleted file mode 100644
index 132d3f3467e182f30f19980abb7ef83a6398481b..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_plot_pds.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef EZS_PLOT_PDS_H
-#define EZS_PLOT_PDS_H
-#include "ezs_fb.h"
-
-/**
- * \file ezs_plot_pds.h
- * \ingroup plot
- * \brief plot an previously calculated <b>power density spectrum</b>
- *
- * @param spectrum The caculated pds data
- * @param length The length of the pds array
- * @param foreground The framebuffer foreground color
- * @param background The framebuffer background color
- */
-void ezs_plot_pds(float spectrum[], int length, cyg_fb_colour foreground,
-                  cyg_fb_colour background);
-
-#endif // EZS_PLOT_PDS_H
diff --git a/03_TMR/libEZS/include/ezs_rs232.h b/03_TMR/libEZS/include/ezs_rs232.h
deleted file mode 100644
index fa4008a1fdcf75a77bce04bc28dd9c0301f0e375..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_rs232.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef EZS_RS232_H_INCLUDED
-#define EZS_RS232_H_INCLUDED
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file ezs_rs232.h
- * \ingroup hw
- * \brief Functions for using the RS232 interface.
- */
-
-/**
- * \brief initializes the RS232 interface. Call this function exactly once
- * before using any other function provided by this module.
- */
-void ezs_rs232_init(uint32_t /* baudrate */, uint8_t /* irq */);
-
-/**
- * \brief writes a single byte to the RS232 interface.
- */
-void ezs_rs232_putc(uint8_t /* c */);
-
-/**
- * \brief consumes a single byte from the RS232 interface's input buffer.
- */
-uint8_t ezs_rs232_getc(void);
-
-/**
- * \brief Marks the current RS232 interrupt as handled.
- */
-void ezs_rs232_acknowledge_rx_interrupt(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // EZS_RS232_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_sensors.h b/03_TMR/libEZS/include/ezs_sensors.h
deleted file mode 100644
index 81e171955009caabebb69e5047a35dfe7b9fe22a..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_sensors.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef EZS_SENSORS_H_INCLUDED
-#define EZS_SENSORS_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann
- * \ingroup common
- */
-
-#include <stdint.h>
-
-void sensors_init(void);
-
-/*!
- * \brief returns the low byte of value
- */
-uint16_t ezs_getValueSensorA(void);
-uint16_t ezs_getValueSensorB(void);
-uint16_t ezs_getValueSensorC(void);
-
-#endif // EZS_SENSORS_H_INCLUDED
diff --git a/03_TMR/libEZS/include/ezs_stopwatch.h b/03_TMR/libEZS/include/ezs_stopwatch.h
deleted file mode 100644
index 42fb2472e624604d2c41095c9170560764705ae7..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_stopwatch.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*!
- * @file ezs_stopwatch.h
- * A stopwatch for time measurement and
- * WCET generation.
- *
- * \ingroup hw
- *  @brief EZS time measurement and WCET generation
- *  @author Martin Hoffmann
- */
-
-#ifndef __STOPWATCH_H_
-#define __STOPWATCH_H_
-#include <cyg/infra/cyg_type.h>
-
-/**
- *  Start stop watch.
- *  @param state Pointer to a state variable
- */
-void ezs_watch_start(cyg_uint32* state);
-
-/**
- *  Stop watch and return time in timer's ticks.
- *  @param state Pointer to a state variable
- *  @see ezs_watch_start
- */
-cyg_uint32 ezs_watch_stop(cyg_uint32* state);
-
-/**
- *  Waits actively for WCET simulation.
- *  @param wcet Desired time to wait actively in in ticks.
- *              Beware! Not too small amounts of ticks may be undetectable.
- *              Thus this function may not support small granularities.
- *  @param percentage Maximal percentage of the wcet that might NOT be lost to better simulate real workload. Values above 100 are mapped to 100
- */
-void ezs_lose_time(cyg_uint32 wcet, cyg_uint8 percentage);
-
-
-#endif
-
diff --git a/03_TMR/libEZS/include/ezs_trace.h b/03_TMR/libEZS/include/ezs_trace.h
deleted file mode 100644
index 3c5056c777c357cb3caeedf217e047bd17f93cb4..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_trace.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef EZS_TRACER_H
-#define EZS_TRACER_H
-
-/**
- * \file ezs_trace.h
- * \brief Functions for execution tracing.
- */
-
-/**
- * \brief initializes execution tracing
- */
-int ezs_trace_init(void);
-
-#endif
diff --git a/03_TMR/libEZS/include/ezs_window.h b/03_TMR/libEZS/include/ezs_window.h
deleted file mode 100644
index c70b8e444db20d52e7c3ea9ab34dbf916a6e58af..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/ezs_window.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef EZS_DSP_WINDOW_H
-#define EZS_DSP_WINDOW_H
-
-/**
- * \file ezs_window.h
- * \ingroup dsp
- * \brief Various FFT window implementations
- * \author Florian Franzmann
- * \note only for internal use.
- */
-
-/**
- * \brief This function calculates the weights for a rectangulage window
- * \return always returns 1.0
- */
-float ezs_rect_window(float alpha, int position, int length);
-
-/**
- * \brief This function calculates the weights for a blackman window
- */
-float ezs_blackman_window(float alpha, int position, int length);
-
-/*!
- * \brief This function calculates the weights for a hamming window
- */
-float ezs_hamming_window(float alpha, int position, int length);
-
-#endif // EZS_DSP_WINDOW_H
diff --git a/03_TMR/libEZS/include/fixedpoint.h b/03_TMR/libEZS/include/fixedpoint.h
deleted file mode 100644
index d4bec65deaf0863aaccc291f4524b85323db073c..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/include/fixedpoint.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef FIXEDPOINT_H_INCLUDED
-#define FIXEDPOINT_H_INCLUDED
-
-#include <stdint.h>
-
-int8_t float_to_q(float f);
-
-float q_to_float(int8_t q);
-
-int8_t q_add(int8_t s1, int8_t s2);
-
-int8_t q_sub(int8_t minuend, int8_t subtrahend);
-
-int8_t q_mul(int8_t fac1, int8_t fac2);
-
-int8_t q_div(int8_t divident, int8_t divisor);
-
-#endif // FIXEDPOINT_H_INCLUDED
diff --git a/03_TMR/libEZS/src/ezs_common.c b/03_TMR/libEZS/src/ezs_common.c
deleted file mode 100644
index cb8146982ebf75e04891343cfbf165e07c03cde1..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_common.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "ezs_common.h"
-
-uint8_t ezs_low_byte(uint16_t value) {
-    return (uint8_t) (value & 0xFF);
-}
-
-uint8_t ezs_high_byte(uint16_t value) {
-    return (uint8_t) ((value & 0xFF00) >> 8);
-}
-
diff --git a/03_TMR/libEZS/src/ezs_dac.c b/03_TMR/libEZS/src/ezs_dac.c
deleted file mode 100644
index 2c3295e6137db2464138b02f6ec11c0139e8e235..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_dac.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * @file ezs_dac.c
- * @brief A very simple DA converter, based on Fail*
- * @author Martin Hoffmann
- * \ingroup dac
- */
-#include <stdint.h>
-#include "ezs_dac.h"
-
-static volatile uint8_t ezs_dac_out_register;
-
-/*!
- * \brief Write a value to the DAC
- */
-void ezs_dac_write(uint8_t value) {
-    ezs_dac_out_register = value;
-}
-
-void ezs_dac_init() {
-}
-
diff --git a/03_TMR/libEZS/src/ezs_fb.c b/03_TMR/libEZS/src/ezs_fb.c
deleted file mode 100644
index 1a1493a152436c2f4dc287b2909e7bb1695de497..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_fb.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include "libEZS/include/ezs_fb.h"
-typedef struct {
-    int x;
-    int y;
-} cursor_t;
-
-static cursor_t cursor;
-void ezs_fb_init(void) {
-    CYG_FB_ON(FRAMEBUF);
-    CYG_FB_FILL_BLOCK(FRAMEBUF, 0, 0, FB_WIDTH, FB_HEIGHT, 0);
-    cursor.x = 0;
-    cursor.y = 0;
-}
-
-
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,
-                       cyg_ucount16 height, cyg_fb_colour color) {
-    CYG_FB_FILL_BLOCK(FRAMEBUF, x, y, width, height, color);
-}
-
-
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color) {
-    CYG_FB_WRITE_HLINE(FRAMEBUF, x, y, len, color);
-}
-
-
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color) {
-
-    CYG_FB_WRITE_VLINE(FRAMEBUF, x, y, len, color);
-}
-
-void ezs_fb_clear(cyg_fb_colour color) {
-    ezs_fb_fill_block(0, 0, FB_WIDTH, FB_HEIGHT, color);
-}
-
-
-void ezs_fb_print_char( int ch, cyg_ucount16 x, cyg_ucount16 y,
-                        cyg_fb_colour color) {
-    int i, j;
-
-    for (i = ch * 8; i < (ch * 8) + 8; i++) {
-        unsigned char row = g_8x8_font[i];
-
-        for (j = 0; j < 8; j++) {
-            if ((row & (0x80 >> j)) != 0) {
-                ezs_fb_fill_block(x + j, y + (i - ch * 8), 1, 1, color);
-            }
-        }
-    }
-
-}
-
-void ezs_fb_print_string(char* c,  cyg_fb_colour color) {
-    ezs_fb_print_string_cur(c, cursor.x, cursor.y, color);
-}
-
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y,
-                             cyg_fb_colour color) {
-    char* ch = c;
-
-    while (*ch != '\0') {
-        if (*ch == '\n') {
-            ezs_fb_newline();
-        }
-        else {
-            ezs_fb_print_char((*ch) + 0, x , y, color);
-            x = x + 8;
-
-            if ( x >= FB_WIDTH - 8) {
-                y += 8;
-                x = 0;
-            }
-        }
-
-        ch++;
-    }
-
-    cursor.x = x;
-    cursor.y = y;
-}
-
-void ezs_fb_newline(void) {
-    cursor.x = 0;
-    cursor.y += 8;
-}
-
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y) {
-    cursor.x = x;
-    cursor.y = y;
-}
-
diff --git a/03_TMR/libEZS/src/ezs_fft.c b/03_TMR/libEZS/src/ezs_fft.c
deleted file mode 100644
index c42549e159106096dd9f4568c903b1b16ec341e9..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_fft.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/****************************************************************************
-* rfft(float X[],int N)                                                     *
-*     A real-valued, in-place, split-radix FFT program                      *
-*     Decimation-in-time, cos/sin in second loop                            *
-*     Input: float X[1]...X[N] (NB Fortran style: 1st pt X[1] not X[0]!)    *
-*     Length is N=2**M (i.e. N must be power of 2--no error checking)       *
-*     Output in X[1]...X[N], in order:                                      *
-*           [Re(0), Re(1),..., Re(N/2), Im(N/2-1),..., Im(1)]               *
-*                                                                           *
-* Original Fortran code by Sorensen; published in H.V. Sorensen, D.L. Jones,*
-* M.T. Heideman, C.S. Burrus (1987) Real-valued fast fourier transform      *
-* algorithms.  IEEE Trans on Acoustics, Speech, & Signal Processing, 35,    *
-* 849-863.  Adapted to C by Bill Simpson, 1995  wsimpson@uwinnipeg.ca       *
-****************************************************************************/
-
-#include <math.h>
-#include <assert.h>
-#include <string.h>
-#include <float.h>
-#include "ezs_fft.h"
-#include "ezs_window.h"
-
-#define EZS_ADC_MAXIMUM 255.0f
-
-void rfft(float X[], int N) {
-    assert(log(N) / log(2.0) == floor(log(N) / log(2.0)));
-    int I, I0, I1, I2, I3, I4, I5, I6, I7, I8, IS, ID;
-    int J, K, M, N2, N4, N8;
-    float A, A3, CC1, SS1, CC3, SS3, E, R1, XT;
-    float T1, T2, T3, T4, T5, T6;
-
-    M = (int)(log(N) / log(2.0));           /* N=2^M */
-
-    /* ----Digit reverse counter--------------------------------------------- */
-    J = 1;
-
-    for (I = 1; I < N; I++) {
-        if (I < J) {
-            XT    = X[J];
-            X[J]  = X[I];
-            X[I]  = XT;
-        }
-
-        K = N / 2;
-
-        while (K < J) {
-            J -= K;
-            K /= 2;
-        }
-
-        J += K;
-    }
-
-    /* ----Length two butterflies--------------------------------------------- */
-    IS = 1;
-    ID = 4;
-
-    do {
-        for (I0 = IS; I0 <= N; I0 += ID) {
-            I1    = I0 + 1;
-            R1    = X[I0];
-            X[I0] = R1 + X[I1];
-            X[I1] = R1 - X[I1];
-        }
-
-        IS = 2 * ID - 1;
-        ID = 4 * ID;
-    }
-    while (IS < N);
-
-    /* ----L shaped butterflies----------------------------------------------- */
-    N2 = 2;
-
-    for (K = 2; K <= M; K++) {
-        N2    = N2 * 2;
-        N4    = N2 / 4;
-        N8    = N2 / 8;
-        E     = (float) 6.2831853071719586f / N2;
-        IS    = 0;
-        ID    = N2 * 2;
-
-        do {
-            for (I = IS; I < N; I += ID) {
-                I1 = I + 1;
-                I2 = I1 + N4;
-                I3 = I2 + N4;
-                I4 = I3 + N4;
-                T1 = X[I4] + X[I3];
-                X[I4] = X[I4] - X[I3];
-                X[I3] = X[I1] - T1;
-                X[I1] = X[I1] + T1;
-
-                if (N4 != 1) {
-                    I1 += N8;
-                    I2 += N8;
-                    I3 += N8;
-                    I4 += N8;
-                    T1 = (X[I3] + X[I4]) * .7071067811865475244f;
-                    T2 = (X[I3] - X[I4]) * .7071067811865475244f;
-                    X[I4] = X[I2] - T1;
-                    X[I3] = -X[I2] - T1;
-                    X[I2] = X[I1] - T2;
-                    X[I1] = X[I1] + T2;
-                }
-            }
-
-            IS = 2 * ID - N2;
-            ID = 4 * ID;
-        }
-        while (IS < N);
-
-        A = E;
-
-        for (J = 2; J <= N8; J++) {
-            A3 = 3.0 * A;
-            CC1   = cos(A);
-            SS1   = sin(A);  /*typo A3--really A?*/
-            CC3   = cos(A3); /*typo 3--really A3?*/
-            SS3   = sin(A3);
-            A = (float)J * E;
-            IS = 0;
-            ID = 2 * N2;
-
-            do {
-                for (I = IS; I < N; I += ID) {
-                    I1 = I + J;
-                    I2 = I1 + N4;
-                    I3 = I2 + N4;
-                    I4 = I3 + N4;
-                    I5 = I + N4 - J + 2;
-                    I6 = I5 + N4;
-                    I7 = I6 + N4;
-                    I8 = I7 + N4;
-                    T1 = X[I3] * CC1 + X[I7] * SS1;
-                    T2 = X[I7] * CC1 - X[I3] * SS1;
-                    T3 = X[I4] * CC3 + X[I8] * SS3;
-                    T4 = X[I8] * CC3 - X[I4] * SS3;
-                    T5 = T1 + T3;
-                    T6 = T2 + T4;
-                    T3 = T1 - T3;
-                    T4 = T2 - T4;
-                    T2 = X[I6] + T6;
-                    X[I3] = T6 - X[I6];
-                    X[I8] = T2;
-                    T2    = X[I2] - T3;
-                    X[I7] = -X[I2] - T3;
-                    X[I4] = T2;
-                    T1    = X[I1] + T5;
-                    X[I6] = X[I1] - T5;
-                    X[I1] = T1;
-                    T1    = X[I5] + T4;
-                    X[I5] = X[I5] - T4;
-                    X[I2] = T1;
-                }
-
-                IS = 2 * ID - N2;
-                ID = 4 * ID;
-            }
-            while (IS < N);
-        }
-    }
-
-    return;
-}
-
-float db(float real, float imag) {
-    float square = real * real + imag * imag;
-
-    if (square == 0.0f) {
-        square = FLT_MIN * 10.0f;
-    }
-
-    float ret = 10.0f * log(square) / log(10.0f);
-    return ret;
-}
-
-void ezs_power_density_spectrum(float in[], float out[], int length) {
-    assert(length > 0);
-    assert(log((float) length) / log(2.0f) == floor(log((float) length) / log(
-                2.0f)));
-
-    {
-        int i;
-
-        for (i = 0; i < length; ++i) {
-            out[i] = ezs_blackman_window(0.16f, i, length) * in[i];
-        }
-    }
-    rfft(&out[-1], length);
-    float scale = (float) length / 2.0f;
-    {
-        int i;
-
-        for (i = 0; i < length; ++i) {
-            int second = length - i - 1;
-            assert(second < length);
-            assert(0 <= second);
-            out[i] = db(out[i] / scale, out[length - i - 1] / scale);
-        }
-    }
-}
-
-void ezs_easy_pds(cyg_uint32 in[], float out[], int length) {
-    float in_f[length];
-
-    {
-        int i = 0;
-
-        for (i = 0; i < length; ++i) {
-            in_f[i] = (((float) in[i]) - (EZS_ADC_MAXIMUM / 2.0f)) / EZS_ADC_MAXIMUM;
-        }
-    }
-
-    float tmp[length];
-    ezs_power_density_spectrum(in_f, tmp, length);
-
-    memcpy(out, tmp, (length / 2) * sizeof(float));
-}
-
diff --git a/03_TMR/libEZS/src/ezs_gcd.c b/03_TMR/libEZS/src/ezs_gcd.c
deleted file mode 100644
index 6029589a0b59f1132d439a554d9b2bc6c648770e..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_gcd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "ezs_gcd.h"
-#include <math.h>
-#include <stdlib.h>
-
-int ezs_greatest_common_divisor(int a, int b) {
-    a = abs(a);
-    b = abs(b);
-
-    while (b != 0) {
-        int tmp = b;
-        b = a % b;
-        a = tmp;
-    }
-
-    return a;
-}
-
-int ezs_lowest_common_multiple(int a, int b) {
-    return abs(a * b) / ezs_greatest_common_divisor(a, b);
-}
diff --git a/03_TMR/libEZS/src/ezs_impure_ptr.c b/03_TMR/libEZS/src/ezs_impure_ptr.c
deleted file mode 100644
index 2bcce4eecc67716dddaadc5346b1742b437208c3..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_impure_ptr.c
+++ /dev/null
@@ -1 +0,0 @@
-struct _reent* _impure_ptr = 0;
diff --git a/03_TMR/libEZS/src/ezs_interpolation.c b/03_TMR/libEZS/src/ezs_interpolation.c
deleted file mode 100644
index 7de20d4786641d09c25000b71843c1738fc96c96..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_interpolation.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#include "ezs_gcd.h"
-#include <stddef.h>
-#include <assert.h>
-
-float linear_interpolation(float first, float second, float alpha) {
-    float ret = (1.0f - alpha) * first + alpha * second;
-    printf("%f * %f + %f * %f = %f\n", 1.0f - alpha, first, alpha, second, ret);
-    return ret;
-}
-
-void ezs_resample_linear(float in[], size_t in_length, float out[],
-                         size_t out_length) {
-    size_t lcm = ezs_lowest_common_multiple(in_length, out_length);
-    size_t size = lcm + 1;
-    float tmp[size];
-
-
-    {
-        size_t in_stride = size / (in_length - 1);
-        size_t i = 0;
-
-        for (i = 0; i < in_length - 1; ++i) {
-            size_t j = 0;
-
-            for (j = 0; j < in_stride; ++j) {
-                float alpha = ((float) (j)) / ((float) in_stride - 1);
-
-                size_t first_position = i;
-                size_t second_position = i + 1;
-
-                size_t target_position = i * in_stride + j;
-                assert(target_position < size);
-
-                tmp[target_position] = linear_interpolation(in[first_position],
-                                       in[second_position], alpha);
-            }
-        }
-
-        tmp[size - 1] = in[in_length - 1];
-    }
-
-    {
-        size_t out_stride = lcm / (out_length - 1);
-        int i = 0;
-
-        for (i = 0; i < out_length; ++i) {
-            size_t source_position = i * out_stride;
-            assert(source_position < size);
-
-            out[i] = tmp[source_position];
-        }
-
-        out[out_length - 1] = tmp[size - 1];
-    }
-}
-
-/*
-int main()
-{
-#define IN_LENGTH 512
-#define OUT_LENGTH 320
-	float input[IN_LENGTH];
-	{
-		int i;
-		for (i = 0; i < IN_LENGTH; ++i) {
-			input[i] = i + 1;
-		}
-	}
-	float output[OUT_LENGTH];
-
-	ezs_resample_linear(input, IN_LENGTH, output, OUT_LENGTH);
-	int i;
-	for (i = 0; i < IN_LENGTH; ++i) {
-		printf("%f ", input[i]);
-	}
-	printf("\n");
-	for (i = 0; i < OUT_LENGTH; ++i) {
-		printf("%f ", output[i]);
-	}
-	printf("\n");
-}
-*/
diff --git a/03_TMR/libEZS/src/ezs_io.c b/03_TMR/libEZS/src/ezs_io.c
deleted file mode 100644
index 9adaeb3824721ecde42360535eb22a0ef1d7036d..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_io.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "ezs_io.h"
-
-#include <cyg/infra/diag.h>
-
-#include <string.h>
-#include <stdio.h>
-
-void ezs_print_measurement(cyg_uint32 timestamp, cyg_uint32 value) {
-    const size_t buffer_length = 10   /* first number */
-                                 + 1  /* separator */
-                                 + 10 /* second number */
-                                 + 1  /* newline  */
-                                 + 1  /* terminating null byte  */ ;
-    char buffer[buffer_length];
-    memset(buffer, 0, buffer_length);
-    snprintf(buffer, buffer_length, "%u;%u\n", (unsigned int)timestamp,
-             (unsigned int)value);
-    diag_printf(buffer);
-}
-
diff --git a/03_TMR/libEZS/src/ezs_outputs.c b/03_TMR/libEZS/src/ezs_outputs.c
deleted file mode 100644
index 956e8d9c33a23389fea0bab45de63175342e64b6..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_outputs.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * @file ezs_outputs.c
- * @brief output stubs functions for VEZS
- * @author Tobias Klaus
- * \ingroup common
- */
-
-#include "ezs_outputs.h"
-
-void outputs_init(void) {
-  return;
-}
-
-/*!
- * \brief returns the low byte of value
- */
-static uint16_t valueA = 0;
-static uint16_t valueB = 0;
-static uint16_t valueC = 0;
-
-
-void ezs_setOutputA(uint16_t v) {
-  valueA = v;
-}
-void ezs_setOutputB(uint16_t v) {
-  valueB = v;
-}
-void ezs_setOutputC(uint16_t v) {
-  valueC = v;
-}
-
diff --git a/03_TMR/libEZS/src/ezs_plot.c b/03_TMR/libEZS/src/ezs_plot.c
deleted file mode 100644
index 3032cee14428a84594d7c28aec6007ab6e09b2fe..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_plot.c
+++ /dev/null
@@ -1,147 +0,0 @@
-#include "ezs_plot.h"
-#include "ezs_fb.h"
-#include <stdio.h>
-#include <math.h>
-#include <assert.h>
-
-
-void ezs_plot(cyg_uint32 data[], size_t length, cyg_fb_colour foreground,
-              cyg_fb_colour background) {
-    ezs_fb_clear(background);
-    {
-        size_t i = 0;
-
-        for (i = 1; i < length; ++i) {
-            assert(data[i] < 1024);
-            cyg_ucount16 y = (((int) data[i]) * FB_HEIGHT) / 1024;
-
-            ezs_fb_vline(i, FB_HEIGHT - y, 1, foreground);
-        }
-    }
-}
-
-void ezs_plot_drawCoordSystem(void) {
-    // y-axis
-    ezs_fb_vline(1, 0, FB_HEIGHT, CYG_FB_DEFAULT_PALETTE_BLACK);
-    ezs_fb_hline(0, 1, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-
-    // x-axis
-    ezs_fb_hline(0, FB_HEIGHT - 2, FB_WIDTH, CYG_FB_DEFAULT_PALETTE_BLACK);
-    ezs_fb_vline(FB_WIDTH - 2, FB_HEIGHT - 3, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-}
-
-void ezs_plot_markXaxis(short numberOfMarks) {
-
-    int delta = (FB_WIDTH - 1) / (numberOfMarks + 1);
-    int shift = delta + 1;
-
-    int i;
-
-    for (i = 0; i < numberOfMarks; ++i) {
-        ezs_fb_vline(shift, FB_HEIGHT - 4, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-        shift += delta;
-    }
-}
-
-void ezs_plot_markYaxis(short numberOfMarks) {
-
-    int delta = (FB_HEIGHT - 1) / (numberOfMarks + 1);
-    int shift = FB_HEIGHT - 1 - delta;
-
-    int i;
-
-    for (i = 0; i < numberOfMarks + 1; ++i) {
-        ezs_fb_hline(0, shift, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-        shift -= delta;
-    }
-}
-
-void ezs_plot_drawBarOnCoordSystem(float upperBound, float lowerBound,
-                                 float inputArray[], int sizeOfArray) {
-
-    // Clear FrameBuffer
-    ezs_fb_clear(CYG_FB_DEFAULT_PALETTE_WHITE);
-
-    // Flag for bufferOverflow/Underflow
-    bool overflow;
-    bool underflow;
-
-    // Define max / min Area Y-Axis
-    int maxValueY = FB_HEIGHT - ((FB_HEIGHT - 1) / 11) * 10 - 1; //=21
-    int minValueY = FB_HEIGHT - 1; //=239
-    int area = minValueY - maxValueY; //=218
-
-    // Define half block width
-    int halfBlockWidth = ((FB_WIDTH - 1) / (sizeOfArray + 1)) / 3;
-
-    // Temp variables for scaling
-    assert(upperBound > lowerBound);
-    float scaleTo = upperBound - lowerBound;
-    float offset = 0 - lowerBound;
-    float scaledValue;
-    int scaledValueInt;
-
-    // Bar drawing loop
-    int delta = (FB_WIDTH - 1) / (sizeOfArray + 1);
-    int shift = delta + 1;
-    int i;
-
-    for (i = 0; i < sizeOfArray; ++i) {
-
-        scaledValue = (inputArray[i] + offset) / scaleTo;
-
-        // Overflow check!
-        if (scaledValue > 1.0) {
-            scaledValue = 1.0;
-            overflow = true;
-        }
-        else {
-            overflow = false;
-        }
-
-        // Underflow check!
-        if (scaledValue < 0.0) {
-            scaledValue = 0.0;
-            underflow = true;
-        }
-        else {
-            underflow = false;
-        }
-
-        scaledValueInt = scaledValue * area;
-
-        if (!overflow) {
-            if (!underflow) {
-                ezs_fb_fill_block(shift - halfBlockWidth, minValueY - scaledValueInt,
-                                  halfBlockWidth * 2, scaledValueInt, CYG_FB_DEFAULT_PALETTE_BLUE);
-            }
-            else {
-                ezs_fb_fill_block(shift - halfBlockWidth, minValueY, halfBlockWidth * 2, 2,
-                                  CYG_FB_DEFAULT_PALETTE_YELLOW);
-            }
-        }
-        else {
-            ezs_fb_fill_block(shift - halfBlockWidth, minValueY - scaledValueInt,
-                              halfBlockWidth * 2, scaledValueInt, CYG_FB_DEFAULT_PALETTE_RED);
-        }
-
-        shift += delta;
-    }
-
-    // Draw coord system
-    ezs_plot_drawCoordSystem();
-    ezs_plot_markYaxis(10);
-    ezs_plot_markXaxis(sizeOfArray);
-
-    /*!
-    *  \brief Fill block.
-    *  \param x X-Axis start position.
-    *  \param y Y-Axis start position.
-    *  \param width Width of the box.
-    *  \param height Height of the box.
-    *  \param color Color.
-    */
-//void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,cyg_ucount16 height,cyg_fb_colour color);
-
-
-}
diff --git a/03_TMR/libEZS/src/ezs_plot_pds.c b/03_TMR/libEZS/src/ezs_plot_pds.c
deleted file mode 100644
index 0c88a12fdf39e302750d6c67537d667208ec0d78..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_plot_pds.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "ezs_plot_pds.h"
-
-#include "ezs_fb.h"
-
-#include <cyg/infra/cyg_type.h>
-#include <cyg/io/framebuf.h>
-
-#include <assert.h>
-#include <stddef.h>
-
-static void plot_spectrum(float* spectrum, int length,
-                          cyg_ucount16 widget_x, cyg_ucount16 widget_y,
-                          cyg_ucount16 widget_width, cyg_ucount16 widget_height,
-                          cyg_fb_colour widget_color) {
-    assert(widget_x + widget_width <= FB_WIDTH);
-    assert(widget_y + widget_height <= FB_HEIGHT);
-
-    int bar_width = widget_width / length;
-    int bar_unit = widget_height / 140;
-    {
-        int i;
-
-        for (i = 0; i < length; ++i) {
-            int x = i * bar_width + widget_x;
-            assert(x < widget_x + widget_width);
-            assert(x >= widget_x);
-
-            int width = bar_width;
-            assert(width >= 0);
-
-            int height = bar_unit * (spectrum[i] + 140.0f);
-            assert(height >= 0);
-
-            int y = widget_y + widget_height - height;
-            assert(y <= widget_y + widget_height);
-            assert(y >= widget_y);
-
-
-            ezs_fb_fill_block(x, y, width, height, widget_color);
-        }
-    }
-}
-
-void ezs_plot_pds(float spectrum[], int length, cyg_fb_colour foreground,
-                  cyg_fb_colour background) {
-    assert(length <= FB_WIDTH);
-
-    ezs_fb_clear(background);
-    plot_spectrum(spectrum, length, 0, 0, FB_WIDTH, FB_HEIGHT, foreground);
-}
-
diff --git a/03_TMR/libEZS/src/ezs_sensors.c b/03_TMR/libEZS/src/ezs_sensors.c
deleted file mode 100644
index e06c82e7f708002f48bee0a753cd0477ef5f8c21..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_sensors.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*!
- * @file ezs_sensors.c
- * @brief sensor stubs functions for VEZS
- * @author Tobias Klaus
- * \ingroup common
- */
-
-#include "ezs_sensors.h"
-#include "ezs_counter.h"
-#include <math.h>
-#include <stdlib.h>
-
-void sensors_init(void) {
-  ezs_counter_init();
-  return;
-}
-
-static uint16_t getValue(void) {
-  uint16_t value = 0;
-  const uint16_t noise_max = 10000; //15,3%....
-
-  uint16_t noise = rand() * (uint32_t) noise_max / RAND_MAX;
-
-  uint64_t ps_per_tick = ezs_counter_resolution_ps();
-  float s_per_tick = ps_per_tick /(float) 1e12;
-
-  float pi = 3.14159265358979323846;
-  float freq = 4; //Hz
-  float omega = 2.0 * pi *freq;
-
-  float time = ezs_counter_get() * s_per_tick;
-
-  value = (float) (UINT16_MAX/2) + (float)(UINT16_MAX/2)*sin(omega * time);
-
-  return value + noise;
-}
-
-/*!
- * \brief returns the low byte of value
- */
-uint16_t ezs_getValueSensorA(void) {
-  return getValue();
-}
-uint16_t ezs_getValueSensorB(void) {
-  return getValue();
-}
-uint16_t ezs_getValueSensorC(void) {
-  return getValue();
-}
-
diff --git a/03_TMR/libEZS/src/ezs_stopwatch.c b/03_TMR/libEZS/src/ezs_stopwatch.c
deleted file mode 100644
index 4cc49f040969f85afee799060f83ba1c39d7c1f1..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_stopwatch.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "ezs_stopwatch.h"
-#include "ezs_counter.h"
-#include <stdlib.h>
-
-void ezs_watch_start(cyg_uint32* state) {
-    *state = ezs_counter_get();
-}
-
-cyg_uint32 ezs_watch_stop(cyg_uint32* state) {
-    return  ezs_counter_get() - (*state);
-}
-
-
-void ezs_lose_time(cyg_uint32 wcet, cyg_uint8 percentage) {
-    cyg_uint32 previous_value = ezs_counter_get();
-    cyg_uint8 percent = 0;
-    const cyg_uint32 resolution = 50U;
-    cyg_uint32 temp, diff;
-
-    if (percentage > 0 && percentage <= 100 ) {
-        percent = rand() % percentage;
-    }
-
-    cyg_int32 counter = ( wcet - (wcet * percent) / 100);
-
-    //make sure we always return before the demanded wcet
-    counter = counter - resolution;
-
-    while (counter > 0) {
-        temp = ezs_counter_get();
-        diff = temp - previous_value;
-
-        // if we were not interrupted
-        if (diff < resolution) {
-            counter = counter - diff ;
-        }
-
-        previous_value = temp;
-    }
-}
-
diff --git a/03_TMR/libEZS/src/ezs_tracer.cpp b/03_TMR/libEZS/src/ezs_tracer.cpp
deleted file mode 100644
index 9bff353c36280457ed3e0e0fd3468b40a8a6f728..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_tracer.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <pkgconf/system.h>
-#include <cyg/io/io.h>
-#include <cyg/error/codes.h>
-#include <stdint.h>
-#include <stdio.h>
-
-//! Determine if we are running in FailBochs
-static volatile unsigned FAILBOCHSID;
-static volatile uint8_t ezs_adc_in_register;
-
-//! The magic tracer variable Fail* is listening on.
-volatile unsigned ezs_tracer_register;
-
-extern "C" int ezs_trace_init(){
-    FAILBOCHSID = ezs_adc_in_register;
-	return 0;
-}
-
-//! No Time triggered kernel -> normal event triggered ecos:
-#ifndef SMLPKG_TTKERNEL
-#include <cyg/kernel/kernel.hxx> 	// C Kernel-API
-extern "C" {
-#include <cyg/kernel/kapi.h> 	// C Kernel-API
-}
-class Cyg_Thread;
-
-
-extern "C" void ezs_instrument(Cyg_Thread* current, Cyg_Thread* next) {
-    // Get priority from next thread
-	int prio = next->get_priority();
-	if(prio > 32) prio = 32;
-
-    // Write priority to tracer register
-    ezs_tracer_register = prio;
-}
-
-#else
-#include <sml/ttkernel/task.hxx>
-extern "C" void ezs_instrument(TT_Task* current, TT_Task* next){
-    ezs_tracer_register = next->get_id();
-}
-#endif
-
diff --git a/03_TMR/libEZS/src/ezs_window.c b/03_TMR/libEZS/src/ezs_window.c
deleted file mode 100644
index 1d2c6986b2471571ac78bfb92feb6b07abbecdaf..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/ezs_window.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "ezs_window.h"
-#include <math.h>
-#define M_PI	3.14159265358979323846f	/* pi */
-
-#include <assert.h>
-
-float ezs_rect_window(float alpha, int position, int length) {
-    return 1.0f;
-}
-
-float ezs_blackman_window(float alpha, int position, int length) {
-    assert(length > 0);
-    assert(position >= 0);
-    assert(position < length);
-    assert(alpha >= 0.0f);
-    assert(1.0f >= alpha);
-
-    float a[3] = {(1.0f - alpha) / 2.0f, 0.5f, alpha / 2.0f};
-    return a[0]
-           - a[1] * cos((2.0f * M_PI * ((float) position)) / ((float) (length - 1)))
-           + a[2] * cos((4.0f * M_PI * ((float) position)) / ((float) (length - 1)));
-}
-
-float ezs_hamming_window(float alpha, int position, int length) {
-    assert(length > 0);
-    assert(position >= 0);
-    assert(position < length);
-
-    return 0.54f - 0.46f * cos((2.0f * M_PI * (float) position) / (float) (
-                                   length - 1));
-}
diff --git a/03_TMR/libEZS/src/fixedpoint.c b/03_TMR/libEZS/src/fixedpoint.c
deleted file mode 100644
index fb4d892056af032e22b96d47dc31d0ba4cdc9651..0000000000000000000000000000000000000000
--- a/03_TMR/libEZS/src/fixedpoint.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "fixedpoint.h"
-
-enum {
-  N = 3,
-};
-static const int16_t K = 1 << (N - 1);
-
-int8_t float_to_q(float f)
-{
-  float temp = f * (1 << N);
-  return (int8_t) temp;
-}
-
-float q_to_float(int8_t q)
-{
-  float temp = (float) q;
-  return temp / (1 << N);
-}
-
-int8_t q_add(int8_t s1, int8_t s2)
-{
-  int8_t res = (int8_t) (s1 + s2);
-  return res;
-}
-
-int8_t q_sub(int8_t minuend, int8_t subtrahend)
-{
-  int8_t res = (int8_t) (minuend - subtrahend);
-  return res;
-}
-
-// saturate to range of int8_t
-int8_t sat8(int16_t x)
-{
-  if (x > 0x7F) return 0x7F;
-  else if (x < -0x80) return -0x80;
-  else return (int8_t)x;
-}
-
-int8_t q_mul(int8_t fac1, int8_t fac2)
-{
-  int8_t result;
-  int16_t temp;
-  
-  temp = (int16_t)fac1 * (int16_t)fac2; // result type is operand's type
-  // Rounding; mid values are rounded up
-  temp += K;
-  
-  // Correct by dividing by base and saturate result
-  result = sat8(temp >> N);
-  
-  return result;
-}
-
-int8_t q_div(int8_t dividend, int8_t divisor)
-{
-  int8_t result;
-  int16_t temp;
-  
-  // pre-multiply by the base
-  temp = (int16_t)dividend << N;
-  // Rounding: mid values are rounded up (down for negative values).
-  if ((temp >= 0 && divisor >= 0) || (temp < 0 && divisor < 0))
-    temp += divisor / 2;
-  else
-    temp -= divisor / 2;
-  result = (int8_t)(temp / divisor);
-  
-  return result;
-}
diff --git a/03_TMR/src/app.c b/03_TMR/src/app.c
deleted file mode 100644
index ad7eb85c35892f6b8084baad39d60354f6e68e14..0000000000000000000000000000000000000000
--- a/03_TMR/src/app.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <cyg/hal/hal_arch.h>
-#include <cyg/kernel/kapi.h>
-
-#include <cyg/io/framebuf.h>
-#include <cyg/io/framebufs/i386_fb.h>
-#include <assert.h>
-#include <ezs_fb.h>
-#include <stdio.h>
-
-#include "watchdog.h"
-#include "fixedpoint.h"
-#include <ezs_sensors.h>
-#include <ezs_outputs.h>
-
-#include "filter.h"
-
-#define STACKSIZE (CYGNUM_HAL_STACK_SIZE_MINIMUM+4096)
-
-#define ROUND_PERIOD 10
-
-static cyg_handle_t real_time_counter;
-static cyg_handle_t new_round_alarmhdl;
-static cyg_alarm new_round;
-
-// T1
-static cyg_uint8     sampling_thread_stack[STACKSIZE];
-static cyg_handle_t  sampling_thread_handle;
-static cyg_thread    sampling_thread;
-static const uint8_t sampling_prio=15;
-static void sampling_thread_entry(cyg_addrword_t data)
-{
-  while (1) {
-    /**
-     * TODO: implement sampling
-     */
-
-    cyg_thread_suspend(cyg_thread_self());
-  }
-}
-
-/**
- * TODO: create and implement needed tasks
- **/
-
-static void setup_round__alarmfn(cyg_handle_t alarmH, cyg_addrword_t data)
-{
-  watchdog();
-  /**
-   * TODO: setup this round
-   **/
-  cyg_thread_resume(sampling_thread_handle);
-}
-
-void cyg_user_start(void) {
-  // Initialize framebuffer in graphic mode
-  ezs_fb_init();
-  watchdog_init();
-  sensors_init();
-  outputs_init();
-  cyg_clock_to_counter(cyg_real_time_clock(), &real_time_counter);
-
-  cyg_alarm_create(real_time_counter, setup_round__alarmfn, 0, &new_round_alarmhdl, &new_round);
-  cyg_alarm_initialize(new_round_alarmhdl, 1, ROUND_PERIOD);
-
-  cyg_thread_create(sampling_prio,             /* priority 0-31, 0 represents highest priority */
-                    &sampling_thread_entry,    /* thread entry point */
-                    0,                         /* data for thread_entry */
-                    "sampling thread",         /* thread name (for debugging) */
-                    sampling_thread_stack,     /* stack address */
-                    STACKSIZE,                 /* stack size */
-                    &sampling_thread_handle,   /* thread handle */
-                    &sampling_thread);         /* thread data (internally used by kernel) */
-
-  printf("Starting up the TMR filtering application!\r\n");
-
-  /**
-   * TODO: setup system and globally used data.
-   *
-   * Since a working filter is not really important for this exercise just use 
-   * the filter parameters from exercise 2 for initalization: {1, 2, -1}
-   **/
-
-
-}
diff --git a/03_TMR/src/app_ext.cpp b/03_TMR/src/app_ext.cpp
deleted file mode 100644
index 3c16658f65cf83f2f9a28a849660e5667e0b7919..0000000000000000000000000000000000000000
--- a/03_TMR/src/app_ext.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-extern "C" {
-#include <cyg/hal/hal_arch.h>
-#include <cyg/kernel/kapi.h>
-
-#include <cyg/io/framebuf.h>
-#include <cyg/io/framebufs/i386_fb.h>
-#include <assert.h>
-#include <ezs_fb.h>
-#include <stdio.h>
-
-#include "watchdog.h"
-#include <ezs_sensors.h>
-#include <ezs_outputs.h>
-}
-
-#include "filter.hpp"
-
-#define STACKSIZE (CYGNUM_HAL_STACK_SIZE_MINIMUM+4096)
-
-#define ROUND_PERIOD 10
-
-static cyg_handle_t real_time_counter;
-static cyg_handle_t new_round_alarmhdl;
-static cyg_alarm new_round;
-
-// T1
-static cyg_uint8     sampling_thread_stack[STACKSIZE];
-static cyg_handle_t  sampling_thread_handle;
-static cyg_thread    sampling_thread;
-static const uint8_t sampling_prio=15;
-static void sampling_thread_entry(cyg_addrword_t data)
-{
-  while (1) {
-    /**
-     * TODO: implement sampling
-     */
-
-    cyg_thread_suspend(cyg_thread_self());
-  }
-}
-
-/**
- * TODO: create and implement needed tasks
- **/
-
-static void setup_round__alarmfn(cyg_handle_t alarmH, cyg_addrword_t data)
-{
-  watchdog();
-  /**
-   * TODO: setup this round
-   **/
-  cyg_thread_resume(sampling_thread_handle);
-}
-
-extern "C" void cyg_user_start(void) {
-  // Initialize framebuffer in graphic mode
-  ezs_fb_init();
-  watchdog_init();
-  sensors_init();
-  outputs_init();
-
-  cyg_clock_to_counter(cyg_real_time_clock(), &real_time_counter);
-
-  cyg_alarm_create(real_time_counter, setup_round__alarmfn, 0, &new_round_alarmhdl, &new_round);
-  cyg_alarm_initialize(new_round_alarmhdl, 1, ROUND_PERIOD);
-
-  cyg_thread_create(sampling_prio,             /* priority 0-31, 0 represents highest priority */
-                    &sampling_thread_entry,    /* thread entry point */
-                    0,                         /* data for thread_entry */
-                    "sampling thread",         /* thread name (for debugging) */
-                    sampling_thread_stack,     /* stack address */
-                    STACKSIZE,                 /* stack size */
-                    &sampling_thread_handle,   /* thread handle */
-                    &sampling_thread);         /* thread data (internally used by kernel) */
-
-  printf("Starting up the TMR filtering application!\r\n");
-
-  /**
-   * TODO: setup system and globally used data.
-   **/
-
-}
diff --git a/03_TMR/src/filter.c b/03_TMR/src/filter.c
deleted file mode 100644
index 650c6a097b7c07a9f423044674c2eb9e13248fac..0000000000000000000000000000000000000000
--- a/03_TMR/src/filter.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "filter.h"
-#include "fixedpoint.h"
-
-void convolve_filter_init(convolve_filter *f, int8_t a, int8_t b, int8_t c) {
-  /**
-   * TODO: transfer filter initialization from exercise 2
-   **/
-}
-
-int8_t convolve_filter_step(convolve_filter *f, int8_t in) {
-  /**
-   * TODO: transfer filter step implementation from exercise 2
-   **/
-}
diff --git a/03_TMR/src/watchdog.c b/03_TMR/src/watchdog.c
deleted file mode 100644
index 020428c1ba8001be87080957d1e127b2bb3ea481..0000000000000000000000000000000000000000
--- a/03_TMR/src/watchdog.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "watchdog.h"
-#include "ezs_stopwatch.h"
-
-#include <cyg/hal/hal_arch.h>
-#include <cyg/kernel/kapi.h>
-#include <stdint.h>
-#define STACKSIZE (CYGNUM_HAL_STACK_SIZE_MINIMUM+4096)
-
-//A little helper function.
-static cyg_tick_count_t ms_to_ticks(cyg_uint32 ms) {
-  cyg_resolution_t resolution = cyg_clock_get_resolution(cyg_real_time_clock());
-  const cyg_uint64 delay_ns = ms * 1000000;
-  const cyg_tick_count_t ticks = (delay_ns * resolution.divisor)/resolution.dividend; //ticks
-
-  return ticks;
-}
-
-static cyg_uint8     watchdog_thread_stack[STACKSIZE];
-static cyg_handle_t  watchdog_thread_handle;
-static cyg_thread    watchdog_thread;
-static const uint8_t watchdog_prio=32;
-static void watchdog_entry(cyg_addrword_t data)
-{
-  while (1) {
-    /**
-     * watching dogs for 10ms
-     */
-    ezs_lose_time(ms_to_ticks(10),0);
-    cyg_thread_suspend(cyg_thread_self());
-  }
-}
-
-
-void watchdog_init(){
-  cyg_thread_create(watchdog_prio,             /* priority 0-31, 0 represents highest priority */
-                    &watchdog_entry,           /* thread entry point */
-                    0,                         /* data for thread_entry */
-                    "watchdog thread",         /* thread name (for debugging) */
-                    watchdog_thread_stack,     /* stack address */
-                    STACKSIZE,                 /* stack size */
-                    &watchdog_thread_handle,   /* thread handle */
-                    &watchdog_thread);         /* thread data (internally used by kernel) */
-}
-
-void watchdog(){
-  static uint8_t round = 0;
-  if(! round%10) {
-    cyg_thread_suspend(watchdog_thread_handle);
-  }
-  ++round;
-}
diff --git a/04_EAN/CMakeLists.txt b/04_EAN/CMakeLists.txt
deleted file mode 100644
index 8038dd7d5fb2e56cd7ad1190755ba94a47713f05..0000000000000000000000000000000000000000
--- a/04_EAN/CMakeLists.txt
+++ /dev/null
@@ -1,102 +0,0 @@
-Project(EAN)
-
-cmake_minimum_required(VERSION 2.8)
-
-# use the eCos support coming with CMake
-# without this line CMake doesn't know how to build eCos applications
-# all functions/macros coming from this file start with "ECOS_"
-
-
-set(SCRIPT_DIR "$ENV{ECOS_REPOSITORY}/../tools/scripts")
-set(CMAKE_MODULE_PATH  ${PROJECT_SOURCE_DIR}/cmake ${SCRIPT_DIR}/..)
-
-INCLUDE(UseEcos)
-
-# cmake modules
-INCLUDE(doxygendocu)
-INCLUDE(coloroutput)
-INCLUDE(emu)
-
-# add the ecos/install/include/ directory to the header search path
-ECOS_ADD_INCLUDE_DIRECTORIES()
-ECOS_USE_I386_ELF_TOOLS()
-
-set(COMMON_FLAGS "-ggdb -Os -nostartfiles -nostdlib -ffunction-sections -fdata-sections -fno-builtin -Wall -Wpointer-arith  -Wundef -fdata-sections -Wmissing-prototypes")
-set(CMAKE_C_FLAGS "${COMMON_FLAGS}")
-set(CMAKE_CXX_FLAGS "${COMMON_FLAGS} -fno-rtti -fno-exceptions -fno-unwind-tables -Woverloaded-virtual" )
-
-
-set(BOCHS_CPU_SPEED_MHZ 5)
-# use ADD_DEFINITIONS() to add the definitions (or switches) you like
-add_definitions("-g -DBOCHS_CPU_MHZ=${BOCHS_CPU_SPEED_MHZ}")
-
-set(LIBEZS_DIR "${PROJECT_SOURCE_DIR}/libEZS")
-set(EZS_DRIVERS_DIR "${LIBEZS_DIR}/drivers")
-
-include_directories(
-	${LIBEZS_DIR}/include
-	include
-	)
-
-set(LIBEZS_SOURCES
-	${LIBEZS_DIR}/src/ezs_common.c
-	${LIBEZS_DIR}/src/fixedpoint.c
-	${LIBEZS_DIR}/src/ezs_stopwatch.c
-	${LIBEZS_DIR}/src/ezs_outputs.c
-	)
-
-set(HW_PLATFORM i386)
-
-set(DRIVERS_SOURCES
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_fb.c
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_tracer.cpp
-	${EZS_DRIVERS_DIR}/${HW_PLATFORM}/ezs_counter.c
-  )
-
-set(SRC_DIR src)
-set(BASE_APPLICATION_SOURCES
-     ${SRC_DIR}/app.c
-     ${SRC_DIR}/filter.c
-     ${SRC_DIR}/fail.c
-     ${SRC_DIR}/ezs_sensors.c
-    )
-set(EXT_APPLICATION_SOURCES
-     ${SRC_DIR}/app_ext.c
-     ${SRC_DIR}/filter.c
-     ${SRC_DIR}/fail.c
-     ${SRC_DIR}/ezs_sensors.c
-   )
-
-# this is one of the most important lines
-# here you list all source files of your application
-# you can mix C and C++ files as you like
-# you can also add the header files here, but you don't have to
-# you can use relative or absolute paths as you like
-SET(BASE_SRC_LIST
-  ${BASE_APPLICATION_SOURCES}
-	${LIBEZS_SOURCES}
-	${DRIVERS_SOURCES}
-	)
-SET(EXT_SRC_LIST
-  ${EXT_APPLICATION_SOURCES}
-	${LIBEZS_SOURCES}
-	${DRIVERS_SOURCES}
-	)
-
-set(TGT "ean")
-# this is the most important line:
-# tell CMake that we want to create an executable named "sampleapp"
-# from the files listed in the variable SRC_LIST
-ECOS_ADD_EXECUTABLE(${TGT} ${BASE_SRC_LIST})
-addemu(${TGT})
-addfail(${TGT})
-ECOS_ADD_EXECUTABLE(ext ${EXT_SRC_LIST})
-addemu(ext)
-addfail(ext)
-
-message(STATUS "${BoldGreen}[AUFGABE 4 (EAN)] execute `make run` to execute basic application${ColourReset}")
-message(STATUS "${BoldGreen}[AUFGABE 4 (EAN)] execute `make trace` to trace basic application for FAIL injection${ColourReset}")
-message(STATUS "${BoldGreen}[AUFGABE 4 (EAN)] execute `make inject` to inject bit errors to basic application with FAIL ${ColourReset}")
-message(STATUS "${BoldGreen}[AUFGABE 4 (EAN)] execute `make run_ext` to execute extended application${ColourReset}")
-message(STATUS "${BoldGreen}[AUFGABE 4 (EAN)] execute `make trace_ext` to trace extended application for FAIL injection${ColourReset}")
-message(STATUS "${BoldGreen}[AUFGABE 4 (EAN)] execute `make inject_ext` to inject bit errors to extended application with FAIL ${ColourReset}")
diff --git a/04_EAN/Doxyfile.in b/04_EAN/Doxyfile.in
deleted file mode 100644
index 38caface428145ab3f92324338904eb3b42aa767..0000000000000000000000000000000000000000
--- a/04_EAN/Doxyfile.in
+++ /dev/null
@@ -1,1792 +0,0 @@
-# Doxyfile 1.8.1.2
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = @PROJECT_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          = "Verlässliche Echtzeitsysteme"
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @DOXY_OUTPUT@
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding
-# "class=itcl::class" will allow you to use the command class in the
-# itcl::class meaning.
-
-TCL_SUBST              =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
-# comments according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you
-# can mix doxygen, HTML, and XML commands with Markdown formatting.
-# Disable only in case of backward compatibilities issues.
-
-MARKDOWN_SUPPORT       = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-SYMBOL_CACHE_SIZE      = 0
-
-# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
-# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
-# their name and scope. Since this can be an expensive process and often the
-# same symbol appear multiple times in the code, doxygen keeps a cache of
-# pre-resolved symbols. If the cache is too small doxygen will become slower.
-# If the cache is too large, memory is wasted. The cache size is given by this
-# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-LOOKUP_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal scope will be included in the documentation.
-
-EXTRACT_PACKAGE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
-# feature you need bibtex and perl available in the search path.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = NO
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = NO
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = @CMAKE_SOURCE_DIR@
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE                = @DOXY_IGNORE@
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = YES
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C, C++ and Fortran comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is advised to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# style sheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the style sheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of
-# entries shown in the various tree structured indices initially; the user
-# can expand and collapse entries dynamically later on. Doxygen will expand
-# the tree to such a level that at most the specified number of entries are
-# visible (unless a fully collapsed tree already exceeds this amount).
-# So setting the number of entries 1 will produce a full collapsed tree by
-# default. 0 is a special value representing an infinite number of entries
-# and will result in a full expanded tree by default.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
-# at top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it. Since the tabs have the same information as the
-# navigation tree you can set this option to NO if you already set
-# GENERATE_TREEVIEW to YES.
-
-DISABLE_INDEX          = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-# Since the tree basically has the same information as the tab index you
-# could consider to set DISABLE_INDEX to NO when enabling this option.
-
-GENERATE_TREEVIEW      = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you may also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to
-# the MathJax Content Delivery Network so you can quickly see the result without
-# installing MathJax.
-# However, it is strongly recommended to install a local
-# copy of MathJax from http://www.mathjax.org before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load style sheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. For each
-# tag file the location of the external documentation should be added. The
-# format of a tag file without this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths
-# or URLs. Note that each tag file must have a unique name (where the name does
-# NOT include the path). If a tag file is not located in the directory in which
-# doxygen is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside
-# the class node. If there are many fields or methods and many nodes the
-# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
-# threshold limits the number of items for each type to make the size more
-# managable. Set this to 0 for no limit. Note that the threshold may be
-# exceeded by 50% before the limit is enforced.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/04_EAN/build/.keepdir b/04_EAN/build/.keepdir
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/04_EAN/cmake/Doxyfile.in b/04_EAN/cmake/Doxyfile.in
deleted file mode 100644
index 10846197cadc72ae5dcdb9eb5be67bb48ede64f0..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/Doxyfile.in
+++ /dev/null
@@ -1,1757 +0,0 @@
-# Doxyfile 1.7.5.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = @PROJECT_NAME@
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         = @PROJECT_VERSION@
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          =
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           = 
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @DOXY_OUTPUT@
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        = @CMAKE_SOURCE_DIR@
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE.
-
-CITE_BIB_FILES         =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = @DOXY_INPUT_DIR@
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to directory from which doxygen is run.
-
-EXCLUDE                = @DOXY_IGNORE@
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = YES 
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is adviced to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES       = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the
-# mathjax.org site, so you can quickly see the result without installing
-# MathJax, but it is strongly recommended to install a local copy of MathJax
-# before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = @DOXY_GENERATE_LATEX@
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = @DOXY_USE_GRAPHVIZ@
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = NO
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = YES
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/04_EAN/cmake/UseEcos.cmake b/04_EAN/cmake/UseEcos.cmake
deleted file mode 100644
index 55f9aad36878494910c3936f3e8ebb302a527b00..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/UseEcos.cmake
+++ /dev/null
@@ -1,252 +0,0 @@
-#.rst:
-# UseEcos
-# -------
-#
-# This module defines variables and macros required to build eCos application.
-#
-# This file contains the following macros:
-# ECOS_ADD_INCLUDE_DIRECTORIES() - add the eCos include dirs
-# ECOS_ADD_EXECUTABLE(name source1 ...  sourceN ) - create an eCos
-# executable ECOS_ADJUST_DIRECTORY(VAR source1 ...  sourceN ) - adjusts
-# the path of the source files and puts the result into VAR
-#
-# Macros for selecting the toolchain: ECOS_USE_ARM_ELF_TOOLS() - enable
-# the ARM ELF toolchain for the directory where it is called
-# ECOS_USE_I386_ELF_TOOLS() - enable the i386 ELF toolchain for the
-# directory where it is called ECOS_USE_PPC_EABI_TOOLS() - enable the
-# PowerPC toolchain for the directory where it is called
-#
-# It contains the following variables: ECOS_DEFINITIONS
-# ECOSCONFIG_EXECUTABLE ECOS_CONFIG_FILE - defaults to ecos.ecc, if your
-# eCos configuration file has a different name, adjust this variable for
-# internal use only:
-#
-# ::
-#
-#   ECOS_ADD_TARGET_LIB
-
-#=============================================================================
-# Copyright 2006-2009 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-# first check that ecosconfig is available
-find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig)
-if(NOT ECOSCONFIG_EXECUTABLE)
-   message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.")
-else()
-   message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}")
-endif()
-
-# check that ECOS_REPOSITORY is set correctly
-if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
-   message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db")
-else ()
-   message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}")
-endif ()
-
-# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work
-find_package(Tclsh)
-if (NOT TCL_TCLSH)
-   message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.")
-else ()
-   message(STATUS "tlcsh found: ${TCL_TCLSH}")
-endif ()
-
-#add the globale include-diretories
-#usage: ECOS_ADD_INCLUDE_DIRECTORIES()
-macro(ECOS_ADD_INCLUDE_DIRECTORIES)
-#check for ProjectSources.txt one level higher
-   if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt)
-      include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
-   else ()
-      include_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
-   endif ()
-
-#the ecos include directory
-   include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/)
-
-endmacro()
-
-
-#we want to compile for the xscale processor, in this case the following macro has to be called
-#usage: ECOS_USE_ARM_ELF_TOOLS()
-macro (ECOS_USE_ARM_ELF_TOOLS)
-   set(CMAKE_CXX_COMPILER "arm-elf-c++")
-   set(CMAKE_COMPILER_IS_GNUCXX 1)
-   set(CMAKE_C_COMPILER "arm-elf-gcc")
-   set(CMAKE_AR "arm-elf-ar")
-   set(CMAKE_RANLIB "arm-elf-ranlib")
-#for linking
-   set(ECOS_LD_MCPU "-mcpu=xscale")
-#for compiling
-   add_definitions(-mcpu=xscale -mapcs-frame)
-#for the obj-tools
-   set(ECOS_ARCH_PREFIX "arm-elf-")
-endmacro ()
-
-#usage: ECOS_USE_PPC_EABI_TOOLS()
-macro (ECOS_USE_PPC_EABI_TOOLS)
-   set(CMAKE_CXX_COMPILER "powerpc-eabi-c++")
-   set(CMAKE_COMPILER_IS_GNUCXX 1)
-   set(CMAKE_C_COMPILER "powerpc-eabi-gcc")
-   set(CMAKE_AR "powerpc-eabi-ar")
-   set(CMAKE_RANLIB "powerpc-eabi-ranlib")
-#for linking
-   set(ECOS_LD_MCPU "")
-#for compiling
-   add_definitions()
-#for the obj-tools
-   set(ECOS_ARCH_PREFIX "powerpc-eabi-")
-endmacro ()
-
-#usage: ECOS_USE_I386_ELF_TOOLS()
-macro (ECOS_USE_I386_ELF_TOOLS)
-   set(CMAKE_CXX_COMPILER "i386-elf-c++")
-   set(CMAKE_COMPILER_IS_GNUCXX 1)
-   set(CMAKE_C_COMPILER "i386-elf-gcc")
-   set(CMAKE_AR "i386-elf-ar")
-   set(CMAKE_RANLIB "i386-elf-ranlib")
-#for linking
-   set(ECOS_LD_MCPU "")
-#for compiling
-   add_definitions()
-#for the obj-tools
-   set(ECOS_ARCH_PREFIX "i386-elf-")
-endmacro ()
-
-
-#since the actual sources are located one level upwards
-#a "../" has to be prepended in front of every source file
-#call the following macro to achieve this, the first parameter
-#is the name of the new list of source files with adjusted paths,
-#followed by all source files
-#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs})
-macro(ECOS_ADJUST_DIRECTORY _target_FILES )
-   foreach (_current_FILE ${ARGN})
-      get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
-      if (NOT ${_abs_FILE} STREQUAL ${_current_FILE})
-         get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE)
-      endif ()
-      list(APPEND ${_target_FILES} ${_abs_FILE})
-   endforeach ()
-endmacro()
-
-# the default ecos config file name
-# maybe in future also out-of-source builds may be possible
-set(ECOS_CONFIG_FILE ecos.ecc)
-
-#creates the dependency from all source files on the ecos target.ld,
-#adds the command for compiling ecos
-macro(ECOS_ADD_TARGET_LIB)
-  if(NOT TARGET ecos)
-# when building out-of-source, create the ecos/ subdir
-      if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos)
-          file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos)
-      endif()
-  
-#sources depend on target.ld
-     set_source_files_properties(
-        ${ARGN}
-        PROPERTIES
-        OBJECT_DEPENDS
-        ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
-     )
-  
-     add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
-        COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\"
-        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
-     )
-  
-     add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
-        COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\"
-        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE}
-     )
-  
-     add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS  ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile )
- endif()
-endmacro()
-
-# get the directory of the current file, used later on in the file
-get_filename_component( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
-
-#macro for creating an executable ecos application
-#the first parameter is the name of the executable,
-#the second is the list of all source files (where the path
-#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY()
-#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS})
-macro(ECOS_ADD_EXECUTABLE _exe_NAME )
-   #definitions, valid for all ecos projects
-   #the optimization and "-g" for debugging has to be enabled
-   #in the project-specific CMakeLists.txt
-   add_definitions(-D__ECOS__=1 -D__ECOS=1)
-   set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin)
-
-#the executable depends on ecos target.ld
-   ECOS_ADD_TARGET_LIB(${ARGN})
-
-# when using nmake makefiles, the custom buildtype supresses the default cl.exe flags
-# and the rules for creating objects are adjusted for gcc
-   set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD)
-   set(CMAKE_C_COMPILE_OBJECT     "<CMAKE_C_COMPILER>   <FLAGS> -o <OBJECT> -c <SOURCE>")
-   set(CMAKE_CXX_COMPILE_OBJECT   "<CMAKE_CXX_COMPILER> <FLAGS> -o <OBJECT> -c <SOURCE>")
-# special link commands for ecos-executables
-   set(CMAKE_CXX_LINK_EXECUTABLE  "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS>  -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib  -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
-   set(CMAKE_C_LINK_EXECUTABLE    "<CMAKE_C_COMPILER>   <CMAKE_C_LINK_FLAGS>   <OBJECTS>  -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib  -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
-# some strict compiler flags
-   set (CMAKE_C_FLAGS "-Wstrict-prototypes")
-   set (CMAKE_CXX_FLAGS "-Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions")
-
-   add_executable(${_exe_NAME} ${ARGN})
-   set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf")
-
-#create a binary file
-   add_custom_command(
-      TARGET ${_exe_NAME}
-      POST_BUILD
-      COMMAND ${ECOS_ARCH_PREFIX}objcopy
-      ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin
-   )
-
-#and an srec file
-   add_custom_command(
-      TARGET ${_exe_NAME}
-      POST_BUILD
-      COMMAND ${ECOS_ARCH_PREFIX}objcopy
-      ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec
-   )
-
-#add the created files to the clean-files
-   set_directory_properties(
-      PROPERTIES
-       ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec;${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst;"
-   )
-   
-   if(NOT TARGET ecosclean)
-      add_custom_target(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake  )
-   endif()
-   if(NOT TARGET normalclean)
-      add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-      add_dependencies (ecosclean normalclean)
-   endif()
-
-
-
-   add_custom_target( listing_${_exe_NAME}
-      COMMAND echo -e   \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
-      COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst )
-
-endmacro()
-
diff --git a/04_EAN/cmake/cccc.cmake b/04_EAN/cmake/cccc.cmake
deleted file mode 100644
index ea0af18350624a979a3e278d351094fedc57278e..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/cccc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-find_program(CCCC_EXE "cccc")
-
-if(CCCC_EXE)
-    
-    message(STATUS "[CCCC] at ${CCCC_EXE}")
-    add_custom_target(cccc)
-
-    add_custom_command(TARGET cccc POST_BUILD
-        COMMAND ${CCCC_EXE} 
-    )
-else()
-    message(FATAL_ERROR "[CCCC] Could not find cccc executable")
-endif()
diff --git a/04_EAN/cmake/coloroutput.cmake b/04_EAN/cmake/coloroutput.cmake
deleted file mode 100644
index 1280d32bd454884daeef7e6a35e446a43a8b9236..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/coloroutput.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-if(NOT WIN32)
-  string(ASCII 27 Esc)
-  set(ColourReset "${Esc}[m")
-  set(ColourBold  "${Esc}[1m")
-  set(Red         "${Esc}[31m")
-  set(Green       "${Esc}[32m")
-  set(Yellow      "${Esc}[33m")
-  set(Blue        "${Esc}[34m")
-  set(Magenta     "${Esc}[35m")
-  set(Cyan        "${Esc}[36m")
-  set(White       "${Esc}[37m")
-  set(BoldRed     "${Esc}[1;31m")
-  set(BoldGreen   "${Esc}[1;32m")
-  set(BoldYellow  "${Esc}[1;33m")
-  set(BoldBlue    "${Esc}[1;34m")
-  set(BoldMagenta "${Esc}[1;35m")
-  set(BoldCyan    "${Esc}[1;36m")
-  set(BoldWhite   "${Esc}[1;37m")
-endif()
-
diff --git a/04_EAN/cmake/compilerwarnings.cmake b/04_EAN/cmake/compilerwarnings.cmake
deleted file mode 100644
index e89c8c3b080d6d7350836a74ed6ae7a04427fd05..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/compilerwarnings.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Werror" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wall" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wextra" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -pedantic" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wcast-align" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wconversion" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-nonliteral" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wformat-security" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Winit-self" )
-
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-  message("-- gcc detected")
-  if(CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.0.0")
-    message("-- gcc >= 4.0.0 detected")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=pointer-to-int-cast" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=cast-qual" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=float-equal" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unknown-pragmas")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=write-strings" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=switch-default" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=switch-enum" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-function")
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-macros" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-variable" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-parameter" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=shadow" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=missing-noreturn" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=packed" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unreachable-code" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-error=unused-but-set-variable" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wlogical-op" )
-    set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wmissing-include-dirs" )
-  endif()
-endif()
-if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-  if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.0.0")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=overloaded-virtual" )
-  endif()
-endif()
-
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wpointer-arith" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wundef" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wredundant-decls" )
-set( WARNINGS_COMMONFLAGS "${WARNINGS_COMMONFLAGS} -Wno-inline" )
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wbad-function-cast")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wold-style-definition")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wnested-externs")
-
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNINGS_COMMONFLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++" )
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast" )
diff --git a/04_EAN/cmake/cppcheck.cmake b/04_EAN/cmake/cppcheck.cmake
deleted file mode 100644
index 6c5f00597d1f1d9b77623a13595f1446018debb9..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/cppcheck.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-find_program(CPPCHECK_EXE "cppcheck")
-
-if(CPPCHECK_EXE)
-    
-    message(STATUS "[CPPCHECK] at ${CPPCHECK_EXE}")
-    add_custom_target(cppcheck)
-
-    add_custom_command(TARGET cppcheck POST_BUILD
-        COMMAND ${CPPCHECK_EXE} --template=gcc -f --std=posix --std=c99 --std=c++11 --enable=all -i ${PROJECT_BINARY_DIR} -I ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}
-    )
-else()
-    message(FATAL_ERROR "[CPPCHECK] Could not find cppcheck executable")
-endif()
diff --git a/04_EAN/cmake/doxy.cmake b/04_EAN/cmake/doxy.cmake
deleted file mode 100644
index 4037ae09255fcb77f950894083d551b96bc2fe51..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/doxy.cmake
+++ /dev/null
@@ -1,31 +0,0 @@
-
-  FIND_PACKAGE(Doxygen)
-
-  # set output path
-  set(DOXY_OUTPUT "doc")
-  set(DOXY_GENERATE_LATEX "NO")
-  set(DOXY_IGNORE "")
-  set(DOXY_INPUT_DIR "${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src")
-
-  if(DOXYGEN_DOT_FOUND)
-      set(DOXY_USE_GRAPHVIZ "YES" ) 
-      message(STATUS "[DOXYGEN] Using graphviz to draw nice graphs.")
-  else(DOXYGEN_DOT_FOUND) 
-      set(DOXY_USE_GRAPHVIY "NO" ) 
-      message(STATUS "[DOXYGEN] GraphViz' Dot tool not found.")
-  endif(DOXYGEN_DOT_FOUND) 
-   
-  if (NOT DOXYGEN_FOUND)
-    message(FATAL_ERROR 
-      "Doxygen is needed to build the documentation. Please install it correctly")
-  endif()
-  ## Configure the Template Doxyfile for our specific project
-  configure_file(${PROJECT_SOURCE_DIR}/cmake/Doxyfile.in 
-                 ${PROJECT_BINARY_DIR}/Doxyfile  @ONLY IMMEDIATE)
-  ## Add a custom target to run Doxygen (make doc)
-  add_custom_target ( doxy
-  		COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
-  		SOURCES ${PROJECT_BINARY_DIR}/Doxyfile
-		COMMAND echo "HTML ouput at ${DOXY_OUTPUT}/html/index.html"
-		)
-
diff --git a/04_EAN/cmake/emu.cmake b/04_EAN/cmake/emu.cmake
deleted file mode 100644
index abc6f81a7221bfc7e27df6118972fdf0100361d9..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/emu.cmake
+++ /dev/null
@@ -1,175 +0,0 @@
-include(processorcount)
-INCLUDE(coloroutput)
-
-# Grub
-find_program(GRUB_MKRESCUE "grub-mkrescue")
-if(NOT GRUB_MKRESCUE)
-		message(FATAL_ERROR "grub-mkrescue not found, cannot create bootable iso :(")
-endif()
-
-set(STARTUP_SCRIPTS ${PROJECT_BINARY_DIR}/scripts)
-file(MAKE_DIRECTORY ${STARTUP_SCRIPTS})
-
-set(PREPARE_ISO ${STARTUP_SCRIPTS}/prepareISO.sh)
-set(FAILWRAPPER ${STARTUP_SCRIPTS}/fail.sh)
-configure_file(${PROJECT_SOURCE_DIR}/emu/qrun.sh.in    ${STARTUP_SCRIPTS}/qrun.sh)
-configure_file(${PROJECT_SOURCE_DIR}/emu/findport.pl   ${STARTUP_SCRIPTS}/findport.pl)
-configure_file(${PROJECT_SOURCE_DIR}/emu/prepareISO.sh ${PREPARE_ISO})
-configure_file(${PROJECT_SOURCE_DIR}/emu/fail.sh ${FAILWRAPPER} COPYONLY)
-
-
-macro(ADDEMU TGT)
-  # Prepare some useful variable for use in config files
-  set(TGT_ELF "${CMAKE_CURRENT_BINARY_DIR}/${TGT}.elf")
-
-  # Start qemu
-  add_custom_target(run_${TGT}
-    DEPENDS ${TGT_ELF} ${TGT}
-    COMMAND echo "Running ${TGT_ELF}..."
-    COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF}
-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-    )
-
-  add_custom_target( ddd_${TGT}
-    # Start Qemu in Debug mode.
-    DEPENDS ${TGT}
-    DEPENDS ${TGT_ELF} ${TGT}
-    COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} ddd
-    COMMENT "Debugging in Qemu"
-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-    )
-
-  add_custom_target( gdb_${TGT}
-    # Start Qemu in Debug mode.
-    DEPENDS ${TGT}
-    DEPENDS ${TGT_ELF} ${TGT}
-    COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} gdb
-    COMMENT "Debugging in Qemu"
-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-    )
-
-  add_custom_target( gdbtui_${TGT}
-    # Start Qemu in Debug mode.
-    DEPENDS ${TGT}
-    DEPENDS ${TGT_ELF} ${TGT}
-    COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} gdbtui
-    COMMENT "Debugging in Qemu"
-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-    )
-
-
-  add_custom_target( cgdb_${TGT}
-    # Start Qemu in Debug mode.
-    DEPENDS ${TGT_ELF} ${TGT}
-    COMMAND ${STARTUP_SCRIPTS}/qrun.sh ${TGT_ELF} cgdb
-    COMMENT "Debugging in Qemu"
-    WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
-    )
-
-  # add legacytargets
-  if( NOT TARGET run )
-    add_custom_target(run DEPENDS run_${TGT})
-    add_custom_target(ddd DEPENDS ddd_${TGT})
-    add_custom_target(gdb DEPENDS gdb_${TGT})
-    add_custom_target(gdbtui DEPENDS gdbtui_${TGT})
-    add_custom_target(cgdb DEPENDS cgdb_${TGT})
-  endif()
-endmacro(ADDEMU TGT)
-
-macro(ADDFAIL TGT)
-  # Prepare some useful variable for use in config files
-  set(TGT_ELF "${CMAKE_CURRENT_BINARY_DIR}/${TGT}.elf")
-  set(ISODIR_TGT "${PROJECT_BINARY_DIR}/${TGT}")
-
-  set(ISOFILE_TGT "${ISODIR_TGT}/system.iso")
-  set(FAILELF_TGT "${ISODIR_TGT}/system.elf")
-
-  set(TGT_RESULT_CSV "${CMAKE_CURRENT_BINARY_DIR}/${TGT}_result.csv")
-  set(TGT_RESULT_MEM "${CMAKE_CURRENT_BINARY_DIR}/${TGT}_mem.done")
-  set(TGT_RESULT_IP "${CMAKE_CURRENT_BINARY_DIR}/${TGT}_ip.done")
-  set(TGT_RESULT_REGS "${CMAKE_CURRENT_BINARY_DIR}/${TGT}_regs.done")
-
-  add_custom_command(
-    DEPENDS ${TGT_ELF} ${TGT}
-    COMMAND ${CMAKE_COMMAND} -E copy ${TGT_ELF} ${FAILELF_TGT}
-    COMMAND ${CMAKE_COMMAND} -E make_directory ${ISODIR_TGT}
-    COMMAND ${PREPARE_ISO} ${TGT_ELF} ${ISOFILE_TGT}
-    COMMAND objdump -CDS ${TGT_ELF} > ${PROJECT_BINARY_DIR}/${TGT}.dis
-    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${TGT}.dis ${ISODIR_TGT}/system.dis
-    OUTPUT ${ISOFILE_TGT} ${FAILELF_TGT} ${PROJECT_BINARY_DIR}/${TGT}.dis ${ISODIR_TGT}/system.dis
-    COMMENT "Generating bootable grub iso."
-    )
-
-  # Create bootable ISO
-  add_custom_target( iso_${TGT} DEPENDS ${ISOFILE_TGT} )
-  add_custom_command(
-    DEPENDS ${ISOFILE_TGT} ${FAILELF_TGT}
-    COMMAND ${FAILWRAPPER} trace ${ISODIR_TGT} base
-    OUTPUT  ${ISODIR_TGT}/trace.pb
-    COMMENT "${BoldGreen}[FAIL] Tracing ${ISOFILE_TGT} and import pilots to database${ColourReset}"
-    )
-  add_custom_target(trace_${TGT} DEPENDS ${ISODIR_TGT}/trace.pb)
-
-  add_custom_command(
-    DEPENDS ${ISODIR_TGT}/trace.pb
-    COMMAND ${FAILWRAPPER} inject ${ISODIR_TGT} base
-    COMMENT "\n${BoldGreen}[FAIL] Injecting bit errors to ${ISOFILE_TGT}\n${BoldGreen}[FAIL] This may take some time${ColourReset}"
-    OUTPUT ${TGT_RESULT_CSV}
-    )
-
-  add_custom_command(
-    DEPENDS ${ISODIR_TGT}/trace.pb
-    COMMAND ${FAILWRAPPER} inject_mem ${ISODIR_TGT} base
-    COMMAND touch ${TGT_RESULT_MEM}
-    COMMENT "\n${BoldGreen}[FAIL] Injecting bit errors to ${ISOFILE_TGT}\n${BoldGreen}[FAIL] This may take some time${ColourReset}"
-    OUTPUT ${TGT_RESULT_MEM}
-    )
-
-  add_custom_command(
-    DEPENDS ${ISODIR_TGT}/trace.pb
-    COMMAND ${FAILWRAPPER} inject_ip ${ISODIR_TGT} base
-    COMMAND touch ${TGT_RESULT_IP}
-    COMMENT "\n${BoldGreen}[FAIL] Injecting bit errors to ${ISOFILE_TGT}\n${BoldGreen}[FAIL] This may take some time${ColourReset}"
-    OUTPUT ${TGT_RESULT_IP}
-    )
-
-  add_custom_command(
-    DEPENDS ${ISODIR_TGT}/trace.pb
-    COMMAND ${FAILWRAPPER} inject_regs ${ISODIR_TGT} base
-    COMMAND touch ${TGT_RESULT_REGS}
-    COMMENT "\n${BoldGreen}[FAIL] Injecting bit errors to ${ISOFILE_TGT}\n${BoldGreen}[FAIL] This may take some time${ColourReset}"
-    OUTPUT ${TGT_RESULT_REGS}
-    )
-
-  add_custom_target(inject_${TGT}
-    DEPENDS ${TGT_RESULT_CSV}
-    )
-  add_custom_target(inject_mem_${TGT}
-    DEPENDS ${TGT_RESULT_MEM}
-    )
-  add_custom_target(inject_regs_${TGT}
-    DEPENDS ${TGT_RESULT_REGS}
-    )
-  add_custom_target(inject_ip_${TGT}
-    DEPENDS ${TGT_RESULT_IP}
-    )
-
-  add_custom_target(shortresults_${TGT}
-    COMMAND ${FAILWRAPPER} shortresult ${ISODIR_TGT} base
-    )
-
-  add_custom_target(resultbrowser_${TGT}
-    COMMAND ${FAILWRAPPER} resultbrowser ${ISODIR_TGT} base
-    )
-
-  if(NOT TARGET trace)
-    add_custom_target(trace         DEPENDS trace_${TGT})
-    add_custom_target(inject        DEPENDS inject_${TGT})
-    add_custom_target(inject_mem    DEPENDS inject_mem_${TGT})
-    add_custom_target(inject_regs   DEPENDS inject_regs_${TGT})
-    add_custom_target(inject_ip     DEPENDS inject_ip_${TGT})
-    add_custom_target(shortresults  DEPENDS shortresults_${TGT})
-    add_custom_target(resultbrowser DEPENDS resultbrowser_${TGT})
-  endif()
-endmacro(ADDFAIL TGT)
-
diff --git a/04_EAN/cmake/framac.cmake b/04_EAN/cmake/framac.cmake
deleted file mode 100644
index ecc49a14a3ae5d13a1f0be4086b9e554c1400dce..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/framac.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-
-find_program(FRAMA_GUI_EXE "frama-c-gui")
-find_program(FRAMA_EXE "frama-c")
-find_program(WHY_EXE "why3ide")
-
-if(FRAMA_GUI_EXE)
-  add_custom_target(frama-c-gui)
-  message(STATUS "[FRAMA-C] at ${FRAMA_GUI_EXE}")
-  add_custom_command(TARGET frama-c-gui POST_BUILD
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}	
-    COMMAND ${FRAMA_GUI_EXE} -cpp-extra-args='-I ${PROJECT_SOURCE_DIR}/include'
-    )
-else()
-  message(FATAL_ERROR "[FRAMA-C] Could not find frama-c-gui executable")
-endif()
-
-if(FRAMA_EXE AND WHY_EXE)
-  add_custom_target(jessie)
-  message(STATUS "[JESSIE] at ${FRAMA_EXE} and ${WHY_EXE}")
-  add_custom_command(TARGET jessie POST_BUILD
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}	
-    COMMAND ${FRAMA_EXE} -add-path /local/why-2.34/lib/frama-c-plugin -jessie -jessie-atp why3ide -cpp-extra-args='-I ${PROJECT_SOURCE_DIR}/include'
-    )
-else()
-  message(FATAL_ERROR "[JESSIE] Could not find frama-c or why3ide executable")
-endif()
diff --git a/04_EAN/cmake/lcov.cmake b/04_EAN/cmake/lcov.cmake
deleted file mode 100644
index b4efe2f69ab1962a5e7dd39d6fa7a2aab98daf47..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/lcov.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-
-find_program(LCOV_TOOL "lcov")
-find_program(LCOV_HTML "genhtml")
-
-#This is very ugly but we need to have the oldest gcov to support llvm
-find_program(GCOV_LEGACY "gcov-4.2" )
-
-if(NOT GCOV_LEGACY)
-  find_program(GCOV_LEGACY "gcov-4.3" )
-endif()
-
-if(NOT GCOV_LEGACY)
-  find_program(GCOV_LEGACY "gcov-4.4" )
-endif()
-
-if(LCOV_TOOL AND LCOV_HTML)
-    
-  message(STATUS "[LCOV] lcov    at ${LCOV_TOOL}")
-  message(STATUS "[LCOV] genhtml at ${LCOV_HTML}")
-
-    if(NOT DEFINED "LCOV_OUTPUT_DIR")
-        set(LCOV_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doc)
-    endif()
-
-    if(NOT DEFINED "LCOV_SCAN_DIR")
-      set(LCOV_SCAN_DIR_FLAG --directory ${CMAKE_CURRENT_BINARY_DIR}/src)
-    endif()
-
-    if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-      if(GCOV_LEGACY)
-        message(STATUS "[LCOV] lcov support for clang is rather buggy")
-        message(STATUS "[LCOV] using old gcov to support clang at ${GCOV_LEGACY}")
-        set(OPTION_GCOV_TOOL "--gcov-tool" "${GCOV_LEGACY}")
-      else()
-        message(WARNING "lcov won't work with clang")
-        set(OPTION_GCOV_TOOL "")
-      endif()
-    else()
-        set(OPTION_GCOV_TOOL "")
-    endif()
-
-    add_custom_target(lcov)
-
-    add_custom_command(TARGET lcov POST_BUILD
-        COMMAND ${LCOV_TOOL} ${OPTION_GCOV_TOOL} --capture ${LCOV_SCAN_DIR_FLAG} --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-      	COMMAND ${LCOV_TOOL} --remove ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov '*.h' --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-      	COMMAND ${LCOV_TOOL} --remove ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov '/usr/include/*' --output-file ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov
-        COMMAND ${LCOV_HTML} ${CMAKE_CURRENT_BINARY_DIR}/coverage.lcov --show-details --legend --output-directory ${LCOV_OUTPUT_DIR}/lcov
-        COMMAND echo "HTML results at: file://${LCOV_OUTPUT_DIR}/lcov/index.html"
-    )
-endif()
diff --git a/04_EAN/cmake/processorcount.cmake b/04_EAN/cmake/processorcount.cmake
deleted file mode 100644
index bc9b4d6de81b6695c8e79a06d9e00f413ac1737c..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/processorcount.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-if(NOT DEFINED PROCESSOR_COUNT)
-  # Unknown:
-  set(PROCESSOR_COUNT 0)
-
-  # Linux:
-  set(cpuinfo_file "/proc/cpuinfo")
-  if(EXISTS "${cpuinfo_file}")
-    file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
-    list(LENGTH procs PROCESSOR_COUNT)
-  endif()
-
-  # Mac:
-  if(APPLE)
-    find_program(cmd_sys_pro "system_profiler")
-    if(cmd_sys_pro)
-      execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
-      string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1"
-        PROCESSOR_COUNT "${info}")
-    endif()
-  endif()
-
-  # Windows:
-  if(WIN32)
-    set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
-  endif()
-endif()
-
-message("-- Processor count: " ${PROCESSOR_COUNT})
diff --git a/04_EAN/cmake/sanitizer.cmake b/04_EAN/cmake/sanitizer.cmake
deleted file mode 100644
index dbeaafbabbfa9f891b9101a5ac201238434223e3..0000000000000000000000000000000000000000
--- a/04_EAN/cmake/sanitizer.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
-    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address,undefined,enum,null,shift,signed-integer-overflow,vla-bound")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address,undefined,enum,null,shift,signed-integer-overflow,vla-bound")
-elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address,integer,undefined,bounds,enum,float-cast-overflow,float-divide-by-zero,null,object-size,shift,signed-integer-overflow,vla-bound")
-    set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address,integer,undefined,bounds,enum,float-cast-overflow,float-divide-by-zero,null,object-size,shift,signed-integer-overflow,vla-bound")
-endif()
diff --git a/04_EAN/ecos/ecos.ecc b/04_EAN/ecos/ecos.ecc
deleted file mode 100644
index 510934d67c0d4c8ec0e94bf5a3e2263a3de535a3..0000000000000000000000000000000000000000
--- a/04_EAN/ecos/ecos.ecc
+++ /dev/null
@@ -1,15594 +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    pc_i82559 ;
-    template    default ;
-    package -template CYGPKG_HAL current ;
-    package -template CYGPKG_IO current ;
-    package -template CYGPKG_IO_SERIAL current ;
-    package -template CYGPKG_INFRA current ;
-    package -template CYGPKG_KERNEL current ;
-    package -template CYGPKG_MEMALLOC current ;
-    package -template CYGPKG_ISOINFRA current ;
-    package -template CYGPKG_LIBC current ;
-    package -template CYGPKG_LIBC_I18N current ;
-    package -template CYGPKG_LIBC_SETJMP current ;
-    package -template CYGPKG_LIBC_SIGNALS current ;
-    package -template CYGPKG_LIBC_STARTUP current ;
-    package -template CYGPKG_LIBC_STDIO current ;
-    package -template CYGPKG_LIBC_STDLIB current ;
-    package -template CYGPKG_LIBC_STRING current ;
-    package -template CYGPKG_LIBC_TIME current ;
-    package -template CYGPKG_LIBM current ;
-    package -template CYGPKG_IO_WALLCLOCK current ;
-    package -template CYGPKG_ERROR current ;
-    package -hardware CYGPKG_HAL_I386 current ;
-    package -hardware CYGPKG_HAL_I386_GENERIC current ;
-    package -hardware CYGPKG_HAL_I386_PC current ;
-    package -hardware CYGPKG_HAL_I386_PCMB current ;
-    package -hardware CYGPKG_IO_PCI current ;
-    package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
-    package -hardware CYGPKG_IO_SERIAL_I386_PC current ;
-    package -hardware CYGPKG_DEVS_ETH_INTEL_I82559 current ;
-    package -hardware CYGPKG_DEVS_ETH_I386_PC_I82559 current ;
-    package -hardware CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 current ;
-    package -hardware CYGPKG_DEVICES_WALLCLOCK_I386_PC current ;
-    package -hardware CYGPKG_DEVS_FRAMEBUF_I386 v3_0 ;
-    package CYGPKG_IO_FRAMEBUF current ;
-    package CYGPKG_BLOCK_LIB current ;
-    package CYGPKG_LINUX_COMPAT current ;
-    package CYGPKG_POSIX current ;
-    package CYGPKG_IO_FILEIO current ;
-    package CYGPKG_USTL 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. If your host operating system
-# is Linux you can set this to empty to use your native tools.
-# If so, your native gcc must be gcc-2.95.2 or later, and
-# "ld -v" must report a version more recent than 2.9.1.
-#
-cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-    # Flavor: data
-    user_value i386-elf
-    # value_source user
-    # Default value: i386-elf
-};
-
-# 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 "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    # value_source user
-    # Default value:  CYGBLD_GLOBAL_WARNFLAGS . " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " 
-    #     CYGBLD_GLOBAL_WARNFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings "
-    #   --> "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-
-    # The following properties are affected by this value
-    # option CYGBLD_INFRA_CFLAGS_WARNINGS_AS_ERRORS
-    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    # option CYGBLD_INFRA_CFLAGS_PIPE
-    #     Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-};
-
-# Global linker flags
-# This option controls the global linker flags. Individual
-# packages may define options which override these global flags.
-#
-cdl_option CYGBLD_GLOBAL_LDFLAGS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-g -nostdlib -Wl,--gc-sections -Wl,-static"
-    # value_source default
-    # Default value: "-g -nostdlib -Wl,--gc-sections -Wl,-static"
-};
-
-# Build GDB stub loader image
-# This option enables the building of the GDB stubs for the
-# board. The common HAL controls takes care of most of the
-# build process, but the final conversion from ELF image to
-# binary data is handled by the platform CDL, allowing
-# relocation of the data if necessary.
-#
-cdl_option CYGBLD_BUILD_GDB_STUBS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-    # Requires: CYGSEM_HAL_ROM_MONITOR
-    #     CYGSEM_HAL_ROM_MONITOR == 0
-    #   --> 0
-    # Requires: CYGBLD_BUILD_COMMON_GDB_STUBS
-    #     CYGBLD_BUILD_COMMON_GDB_STUBS == 0
-    #   --> 0
-    # 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
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT == 0
-    #   --> 1
-    # Requires: ! CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    #     CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
-    #   --> 0
-};
-
-# Standard compiler warning flags
-# This option specifies the default warning-related compiler flags used
-# on all eCos platforms.
-#
-cdl_option CYGBLD_GLOBAL_WARNFLAGS {
-    # Calculated value:  "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings " 
-    # Flavor: data
-    # Current_value: -Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings 
-
-    # The following properties are affected by this value
-    # option CYGBLD_GLOBAL_CFLAGS
-    #     DefaultValue:  CYGBLD_GLOBAL_WARNFLAGS . " -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions " 
-};
-
-# 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
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: CYGBLD_BUILD_COMMON_GDB_STUBS
-};
-
-# <
-# Redboot HAL options
-# This option lists the target's requirements for a valid Redboot
-# configuration.
-#
-cdl_component CYGPKG_REDBOOT_HAL_OPTIONS {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# Build RedBoot binary image
-#
-cdl_component CYGBLD_BUILD_REDBOOT_BIN {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_HAL_OPTIONS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Build Redboot FLOPPY binary image
-# This option enables the conversion of the Redboot 
-# ELF image to a binary image suitable for
-# copying to a floppy disk.
-#
-cdl_option CYGBLD_BUILD_REDBOOT_BIN_FLOPPY {
-    # This option is not active
-    # The parent CYGBLD_BUILD_REDBOOT_BIN is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "FLOPPY" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# 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_ROM {
-    # This option is not active
-    # The parent CYGBLD_BUILD_REDBOOT_BIN is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT
-    #     CYGBLD_BUILD_REDBOOT (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# <
-# Intel 82559 ethernet driver
-# Ethernet driver for Intel 82559 controller.
-#
-cdl_package CYGPKG_DEVS_ETH_INTEL_I82559 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED
-    #     CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED == 0
-    #   --> 0
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# Prints ethernet device status info during startup
-# Definining this will cause the ethernet device initialization code 
-# to print lots of info
-# to confirm that it has found the devices on the PCI bus, read
-# the MAC address from EEPROM correctly, and so on, and also
-# displays the mode (10/100MHz, half/full duplex) of the
-# connection.  If the value is set higher than one then
-# additional information about each packet sent will be printed.
-#
-cdl_option CYGDBG_DEVS_ETH_INTEL_I82559_CHATTER {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-};
-
-# Number of supported interfaces.
-# This option selects the number of PCI ethernet interfaces to
-# be supported by the driver.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Calculated value:  CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED 
-    #     CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED == 0
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Keep Ethernet statistics
-# The ethernet device can maintain statistics about the network,
-# specifically a great variety of error rates which are useful
-# for network management.  SNMP for example uses this
-# information.  There is some performance cost in maintaining
-# this information; disable this option to recoup that.
-#
-cdl_component CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_STATISTICS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Keep i82559 Internal statistics
-# The i82559 keeps internal counters, and it is possible to
-# acquire these.  But the i82559 (reputedly) does not service
-# the network whilst uploading the data to RAM from its
-# internal registers.  If throughput is a problem, disable
-# this option to acquire only those statistics gathered by
-# software, so that the i82559 never sleeps.
-#
-cdl_option CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_82559_STATISTICS {
-    # This option is not active
-    # The parent CYGDBG_DEVS_ETH_INTEL_I82559_KEEP_STATISTICS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# SIOCSIFHWADDR records MAC address in EEPROM
-# The ioctl() socket call with operand SIOCSIFHWADDR sets the
-# interface hardware address - the MAC address or ethernet
-# address.  This option causes the new MAC address to be written
-# into the EEPROM associated with the interface, so that the new
-# MAC address is permanently recorded.  Doing this should be a
-# carefully chosen decision, hence this option.
-#
-cdl_component CYGPKG_DEVS_ETH_INTEL_I82559_WRITE_EEPROM {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Maximum number of RX descriptors
-# An RX descriptor is used for each ethernet frame required
-# to be passed to the upper networking layers. This option
-# sets the maximum number of these. Higher numbers use more
-# memory, lower numbers will reduce performance. The system
-# appears to work OK with as few as 8 descriptors but limps
-# painfully with only 4. Performance is better with more than
-# 8, but assuming the size of non-cached (so useless for anything
-# else) memory window is 1Mb, we might as well use it all.
-# 128 RX and TX descriptors uses the whole 1Mb, near enough.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_MAX_RX_DESCRIPTORS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 4 : 128 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 128
-};
-
-# Maximum number of TX descriptors
-# A TX descriptor is used for each ethernet frame passed down
-# from upper networking layers for transmission. This option
-# sets the maximum number of these. Higher numbers use more
-# memory, lower numbers will reduce performance. The system
-# appears to work OK with as few as 8 descriptors but limps
-# painfully with only 4. Performance is better with more than
-# 8, but assuming the size of non-cached (so useless for anything
-# else) memory window is 1Mb, we might as well use it all.
-# 128 RX and TX descriptors uses the whole 1Mb, near enough.
-#
-cdl_option CYGNUM_DEVS_ETH_INTEL_I82559_MAX_TX_DESCRIPTORS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 4 : 128 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 128
-};
-
-# Intel 82559 ethernet driver build options
-#
-cdl_component CYGPKG_DEVS_ETH_INTEL_I82559_OPTIONS {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559 is not active
-
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the Intel 82559 ethernet driver
-# package. These flags are used in addition to the set of
-# global flags.
-#
-cdl_option CYGPKG_DEVS_ETH_INTEL_I82559_CFLAGS_ADD {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_INTEL_I82559_OPTIONS is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-D_KERNEL -D__ECOS"
-    # value_source default
-    # Default value: "-D_KERNEL -D__ECOS"
-};
-
-# <
-# <
-# PC board ethernet driver
-# Ethernet driver for PC.
-#
-cdl_package CYGPKG_DEVS_ETH_I386_PC_I82559 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_IO_ETH_DRIVERS
-    #     CYGPKG_IO_ETH_DRIVERS (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGPKG_HAL_I386_PC
-    #     CYGPKG_HAL_I386_PC == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-};
-
-# >
-# Intel i82559 ethernet driver required
-#
-cdl_interface CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED {
-    # Implemented by CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559 is not active
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_ETH_INTEL_I82559
-    #     ActiveIf: CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED
-    # option CYGNUM_DEVS_ETH_INTEL_I82559_DEV_COUNT
-    #     Calculated:  CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED 
-};
-
-# Ethernet port 0 driver
-#
-cdl_component CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Device name for the ETH0 ethernet port 0 driver
-# This option sets the name of the ethernet device for the
-# i82559 ethernet port 0.
-#
-cdl_option CYGDAT_DEVS_ETH_I386_PC_I82559_ETH0_NAME {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"eth0\""
-    # value_source default
-    # Default value: "\"eth0\""
-};
-
-# Set the ethernet station address
-# Enabling this option will allow the ethernet
-# station address to be forced to the value set by the
-# configuration.  This may be required if the hardware does
-# not include a serial EEPROM for the ESA.
-#
-cdl_component CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA {
-    # This option is not active
-    # The parent CYGPKG_DEVS_ETH_I386_PC_I82559_ETH0 is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# The ethernet station address
-# The ethernet station address
-#
-cdl_option CYGDAT_DEVS_ETH_I386_PC_I82559_ETH0_ESA {
-    # This option is not active
-    # The parent CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA is not active
-    # The parent CYGSEM_DEVS_ETH_I386_PC_I82559_ETH0_SET_ESA is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{0x08, 0x00, 0x00, 0x00, 0x00, 0x01}"
-    # value_source default
-    # Default value: "{0x08, 0x00, 0x00, 0x00, 0x00, 0x01}"
-};
-
-# <
-# <
-# <
-# <
-# 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
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-};
-
-# >
-# Platform-independent HAL options
-# A number of configuration options are common to most or all
-# HAL packages, for example options controlling how much state
-# should be saved during a context switch. The implementations
-# of these options will vary from architecture to architecture.
-#
-cdl_component CYGPKG_HAL_COMMON {
-    # There is no associated value.
-};
-
-# >
-# Provide eCos kernel support
-# The HAL can be configured to either support the full eCos
-# kernel, or to support only very simple applications which do
-# not require a full kernel. If kernel support is not required
-# then some of the startup, exception, and interrupt handling
-# code can be eliminated.
-#
-cdl_option CYGFUN_HAL_COMMON_KERNEL_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# HAL exception support
-# When a processor exception occurs, for example an attempt to
-# execute an illegal instruction or to perform a divide by
-# zero, this exception may be handled in a number of different
-# ways. If the target system has gdb support then typically
-# the exception will be handled by gdb code. Otherwise if the
-# HAL exception support is enabled then the HAL will invoke a
-# routine deliver_exception(). Typically this routine will be
-# provided by the eCos kernel, but it is possible for
-# application code to provide its own implementation. If the
-# HAL exception support is not enabled and a processor
-# exception occurs then the behaviour of the system is
-# undefined.
-#
-cdl_option CYGPKG_HAL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS == 1
-    #   --> 1
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_KERNEL_EXCEPTIONS
-    #     Requires: CYGPKG_HAL_EXCEPTIONS
-};
-
-# Stop calling constructors early
-# This option supports environments where some constructors
-# must be run in the context of a thread rather than at
-# simple system startup time. A boolean flag named
-# cyg_hal_stop_constructors is set to 1 when constructors
-# should no longer be invoked. It is up to some other
-# package to deal with the rest of the constructors.
-# In the current version this is only possible with the
-# C library.
-#
-cdl_option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-};
-
-# HAL uses the MMU and allows for CDL manipulation of it's use
-#
-cdl_interface CYGINT_HAL_SUPPORTS_MMU_TABLES {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_INSTALL_MMU_TABLES
-    #     ActiveIf: CYGINT_HAL_SUPPORTS_MMU_TABLES
-};
-
-# Install MMU tables.
-# This option controls whether this application installs
-# its own Memory Management Unit (MMU) tables, or relies on the
-# existing environment to run.
-#
-cdl_option CYGSEM_HAL_INSTALL_MMU_TABLES {
-    # This option is not active
-    # ActiveIf constraint: CYGINT_HAL_SUPPORTS_MMU_TABLES
-    #     CYGINT_HAL_SUPPORTS_MMU_TABLES == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYG_HAL_STARTUP != "RAM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 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 (unknown) == 0
-    #     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 == GRUB
-    #   --> 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"
-};
-
-# <
-# Grouped libraries for linking
-# This option provides a list of libraries used to satisfy
-# linker dependencies, but necessary for building eCos. It is passed
-# to a GROUP() directive in the linker script, which is analogous
-# to using the "-(" aka "--start-group", and "-)" aka
-# "--end-group" options on the linker command line.
-# It provides a similar function to adding "-llibname" to the
-# linker, but with the added feature that each library in the group
-# is scanned in turn for unresolved symbols, and this process is
-# repeated until there are no more unresolved symbols. This is important
-# for system libraries as there are often mutual dependencies.
-# This option should not be used for adding application specific
-# libraries. That should be done in the application's own makefile
-# or link line.
-# Users wishing to use the GNU Compiler prior to GCC 3.0 will
-# need to remove libsupc++.a from this option.
-# Note that libtarget.a is always required to build eCos.
-#
-cdl_component CYGBLD_HAL_LINKER_GROUPED_LIBS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "libtarget.a libgcc.a libsupc++.a"
-    # value_source default
-    # Default value: CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT
-    #     CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT == "libtarget.a libgcc.a libsupc++.a"
-    #   --> "libtarget.a libgcc.a libsupc++.a"
-    # Requires:  is_substr(CYGBLD_HAL_LINKER_GROUPED_LIBS, "libtarget.a") 
-    #     CYGBLD_HAL_LINKER_GROUPED_LIBS == "libtarget.a libgcc.a libsupc++.a"
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGBLD_HAL_LINKER_GROUPED_LIBS
-    #     Requires:  is_substr(CYGBLD_HAL_LINKER_GROUPED_LIBS, "libtarget.a") 
-};
-
-# >
-# Default setting
-# This option is intended to be used by other eCos packages (including
-# HAL packages) to provide a different default value for
-# CYGBLD_HAL_LINKER_GROUPED_LIBS.
-# This is separated into its own option to continue to
-# allow the user to make customisations to the grouped library
-# list.
-#
-cdl_option CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "libtarget.a libgcc.a libsupc++.a"
-    # value_source default
-    # Default value: "libtarget.a libgcc.a libsupc++.a"
-
-    # The following properties are affected by this value
-    # component CYGBLD_HAL_LINKER_GROUPED_LIBS
-    #     DefaultValue: CYGBLD_HAL_LINKER_GROUPED_LIBS_DEFAULT
-};
-
-# <
-# <
-# HAL interrupt handling
-# A number of configuration options related to interrupt
-# handling are common to most or all HAL packages, even though
-# the implementations will vary from architecture to
-# architecture.
-#
-cdl_component CYGPKG_HAL_COMMON_INTERRUPTS {
-    # There is no associated value.
-};
-
-# >
-# Use separate stack for interrupts
-# When an interrupt occurs this interrupt can be handled either
-# on the current stack or on a separate stack maintained by the
-# HAL. Using a separate stack requires a small number of extra
-# instructions in the interrupt handling code, but it has the
-# advantage that it is no longer necessary to allow extra space
-# in every thread stack for the interrupt handlers. The amount
-# of extra space required depends on the interrupt handlers
-# that are being used.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Interrupt stack size
-# This configuration option specifies the stack size in bytes
-# for the interrupt stack. Typically this should be a multiple
-# of 16, but the exact requirements will vary from architecture
-# to architecture. The interrupt stack serves two separate
-# purposes. It is used as the stack during system
-# initialization. In addition, if the interrupt system is
-# configured to use a separate stack then all interrupts will
-# be processed on this stack. The exact memory requirements
-# will vary from application to application, and will depend
-# heavily on whether or not other interrupt-related options,
-# for example nested interrupts, are enabled. On most targets,
-# in a configuration with no kernel this stack will also be
-# the stack used to invoke the application, and must obviously
-# be appropriately large in that case.
-#
-cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4096
-    # value_source default
-    # Default value:  CYGPKG_KERNEL ? 4096 : 32768 
-    #     CYGPKG_KERNEL == current
-    #   --> 4096
-    # Legal values: 128 to 1048576
-};
-
-# Allow nested interrupts
-# When an interrupt occurs the HAL interrupt handling code can
-# either leave interrupts disabled for the duration of the
-# interrupt handling code, or by doing some extra work it can
-# reenable interrupts before invoking the interrupt handler and
-# thus allow nested interrupts to happen. If all the interrupt
-# handlers being used are small and do not involve any loops
-# then it is usually better to disallow nested interrupts.
-# However if any of the interrupt handlers are more complicated
-# than nested interrupts will usually be required.
-#
-cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Save minimum context on interrupt
-# The HAL interrupt handling code can exploit the calling conventions
-# defined for a given architecture to reduce the amount of state
-# that has to be saved. Generally this improves performance and
-# reduces code size. However it can make source-level debugging
-# more difficult.
-#
-cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-};
-
-# Chain all interrupts together
-# Interrupts can be attached to vectors either singly, or be
-# chained together. The latter is necessary if there is no way
-# of discovering which device has interrupted without
-# inspecting the device itself. It can also reduce the amount
-# of RAM needed for interrupt decoding tables and code.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGIMP_KERNEL_INTERRUPTS_CHAIN
-    #     Requires: CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-};
-
-# Ignore spurious [fleeting] interrupts
-# On some hardware, interrupt sources may not be de-bounced or
-# de-glitched.  Rather than try to handle these interrupts (no
-# handling may be possible), this option allows the HAL to simply
-# ignore them.  In most cases, if the interrupt is real it will
-# reoccur in a detectable form.
-#
-cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# HAL context switch support
-# A number of configuration options related to thread contexts
-# are common to most or all HAL packages, even though the
-# implementations will vary from architecture to architecture.
-#
-cdl_component CYGPKG_HAL_COMMON_CONTEXT {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Use minimum thread context
-# The thread context switch code can exploit the calling
-# conventions defined for a given architecture to reduce the
-# amount of state that has to be saved during a context
-# switch. Generally this improves performance and reduces
-# code size. However it can make source-level debugging more
-# difficult.
-#
-cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-};
-
-# <
-# Explicit control over cache behaviour
-# These options let the default behaviour of the caches 
-# be easily configurable.
-#
-cdl_component CYGPKG_HAL_CACHE_CONTROL {
-    # There is no associated value.
-};
-
-# >
-# Enable DATA cache on startup
-# Enabling this option will cause the data cache to be enabled
-# as soon as practicable when eCos starts up.  One would choose
-# to disable this if the data cache cannot safely be turned on,
-# such as a case where the cache(s) require additional platform
-# specific setup.
-#
-cdl_component CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# DATA cache mode on startup
-# This option controls the mode the cache will be set to
-# when enabled on startup.
-#
-cdl_option CYGSEM_HAL_DCACHE_STARTUP_MODE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value COPYBACK
-    # value_source default
-    # Default value: COPYBACK
-    # Legal values:  "COPYBACK" "WRITETHRU" 
-};
-
-# <
-# Enable INSTRUCTION cache on startup
-# Enabling this option will cause the instruction cache to be enabled
-# as soon as practicable when eCos starts up.  One would choose
-# to disable this if the instruction cache cannot safely be turned on,
-# such as a case where the cache(s) require additional platform
-# specific setup.
-#
-cdl_option CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Source-level debugging support
-# If the source level debugger gdb is to be used for debugging
-# application code then it may be necessary to configure in support
-# for this in the HAL.
-#
-cdl_component CYGPKG_HAL_DEBUG {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Support for GDB stubs
-# The HAL implements GDB stubs for the target.
-#
-cdl_interface CYGINT_HAL_DEBUG_GDB_STUBS {
-    # Implemented by CYGPKG_HAL_I386_PC, 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
-};
-
-# 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
-    # value_source default
-    # 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 == 1
-    #   --> 0
-    # Requires: ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-    #     CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM == 1
-    #   --> 0
-    # Requires:  !CYGSEM_HAL_VIRTUAL_VECTOR_DIAG  || CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS 
-    #     CYGSEM_HAL_VIRTUAL_VECTOR_DIAG == 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 CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK
-    #     ActiveIf: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     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_I386_PC, 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 CYGBLD_BUILD_GDB_STUBS
-    #     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 CYGBLD_BUILD_GDB_STUBS
-    #     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 == 0
-    #     CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT == 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 CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     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"
-};
-
-# Enable initial breakpoint
-# This option causes an application that has GDB stubs built in
-# to take a breakpoint immediately before calling cyg_start().
-# This gives the developer a chance to set any breakpoints or
-# inspect the system state before it proceeds.
-#
-cdl_option CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK {
-    # This option is not active
-    # ActiveIf constraint: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  !CYGPKG_REDBOOT 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 1
-};
-
-# <
-# 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_I386_PC, 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 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Enable use of virtual vector calling interface
-# Virtual vector support allows the HAL to let the ROM
-# monitor handle certain operations. The virtual vector table
-# defines a calling interface between applications running in
-# RAM and the ROM monitor.
-#
-cdl_component CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT {
-    # ActiveIf constraint: CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-    #     CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Inherit console settings from ROM monitor
-# When this option is set, the application will inherit
-# the console as set up by the ROM monitor. This means
-# that the application will use whatever channel and
-# mangling style was used by the ROM monitor when
-# the application was launched.
-#
-cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INHERIT_CONSOLE {
-    # This option is not active
-    # 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
-};
-
-# 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
-};
-
-# 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 == GRUB
-    #     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_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_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_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 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 board, 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
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-    # Requires:  !CYGHWR_HAL_I386_FPU_SWITCH_LAZY 
-    #     CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires: CYGSEM_HAL_ROM_MONITOR
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-};
-
-# 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 == GRUB
-    #   --> 0 0
-    # Legal values:  "Generic" "GDB_stubs" 
-    # Requires:  CYG_HAL_STARTUP == "RAM" 
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 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 {
-    # Implemented by CYGPKG_HAL_I386_PCMB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# Saved interrupt state required
-# Components requiring access to saved interrupt state via the
-# hal_saved_interrupt_state symbol should implement this
-# interface.
-#
-cdl_interface CYGINT_HAL_COMMON_SAVED_INTERRUPT_STATE_REQUIRED {
-    # Implemented by CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT, active, disabled
-    # Implemented by CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, inactive, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-};
-
-# File I/O operations via GDB
-# This option enables support for various file I/O
-# operations using the GDB remote protocol to communicate
-# with GDB. The operations are then performed on the
-# debugging host by proxy. These operations are only
-# currently available by using a system call interface
-# to RedBoot. This may change in the future.
-#
-cdl_option CYGPKG_HAL_GDB_FILEIO {
-    # This option is not active
-    # ActiveIf constraint: CYGSEM_REDBOOT_BSP_SYSCALLS
-    #     CYGSEM_REDBOOT_BSP_SYSCALLS (unknown) == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-    #     CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS == 0
-    #   --> 0
-};
-
-# Build Compiler sanity checking tests
-# Enabling this option causes compiler tests to be built.
-#
-cdl_option CYGPKG_HAL_BUILD_COMPILER_TESTS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_HAL_TESTS
-    #     Calculated:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-};
-
-# Common HAL tests
-# This option specifies the set of tests for the common HAL.
-#
-cdl_component CYGPKG_HAL_TESTS {
-    # Calculated value:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-    #     CYGINT_HAL_TESTS_NO_CACHES == 0
-    #     CYGPKG_HAL_BUILD_COMPILER_TESTS == 0
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    # Flavor: data
-    # Current_value: tests/context tests/basic tests/cache
-};
-
-# >
-# 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" : "") 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# <
-# i386 architecture
-# The i386 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_I386 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBM_CFLAGS_ADD
-    #     DefaultValue:  "-fno-strict-aliasing" .  ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") 
-};
-
-# >
-# SMP support
-#
-cdl_component CYGPKG_HAL_SMP_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 
-    #     CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_KERNEL_SMP_SUPPORT
-    #     Requires: CYGPKG_HAL_SMP_SUPPORT
-    # component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT
-    #     ActiveIf:  CYGPKG_HAL_SMP_SUPPORT 
-    # component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT
-    #     Calculated:  CYGPKG_HAL_SMP_SUPPORT 
-};
-
-# >
-# Max number of CPUs supported
-#
-cdl_option CYGPKG_HAL_SMP_CPU_MAX {
-    # This option is not active
-    # The parent CYGPKG_HAL_SMP_SUPPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2
-    # value_source default
-    # Default value: 2
-};
-
-# <
-# Enable I386 FPU support
-# This component enables support for the
-# I386 floating point unit.
-#
-cdl_component CYGHWR_HAL_I386_FPU {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Use lazy FPU state switching
-# This option enables lazy FPU state switching.
-# The default behaviour for eCos is to save and
-# restore FPU state on every thread switch, interrupt
-# and exception. While simple and deterministic, this
-# approach can be expensive if the FPU is not used by
-# all threads. The alternative, enabled by this option,
-# is to use hardware features that allow the FPU state
-# of a thread to be left in the FPU after it has been
-# descheduled, and to allow the state to be switched to
-# a new thread only if it actually uses the FPU. Where
-# only one or two threads use the FPU this can avoid a
-# lot of unnecessary state switching.
-#
-cdl_option CYGHWR_HAL_I386_FPU_SWITCH_LAZY {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_HAL_SMP_SUPPORT
-    #     Requires:  CYGHWR_HAL_I386_FPU_SWITCH_LAZY == 0 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  !CYGHWR_HAL_I386_FPU_SWITCH_LAZY 
-};
-
-# <
-# Enable Pentium class CPU features
-# This component enables support for various
-# features of Pentium class CPUs.
-#
-cdl_component CYGHWR_HAL_I386_PENTIUM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Save/Restore SSE registers on context switch
-# This option enables SSE state switching. The default
-# behaviour for eCos is to ignore the SSE registers.
-# Enabling this option adds SSE state information to
-# every thread context.
-#
-cdl_option CYGHWR_HAL_I386_PENTIUM_SSE {
-    # This option is not active
-    # The parent CYGHWR_HAL_I386_PENTIUM is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Support extra Pentium registers in GDB stub
-# This option enables support for extra Pentium registers
-# in the GDB stub. These are registers such as CR0-CR4, and
-# all MSRs. Not all GDBs support these registers, so the
-# default behaviour for eCos is to not include them in the
-# GDB stub support code.
-#
-cdl_option CYGHWR_HAL_I386_PENTIUM_GDB_REGS {
-    # This option is not active
-    # The parent CYGHWR_HAL_I386_PENTIUM is disabled
-
-    # 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/i386.ld" 
-    # Flavor: data
-    # Current_value: src/i386.ld
-};
-
-# Implementations of hal_i386_mem_real_region_top()
-#
-cdl_interface CYGINT_HAL_I386_MEM_REAL_REGION_TOP {
-    # Implemented by CYGPKG_HAL_I386_PCMB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # 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_I386_LINUX_EXEC {
-    # This option is not active
-    # ActiveIf constraint: CYGBLD_BUILD_REDBOOT_WITH_EXEC
-    #     CYGBLD_BUILD_REDBOOT_WITH_EXEC (unknown) == 0
-    #   --> 0
-
-    # There is no associated value.
-};
-
-# >
-# Address for the trampoline code
-# This is the address to where the trampoline code is
-# copied.  The trampoline copies the image to its
-# final location and jumps to its entry point.
-#
-cdl_option CYGHWR_REDBOOT_I386_TRAMPOLINE_ADDRESS {
-    # This option is not active
-    # The parent CYGPKG_REDBOOT_I386_LINUX_EXEC is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0007C000
-    # value_source default
-    # Default value: 0x0007C000
-};
-
-# <
-# i386 generic target
-# This package provides support for generic IA32 CPU variants.
-# Any CPU from an 80386 to the latest Pentium/Athlon should work
-# with this variant HAL. Essentially this variant is empty, it
-# just avoids providing any configuration to the generic architecture
-# support in the architecture HAL.
-#
-cdl_package CYGPKG_HAL_I386_GENERIC {
-    # 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
-};
-
-# i386 PC Target
-# The i386 PC Target HAL package provides the 
-# support needed to run eCos binaries on an i386 PC.
-#
-cdl_package CYGPKG_HAL_I386_PC {
-    # 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_DEVS_ETH_I386_PC_I82559
-    #     ActiveIf: CYGPKG_HAL_I386_PC
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     ActiveIf: CYGPKG_HAL_I386_PC
-};
-
-# >
-# How to discover the size of available RAM.
-# It is possible for the HAL to discover the 
-# size of RAM In several ways. Currently this
-# can be done by querying the BIOS or by 
-# hardcoding the values into the executable.
-#
-cdl_component CYGPKG_HAL_I386_PC_MEMSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value BIOS
-    # value_source default
-    # Default value: BIOS
-    # Legal values: "BIOS" "HARDCODE"
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_I386_PC_MEMSIZE_BASE
-    #     ActiveIf:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    # option CYGNUM_HAL_I386_PC_MEMSIZE_EXTENDED
-    #     ActiveIf:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-};
-
-# >
-# Amount of Base RAM available.
-#
-cdl_option CYGNUM_HAL_I386_PC_MEMSIZE_BASE {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    #     CYGPKG_HAL_I386_PC_MEMSIZE == BIOS
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000F0000
-    # value_source default
-    # Default value: 0x000F0000
-};
-
-# Amount of Extended RAM available.
-#
-cdl_option CYGNUM_HAL_I386_PC_MEMSIZE_EXTENDED {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_I386_PC_MEMSIZE == "HARDCODE" 
-    #     CYGPKG_HAL_I386_PC_MEMSIZE == BIOS
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00100000
-    # value_source default
-    # Default value: 0x00100000
-};
-
-# <
-# Startup type
-# It is possible to configure eCos for the PC target to build for:
-# RAM startup (generally when being run under an existing
-# Monitor program like RedBoot); FLOPPY startup (for writing
-# to a floppy disk, which can then be used for booting
-# on PCs with a standard BIOS), GRUB startup (for being booted
-# by the GRUB bootloader) ROM startup (for writing
-# straight to a boot ROM/Flash). ROM startup is experimental
-# at this time.
-#
-cdl_component CYG_HAL_STARTUP {
-    # Flavor: data
-    user_value GRUB
-    # value_source user
-    # Default value: RAM
-    # Legal values: "RAM" "FLOPPY" "ROM" "GRUB"
-
-    # The following properties are affected by this value
-    # option CYGBLD_BUILD_I386_ROMBOOT
-    #     Calculated:  CYG_HAL_STARTUP == "ROM" 
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGBLD_BUILD_GDB_STUBS
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGHWR_HAL_I386_PC_LOAD_HIGH
-    #     Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGHWR_HAL_I386_PC_LOAD_HIGH
-    #     Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # option CYGSEM_HAL_ROM_MONITOR
-    #     Requires:  CYG_HAL_STARTUP == "FLOPPY" || CYG_HAL_STARTUP == "ROM" || CYG_HAL_STARTUP == "GRUB" 
-    # 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 CYGBLD_BUILD_REDBOOT_BIN_FLOPPY
-    #     ActiveIf:  CYG_HAL_STARTUP == "FLOPPY" 
-    # option CYGBLD_BUILD_REDBOOT_BIN_ROM
-    #     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 
-};
-
-# Build ROM bootstrap code
-#
-cdl_option CYGBLD_BUILD_I386_ROMBOOT {
-    # Calculated value:  CYG_HAL_STARTUP == "ROM" 
-    #     CYG_HAL_STARTUP == GRUB
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Diagnostic serial port baud rate
-# This option selects the baud rate used for the diagnostic port.
-# Note: this should match the value chosen for the GDB port if the
-# diagnostic 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 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# GDB serial port baud rate
-# This option controls the baud rate used for the GDB connection.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values: 9600 19200 38400 57600 115200
-};
-
-# Number of communication channels on the board
-# This define the number of serial ports that will be used by the HAL.
-# Ports 0 and 1 equate to COM1 and COM2 and port 2 is the PC screen and
-# keyboard.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value:  CYGSEM_HAL_I386_PC_DIAG_SCREEN ? 3 : 2 
-    #     CYGSEM_HAL_I386_PC_DIAG_SCREEN == 1
-    #   --> 3
-    # Legal values: 1 to 3
-
-    # 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
-# On PCs with two 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 {
-    # 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 == 3
-};
-
-# Default console channel.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
-    # 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 == 3
-
-    # The following properties are affected by this value
-    # option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL
-    #     DefaultValue: CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT
-};
-
-# Diagnostic serial port
-# On PCs with two serial ports, this option
-# chooses which port will be used for diagnostic output.
-# Selecting port 2 will cause the PC screen to be used.
-#
-cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-    # 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 == 3
-};
-
-# Output to PC screen
-# This option enables use of the PC screen and keyboard as a
-# third virtual serial device.
-#
-cdl_option CYGSEM_HAL_I386_PC_DIAG_SCREEN {
-    # 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_HAL_VIRTUAL_VECTOR_COMM_CHANNELS
-    #     DefaultValue:  CYGSEM_HAL_I386_PC_DIAG_SCREEN ? 3 : 2 
-    # option CYGNUM_HAL_I386_PC_STARTUP_VIDEO_MODE
-    #     Requires:  !CYGSEM_HAL_I386_PC_DIAG_SCREEN 
-};
-
-# Load into higher memory (2MB)
-# This option enables building RAM applications
-# which have a start address outside of the area
-# used by redboot_GRUB.
-#
-cdl_option CYGHWR_HAL_I386_PC_LOAD_HIGH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  CYG_HAL_STARTUP == "RAM" || CYG_HAL_STARTUP == "GRUB" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # component CYGHWR_MEMORY_LAYOUT
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_LDI
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    # option CYGHWR_MEMORY_LAYOUT_H
-    #     Calculated:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-};
-
-# Memory layout
-#
-cdl_component CYGHWR_MEMORY_LAYOUT {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?   (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_ram_hi" :  "i386_pc_ram") :  CYG_HAL_STARTUP == "ROM"  ? "i386_pc_rom" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "i386_pc_grub_hi" :  "i386_pc_grub") :  "i386_pc_floppy" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: i386_pc_grub
-};
-
-# >
-# Memory layout linker script fragment
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.ldi>" :  "<pkgconf/mlt_i386_pc_ram.ldi>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.ldi>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.ldi>" :  "<pkgconf/mlt_i386_pc_grub.ldi>") :  "<pkgconf/mlt_i386_pc_floppy.ldi>" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_i386_pc_grub.ldi>
-};
-
-# Memory layout header file
-#
-cdl_option CYGHWR_MEMORY_LAYOUT_H {
-    # Calculated value:  CYG_HAL_STARTUP == "RAM"  ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_ram_hi.h>" :  "<pkgconf/mlt_i386_pc_ram.h>") :  CYG_HAL_STARTUP == "ROM"  ? "<pkgconf/mlt_i386_pc_rom.h>" :  CYG_HAL_STARTUP == "GRUB" ?  (CYGHWR_HAL_I386_PC_LOAD_HIGH ?  "<pkgconf/mlt_i386_pc_grub_hi.h>" :  "<pkgconf/mlt_i386_pc_grub.h>") :  "<pkgconf/mlt_i386_pc_floppy.h>" 
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYG_HAL_STARTUP == GRUB
-    #     CYGHWR_HAL_I386_PC_LOAD_HIGH == 0
-    # Flavor: data
-    # Current_value: <pkgconf/mlt_i386_pc_grub.h>
-};
-
-# <
-# <
-# i386 PC Motherboard Support
-# The i386 PC Motherboard HAL package provides the
-# support needed to run eCos binaries on an i386 PC
-# using a standard motherboard. This package provides
-# support for the standard PC devices: timers, interrupt
-# controller, serial ports, ASCII display, keyboard, PCI
-# bus etc. that are found on all PC compatible platforms.
-# It does not provide support for devices that may also be
-# found on modern motherboards, such as ethernet, sound and
-# video devices. These are supported by drivers elsewhere.
-#
-cdl_package CYGPKG_HAL_I386_PCMB {
-    # 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_IO_SERIAL_I386_PC
-    #     ActiveIf: CYGPKG_HAL_I386_PCMB
-};
-
-# >
-# Real-time clock constants.
-# The RTC period is based on the clock input
-# to the 8254, which is 1193180 Hz.
-# CYGNUM_HAL_RTC_PERIOD is set for 100 ticks
-# per second.
-#
-cdl_component CYGNUM_HAL_RTC_CONSTANTS {
-    # There is no associated value.
-};
-
-# >
-# Real-time clock numerator
-#
-cdl_option CYGNUM_HAL_RTC_NUMERATOR {
-    # Flavor: data
-    user_value 1000000000
-    # value_source user
-    # Default value: 1000000000
-};
-
-# Real-time clock denominator
-#
-cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
-    # Flavor: data
-    user_value 1000
-    # value_source user
-    # Default value: 100
-};
-
-# Real-time clock period
-#
-cdl_option CYGNUM_HAL_RTC_PERIOD {
-    # Flavor: data
-    user_value 1193
-    # value_source user
-    # Default value: 11932
-};
-
-# <
-# Search entire PCI space
-# This option enables searching the entire PCI address space, including
-# up to 256 busses, etc.  Probably only useful when there are bridges or
-# other PCI expanding devices (such as a board with it's own PCI bus)
-# in the system.  If disabled, the system will revert to the default
-# PCI space size (typically 8 busses).
-#
-cdl_option CYGSEM_HAL_I386_PC_LARGE_PCI_SPACE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Switch the display to an alternative video mode
-# This option can be used when building RedBoot to switch
-# the display to a suitable mode, typically before running
-# an eCos graphical application. The mode switch involves
-# calling the PC Video BIOS, so needs to happen while the
-# processor is still running in real mode. Some information
-# about the video BIOS, the current mode, and the available
-# modes will be written to video memory so that the eCos
-# application knows what happened.
-# Different graphics cards use different numbers for the
-# various modes, so there is no simple way of knowing which
-# mode should be specified to achieve the desired resolution.
-# Instead RedBoot can be built with a suitable default, for
-# example 0x0100, and then a simple eCos application can be
-# built using an appropriate eCos configuration and
-# run to find out about all the available mode. RedBoot can
-# then be reconfigured and rebuilt to use a suitable mode.
-# The PC motherboard support package comes with a simple
-# eCos program gfxmode.c which can be used for this.
-#
-cdl_option CYGNUM_HAL_I386_PC_STARTUP_VIDEO_MODE {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_REDBOOT
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 0
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  !CYGSEM_HAL_I386_PC_DIAG_SCREEN 
-    #     CYGSEM_HAL_I386_PC_DIAG_SCREEN == 1
-    #   --> 0
-};
-
-#
-cdl_component CYGPKG_HAL_I386_PCMB_SMP_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint:  CYGPKG_HAL_SMP_SUPPORT 
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    #   --> 0
-
-    # Calculated value:  CYGPKG_HAL_SMP_SUPPORT 
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Support for gprof profiling
-# The PC HAL support can provide a profiling timer for use
-# by the gprof package. However the hardware only provides a
-# single source of timer interrupts so this must be shared
-# between the system clock and the profiling code. The current
-# implementation requires that the system clock be initialized
-# first (which happens in a static constructor with priority
-# CYG_INIT_CLOCK), then profiling can be enabled via a call
-# to profile_on().
-#
-cdl_option CYGFUN_HAL_I386_PCMB_GPROF_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_PROFILE_GPROF
-    #     CYGPKG_PROFILE_GPROF (unknown) == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-};
-
-# Enable PC screen support
-# This option enables support for the PC screen and
-# keyboard. These are combined into a virtual serial
-# device that may be used for diagnostic output.
-# Note that there is little point in trying to use it
-# as a debug channel.
-#
-cdl_interface CYGINT_HAL_I386_PCMB_SCREEN_SUPPORT {
-    # Implemented by CYGSEM_HAL_I386_PC_DIAG_SCREEN, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-};
-
-# <
-# <
-# <
-# I/O sub-system
-# doc: ref/io.html
-# The eCos system is supplied with a number of different
-# device drivers.  This option enables the basic I/O system
-# support which is the basis for all drivers.
-#
-cdl_package CYGPKG_IO {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL
-    #     ActiveIf: CYGPKG_IO
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_IO
-    # option CYGPKG_IO_FILEIO_DEVFS_SUPPORT
-    #     ActiveIf: CYGPKG_IO
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_IO
-};
-
-# >
-# Debug I/O sub-system
-# This option enables verbose messages to be displayed on the
-# system 'diag' device during I/O system initialization.
-#
-cdl_option CYGDBG_IO_INIT {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 0
-};
-
-# Basic support for file based I/O
-# This option control support for simple file I/O primitives. It is only
-# present if the FILEIO package is not included.
-#
-cdl_component CYGPKG_IO_FILE_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: !CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Number of open files
-# This option controls the number of open files.
-#
-cdl_option CYGPKG_IO_NFILE {
-    # This option is not active
-    # The parent CYGPKG_IO_FILE_SUPPORT is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-};
-
-# <
-# Serial device drivers
-# doc: ref/io.html
-# This option enables drivers for basic I/O services on
-# serial devices.
-#
-cdl_package CYGPKG_IO_SERIAL {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     ActiveIf: CYGPKG_IO_SERIAL
-    # package CYGPKG_IO_SERIAL_I386_PC
-    #     ActiveIf: CYGPKG_IO_SERIAL
-};
-
-# >
-# Support non-blocking read and write calls
-# This option enables extra code in the generic serial driver
-# which allows clients to switch read() and write() call
-# semantics from blocking to non-blocking.
-#
-cdl_option CYGOPT_IO_SERIAL_SUPPORT_NONBLOCKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Driver requires block transfer callback functions
-# Some low-level drivers can be optimized to transfer blocks
-# of data instead of a single character at a time. These usually
-# rely on a hardware FIFO of some sort.
-#
-cdl_interface CYGINT_IO_SERIAL_BLOCK_TRANSFER {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Serial driver supports line status
-#
-cdl_interface CYGINT_IO_SERIAL_LINE_STATUS_HW {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
-    # option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     DefaultValue:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
-};
-
-# Support line status callbacks
-# This option indicates that if the serial driver supports it,
-# serial line status and modem status information should be
-# propagated to higher layers via callbacks.
-#
-cdl_option CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_IO_SERIAL_LINE_STATUS_HW 
-    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 2
-    #   --> 1
-    # Requires:  CYGINT_IO_SERIAL_LINE_STATUS_HW > 0 
-    #     CYGINT_IO_SERIAL_LINE_STATUS_HW == 2
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-};
-
-# Flow control
-# This component contains options related to flow control.
-#
-cdl_component CYGPKG_IO_SERIAL_FLOW_CONTROL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE == 0
-    #     CYGOPT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-};
-
-# >
-# Software flow control
-# This component enables support of software flow control.
-#
-cdl_component CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
-    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-};
-
-# >
-# Start character
-# This option specifies the ascii character used to
-# indicate that transmission should start.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XON_CHAR {
-    # This option is not active
-    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 17
-    # value_source default
-    # Default value: 17
-    # Legal values: 0 to 255
-};
-
-# Stop character
-# This option specifies the ascii character used to
-# indicate that transmission should stop.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_XOFF_CHAR {
-    # This option is not active
-    # The parent CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 19
-    # value_source default
-    # Default value: 19
-    # Legal values: 0 to 255
-};
-
-# <
-# Hardware flow control
-# If the hardware supports it, this option allows hardware
-# flow control to be enabled. This may be in the form of
-# either or both of RTS/CTS, or DSR/DTR flow control.
-#
-cdl_option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-    # ActiveIf constraint:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 1
-    #   --> 0
-    # Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    #     CYGINT_IO_SERIAL_FLOW_CONTROL_HW == 0
-    #   --> 0
-    # Requires: CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
-    #     CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_FLOW_CONTROL
-    #     Requires: (CYGOPT_IO_SERIAL_FLOW_CONTROL_SOFTWARE || CYGOPT_IO_SERIAL_FLOW_CONTROL_HW)
-};
-
-# Serial h/w supports hardware flow control
-#
-cdl_interface CYGINT_IO_SERIAL_FLOW_CONTROL_HW {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     ActiveIf:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     Requires:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 
-    # option CYGOPT_IO_SERIAL_FLOW_CONTROL_HW
-    #     DefaultValue:  CYGINT_IO_SERIAL_FLOW_CONTROL_HW > 0 ?  CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS : 0 
-};
-
-# Default flow control method
-# This option allows a default flow control method
-# to be defined. Combinations of flow control methods
-# may also be set, but this is only possible by
-# using the cyg_io_set_config() API in source code.
-#
-cdl_option CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value NONE
-    # value_source default
-    # Default value: NONE
-    # Legal values:  "NONE" "XONXOFF" "RTSCTS" "DSRDTR" 
-};
-
-# Rx flow control low water mark
-# This sets the water mark used for determining
-# when to disable flow control, expressed
-# as a percentage of the buffer size. When the
-# receive buffer size is lower than this percentage,
-# if the transmitter had previously been throttled, it
-# will now be informed it can restart.
-#
-cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 33
-    # value_source default
-    # Default value: 33
-    # Legal values: 1 to 100
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
-    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-};
-
-# Rx flow control high water mark
-# This sets the water mark used for determining
-# when to enable flow control, expressed
-# as a percentage of the buffer size. When the
-# receive buffer size exceeds this percentage,
-# signals are sent to the transmitter to tell it
-# to throttle tranmission.
-#
-cdl_option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_FLOW_CONTROL is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 66
-    # value_source default
-    # Default value: 66
-    # Legal values: 1 to 100
-    # Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT == 0
-    #     CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT
-    #     Requires:  CYGNUM_IO_SERIAL_FLOW_CONTROL_HIGH_WATER_PERCENT >=  CYGNUM_IO_SERIAL_FLOW_CONTROL_LOW_WATER_PERCENT 
-};
-
-# <
-# TTY-mode serial device drivers
-# This option enables a simple terminal-like device driver 
-# that can be used for serial devices that interact with humans,
-# such as a system console.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# HAL/diag serial device driver
-# This option enables the use of the HAL diagnostic channel
-# via the standard I/O drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_HALDIAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-};
-
-# Console device name
-# This option selects the TTY device to use for the console.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_CONSOLE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ttydiag\""
-    # value_source default
-    # Default value: "\"/dev/ttydiag\""
-
-    # The following properties are affected by this value
-    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
-    #     DefaultValue:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-    # option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE
-    #     DefaultValue:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-};
-
-# TTY mode HAL/diag channel
-# This option causes '/dev/ttydiag' to be included in the standard
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTYDIAG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# TTY mode channel #0
-# This option causes '/dev/tty0' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #0 device
-# This option selects the physical device to use for 
-# '/dev/tty0'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY0_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY0 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-};
-
-# <
-# TTY mode channel #1
-# This option causes '/dev/tty1' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #1 device
-# This option selects the physical device to use for 
-# '/dev/tty1'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY1_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# <
-# TTY mode channel #2
-# This option causes '/dev/tty2' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY2 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #2 device
-# This option selects the physical device to use for 
-# '/dev/tty2'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY2_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY2 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser2\""
-    # value_source default
-    # Default value: "\"/dev/ser2\""
-};
-
-# <
-# TTY mode channel #3
-# This option causes '/dev/tty3' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TTY_TTY3 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# TTY mode channel #3 device
-# This option selects the physical device to use for 
-# '/dev/tty3'.
-#
-cdl_option CYGDAT_IO_SERIAL_TTY_TTY3_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TTY_TTY3 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser3\""
-    # value_source default
-    # Default value: "\"/dev/ser3\""
-};
-
-# <
-# <
-# Termios compatible TTY drivers
-# This option enables terminal drivers compatible with
-# POSIX termios.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    #     CYGPKG_ISOINFRA == current
-    #     CYGPKG_IO_FILEIO == current
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# Interface for termios tty driver file enabling
-#
-cdl_interface CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY {
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2, active, disabled
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY
-    #     ActiveIf:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
-};
-
-# Build termios tty driver file
-#
-cdl_option CYGBLD_IO_SERIAL_TERMIOS_TERMIOS_TTY {
-    # This option is not active
-    # ActiveIf constraint:  CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY > 0 
-    #     CYGINT_IO_SERIAL_TERMIOS_TERMIOS_TTY == 0
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Termios TTY channel #0
-# This option causes '/dev/termios0' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #0 device
-# This option selects the physical device to use for 
-# '/dev/termios0'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS0_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS0 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-};
-
-# <
-# Termios TTY channel #1
-# This option causes '/dev/termios1' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #1 device
-# This option selects the physical device to use for 
-# '/dev/termios1'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS1_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS1 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# <
-# Termios TTY channel #2
-# This option causes '/dev/termios2' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #2 device
-# This option selects the physical device to use for 
-# '/dev/termios2'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS2_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS2 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser2\""
-    # value_source default
-    # Default value: "\"/dev/ser2\""
-};
-
-# <
-# Termios TTY channel #3
-# This option causes '/dev/termios3' to be included in the standard 
-# drivers.
-#
-cdl_component CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Termios TTY channel #3 device
-# This option selects the physical device to use for 
-# '/dev/termios3'.
-#
-cdl_option CYGDAT_IO_SERIAL_TERMIOS_TERMIOS3_DEV {
-    # This option is not active
-    # The parent CYGPKG_IO_SERIAL_TERMIOS_TERMIOS3 is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser3\""
-    # value_source default
-    # Default value: "\"/dev/ser3\""
-};
-
-# <
-# Support signals
-# This option selects whether those parts of the termios
-# interface involving signals is supported. This includes
-# BRKINT mode, the INTR and QUIT characters, and whether
-# SIGHUP is sent on terminal close.
-#
-cdl_option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_IMPL
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-};
-
-# <
-# Hardware serial device drivers
-# This option enables the hardware device drivers
-# for the current platform.
-#
-cdl_component CYGPKG_IO_SERIAL_DEVICES {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_IO_SERIAL_TESTS
-    #     Calculated:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2" : "" 
-};
-
-# >
-# 16x5x generic serial device drivers
-# This option enables the serial device drivers for the
-# 16x5x compatiple controllers.
-#
-cdl_package CYGPKG_IO_SERIAL_GENERIC_16X5X {
-    # 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_SERIAL
-    #     CYGPKG_IO_SERIAL == current
-    #   --> 1
-    # ActiveIf constraint: CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
-    #     CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED == 2
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Per channel interrupt priority support
-# A platform should implement this interface if it supports
-# per channel interrupt priorities. If a platform implements
-# this interface it needs to provide an interrupt priority
-# value for each UART channel it supports.
-#
-cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_CHAN_INTPRIO {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-};
-
-# Transmission require priming
-# This option should be switched on when enabling THRE interrupt
-# does not generate interrupt unless bytes are posted to the FIFO.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# 16x5x FIFO support
-# Options to configure the FIFO on a 16550 (or above) variant.
-#
-cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Threshold for RX interrupt on 16550 FIFO
-# This options configures the threshold value at which
-# the RX interrupt occurs when a FIFO is used. (16550 and
-# above only), this may be after 1, 4, 8 or 14 characters.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO_RX_THRESHOLD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values:  14 8 4 1 
-};
-
-# 16x5x TX FIFO size
-# Configures the maximum number of bytes written to the
-# 16x5x UART transmit FIFO when the TX interrupt occurs.
-#
-cdl_option CYGNUM_IO_SERIAL_GENERIC_16X5X_FIFO_TX_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-};
-
-# <
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building these serial device drivers. These flags are
-# used in addition to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_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 these serial device drivers. These flags are
-# removed from the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# PC serial device drivers
-# This option enables the serial device drivers for the
-# PC.
-#
-cdl_package CYGPKG_IO_SERIAL_I386_PC {
-    # 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_SERIAL
-    #     CYGPKG_IO_SERIAL == current
-    #   --> 1
-    # ActiveIf constraint: CYGPKG_HAL_I386_PCMB
-    #     CYGPKG_HAL_I386_PCMB == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Generic 16x5x serial driver required
-#
-cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED {
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL0, active, enabled
-    # Implemented by CYGPKG_IO_SERIAL_I386_PC_SERIAL1, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 2
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     ActiveIf: CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
-};
-
-# PC serial port 0 driver
-# This option includes the serial device driver for port 0 on the 
-# PC.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_SERIAL0 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_SERIAL_I386_PC_TESTING
-    #     ActiveIf: CYGPKG_IO_SERIAL_I386_PC_SERIAL0
-};
-
-# >
-# Device name for PC serial port 0
-# This option specifies the device name port 0 on the PC.
-#
-cdl_option CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value: "\"/dev/ser0\""
-
-    # The following properties are affected by this value
-    # option CYGPRI_SER_TEST_SER_DEV
-    #     DefaultValue:  CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME 
-};
-
-# Baud rate for the PC serial port 0 driver
-# This option specifies the default baud rate (speed) for the
-# PC port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600
-    #                           4800 7200 9600 14400 19200 38400 57600 115200 230400
-    #             
-};
-
-# Buffer size for the PC serial port 0 driver
-# This option specifies the size of the internal buffers used
-# for the PC port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 0 to 8192
-};
-
-# I/O base address for the i386-PC serial port 0
-# This option specifies the I/O address of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IOBASE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000003F8
-    # value_source default
-    # Default value: 0x000003F8
-    # Legal values: 0 to 0xFF8
-};
-
-# IRQ for the i386-PC serial port 0
-# This option specifies the IRQ of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 0 to 15
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_INT
-    #     DefaultValue:  CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ + 32 
-};
-
-# INT for the i386-PC serial port 0
-# This option specifies the interrupt vector of the 8250 or 16550 for serial port 0.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL0_INT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 36
-    # value_source default
-    # Default value:  CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ + 32 
-    #     CYGNUM_IO_SERIAL_I386_PC_SERIAL0_IRQ == 4
-    #   --> 36
-    # Legal values: 32 to 47
-};
-
-# <
-# PC serial port 1 driver
-# This option includes the serial device driver for port 1 on
-# the PC.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_SERIAL1 {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Device name for PC serial port 1
-# This option specifies the device name port 1 on the PC.
-#
-cdl_option CYGDAT_IO_SERIAL_I386_PC_SERIAL1_NAME {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser1\""
-    # value_source default
-    # Default value: "\"/dev/ser1\""
-};
-
-# Baud rate for the PC serial port 1 driver
-# This option specifies the default baud rate (speed) for the
-# PC port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_BAUD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 38400
-    # value_source default
-    # Default value: 38400
-    # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600
-    #                           4800 7200 9600 14400 19200 38400 57600 115200 230400
-    #             
-};
-
-# Buffer size for the PC serial port 1 driver
-# This option specifies the size of the internal buffers used
-# for the PC port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 0 to 8192
-};
-
-# I/O base address for the i386-PC serial port 1
-# This option specifies the I/O address of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IOBASE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x000002F8
-    # value_source default
-    # Default value: 0x000002F8
-    # Legal values: 0 to 0xFF8
-};
-
-# IRQ for the i386-PC serial port 1
-# This option specifies the IRQ of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3
-    # value_source default
-    # Default value: 3
-    # Legal values: 0 to 15
-
-    # The following properties are affected by this value
-    # option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_INT
-    #     DefaultValue:  CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ + 32 
-};
-
-# INT for the i386-PC serial port 1
-# This option specifies the interrupt vector of the 8250 or 16550 for serial port 1.
-#
-cdl_option CYGNUM_IO_SERIAL_I386_PC_SERIAL1_INT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 35
-    # value_source default
-    # Default value:  CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ + 32 
-    #     CYGNUM_IO_SERIAL_I386_PC_SERIAL1_IRQ == 3
-    #   --> 35
-    # Legal values: 32 to 47
-};
-
-# <
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building these serial device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_I386_PC_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 these serial device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_I386_PC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# Testing parameters
-#
-cdl_component CYGPKG_IO_SERIAL_I386_PC_TESTING {
-    # ActiveIf constraint: CYGPKG_IO_SERIAL_I386_PC_SERIAL0
-    #     CYGPKG_IO_SERIAL_I386_PC_SERIAL0 == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Serial device used for testing
-#
-cdl_option CYGPRI_SER_TEST_SER_DEV {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ser0\""
-    # value_source default
-    # Default value:  CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME 
-    #     CYGDAT_IO_SERIAL_I386_PC_SERIAL0_NAME == "\"/dev/ser0\""
-    #   --> "\"/dev/ser0\""
-};
-
-# <
-# <
-# <
-# Build extra serial tests
-# This option enables the building of some extra tests which
-# can be used when testing / debugging serial drivers. These
-# are not built by default since they do not use the dedicated
-# testing infrastructure.
-#
-cdl_option CYGBLD_IO_SERIAL_EXTRA_TESTS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Serial device driver build options
-# Package specific build options including control over
-# compiler flags used only in building this package,
-# and details of which tests are built.
-#
-cdl_component CYGPKG_IO_SERIAL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the serial device drivers. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_SERIAL_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the serial device drivers. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_SERIAL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Serial device driver tests
-# This option specifies the set of tests for the serial device drivers.
-#
-cdl_option CYGPKG_IO_SERIAL_TESTS {
-    # Calculated value:  CYGPKG_IO_SERIAL_DEVICES ? "tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2" : "" 
-    #     CYGPKG_IO_SERIAL_DEVICES == 1
-    # Flavor: data
-    # Current_value: tests/serial1 tests/serial2 tests/serial3 tests/serial4 tests/serial5 tests/tty1 tests/tty2 tests/flow1 tests/flow2
-};
-
-# <
-# Enable serial device select support
-# This option enables support for the select() API function on all
-# serial devices.
-#
-cdl_option CYGPKG_IO_SERIAL_SELECT_SUPPORT {
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGFUN_IO_FILEIO_SELECT == 1 
-    #     CYGFUN_IO_FILEIO_SELECT == 1
-    #   --> 1
-};
-
-# Serial testing specification
-#
-cdl_component CYGPKG_IO_SERIAL_TEST_SPECS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Skip 9600 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_9600 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 14400 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_14400 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 19200 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_19200 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 38400 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_38400 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 57600 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_57600 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 115200 baud testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_115200 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip even-parity testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_EVEN {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip odd-parity testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_PARITY_ODD {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Skip 2-stop bit testing
-#
-cdl_interface CYGINT_IO_SERIAL_TEST_SKIP_STOP_2 {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# <
-# <
-# PCI configuration library
-# doc: ref/io-pci.html
-# The PCI configuration library provides initialization of devices
-# on the PCI bus. Functions to find and access these devices are
-# also provided.
-#
-cdl_package CYGPKG_IO_PCI {
-    # 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
-};
-
-# >
-# PCI 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_PCI_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the PCI configuration library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_PCI_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 PCI configuration library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_PCI_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Enable debugging.
-# This option enables minimal debugging of the PCI library.
-# In particular, it will print information about devices as the
-# PCI bus is being scanned/searched.
-#
-cdl_option CYGPKG_IO_PCI_DEBUG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# PCI tests
-# This option specifies the set of tests for the PCI configuration library.
-#
-cdl_option CYGPKG_IO_PCI_TESTS {
-    # Calculated value:  "tests/pci1 tests/pci2" 
-    # Flavor: data
-    # Current_value: tests/pci1 tests/pci2
-};
-
-# Writeback Interrupt Line register.
-# This option causes a PCI device interrupt vector to be
-# written to the Interrupt Line register in config space.
-# This is traditionally done by a BIOS so that device
-# drivers can read the interrupt vector directly from
-# device configuration space.
-#
-cdl_option CYGPKG_IO_PCI_CONFIGURE_INTLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# <
-# Infrastructure
-# Common types and useful macros.
-# Tracing and assertion facilities.
-# Package startup options.
-#
-cdl_package CYGPKG_INFRA {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # package CYGPKG_HAL
-    #     Requires: CYGPKG_INFRA
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-};
-
-# >
-# 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
-    # component CYGFUN_KERNEL_THREADS_STACK_CHECKING
-    #     ActiveIf: CYGPKG_INFRA_DEBUG
-    # component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT
-    #     DefaultValue:  0 != CYGPKG_INFRA_DEBUG 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# >
-# Use asserts
-# If this option is defined, asserts in the code are tested.
-# Assert functions (CYG_ASSERT()) are defined in
-# 'include/cyg/infra/cyg_ass.h' within the 'install' tree.
-# If it is not defined, these result in no additional
-# object code and no checking of the asserted conditions.
-#
-cdl_component CYGDBG_USE_ASSERTS {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    #     CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # component CYGFUN_KERNEL_THREADS_STACK_CHECKING
-    #     ActiveIf: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     Requires: CYGDBG_USE_ASSERTS
-    # option CYGDBG_MEMALLOC_ALLOCATOR_DLMALLOC_DEBUG
-    #     DefaultValue:  0 != CYGDBG_USE_ASSERTS 
-    # option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL
-    #     Requires: CYGDBG_USE_ASSERTS
-};
-
-# >
-# Preconditions
-# This option allows individual control of preconditions.
-# A precondition is one type of assert, which it is
-# useful to control separately from more general asserts.
-# The function is CYG_PRECONDITION(condition,msg).
-#
-cdl_option CYGDBG_INFRA_DEBUG_PRECONDITIONS {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Postconditions
-# This option allows individual control of postconditions.
-# A postcondition is one type of assert, which it is
-# useful to control separately from more general asserts.
-# The function is CYG_POSTCONDITION(condition,msg).
-#
-cdl_option CYGDBG_INFRA_DEBUG_POSTCONDITIONS {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Loop invariants
-# This option allows individual control of loop invariants.
-# A loop invariant is one type of assert, which it is
-# useful to control separately from more general asserts,
-# particularly since a loop invariant is typically evaluated
-# a great many times when used correctly.
-# The function is CYG_LOOP_INVARIANT(condition,msg).
-#
-cdl_option CYGDBG_INFRA_DEBUG_LOOP_INVARIANTS {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use assert text
-# All assertions within eCos contain a text message
-# which should give some information about the condition
-# being tested.
-# These text messages will end up being embedded in the
-# application image and hence there is a significant penalty
-# in terms of image size.
-# It is possible to suppress the use of these messages by
-# disabling this option.
-# This results in smaller code size, but there is less
-# human-readable information if an assertion actually gets
-# triggered.
-#
-cdl_option CYGDBG_INFRA_DEBUG_ASSERT_MESSAGE {
-    # This option is not active
-    # The parent CYGDBG_USE_ASSERTS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Use tracing
-# If this option is defined, tracing operations
-# result in output or logging, depending on other options.
-# This may have adverse effects on performance, if the time
-# taken to output message overwhelms the available CPU
-# power or output bandwidth.
-# Trace functions (CYG_TRACE()) are defined in
-# 'include/cyg/infra/cyg_trac.h' within the 'install' tree.
-# If it is not defined, these result in no additional
-# object code and no trace information.
-#
-cdl_component CYGDBG_USE_TRACING {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    #     CYGINT_INFRA_DEBUG_TRACE_IMPL == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT_ON_ASSERT
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # option CYGDBG_KERNEL_TRACE_TIMESLICE
-    #     ActiveIf: CYGDBG_USE_TRACING
-    # component CYGPKG_LIBM_TRACE
-    #     Requires: CYGDBG_USE_TRACING
-};
-
-# >
-# Trace function reports
-# This option allows individual control of
-# function entry/exit tracing, independent of
-# more general tracing output.
-# This may be useful to remove clutter from a
-# trace log.
-#
-cdl_option CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS {
-    # This option is not active
-    # The parent CYGDBG_USE_TRACING is not active
-    # The parent CYGDBG_USE_TRACING is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Use trace text
-# All trace calls within eCos contain a text message
-# which should give some information about the circumstances.
-# These text messages will end up being embedded in the
-# application image and hence there is a significant penalty
-# in terms of image size.
-# It is possible to suppress the use of these messages by
-# disabling this option.
-# This results in smaller code size, but there is less
-# human-readable information available in the trace output,
-# possibly only filenames and line numbers.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_MESSAGE {
-    # This option is not active
-    # The parent CYGDBG_USE_TRACING is not active
-    # The parent CYGDBG_USE_TRACING is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Trace output implementations
-#
-cdl_interface CYGINT_INFRA_DEBUG_TRACE_IMPL {
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY, inactive, disabled
-    # Implemented by CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER, inactive, enabled
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # component CYGDBG_USE_ASSERTS
-    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-    # component CYGDBG_USE_TRACING
-    #     Requires:  1 == CYGINT_INFRA_DEBUG_TRACE_IMPL 
-};
-
-# Null output
-# A null output module which is useful when
-# debugging interactively; the output routines
-# can be breakpointed rather than have them actually
-# 'print' something.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_NULL {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Simple output
-# An output module which produces simple output
-# from tracing and assertion events.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_TRACE_TIMESLICE
-    #     Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
-};
-
-# Fancy output
-# An output module which produces fancy output
-# from tracing and assertion events.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_TRACE_TIMESLICE
-    #     Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
-};
-
-# Buffered tracing
-# An output module which buffers output
-# from tracing and assertion events. The stored
-# messages are output when an assert fires, or
-# CYG_TRACE_PRINT() (defined in <cyg/infra/cyg_trac.h>)
-# is called.
-# Of course, there will only be stored messages
-# if tracing per se (CYGDBG_USE_TRACING)
-# is enabled above.
-#
-cdl_component CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER {
-    # This option is not active
-    # The parent CYGPKG_INFRA_DEBUG is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Trace buffer size
-# The size of the trace buffer. This counts the number
-# of trace records stored. When the buffer fills it
-# either wraps, stops recording, or generates output.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 5 to 65535
-};
-
-# Wrap trace buffer when full
-# When the trace buffer has filled with records it
-# starts again at the beginning. Hence only the last
-# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
-# be recorded.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_WRAP {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Halt trace buffer when full
-# When the trace buffer has filled with records it
-# stops recording. Hence only the first
-# CYGDBG_INFRA_DEBUG_TRACE_BUFFER_SIZE messages will
-# be recorded.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_HALT {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Print trace buffer when full
-# When the trace buffer has filled with records it
-# prints the contents of the buffer. The buffer is then
-# emptied and the system continues.
-#
-cdl_option CYGDBG_INFRA_DEBUG_TRACE_BUFFER_PRINT {
-    # This option is not active
-    # The parent CYGDBG_INFRA_DEBUG_TRACE_ASSERT_BUFFER is not active
-    # ActiveIf constraint: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # 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 0
-    # value_source default
-    # Default value:  CYGINT_ISO_EXIT == 0 
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 0
-    # Requires: !CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 0
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -Werror") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    #   --> 0
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires:  is_substr(CYGBLD_GLOBAL_CFLAGS, " -pipe") 
-    #     CYGBLD_GLOBAL_CFLAGS == "-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual -Wno-write-strings  -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions "
-    #   --> 0
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# <
-# eCos kernel
-# doc: ref/kernel.html
-# This package contains the core functionality of the eCos
-# kernel. It relies on functionality provided by various HAL
-# packages and by the eCos infrastructure. In turn the eCos
-# kernel provides support for other packages such as the device
-# drivers and the uITRON compatibility layer.
-#
-cdl_package CYGPKG_KERNEL {
-    # 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 CYGFUN_HAL_COMMON_KERNEL_SUPPORT
-    #     Requires: CYGPKG_KERNEL
-    # option CYGFUN_HAL_COMMON_KERNEL_SUPPORT
-    #     DefaultValue: CYGPKG_KERNEL
-    # option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
-    #     DefaultValue:  CYGPKG_KERNEL ? 4096 : 32768 
-    # option CYGSEM_MEMALLOC_ALLOCATOR_FIXED_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_MEMALLOC_ALLOCATOR_VARIABLE_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_THREADAWARE
-    #     Requires: CYGPKG_KERNEL
-    # option CYGSEM_MEMALLOC_ALLOCATOR_SEPMETA_THREADAWARE
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGFUN_MEMALLOC_KAPI
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_I18N_PER_THREAD_MB
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_SIGNALS_THREAD_SAFE
-    #     Requires: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT
-    #     DefaultValue:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     Requires: CYGPKG_KERNEL
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     DefaultValue:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_EXIT_STOPS_SYSTEM
-    #     Requires: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGPKG_WALLCLOCK_EMULATE
-    #     Requires: CYGPKG_KERNEL
-    # option CYGIMP_WALLCLOCK_NONE
-    #     DefaultValue:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    # option CYGPKG_IO_WALLCLOCK_TESTS
-    #     Calculated:  CYGPKG_KERNEL ? "tests/wallclock tests/wallclock2" : "" 
-    # package CYGPKG_POSIX
-    #     Requires: CYGPKG_KERNEL
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires: CYGPKG_KERNEL
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGPKG_KERNEL
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGPKG_KERNEL
-    # option CYGFUN_IO_FILEIO_SELECT
-    #     ActiveIf: CYGPKG_KERNEL
-    # option CYGPKG_IO_FILEIO_SOCKET_SUPPORT
-    #     ActiveIf: CYGPKG_KERNEL
-};
-
-# >
-# Kernel interrupt handling
-# doc: ref/kernel-interrupts.html
-# The majority of configuration options related to interrupt
-# handling are in the HAL packages, since usually the code has
-# to be platform-specific. There are a number of options
-# provided within the kernel related to slightly higher-level
-# concepts, for example Delayed Service Routines.
-#
-cdl_component CYGPKG_KERNEL_INTERRUPTS {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_INTR
-    #     ActiveIf: CYGPKG_KERNEL_INTERRUPTS
-};
-
-# >
-# Use delayed service routines (DSRs)
-# In eCos the recommended way to handle device interrupts is to
-# do a minimum amount of work inside the low level interrupt
-# handler itself, and instead do as much as possible in a
-# Delayed Service Routine or DSR. If an application does not
-# make use of DSRs directly or indirectly then it is possible
-# to disable the DSR support completely, which reduces the
-# overheads of context switches and interrupt handling. Note
-# that the kernel real-time clock makes use of DSRs, as do many
-# of the device drivers. 
-#
-cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS {
-    # 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 CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     Requires: CYGIMP_KERNEL_INTERRUPTS_DSRS
-};
-
-# >
-#
-cdl_interface CYGINT_KERNEL_INTERRUPTS_DSRS {
-    # Implemented by CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST, active, enabled
-    # Implemented by CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_KERNEL_INTERRUPTS_DSRS
-    #     CYGINT_KERNEL_INTERRUPTS_DSRS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_KERNEL_INTERRUPTS_DSRS
-    #     Requires: 1 == CYGINT_KERNEL_INTERRUPTS_DSRS
-};
-
-# Use linked lists for DSRs
-# When DSR support is enabled the kernel must keep track of all
-# the DSRs that are pending. This information can be kept in a
-# fixed-size table or in a linked list. The list implementation
-# requires that the kernel disable interrupts for a very short
-# period of time outside interrupt handlers, but there is no
-# possibility of a table overflow occurring.
-#
-cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Schedule DSRs in FIFO order
-# When this option is set, DSRs are scheduled
-# in the natural FIFO (first in, first out) order,
-# otherwise they are scheduled in LIFO (last in, first
-# out) order. Applications should not rely on any
-# particular order of scheduling of DSRs. LIFO
-# scheduling is kept for backward compatibility only and
-# is not recommended as it may lead to high (up to 2
-# times higher then FIFO) IRQ-to-DSR latencies at some
-# (typically rare) conditions. If unsure, leave this set.
-#
-cdl_option CYGSEM_KERNEL_INTERRUPTS_DSRS_LIST_FIFO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Use fixed-size table for DSRs
-# When DSR support is enabled the kernel must keep track of all
-# the DSRs that are pending. This information can be kept in a
-# fixed-size table or in a linked list. The table
-# implementation involves a very small risk of overflow at
-# run-time if a given interrupt source is able to have more
-# than one pending DSR. However it has the advantage that
-# the kernel does not need to disable interrupts outside
-# interrupt handlers.
-#
-cdl_component CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Number of entries in fixed-size DSR table
-# When DSR support is enabled the kernel must keep track of all
-# the DSRs that are pending. One approach involves a fixed-size
-# table, which involves a very small risk of overflow at
-# run-time. By increasing the table size it is possible to reduce
-# this risk.
-#
-cdl_option CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE {
-    # This option is not active
-    # The parent CYGIMP_KERNEL_INTERRUPTS_DSRS_TABLE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 2 to 1024
-};
-
-# <
-# 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_KERNEL_INTERRUPTS_CHAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-    #     CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN == 0
-    #   --> 0
-};
-
-# <
-# <
-# Exception handling
-# doc: ref/kernel-exceptions.html
-# In the context of the eCos kernel exceptions are unexpected
-# events detected by the hardware, for example an attempt to
-# execute an illegal instruction. There is no relation with
-# other forms of exception, for example the catch and throw
-# facilities of languages like C++. It is possible to disable
-# all support for exceptions and thus save some memory.
-#
-cdl_component CYGPKG_KERNEL_EXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_HAL_EXCEPTIONS
-    #     CYGPKG_HAL_EXCEPTIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_HAL_EXCEPTIONS
-    #     Requires: CYGPKG_KERNEL_EXCEPTIONS
-    # option CYGPKG_HAL_EXCEPTIONS
-    #     DefaultValue: CYGPKG_KERNEL_EXCEPTIONS
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires: CYGPKG_KERNEL_EXCEPTIONS
-};
-
-# >
-# Decode exception types in kernel
-# On targets where several different types of exception are
-# possible, for example executing an illegal instruction and
-# division by zero, it is possible for the kernel to do some
-# decoding of the exception type and deliver the different
-# types of exception to different handlers in the application
-# code. Alternatively the kernel can simply pass all
-# exceptions directly to application code, leaving the
-# decoding to be done by the application
-#
-cdl_option CYGSEM_KERNEL_EXCEPTIONS_DECODE {
-    # 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 CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS
-    #     Requires: CYGSEM_KERNEL_EXCEPTIONS_DECODE
-};
-
-# Use global exception handlers
-# In the context of the eCos kernel exceptions are
-# unexpected events detected by the hardware, for
-# example an attempt to execute an illegal
-# instruction. If the kernel is configured
-# to support exceptions then two implementations are
-# possible. The default implementation involves a single set
-# of exception handlers that are in use for the entire
-# system. The alternative implementation allows different
-# exception handlers to be specified for each thread.
-#
-cdl_option CYGSEM_KERNEL_EXCEPTIONS_GLOBAL {
-    # 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_LIBC_SIGNALS_HWEXCEPTIONS
-    #     Requires: CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
-};
-
-# <
-# Kernel schedulers
-# doc: ref/kernel-overview.html#KERNEL-OVERVIEW-SCHEDULERS
-# The eCos kernel provides a choice of schedulers. In addition
-# there are a number of configuration options to control the
-# detailed behaviour of these schedulers.
-#
-cdl_component CYGPKG_KERNEL_SCHED {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_SCHED
-    #     ActiveIf: CYGPKG_KERNEL_SCHED
-};
-
-# >
-# Number of schedulers in this configuration
-#
-cdl_interface CYGINT_KERNEL_SCHEDULER {
-    # Implemented by CYGSEM_KERNEL_SCHED_MLQUEUE, active, enabled
-    # Implemented by CYGSEM_KERNEL_SCHED_BITMAP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_KERNEL_SCHEDULER
-    #     CYGINT_KERNEL_SCHEDULER == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_KERNEL_SCHEDULER
-    #     Requires: 1 == CYGINT_KERNEL_SCHEDULER
-};
-
-# Non-zero if the active schedule only has unique priorities
-# Not all schedulers allow mutiple threads to use the same
-# priority. That property is signalled via this option, allowing
-# scheduler and tests to behave accordingly.
-#
-cdl_interface CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES {
-    # Implemented by CYGSEM_KERNEL_SCHED_BITMAP, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-
-    # The following properties are affected by this value
-    # component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL
-    #     Requires:  CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 
-};
-
-# Multi-level queue scheduler
-# The multi-level queue scheduler supports multiple priority
-# levels and multiple threads at each priority level.
-# Preemption between priority levels is automatic. Timeslicing
-# within a given priority level is controlled by a separate
-# configuration option.
-#
-cdl_component CYGSEM_KERNEL_SCHED_MLQUEUE {
-    # 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_KERNEL_SCHED_IMPL_HXX
-    #     Calculated:   CYGSEM_KERNEL_SCHED_BITMAP  ? "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ? "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ? "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler selected --!!!"
-    # component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL
-    #     ActiveIf:  CYGSEM_KERNEL_SCHED_MLQUEUE 
-    # option CYGDBG_KERNEL_INSTRUMENT_MLQ
-    #     ActiveIf: CYGSEM_KERNEL_SCHED_MLQUEUE
-    # option _POSIX_PRIORITY_SCHEDULING
-    #     Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-    # option _POSIX_THREAD_PRIORITY_SCHEDULING
-    #     Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-};
-
-# >
-# Output timeslices when tracing
-# When tracing is enabled, output trace messages every
-# timeslice. This can be quite verbose so is disabled by
-# default.
-#
-cdl_option CYGDBG_KERNEL_TRACE_TIMESLICE {
-    # This option 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
-    # Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE
-    #     CYGDBG_INFRA_DEBUG_TRACE_ASSERT_SIMPLE == 0
-    #   --> 1
-    # Requires: !CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY
-    #     CYGDBG_INFRA_DEBUG_TRACE_ASSERT_FANCY == 0
-    #   --> 1
-};
-
-# <
-# Bitmap scheduler
-# The bitmap scheduler supports multiple priority levels but
-# only one thread can exist at each priority level. This means
-# that scheduling decisions are very simple and hence the
-# scheduler is efficient. Preemption between priority levels is
-# automatic. Timeslicing within a given priority level is
-# irrelevant since there can be only one thread at each
-# priority level.
-#
-cdl_option CYGSEM_KERNEL_SCHED_BITMAP {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGPKG_KERNEL_SMP_SUPPORT
-    #     CYGPKG_KERNEL_SMP_SUPPORT == 0
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPRI_KERNEL_SCHED_IMPL_HXX
-    #     Calculated:   CYGSEM_KERNEL_SCHED_BITMAP  ? "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ? "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ? "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler selected --!!!"
-    # component CYGSEM_KERNEL_SCHED_TIMESLICE
-    #     Requires: !CYGSEM_KERNEL_SCHED_BITMAP
-    # option CYGDBG_KERNEL_INSTRUMENT_BITMAP
-    #     ActiveIf: CYGSEM_KERNEL_SCHED_BITMAP
-};
-
-# Scheduler header file
-# This option sets a preprocessor symbol which names the header
-# file for the selected scheduler.  It is used internally by the
-# common scheduler code to include the correct header file.
-#
-cdl_option CYGPRI_KERNEL_SCHED_IMPL_HXX {
-    # Calculated value:   CYGSEM_KERNEL_SCHED_BITMAP  ? "<cyg/kernel/bitmap.hxx>"  : CYGSEM_KERNEL_SCHED_MLQUEUE ? "<cyg/kernel/mlqueue.hxx>" : CYGSEM_KERNEL_SCHED_LOTTERY ? "<cyg/kernel/lottery.hxx>" : "!!!-- Configuration broken - no scheduler selected --!!!"
-    #     CYGSEM_KERNEL_SCHED_BITMAP == 0
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #     CYGSEM_KERNEL_SCHED_LOTTERY (unknown) == 0
-    # Flavor: data
-    # Current_value: <cyg/kernel/mlqueue.hxx>
-};
-
-# Number of priority levels
-# This option controls the number of priority levels that are
-# available. For some types of scheduler including the bitmap
-# scheduler this may impose an upper bound on the number of
-# threads in the system. For other schedulers such as the
-# mlqueue scheduler the number of threads is independent from
-# the number of priority levels. Note that the lowest priority
-# level is normally used only by the idle thread, although
-# application threads can run at this priority if necessary.
-#
-cdl_component CYGNUM_KERNEL_SCHED_PRIORITIES {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 1 to 32
-
-    # The following properties are affected by this value
-    # option CYGIMP_IDLE_THREAD_YIELD
-    #     ActiveIf: (CYGNUM_KERNEL_SCHED_PRIORITIES == 1)
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY
-    #     LegalValues: 0 to  CYGNUM_KERNEL_SCHED_PRIORITIES - 1 
-};
-
-# >
-# Bitmap size
-# This option automatically defines the size of bitmap
-# used to track occupied priority levels.
-#
-cdl_option CYGNUM_KERNEL_SCHED_BITMAP_SIZE {
-    # Calculated value: "CYGNUM_KERNEL_SCHED_PRIORITIES"
-    # Flavor: data
-    # Current_value: CYGNUM_KERNEL_SCHED_PRIORITIES
-};
-
-# Dequeue highest priority threads first
-# With this option enabled, threads queued in a thread queue
-# will be dequeued in priority order, rather than first in,
-# first out (FIFO). Threads of equal priority are dequeued
-# oldest first. The only exception is the scheduler run 
-# queues where order is less important as each is already
-# sorted by priority. Note that this makes the thread queueing
-# less deterministic.
-#
-cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires: CYGIMP_KERNEL_SCHED_SORTED_QUEUES
-};
-
-# <
-# Scheduler timeslicing
-# Some schedulers including the mlqueue scheduler support
-# timeslicing. This means that the kernel will check regularly
-# whether or not there is another runnable thread with the
-# same priority, and if there is such a thread there will be
-# an automatic context switch. Not all applications require
-# timeslicing, for example because every thread performs a
-# blocking operation regularly. For these applications it is
-# possible to disable timeslicing, which reduces the overheads
-# associated with timer interrupts.
-#
-cdl_component CYGSEM_KERNEL_SCHED_TIMESLICE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: !CYGSEM_KERNEL_SCHED_BITMAP
-    #     CYGSEM_KERNEL_SCHED_BITMAP == 0
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option _POSIX_THREADS
-    #     Requires: CYGSEM_KERNEL_SCHED_TIMESLICE
-};
-
-# >
-# Number of clock ticks between timeslices
-# Assuming timeslicing is enabled, how frequently should it
-# take place? The value of this option corresponds to the
-# number of clock ticks that should occur before a timeslice
-# takes place, so increasing the value reduces the frequency
-# of timeslices.
-#
-cdl_option CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 5
-    # value_source default
-    # Default value: 5
-    # Legal values: 1 to 65535
-};
-
-# Support runtime enable of timeslice per-thread
-# This option makes timslicing a per-thread runtime
-# option. When enabled, threads may have timeslicing
-# turned on or off dynamically. This is generally used
-# by higher level APIs (such as POSIX) to implement
-# differing scheduling policies.
-#
-cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: false
-    #     false (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE
-};
-
-# <
-# Enable ASR support
-# This component controls support for Asynchronous Service
-# Routines (ASRs). This is a function that may be called
-# from the scheduler when it has just exited the scheduler
-# lock. This is primarily for use by API compatibility layers.
-#
-cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: false
-    #     false (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGSEM_KERNEL_SCHED_ASR_SUPPORT
-};
-
-# >
-# Make ASR function global
-# This option controls whether the ASR function is shared by
-# all threads, or whether each thread may have its own ASR
-# function.
-#
-cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: true
-    #     true (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGSEM_KERNEL_SCHED_ASR_GLOBAL
-};
-
-# Make ASR data global
-# This option controls whether the ASR data is shared by
-# all threads, or whether each thread may have its own ASR
-# data. This is independent of the previous option because
-# it may be useful to pass per-thread data to a shared ASR
-# function.
-#
-cdl_option CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: true
-    #     true (unknown) == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: !CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL
-};
-
-# <
-# <
-# SMP support
-#
-cdl_component CYGPKG_KERNEL_SMP_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGPKG_HAL_SMP_SUPPORT
-    #     CYGPKG_HAL_SMP_SUPPORT == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGSEM_KERNEL_SCHED_BITMAP
-    #     Requires: !CYGPKG_KERNEL_SMP_SUPPORT
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# Counters and clocks
-# doc: ref/kernel-counters.html
-# The counter objects provided by the kernel provide an
-# abstraction of the clock facility that is generally provided.
-# Application code can associate alarms with counters, where an
-# alarm is identified by the number of ticks until it triggers,
-# the action to be taken on triggering, and whether or not the
-# alarm should be repeated.
-#
-cdl_component CYGPKG_KERNEL_COUNTERS {
-    # There is no associated value.
-};
-
-# >
-# Provide real-time clock
-# On all current target systems the kernel can provide a
-# real-time clock. This clock serves two purposes. First it is
-# necessary to support clock and alarm related functions.
-# Second it is needed to implement timeslicing in some of the
-# schedulers including the mlqueue scheduler. If the
-# application does not require any of these facilities then it
-# is possible to disable the real time clock support
-# completely.
-#
-cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGIMP_KERNEL_INTERRUPTS_DSRS
-    #     CYGIMP_KERNEL_INTERRUPTS_DSRS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGSEM_KERNEL_SCHED_TIMESLICE
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGNUM_KERNEL_COUNTERS_CLOCK_ISR_PRIORITY
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGFUN_KERNEL_THREADS_TIMER
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGDBG_KERNEL_INSTRUMENT_CLOCK
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGDBG_KERNEL_INSTRUMENT_ALARM
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGDBG_KERNEL_INSTRUMENT_SMP
-    #     ActiveIf: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # component CYGPKG_HAL_TESTS
-    #     Calculated:   "tests/context tests/basic"
-    #                           . ((!CYGINT_HAL_TESTS_NO_CACHES) ? " tests/cache" : "")
-    #                           . ((CYGPKG_HAL_BUILD_COMPILER_TESTS) ? " tests/cpp1 tests/vaargs" : "")
-    #                           . ((!CYGVAR_KERNEL_COUNTERS_CLOCK) ?   " tests/intr" : "") 
-    # option CYGSEM_LIBC_TIME_CLOCK_WORKING
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGFUN_HAL_I386_PCMB_GPROF_SUPPORT
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-};
-
-# Interrupt priority for the real-time clock
-# The implementation of the kernel's real-time clock typically
-# involves installing an interrupt handler on a suitable hardware
-# timer. This option controls the priority level used for that
-# interrupt. On most platforms the value is not important because 
-# the clock ISR leaves most of the work to be done by the DSR. 
-# However some processors have interrupt controllers with special
-# requirements for the interrupt priorities, in which case
-# application developers must be able to manipulate the clock's
-# priority.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_CLOCK_ISR_PRIORITY {
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  is_loaded(CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY) ?
-    #      	                      CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY : 1 
-    #     CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY (unknown) == 0
-    #     CYGNUM_HAL_KERNEL_COUNTERS_CLOCK_ISR_DEFAULT_PRIORITY (unknown) == 0
-    #   --> 1
-};
-
-#
-cdl_interface CYGINT_KERNEL_COUNTERS {
-    # Implemented by CYGIMP_KERNEL_COUNTERS_SINGLE_LIST, active, enabled
-    # Implemented by CYGIMP_KERNEL_COUNTERS_MULTI_LIST, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_KERNEL_COUNTERS
-    #     CYGINT_KERNEL_COUNTERS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_KERNEL_COUNTERS
-    #     Requires: 1 == CYGINT_KERNEL_COUNTERS
-};
-
-# Implement counters using a single list
-# There are two different implementations of the counter
-# objects. The first implementation stores all alarms in a
-# single linked list. The alternative implementation uses a
-# table of linked lists. A single list is more efficient in
-# terms of memory usage and is generally adequate when the
-# application only makes use of a small number of alarms.
-#
-cdl_option CYGIMP_KERNEL_COUNTERS_SINGLE_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Implement counters using a table of lists
-# There are two different implementations of the counter
-# objects. The first implementation stores all alarms in a
-# single linked list. The alternative implementation uses a
-# table of linked lists, with the size of the table being a
-# separate configurable option. For more complicated
-# operations it is better to have a table of lists since this
-# reduces the amount of computation whenever the timer goes
-# off. Assuming a table size of 8 (the default value) on
-# average the timer code will only need to check 1/8 of the
-# pending alarms instead of all of them.
-#
-cdl_component CYGIMP_KERNEL_COUNTERS_MULTI_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Size of counter list table
-# If counters are implemented using an array of linked lists
-# then this option controls the size of the array. A larger
-# size reduces the amount of computation that needs to take
-# place whenever the timer goes off, but requires extra
-# memory.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE {
-    # This option is not active
-    # The parent CYGIMP_KERNEL_COUNTERS_MULTI_LIST is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 1 to 1024
-};
-
-# <
-# Sort the counter list
-# Sorting the counter lists reduces the amount of work that
-# has to be done when a counter tick is processed, since the
-# next alarm to expire is always at the front of the list.
-# However, it makes adding an alarm to the list more expensive
-# since a search must be done for the correct place to put it.
-# Many alarms are used to implement timeouts, which seldom trigger,
-# so it is worthwhile optimizing this case. For this reason
-# sorted list are disabled by default.
-#
-cdl_option CYGIMP_KERNEL_COUNTERS_SORT_LIST {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Measure real-time [clock] interrupt latency
-# Measure the interrupt latency as seen by the real-time clock
-# timer interrupt.  This requires hardware support, defined by
-# the HAL_CLOCK_LATENCY() macro.
-#
-cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY
-    #     Requires: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    # option CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY
-    #     DefaultValue: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-};
-
-# Measure real-time [clock] DSR latency
-# Measure the DSR latency as seen by the real-time clock
-# timer interrupt.  This requires hardware support, defined by
-# the HAL_CLOCK_LATENCY() macro.
-#
-cdl_option CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY == 0
-    #   --> 0
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY == 0
-    #   --> 0
-};
-
-# RTC resolution
-# This option automatically defines the tuple which is used to
-# initialize the RTC resolution, consisting of a numerator and
-# denominator. The values of the numerator and denominator are
-# defined by the HAL.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION {
-    # Calculated value: "{CYGNUM_HAL_RTC_NUMERATOR, CYGNUM_HAL_RTC_DENOMINATOR}"
-    # Flavor: data
-    # Current_value: {CYGNUM_HAL_RTC_NUMERATOR, CYGNUM_HAL_RTC_DENOMINATOR}
-};
-
-# RTC period
-# This option defines the RTC period to be used in
-# setting the system clock hardware. It is essentially
-# an alias for CYGNUM_HAL_RTC_PERIOD, which is defined
-# in the HAL.
-#
-cdl_option CYGNUM_KERNEL_COUNTERS_RTC_PERIOD {
-    # Calculated value: "CYGNUM_HAL_RTC_PERIOD"
-    # Flavor: data
-    # Current_value: CYGNUM_HAL_RTC_PERIOD
-};
-
-# <
-# Thread-related options
-# There are a number of configuration options related to the
-# implementation of threads, for example whether or not the
-# eCos kernel supports per-thread data.
-#
-cdl_component CYGPKG_KERNEL_THREADS {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_THREAD
-    #     ActiveIf: CYGPKG_KERNEL_THREADS
-};
-
-# >
-# Allow per-thread timers
-# This option controls whether or not the kernel should support
-# per-thread clock and alarm related functions. Also some of
-# the synchronization primitives such as semaphore and
-# condition variable timed wait operations require per-thread
-# timer support. If none of these facilities are required then
-# the option can be disabled.
-#
-cdl_option CYGFUN_KERNEL_THREADS_TIMER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT
-    #     Requires: CYGFUN_KERNEL_THREADS_TIMER
-    # option CYGSEM_LIBC_TIME_CLOCK_WORKING
-    #     Requires: CYGFUN_KERNEL_THREADS_TIMER
-};
-
-# Support optional name for each thread
-# Threads may optionally be supplied with a name string that is
-# used to identify them during debugging. This name is only
-# present if `this option is defined. Disabling it reduces both
-# code and data size.
-#
-cdl_option CYGVAR_KERNEL_THREADS_NAME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Keep track of all threads using a linked list
-# Threads may optionally be placed on a housekeeping list so
-# that all threads may be located easily. This is useful mainly
-# in conjunction with source-level debugging.
-#
-cdl_option CYGVAR_KERNEL_THREADS_LIST {
-    # 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 CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING
-    #     Requires: CYGVAR_KERNEL_THREADS_LIST
-    # option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
-    #     Requires: CYGVAR_KERNEL_THREADS_LIST
-};
-
-# Keep track of the base of each thread's stack
-# This option makes the kernel keep track of the lower limit on
-# each thread's stack. It allows the kernel to adjust the lower
-# limit, thus making space for per-thread data. Note that it
-# does not imply any form of run-time stack overflow checking.
-#
-cdl_option CYGFUN_KERNEL_THREADS_STACK_LIMIT {
-    # 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 CYGVAR_KERNEL_THREADS_DATA
-    #     Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-};
-
-# Check thread stacks for overflows
-# This option enables a variety of checks for stack overflow
-# including signatures at the top and base of thread stacks,
-# which are asserted for correctness whenever a thread switches.
-#
-cdl_component CYGFUN_KERNEL_THREADS_STACK_CHECKING {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_INFRA_DEBUG
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-    # ActiveIf constraint: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Check all threads whenever possible
-# This option enables more active checking of all threads for
-# wrongdoing.  In theory, checking threads other than the old and new
-# executing threads in a thread-switch is pointless, because no other
-# thread has run, so no other stack can be exceeded.  But errors such
-# as memory scribbling, dangling pointers, overlapping use of store
-# or errors accessing objects adjacent to a stack which can be very
-# hard to find can be detected this way, saving debug time.
-#
-cdl_option CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING {
-    # This option is not active
-    # The parent CYGFUN_KERNEL_THREADS_STACK_CHECKING is not active
-
-    # 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_LIST
-    #     CYGVAR_KERNEL_THREADS_LIST == 1
-    #   --> 1
-};
-
-# Signature size in bytes, at stack top and bottom
-# This is the size of the area reserved for a signature at the top
-# and bottom of all stacks.  It also provides a buffer zone for
-# detecting overflow before external objects are corrupted, hence the
-# ability to vary it here.  But if you are short of stack, increasing
-# this value will make the overflow more, not less likely, of course.
-#
-cdl_option CYGNUM_KERNEL_THREADS_STACK_CHECK_DATA_SIZE {
-    # This option is not active
-    # The parent CYGFUN_KERNEL_THREADS_STACK_CHECKING is not active
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 8 to 512
-};
-
-# <
-# Measure stack usage
-# This option allows measurement of each thread's stack by initializing
-# it to a predefined value at thread creation time. Later use of the
-# cyg_thread_measure_stack_usage() function allows the maximum stack
-# usage of the thread so far to be obtained. Note that this is not
-# necessarily the true maximum stack usage that the thread will ever
-# use since all that has been measured is the stack usage corresponding
-# to the code path followed this time, and not the code path that may
-# be followed in future.
-#
-cdl_component CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_INFRA_DEBUG 
-    #     CYGPKG_INFRA_DEBUG == 0
-    #   --> 0
-};
-
-# >
-# Output stack usage on thread exit
-# This will output the measured stack usage on the diagnostic
-# output when a thread exits.
-#
-cdl_option CYGDBG_KERNEL_THREADS_STACK_MEASUREMENT_VERBOSE_EXIT {
-    # This option is not active
-    # The parent CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT 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 per-thread data
-# doc: ref/kernel-thread-data.html
-# It is possible for the kernel to support per-thread data, in
-# other words an area of memory specific to each thread which
-# can be used to store data for that thread. This per-thread
-# data can be used by applications or by other packages such as
-# the ISO C library.
-#
-cdl_component CYGVAR_KERNEL_THREADS_DATA {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-    #     CYGFUN_KERNEL_THREADS_STACK_LIMIT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_I18N_PER_THREAD_MB
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBC_I18N_PER_THREAD_MB
-    #     DefaultValue:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    # option CYGSEM_LIBC_PER_THREAD_RAND
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBC_STRING_PER_THREAD_STRTOK
-    #     DefaultValue: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option CYGSEM_ERROR_PER_THREAD_ERRNO
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-    # option _POSIX_THREADS
-    #     Requires: CYGVAR_KERNEL_THREADS_DATA
-};
-
-# >
-# Number of words of per-thread data
-# It is possible for the kernel to support per-thread data, in
-# other words an area of memory specific to each thread which
-# can be used to store data for that thread. This per-thread
-# data can be used by applications or by other packages such as
-# the ISO C library. This configuration option controls the
-# number of words of per-thread data that the kernel will
-# allow. In the current implementation a bitmask is used to identify
-# used per-thread data slots and so the maximum legal value must
-# remain 32.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 6
-    # value_source default
-    # Default value: 6
-    # Legal values: 4 to 32
-};
-
-# Bitmap of preallocated slots of thread data
-# Per thread data options. Per thread data support is based loosely
-# on that defined by POSIX. Each thread has an array of slots, up to
-# CYGNUM_KERNEL_THREADS_DATA_MAX, that may contain data. Some of the
-# slots have been preallocated to specific packages. Others may be
-# allocated dynamically.
-#
-cdl_component CYGNUM_KERNEL_THREADS_DATA_ALL {
-    # Calculated value: 15
-    # Flavor: data
-    # Current_value: 15
-};
-
-# >
-# Slot 0 preallocated for the kernel
-# This option defines the index of a per-thread data
-# slot which is reserved by
-# the eCos kernel
-# for private use.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_KERNEL {
-    # Calculated value: 0
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Slot 1 preallocated for uITRON
-# This option defines the index of a per-thread data
-# slot which is reserved by
-# the uITRON compatibility layer
-# for private use.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_ITRON {
-    # Calculated value: 1
-    # Flavor: data
-    # Current_value: 1
-};
-
-# Slot 2 preallocated for errno
-# This option defines the index of a per-thread data
-# slot which is reserved for use by an errno variable.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_ERRNO {
-    # Calculated value: 2
-    # Flavor: data
-    # Current_value: 2
-};
-
-# Slot 3 preallocated for POSIX
-# This option defines the index of a per-thread data
-# slot which is reserved by
-# POSIX
-# for private use.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DATA_POSIX {
-    # Calculated value: 3
-    # Flavor: data
-    # Current_value: 3
-};
-
-# <
-# <
-# Thread destructors
-# doc: ref/kernel-thread-destructors.html
-# This option enables support for registered destructor functions to
-# be called on thread exit.
-#
-cdl_component CYGPKG_KERNEL_THREADS_DESTRUCTORS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# Number of possible destructors
-# This option gives the number of possible destructors allowed.
-# Increasing this will increase the size of every
-# thread control structure if per-thread destructors are
-# enabled.
-#
-cdl_option CYGNUM_KERNEL_THREADS_DESTRUCTORS {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_THREADS_DESTRUCTORS is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 1 to 65535
-};
-
-# Per-thread destructors
-# Enabling this option makes the thread destructors a per-thread
-# property, with each thread having its own list of destructors.
-# Disabling this option makes the thread destructor list
-# global so all threads have the same destructors.
-#
-cdl_option CYGSEM_KERNEL_THREADS_DESTRUCTORS_PER_THREAD {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_THREADS_DESTRUCTORS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Stack size for the idle thread
-# This configuration option specifies the stack size in bytes
-# for the idle thread. Unless the HAL is configured to use a
-# separate interrupt stack this size must be sufficient to meet
-# the requirements of all interrupt handlers - these
-# requirements are cumulative if nested interrupted are
-# enabled. Depending on the target architecture, the stack size
-# typically has to be a multiple of eight or sixteen bytes.
-# This will be overridden where it is used if the
-# architectural HAL requires a minimum stack size
-# to handle interrupts correctly.
-#
-cdl_option CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 2048
-    # value_source default
-    # Default value: 2048
-    # Legal values: 512 to 65536
-};
-
-# Maximal suspend count
-# This option provides for an assertion that the count value for
-# counted thread suspends do not exceed set limits.  This is to help
-# with debugging, to allow a runaway loop, for example, to be
-# detected more easily.
-# If the option is not defined, no assert is included.  Whether asserts
-# are themselves included depends on infrastructure configury in
-# infra.h
-#
-cdl_option CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 500
-    # value_source default
-    # Default value: 500
-};
-
-# Maximal wake count
-# This option provides for an assertion that the count value for
-# counted thread wakeups do not exceed set limits.  This is to
-# help with debugging, to allow a runaaway loop, for example, to
-# be detected more easily.
-# If the option is not defined, no assert is included.  Whether asserts
-# are themselves included depends on infrastructure configury in
-# infra.h
-#
-cdl_option CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 500
-    # value_source default
-    # Default value: 500
-};
-
-# Idle thread must always yield
-# If the scheduler configuration only has a single priority
-# level, then the idle thread must yield each time around its loop.
-#
-cdl_option CYGIMP_IDLE_THREAD_YIELD {
-    # This option is not active
-    # ActiveIf constraint: (CYGNUM_KERNEL_SCHED_PRIORITIES == 1)
-    #     CYGNUM_KERNEL_SCHED_PRIORITIES == 32
-    #   --> 0
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# Synchronization primitives
-# The eCos kernel supports a number of different
-# synchronization primitives such as mutexes, semaphores,
-# condition variables, and message boxes. There are
-# configuration options to control the exact behaviour of some
-# of these synchronization primitives.
-#
-cdl_component CYGPKG_KERNEL_SYNCH {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-    # option CYGDBG_KERNEL_INSTRUMENT_MUTEX
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_CONDVAR
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_BINSEM
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_CNTSEM
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_MBOXT
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-    # option CYGDBG_KERNEL_INSTRUMENT_FLAG
-    #     ActiveIf: CYGPKG_KERNEL_SYNCH
-};
-
-# >
-# Priority inversion protection protocols
-# doc: ref/kernel-mutexes.html
-# This component controls the protocols used to protect mutexes against
-# priority inversion. If this option is enabled it defines which
-# algorithm is used to implement this protection. At present only
-# one such algorithm is defined: "SIMPLE". The implementation
-# will only work in the mlqueue scheduler, and it does not handle the
-# rare case of nested mutexes completely correctly. However it is
-# both fast and deterministic.
-#
-cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL {
-    # ActiveIf constraint:  CYGSEM_KERNEL_SCHED_MLQUEUE 
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 SIMPLE
-    # value_source default
-    # Default value: 1 SIMPLE
-    # Legal values:  "SIMPLE" 
-    # Requires:  CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0 
-    #     CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0
-    #   --> 1
-};
-
-# >
-# Enable priority inheritance protocol
-# This option enables priority inheritance protocol. This protocol
-# causes the owner of a mutex to be executed at the highest priority
-# of the threads waiting for access to the mutex.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT {
-    # 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_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT
-    #     DefaultValue:  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
-    #                             "INHERIT" :
-    #                             CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
-    #                             "CEILING" : "NONE" 
-    # option _POSIX_THREAD_PRIO_INHERIT
-    #     Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
-};
-
-# Enable priority ceiling protocol
-# This option enables priority ceiling protocol. This protocol
-# causes the owner of a mutex to be executed at a  priority
-# associated with the mutex.
-#
-cdl_component CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING {
-    # 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_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY
-    #     ActiveIf: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT
-    #     DefaultValue:  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
-    #                             "INHERIT" :
-    #                             CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
-    #                             "CEILING" : "NONE" 
-    # option _POSIX_THREAD_PRIO_PROTECT
-    #     Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-};
-
-# >
-# Default priority ceiling
-# This option defines the default priority ceiling to be
-# used if the chosen default priority inversion protocol is
-# priority ceoptioniling protocol. The default value for this is zero,
-# making all such mutexes boost threads to the maximum priority.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT_PRIORITY {
-    # ActiveIf constraint: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING == 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_KERNEL_SCHED_PRIORITIES - 1 
-    #     CYGNUM_KERNEL_SCHED_PRIORITIES == 32
-};
-
-# <
-# No priority inversion protocol
-# This option enables the ability to have no priority inversion protocol.
-# It is equivalent to disabling the priority inversion protocol at
-# the top level, but is necessary for the runtime and default
-# selection options.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Default priority inversion protocol
-# This option defines the default inversion protocol used for mutexes that
-# are created without an explicit protocol being specified. The protocol
-# chosen by default is to use priority inheritance if it is present otherwise
-# priority ceiling, or none if neither is present.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT {
-    # ActiveIf constraint:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-    #     CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT == 3
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value INHERIT
-    # value_source default
-    # Default value:  CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT ?
-    #                             "INHERIT" :
-    #                             CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING ?
-    #                             "CEILING" : "NONE" 
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT == 1
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING == 1
-    #   --> INHERIT
-    # Legal values:  "INHERIT" "CEILING" "NONE" 
-};
-
-# Specify mutex priority inversion protocol at runtime
-# This option controls whether the priority inversion protocol used by
-# a mutex can be specified when that mutex is created.
-#
-cdl_option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC {
-    # ActiveIf constraint:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-    #     CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT == 3
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Number of protocols selected
-#
-cdl_interface CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT {
-    # Implemented by CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT, active, enabled
-    # Implemented by CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING, active, enabled
-    # Implemented by CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_NONE, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 3
-
-    # The following properties are affected by this value
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DEFAULT
-    #     ActiveIf:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-    # option CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC
-    #     ActiveIf:  CYGINT_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_COUNT > 1 
-};
-
-# <
-# Use mboxt_plain mbox implementation
-# Use the plain mboxt implementation instead of the mboxt2
-# implementation. The mboxt2 version is designed to provide
-# semantics compatible with UITRON, the plain implementation
-# is adquate in most other situations.
-#
-cdl_option CYGIMP_MBOX_USE_MBOXT_PLAIN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Message box blocking put support
-# doc: ref/kernel-mail-boxes.html
-# Message boxes can support three different versions of the
-# put-message operation. The first is tryput(), which will fail
-# if the message box is already full. The other two are the
-# ordinary put() function which will block if the message box
-# is full, and a timed put() operation which will block for
-# upto a certain length of time if the message box is currently
-# full. The blocking versions require extra memory in the
-# message box data structure and extra code in the other
-# message box functions, so they can be disabled if the
-# application does not require them. If this option is enabled
-# then the system will always provide the blocking put()
-# function, and it will also provide the timed put() function
-# if thread timers are enabled.
-#
-cdl_option CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Message box queue size
-# doc: ref/kernel-mail-boxes.html
-# This configuration option controls the number of messages
-# that can be queued in a message box before a non-blocking
-# put() operation will fail or a blocking put() operation will
-# block. The cost in memory is one pointer per message box for
-# each possible message.
-#
-cdl_option CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-    # Legal values: 1 to 65535
-};
-
-# Condition variable timed-wait support
-# doc: ref/kernel-condition-variables.html
-# This option enables the condition variable timed wait
-# facility.
-#
-cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_TIMER
-    #     CYGFUN_KERNEL_THREADS_TIMER == 1
-    #   --> 1
-};
-
-# Condition variable explicit mutex wait support
-# doc: ref/kernel-condition-variables.html
-# This option enables the condition variable explicit mutex wait
-# facility. By default condition variables in eCos are created with
-# a statically associated mutex. This option permits wait (and timed wait
-# if CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT is enabled) to provide a
-# different mutex as an argument. This makes no difference to the semantics
-# the wait operation except that a different mutex will be used during it.
-#
-cdl_option CYGMFN_KERNEL_SYNCH_CONDVAR_WAIT_MUTEX {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Avoid inlines in mqueue implementation
-# With this option disabled, the 'mqueue' message queue implementation
-# provides most of its implementation via inlines. However this can
-# adversely affect code size in application that make lots of mqueue
-# calls from different places, so enabling this option provides
-# non-inline versions to be used instead.
-#
-cdl_option CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# Kernel instrumentation
-# doc: user-guide/kernel-instrumentation.html
-# The current release of the kernel contains an initial version
-# of instrumentation support. The various parts of the kernel
-# will invoke instrumentation routines whenever appropriate
-# events occur, and these will be stored in a circular buffer
-# for later reference.
-#
-cdl_component CYGPKG_KERNEL_INSTRUMENT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-};
-
-# >
-# Use buffer provided by the application
-# In most circumstances the kernel should provide the
-# instrumentation circular buffer itself. Occasionally
-# application code may wish to provide the buffer instead,
-# giving the application code more convenient access to the
-# buffer. This also makes it possible to put the circular
-# buffer in special areas of memory, for example a region that
-# is shared with the host.
-#
-cdl_option CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Instrumentation buffer size
-# If kernel instrumentation is enabled then the instrumentation
-# data goes into a circular buffer. A larger buffer allows
-# more data to be stored, but at a significant cost in memory.
-# The value of this option corresponds to the number of entries
-# in the table, and typically each entry will require 16 bytes
-# of memory.
-#
-cdl_option CYGNUM_KERNEL_INSTRUMENT_BUFFER_SIZE {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-    # Legal values: 16 to 0x100000
-};
-
-# Wrap instrumentation buffer
-# When the instrumentation buffer is full it can either be restarted
-# from the beginning, overwriting older data, or it can stop at the
-# end. The former is useful if you want to look at the last entries
-# made while the latter is useful if you want to look at the first
-# few.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Perform selective instrumentation
-# The kernel can either collect all instrumentation events, or
-# it can filter out events at runtime based on a set of flags.
-# For example it would be possible to decide at runtime that
-# only scheduler and interrupt instrumentation flags are of
-# interest and that all other flags should be ignored. This
-# flag mechanism involves extra code and processor cycle
-# overhead in the instrumentation code, so it can be disabled
-# if the application developer is interested in all
-# instrumentation events.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_FLAGS {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument common scheduler operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the scheduling code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_SCHED {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SCHED
-    #     CYGPKG_KERNEL_SCHED == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument thread operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code that manipulates threads.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_THREAD {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_THREADS
-    #     CYGPKG_KERNEL_THREADS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument interrupt-related operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the interrupt handling code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_INTR {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_INTERRUPTS
-    #     CYGPKG_KERNEL_INTERRUPTS == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument mutex operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the mutex code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MUTEX {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument condition variable operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the condition variable code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_CONDVAR {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument binary semaphore operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the binary semaphore code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BINSEM {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument counting semaphore operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the counting semaphore code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_CNTSEM {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument message box operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the message box code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MBOXT {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument event flag operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the event flag code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_FLAG {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGPKG_KERNEL_SYNCH
-    #     CYGPKG_KERNEL_SYNCH == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument clock operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the real-time clock code.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_CLOCK {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument alarm-related operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code related to alarm operations.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_ALARM {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument SMP-related operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code related to SMP operations.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_SMP {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument multi-level queue scheduler operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code for the multi-level queue scheduler.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MLQ {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGSEM_KERNEL_SCHED_MLQUEUE
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Instrument bitmap scheduler operations
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not instrumentation support is compiled into
-# the code for the bitmap scheduler.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_BITMAP {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-    # ActiveIf constraint: CYGSEM_KERNEL_SCHED_BITMAP
-    #     CYGSEM_KERNEL_SCHED_BITMAP == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Support application-level instrumentation
-# It is possible to perform selective instrumentation at
-# run-time. It is also possible to disable instrumentation
-# in various kernel components at compile-time, thus
-# reducing the code size overheads. This option controls
-# whether or not application-level instrumentation gets
-# compiled in.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_USER {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Provide user-friendly instrumentation messages
-# Include code which will convert the instrument type field 
-# into a more human understandable string
-#
-cdl_component CYGDBG_KERNEL_INSTRUMENT_MSGS {
-    # This option is not active
-    # The parent CYGPKG_KERNEL_INSTRUMENT is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Rebuild the header file
-# Make (using a shell script) include/cyg/kernel/instrument_desc.h in
-# your build tree; this is normally simply copied from the repository.
-# If you make a permanent change to include/instrmnt.h, such that
-# instrument_desc.h needs updating, it's up to you to first delete the
-# master file
-# ECOS_REPOSITORY/kernel/VERSION/include/instrument_desc.h
-# in your source repository, make the new version by enabling this
-# option then copy the new file
-# back from your build place to its source in
-# ECOS_REPOSITORY/kernel/VERSION/include/instrument_desc.h
-# and/or commit this to any version control system that you use.
-#
-cdl_option CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE {
-    # This option is not active
-    # The parent CYGDBG_KERNEL_INSTRUMENT_MSGS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Build the host tool to print out a dump
-# Generate a host program which can dump the instrumentation
-# data in a human readable format. You have to somehow get the
-# instrumentation buffer into a file on the host. 'Exercise for
-# the reader' as university lecturers tend to say.
-#
-cdl_component CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP {
-    # This option is not active
-    # The parent CYGDBG_KERNEL_INSTRUMENT_MSGS is not active
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# <
-# <
-# 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 kernel.
-#
-cdl_component CYGPKG_KERNEL_DEBUG {
-    # There is no associated value.
-};
-
-# >
-# Include GDB multi-threading debug support
-# This option enables some extra kernel code which is needed
-# to support multi-threaded source level debugging.
-#
-cdl_option CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_LIST
-    #     CYGVAR_KERNEL_THREADS_LIST == 1
-    #   --> 1
-    # Requires: CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-    #     ActiveIf:  CYGSEM_HAL_ROM_MONITOR || CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT 
-};
-
-# <
-# Kernel APIs
-# The eCos kernel is implemented in C++, so a C++ interface
-# to the kernel is always available. There is also an optional
-# C API. Additional API's may be provided in future versions.
-#
-cdl_component CYGPKG_KERNEL_API {
-    # There is no associated value.
-};
-
-# >
-# Provide C API
-# The eCos kernel is implemented in C++, but there is an
-# optional C API for use by application code. This C API can be
-# disabled if the application code does not invoke the kernel
-# directly, but instead uses higher level code such as the
-# uITRON compatibility layer.
-#
-cdl_option CYGFUN_KERNEL_API_C {
-    # 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_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGPKG_KERNEL_TESTS
-    #     Calculated:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    # option CYGFUN_MEMALLOC_KAPI
-    #     DefaultValue: CYGFUN_KERNEL_API_C
-};
-
-# <
-# Kernel 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_KERNEL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the eCos kernel. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_KERNEL_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 eCos kernel. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_KERNEL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Kernel tests
-# This option specifies the set of tests for the eCos kernel.
-#
-cdl_option CYGPKG_KERNEL_TESTS {
-    # Calculated value:  
-    #                     "tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2" 
-    #                     . ((CYGFUN_KERNEL_API_C) ? " tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0" : "")
-    #                     . ((!CYGPKG_INFRA_DEBUG && !CYGPKG_KERNEL_INSTRUMENT && CYGFUN_KERNEL_API_C) ? " tests/dhrystone" : "")
-    #                     . ((CYGPKG_KERNEL_SMP_SUPPORT && CYGFUN_KERNEL_API_C) ? " tests/smp" : "")
-    #                     . ((!CYGINT_HAL_TESTS_NO_CACHES && CYGFUN_KERNEL_API_C) ? " tests/kcache1 tests/kcache2" : "")
-    #                 
-    #     CYGFUN_KERNEL_API_C == 1
-    #     CYGPKG_INFRA_DEBUG == 0
-    #     CYGPKG_KERNEL_INSTRUMENT == 0
-    #     CYGFUN_KERNEL_API_C == 1
-    #     CYGPKG_KERNEL_SMP_SUPPORT == 0
-    #     CYGFUN_KERNEL_API_C == 1
-    #     CYGINT_HAL_TESTS_NO_CACHES == 0
-    #     CYGFUN_KERNEL_API_C == 1
-    # Flavor: data
-    # Current_value: tests/bin_sem0 tests/bin_sem1 tests/bin_sem2 tests/bin_sem3 tests/clock0 tests/clock1 tests/clockcnv tests/clocktruth tests/cnt_sem0 tests/cnt_sem1 tests/except1 tests/flag0 tests/flag1 tests/intr0 tests/kill tests/mbox1 tests/mqueue1 tests/mutex0 tests/mutex1 tests/mutex2 tests/mutex3 tests/release tests/sched1 tests/sync2 tests/sync3 tests/thread0 tests/thread1 tests/thread2 tests/kclock0 tests/kclock1 tests/kexcept1 tests/kflag0 tests/kflag1 tests/kintr0 tests/klock tests/kmbox1 tests/kmutex0 tests/kmutex1 tests/kmutex3 tests/kmutex4 tests/ksched1 tests/ksem0 tests/ksem1 tests/kthread0 tests/kthread1 tests/stress_threads tests/thread_gdb tests/timeslice tests/timeslice2 tests/tm_basic tests/fptest tests/kalarm0 tests/dhrystone tests/kcache1 tests/kcache2
-};
-
-# <
-# <
-# 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
-    # package CYGPKG_BLOCK_LIB
-    #     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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# 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 have been reported
-# to be faster in some circumstances. The use of "MEMCPY"
-# in the CDL option name is an anachronism and only
-# present for backwards compatibility.
-#
-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) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    #     CYGPKG_ISOINFRA == current
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGFUN_KERNEL_API_C
-    #     CYGFUN_KERNEL_API_C == 1
-    #   --> 1
-};
-
-# 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 ""
-    # 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_MEMALLOC_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# 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 CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGPKG_ISOINFRA
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGPKG_ISOINFRA
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  (0 != CYGPKG_ISOINFRA) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    # component CYGPKG_MEMALLOC_MALLOC_ALLOCATORS
-    #     ActiveIf: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_I18N
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_SETJMP
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STARTUP
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_STRING
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_BLOCK_LIB
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_POSIX
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGPKG_ISOINFRA
-    # package CYGPKG_USTL
-    #     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 {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    #     CYGINT_ISO_MAIN_STARTUP == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_MAIN_STARTUP
-    #     Requires:  1 >= CYGINT_ISO_MAIN_STARTUP 
-    # package CYGPKG_USTL
-    #     Requires: CYGINT_ISO_MAIN_STARTUP
-};
-
-# environ implementations
-# Implementations of this interface provide the environ
-# variable required by POSIX.
-#
-cdl_interface CYGINT_ISO_ENVIRON {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_ENVIRON 
-    #     CYGINT_ISO_ENVIRON == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_ENVIRON
-    #     Requires:  1 >= CYGINT_ISO_ENVIRON 
-    # package CYGPKG_USTL
-    #     Requires: 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_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_CTYPE
-    # option CYGFUN_LIBC_STRING_BSD_FUNCS
-    #     Requires: CYGINT_ISO_CTYPE
-    # component CYGPKG_FILEIO_FNMATCH
-    #     DefaultValue: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    # package CYGPKG_USTL
-    #     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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_POSIX
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_ERRNO_CODES
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_ERRNO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO
-    # option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_POSIX
-    #     Requires: CYGINT_ISO_ERRNO
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_ERRNO
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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 {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    #     CYGINT_ISO_STDIO_FILETYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILETYPES
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILETYPES 
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILETYPES_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Stdio standard streams implementations
-#
-cdl_interface CYGINT_ISO_STDIO_STREAMS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    #     CYGINT_ISO_STDIO_STREAMS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_STREAMS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_STREAMS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_STREAMS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file operations
-#
-cdl_interface CYGINT_ISO_STDIO_FILEOPS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEOPS 
-    #     CYGINT_ISO_STDIO_FILEOPS == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEOPS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file access  functionals
-#
-cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEACCESS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEACCESS 
-    # option CYGSEM_LIBC_EXIT_CALLS_FFLUSH
-    #     Requires: CYGINT_ISO_STDIO_FILEACCESS
-    # option CYGSEM_LIBC_EXIT_CALLS_FFLUSH
-    #     DefaultValue:  0 != CYGINT_ISO_STDIO_FILEACCESS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEACCESS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio formatted I/O
-#
-cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FORMATTED_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FORMATTED_IO 
-    # package CYGPKG_USTL
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio character I/O
-#
-cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    #     CYGINT_ISO_STDIO_CHAR_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_CHAR_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_CHAR_IO 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_CHAR_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio direct I/O
-#
-cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_DIRECT_IO
-    #     Requires:  1 >= CYGINT_ISO_STDIO_DIRECT_IO 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_DIRECT_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio file positioning
-#
-cdl_interface CYGINT_ISO_STDIO_FILEPOS {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    #     CYGINT_ISO_STDIO_FILEPOS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_FILEPOS
-    #     Requires:  1 >= CYGINT_ISO_STDIO_FILEPOS 
-    # component CYGCLS_USTL_FSTREAMS
-    #     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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_FILEPOS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# Number of implementations of stdio error handling
-#
-cdl_interface CYGINT_ISO_STDIO_ERROR {
-    # Implemented by CYGPKG_LIBC_STDIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    #     CYGINT_ISO_STDIO_ERROR == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDIO_ERROR
-    #     Requires:  1 >= CYGINT_ISO_STDIO_ERROR 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/stdio/stdio.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  CYGBLD_ISO_STDIO_ERROR_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-};
-
-# POSIX fd-related function implementations
-#
-cdl_interface CYGINT_ISO_STDIO_POSIX_FDFUNCS {
-    # Implemented by CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >=  CYGINT_ISO_STDIO_POSIX_FDFUNCS 
-    #     CYGINT_ISO_STDIO_POSIX_FDFUNCS == 1
-    #   --> 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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: 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, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     Requires:  1 >= CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     Requires: CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM &&
-    #                                 0 != 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, enabled
-    # Implemented by CYGIMP_LIBC_RAND_KNUTH1, active, disabled
-    # 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 
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGINT_ISO_MALLOC
-    # option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
-    #     Requires: CYGINT_ISO_MALLOC
-    # option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC
-    #     DefaultValue:  0 != CYGINT_ISO_MALLOC 
-    # component CYGPKG_LIBC_STDIO_OPEN
-    #     Requires: CYGINT_ISO_MALLOC
-    # component CYGPKG_LIBC_STDIO_OPEN
-    #     DefaultValue:  0 != CYGINT_ISO_MALLOC 
-    # option CYGFUN_LIBC_STRING_STRDUP
-    #     ActiveIf: CYGINT_ISO_MALLOC
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_MALLOC
-    # component CYGPKG_IO_FILEIO_INODE
-    #     Requires: CYGINT_ISO_MALLOC
-    # package CYGPKG_USTL
-    #     Requires: 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 {
-    # Implemented by CYGPKG_LIBC_STARTUP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_EXIT 
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 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 
-    # package CYGPKG_USTL
-    #     Requires: CYGINT_ISO_EXIT
-};
-
-# 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
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGINT_ISO_ABS
-};
-
-# 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
-    # package CYGPKG_LIBC_TIME
-    #     Requires: CYGINT_ISO_DIV
-};
-
-# 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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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 
-    # package CYGPKG_USTL
-    #     Requires: 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, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_STRING_BSD_FUNCS
-    #     Requires:  1 >= CYGINT_ISO_STRING_BSD_FUNCS 
-    # option CYGFUN_LIBC_TIME_POSIX
-    #     Requires: 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 
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # option CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_USE_MEMCPY
-    #     DefaultValue:  (0 != CYGPKG_ISOINFRA) && (0 != CYGINT_ISO_STRING_MEMFUNCS) 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_STRING_MEMFUNCS
-    # package CYGPKG_USTL
-    #     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 
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_LIBC_STDLIB
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGINT_ISO_STRING_STRFUNCS
-    # component CYGPKG_FILEIO_FNMATCH
-    #     DefaultValue: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    # package CYGPKG_USTL
-    #     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
-    user_value 1 <cyg/posix/sys/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires:  CYGBLD_ISO_STRUCTTIMEVAL_HEADER ==  "<cyg/posix/sys/time.h>" 
-};
-
-# fnmatch implementation header
-#
-cdl_option CYGBLD_ISO_FNMATCH_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/fileio/fnmatch.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_FILEIO_FNMATCH
-    #     Requires:  CYGBLD_ISO_FNMATCH_HEADER ==  "<cyg/fileio/fnmatch.h>" 
-};
-
-# Number of implementations of POSIX timer types
-#
-cdl_interface CYGINT_ISO_POSIX_TIMER_TYPES {
-    # Implemented by CYGPKG_POSIX_TIMERS, active, disabled
-    # 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires:  CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of POSIX clock types
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCK_TYPES {
-    # Implemented by CYGPKG_POSIX_CLOCKS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCK_TYPES 
-    #     CYGINT_ISO_POSIX_CLOCK_TYPES == 1
-    #   --> 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires:  CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of ISO C types
-#
-cdl_interface CYGINT_ISO_C_TIME_TYPES {
-    # Implemented by CYGPKG_LIBC_TIME, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    #     CYGINT_ISO_C_TIME_TYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_C_TIME_TYPES
-    #     Requires:  1 >= CYGINT_ISO_C_TIME_TYPES 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/time/time.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_TIME
-    #     Requires:  CYGBLD_ISO_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" 
-};
-
-# Number of implementations of POSIX timers
-#
-cdl_interface CYGINT_ISO_POSIX_TIMERS {
-    # Implemented by CYGPKG_POSIX_TIMERS, active, disabled
-    # 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
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires:  CYGBLD_ISO_POSIX_TIMERS_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of POSIX clocks
-#
-cdl_interface CYGINT_ISO_POSIX_CLOCKS {
-    # Implemented by CYGPKG_POSIX_CLOCKS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    #     CYGINT_ISO_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_POSIX_CLOCKS
-    #     Requires:  1 >= CYGINT_ISO_POSIX_CLOCKS 
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGINT_ISO_POSIX_CLOCKS
-};
-
-# POSIX clocks implementation header
-#
-cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/posix/time.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_CLOCKS
-    #     Requires:  CYGBLD_ISO_POSIX_CLOCKS_HEADER ==  "<cyg/posix/time.h>" 
-};
-
-# Number of implementations of ISO C clock functions
-#
-cdl_interface CYGINT_ISO_C_CLOCK_FUNCS {
-    # Implemented by CYGPKG_LIBC_TIME, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_C_CLOCK_FUNCS 
-    #     CYGINT_ISO_C_CLOCK_FUNCS == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/time/time.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_TIME
-    #     Requires:  CYGBLD_ISO_C_CLOCK_FUNCS_HEADER ==  "<cyg/libc/time/time.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_LIBC_SIGNALS, active, enabled
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_NUMBERS
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_NUMBERS 
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     DefaultValue:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/signals/signal.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/posix/signal.h>" 
-};
-
-# Number of signal implementations
-#
-cdl_interface CYGINT_ISO_SIGNAL_IMPL {
-    # Implemented by CYGPKG_LIBC_SIGNALS, active, enabled
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_SIGNAL_IMPL
-    #     Requires:  1 >= CYGINT_ISO_SIGNAL_IMPL 
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     Requires: CYGINT_ISO_SIGNAL_IMPL
-    # option CYGSEM_IO_SERIAL_TERMIOS_USE_SIGNALS
-    #     DefaultValue:  CYGINT_ISO_SIGNAL_NUMBERS != 0 &&  CYGINT_ISO_SIGNAL_IMPL != 0 
-    # package CYGPKG_USTL
-    #     Requires: 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/signals/signal.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/posix/signal.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # 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 {
-    # Implemented by CYGPKG_LIBC_SETJMP, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SETJMP 
-    #     CYGINT_ISO_SETJMP == 1
-    #   --> 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
-    # The inferred value should not be edited directly.
-    inferred_value 1 <cyg/libc/setjmp/setjmp.h>
-    # value_source inferred
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_SETJMP
-    #     Requires:  CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" 
-};
-
-# sigsetjmp() / siglongjmp() implementations
-#
-cdl_interface CYGINT_ISO_SIGSETJMP {
-    # Implemented by CYGPKG_POSIX_SIGNALS, active, disabled
-    # 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
-    user_value 1 <cyg/posix/sigsetjmp.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires:  CYGBLD_ISO_SIGSETJMP_HEADER ==  "<cyg/posix/sigsetjmp.h>" 
-};
-
-# <
-# 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_FCNTL 
-    #     CYGINT_ISO_FCNTL == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_OPEN 
-    #     CYGINT_ISO_OPEN == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_IO_FILEIO, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_DIRENT 
-    #     CYGINT_ISO_DIRENT == 1
-    #   --> 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
-    user_value 1 <cyg/fileio/dirent.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_POSIX_PTHREAD_REQUIREMENTS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 1
-    #   --> 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
-    user_value 1 <cyg/posix/types.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires:  CYGBLD_ISO_PTHREADTYPES_HEADER ==  "<cyg/posix/types.h>" 
-};
-
-# POSIX mutex types implementations
-#
-cdl_interface CYGINT_ISO_PMUTEXTYPES {
-    # Implemented by CYGPKG_POSIX_PTHREAD_MUTEX, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_PTHREADTYPES 
-    #     CYGINT_ISO_PTHREADTYPES == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-};
-
-# POSIX mutex types implementation header
-#
-cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/posix/muttypes.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires:  CYGBLD_ISO_PMUTEXTYPES_HEADER ==  "<cyg/posix/muttypes.h>" 
-};
-
-# 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
-    user_value 1 <cyg/posix/utsname.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_UTSNAME
-    #     Requires:  CYGBLD_ISO_UTSNAME_HEADER ==  "<cyg/posix/utsname.h>" 
-};
-
-# <
-# POSIX scheduler
-#
-cdl_component CYGPKG_ISO_SCHED {
-    # There is no associated value.
-};
-
-# >
-# POSIX scheduler implementations
-#
-cdl_interface CYGINT_ISO_SCHED_IMPL {
-    # Implemented by CYGPKG_POSIX_SCHED, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SCHED_IMPL 
-    #     CYGINT_ISO_SCHED_IMPL == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_POSIX_SEMAPHORES, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_SEMAPHORES 
-    #     CYGINT_ISO_SEMAPHORES == 1
-    #   --> 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
-    user_value 1 <cyg/posix/semaphore.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_SEMAPHORES
-    #     Requires:  CYGBLD_ISO_SEMAPHORES_HEADER ==  "<cyg/posix/semaphore.h>" 
-};
-
-# <
-# POSIX message queues
-#
-cdl_component CYGPKG_ISO_MQUEUE {
-    # There is no associated value.
-};
-
-# >
-# Implementations
-#
-cdl_interface CYGINT_ISO_MQUEUE {
-    # Implemented by CYGPKG_POSIX_MQUEUES, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_MQUEUE 
-    #     CYGINT_ISO_MQUEUE == 1
-    #   --> 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 {
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 8
-    # value_source default
-    # Default value:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX == 8
-    #     CYGNUM_POSIX_MQUEUE_OPEN_MAX == 8
-    #   --> 1 8
-};
-
-# Maximum number of message priorities
-#
-cdl_option CYGNUM_ISO_MQUEUE_PRIO_MAX {
-    # ActiveIf constraint: CYGINT_ISO_MQUEUE
-    #     CYGINT_ISO_MQUEUE == 1
-    #   --> 1
-
-    # 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 {
-    # Implemented by CYGPKG_POSIX_PTHREAD_REQUIREMENTS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_IMPL 
-    #     CYGINT_ISO_PTHREAD_IMPL == 1
-    #   --> 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
-    user_value 1 <cyg/posix/pthread.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires:  CYGBLD_ISO_PTHREAD_IMPL_HEADER ==  "<cyg/posix/pthread.h>" 
-};
-
-# POSIX mutex/cond var implementations
-#
-cdl_interface CYGINT_ISO_PTHREAD_MUTEX {
-    # Implemented by CYGPKG_POSIX_PTHREAD_MUTEX, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    #     CYGINT_ISO_PTHREAD_MUTEX == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_ISO_PTHREAD_MUTEX
-    #     Requires:  1 >= CYGINT_ISO_PTHREAD_MUTEX 
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGINT_ISO_PTHREAD_MUTEX
-};
-
-# POSIX mutex/cond var implementation header
-#
-cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/posix/mutex.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires:  CYGBLD_ISO_PTHREAD_MUTEX_HEADER ==  "<cyg/posix/mutex.h>" 
-};
-
-# <
-# Limits
-#
-cdl_component CYGPKG_ISO_LIMITS {
-    # There is no associated value.
-};
-
-# >
-# POSIX pthread limits implementations
-#
-cdl_interface CYGINT_ISO_POSIX_LIMITS {
-    # Implemented by CYGPKG_POSIX, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_LIMITS 
-    #     CYGINT_ISO_POSIX_LIMITS == 1
-    #   --> 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
-    user_value 1 <cyg/posix/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_POSIX
-    #     Requires:  CYGBLD_ISO_POSIX_LIMITS_HEADER ==  "<cyg/posix/limits.h>" 
-};
-
-# OPEN_MAX implementation header
-#
-cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
-    # Flavor: booldata
-    user_value 1 <cyg/fileio/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" 
-};
-
-# 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
-    user_value 1 <cyg/fileio/limits.h>
-    # value_source user
-    # Default value: 0 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO_FILEIO
-    #     Requires:  CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" 
-};
-
-# 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 {
-    # Implemented by CYGPKG_IO_SERIAL_TERMIOS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires:  1 >= CYGINT_ISO_TERMIOS 
-    #     CYGINT_ISO_TERMIOS == 1
-    #   --> 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 {
-    # Implemented by CYGPKG_POSIX_TIMERS, active, disabled
-    # 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 {
-    # Implemented by CYGPKG_POSIX_CLOCKS, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_POSIX_SLEEP 
-    #     CYGINT_ISO_POSIX_SLEEP == 1
-    #   --> 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 {
-    # Implemented by CYGFUN_IO_FILEIO_SELECT, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-    # Requires:  1 >= CYGINT_ISO_SELECT 
-    #     CYGINT_ISO_SELECT == 1
-    #   --> 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: ""
-};
-
-# <
-# <
-# ISO C library
-# doc: ref/libc.html
-# The packages under this package enable compatibility with the ISO C
-# standard - ISO/IEC 9899:1990. This allows the user application to use
-# well known standard C library functions, and in eCos starts a thread
-# to invoke the user function main(). This package is a top-level placeholder
-# to contain the implementations.
-#
-cdl_package CYGPKG_LIBC {
-    # 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 CYGNUM_LIBM_COMPATIBILITY
-    #     Requires: CYGPKG_LIBC
-};
-
-# >
-# 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
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires: CYGPKG_LIBC_I18N
-};
-
-# >
-# 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGVAR_KERNEL_THREADS_DATA != 0 
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 setjmp/longjmp functions
-# doc: ref/libc.html
-# This package provides non-local jumps based on setjmp() and
-# longjmp() in <setjmp.h> as specified by the ISO C
-# standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_SETJMP {
-    # 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:  CYGBLD_ISO_SETJMP_HEADER == "<cyg/libc/setjmp/setjmp.h>" 
-    #     CYGBLD_ISO_SETJMP_HEADER == <cyg/libc/setjmp/setjmp.h>
-    #   --> 1
-};
-
-# >
-# C library setjmp 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_SETJMP_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_SETJMP_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_SETJMP_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library setjmp tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_SETJMP_TESTS {
-    # Calculated value:  "tests/setjmp" 
-    # Flavor: data
-    # Current_value: tests/setjmp
-};
-
-# <
-# <
-# ISO C library signal functions
-# doc: ref/libc.html
-# This component controls signal functionality,
-# as implemented in ISO/IEC 9899:1990 chapter 7.7 with
-# the signal() and raise() functions. As well as
-# allowing a program to send itself signals, it is
-# also possible to cause hardware exceptions to
-# be signalled to the program in a similar way.
-#
-cdl_package CYGPKG_LIBC_SIGNALS {
-    # 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_SIGNAL_NUMBERS_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/libc/signals/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_IMPL_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-};
-
-# >
-# Thread safe signals
-# Because signal handlers are global, and not
-# thread-specific (as mandated by POSIX 1003.1)
-# it is possible for multiple threads to clash
-# and corrupt data if setting the same signal
-# handler at the same time. With this option
-# enabled, a kernel mutex will be used to protect
-# the shared data.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_THREAD_SAFE {
-    # 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 == current
-    #   --> 1
-};
-
-# Hardware exceptions cause signals
-# This causes hardware exceptions like
-# arithmetic exceptions (e.g. divide by zero)
-# or bad memory accesses to be passed through as
-# signals. It is thus possible for a program to
-# handle these exceptions in a generic way using
-# the appropriate signal handlers. The details of
-# exactly which exceptions are passed through
-# under what circumstances depend on the
-# underlying HAL implementation. Consequently it
-# must be remembered that signal handlers cannot
-# be guaranteed to be invoked in the expected
-# circumstances if you do not know about the
-# underlying HAL implementation - it is possible
-# that the architecture is unable to detect that
-# exception.
-#
-cdl_component CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_KERNEL_EXCEPTIONS_GLOBAL
-    #     CYGSEM_KERNEL_EXCEPTIONS_GLOBAL == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_EXCEPTIONS_DECODE
-    #     CYGSEM_KERNEL_EXCEPTIONS_DECODE == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_LIBC_SIGNALS_TESTS
-    #     Calculated:  
-    #                     "tests/signal1"
-    #                     . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
-    #                 
-};
-
-# >
-# Chain old exception handlers
-# When hardware exceptions are generated, it
-# is possible to chain into the old kernel exception
-# handler before calling any registered signal
-# handler. If this is not required, disable this
-# option and only the signal handler will be
-# called when this exception occurs. Disabling
-# this option will also save some space and code
-# usage.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS {
-    # This option is not active
-    # The parent CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Inline versions of functions
-# Some functions can be made inline instead of
-# being function calls. These can be set here.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_INLINE {
-    # There is no associated value.
-};
-
-# >
-# raise()
-# Enabling this option makes raise() an inline function.
-#
-cdl_option CYGIMP_LIBC_SIGNALS_RAISE_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# signal()
-# Enabling this option makes signal() an inline function.
-#
-cdl_option CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# <
-# Error handling
-# You may or may not want errno to be set by
-# certain functions. Not using errno could save
-# both space, code, and avoid worrying about
-# interactions between multiple threads when
-# setting it.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_ERROR_HANDLING {
-    # There is no associated value.
-};
-
-# >
-# Bad signal fatal
-# Enabling this option will cause an assertion
-# failure if the signal handling code is
-# passed a bad signal. Otherwise an error will
-# be returned, or in the case of a
-# hardware-generated exception it will be silently
-# ignored.
-#
-cdl_option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_USE_ASSERTS
-    #     CYGDBG_USE_ASSERTS == 0
-    #   --> 0
-};
-
-# raise() sets errno
-# You may or may not want errno to be set by
-# raise() on error conditions. Not using errno
-# could save both space, code, and avoid worrying
-# about interactions between multiple threads when
-# setting it. Strictly ISO C does not mandate
-# that errno be set by raise().
-#
-cdl_option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-};
-
-# signal() sets errno
-# You may or may not want errno to be set by
-# signal() on error conditions. Not using errno
-# could save both space, code, and avoid worrying
-# about interactions between multiple threads when
-# setting it. Strictly ISO C mandates
-# that errno be set by signal().
-#
-cdl_option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-};
-
-# <
-# Tracing
-# These options control the trace output for the C
-# library internal signal implementation.
-#
-cdl_component CYGPKG_LIBC_SIGNALS_TRACING {
-    # There is no associated value.
-};
-
-# >
-# Default trace level for raise()
-# This gives the default tracing level for the
-# raise() function. Higher numbers are more
-# verbose.
-#
-cdl_option CYGNUM_LIBC_SIGNALS_RAISE_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
-};
-
-# Default hardware exception handler trace level
-# This gives the default tracing level for the
-# hardware exception handler function (if enabled).
-# Higher numbers are more verbose.
-#
-cdl_option CYGNUM_LIBC_SIGNALS_HWHANDLER_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 signal 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_SIGNALS_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_SIGNALS_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 C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library signal function tests
-# This option specifies the set of tests for the C library
-# signal functions.
-#
-cdl_option CYGPKG_LIBC_SIGNALS_TESTS {
-    # Calculated value:  
-    #                     "tests/signal1"
-    #                     . ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "")
-    #                 
-    #     CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS == 0
-    # Flavor: data
-    # Current_value: tests/signal1
-};
-
-# <
-# <
-# ISO environment startup/termination
-# doc: ref/c-library-startup.html
-# This package manages the control of the
-# environment (in the general sense) that an
-# application would require for full ISO C / POSIX
-# compatibility, including a main() entry point
-# supplied with arguments and an environment
-# (as retrievable by the getenv() function).
-# It also includes at the other end of things,
-# what happens when main() returns or exit() is
-# called.
-#
-cdl_package CYGPKG_LIBC_STARTUP {
-    # 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_LIBC_STARTUP_CONTEXT == 1 
-    #     CYGINT_LIBC_STARTUP_CONTEXT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_MAIN_THREAD
-    #     Requires:  0 != CYGPKG_LIBC_STARTUP 
-};
-
-# >
-# main() can be invoked elsewhere
-# Implementors of this interface show that they
-# allow main() to be invoked elsewhere.
-#
-cdl_interface CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE {
-    # Implemented by CYGPKG_POSIX_MAIN_THREAD, active, enabled
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT
-    #     DefaultValue:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # component CYGSEM_LIBC_STARTUP_MAIN_THREAD
-    #     DefaultValue:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     DefaultValue:  0 !=  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    # option CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     Requires: CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
-};
-
-# Arguments to main()
-# This option allows the setting of the arguments
-# to the main function. This only has any effect
-# when cyg_iso_c_start() is used to start the
-# ISO C compatibility. This will automatically
-# invoke main() in an ISO C compatible fashion.
-# This option is in fact used as argv, and so is
-# an n-tuple of string constants. The final
-# entry must be NULL. Conventionally if argv[0]
-# is supplied, it is used to inform the program
-# of its name.
-#
-cdl_option CYGDAT_LIBC_ARGUMENTS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{(char *)\"\", (char *)NULL}"
-    # value_source default
-    # Default value: "{(char *)\"\", (char *)NULL}"
-};
-
-# Startup context for main()
-# This component describes the options available for
-# what context main() is invoked in, such as in a thread
-# etc.
-#
-cdl_component CYGPKG_LIBC_STARTUP_CONTEXT {
-    # There is no associated value.
-};
-
-# >
-# Startup context implementors
-#
-cdl_interface CYGINT_LIBC_STARTUP_CONTEXT {
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT, active, disabled
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_THREAD, active, disabled
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_OTHER, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STARTUP
-    #     Requires:  CYGINT_LIBC_STARTUP_CONTEXT == 1 
-};
-
-# Invoked from initialization context
-# With this option selected, main() will be
-# called via cyg_user_start() (unless the program
-# overrides the default cyg_user_start()). This
-# means it is run in the context of the system
-# initialization code, without the eCos kernel
-# scheduler running, and using the startup stack.
-# This means that any functions that may require 
-# interactions with a running kernel will not
-# work (including libc functions, if configured
-# to be thread safe for example), so you should
-# restrict yourself to only calling fully
-# re-entrant functions from within main() in
-# this case.
-#
-cdl_option CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 == CYGPKG_KERNEL && 0 == 
-    #                                 CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGPKG_KERNEL == current
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 0
-};
-
-# Invoked as eCos thread
-# With this option selected, main() is invoked from an eCos
-# thread.
-#
-cdl_component CYGSEM_LIBC_STARTUP_MAIN_THREAD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 != CYGPKG_KERNEL && 0 ==  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGPKG_KERNEL == current
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-};
-
-# >
-# System provides stack for main()'s thread
-# This option controls whether the stack of
-# main()'s thread is provided by the application or
-# provided by the system. When disabled, the
-# application must declare a pointer variable
-# cyg_libc_main_stack which is a pointer to an
-# appropriately aligned region of memory. The
-# application must also declare a variable of
-# type `int' called cyg_libc_main_stack_size
-# which contains the size of the stack in bytes.
-# This must be a multiple of 8.
-#
-cdl_option CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM {
-    # This option is not active
-    # The parent CYGSEM_LIBC_STARTUP_MAIN_THREAD is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Priority of main()'s thread
-# This option is used to provide the thread
-# priority which main()'s thread runs at. Be
-# sure to check that this number is appropriate
-# for the kernel scheduler chosen. Different
-# kernel schedulers impose different restrictions
-# on the usable priorities.
-#
-cdl_option CYGNUM_LIBC_MAIN_THREAD_PRIORITY {
-    # This option is not active
-    # The parent CYGSEM_LIBC_STARTUP_MAIN_THREAD is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-    # Legal values: 0 to 0x7fffffff
-};
-
-# <
-# Invoked elsewhere
-# With this option selected, main() must be
-# invoked by a separate package, or by the user.
-#
-cdl_option CYGSEM_LIBC_STARTUP_MAIN_OTHER {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 !=  CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE 
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 1
-    # Requires: CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
-    #     CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-    # component CYGPKG_POSIX_MAIN_THREAD
-    #     Requires: CYGSEM_LIBC_STARTUP_MAIN_OTHER
-};
-
-# <
-# Don't allow main()'s stack size to be set
-# This interface describes whether the stack size
-# value set in this package is supported by the
-# implementation that invokes main. If not, that
-# option is disabled.
-#
-cdl_interface CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE {
-    # Implemented by CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT, active, disabled
-    # This value cannot be modified here.
-    # Flavor: bool
-    # Current value: 0
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE
-    #     ActiveIf: !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
-};
-
-# main()'s default thread stack size
-# This option sets the size of the stack used
-# in the context that invokes main(). For example,
-# with an eCos kernel, when the cyg_iso_c_start()
-# function is used to invoke the user-supplied
-# main() function in an ISO C compatible fashion,
-# a separate thread is created to call main().
-# This option controls the size of that thread's
-# stack, which is allocated in the BSS. It
-# must be a multiple of 8. Note, a low number
-# here may be overriden by the HAL if there is
-# a minimum requirement to process interrupts
-# etc. This option cannot be set if the implementation
-# that invokes main() does not use it.
-#
-cdl_option CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE {
-    # ActiveIf constraint: !CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE
-    #     CYGINT_LIBC_STARTUP_MAIN_NO_STACK_SIZE == 0
-    #   --> 1
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8192
-    # value_source default
-    # Default value: 8192
-    # Legal values: 16 to 0x7fffffff
-};
-
-# Include atexit() function
-# This option enables the use of the atexit()
-# function, and ensure that the atexit handlers
-# are invoked from within exit() as defined in
-# the ISO C standard.
-#
-cdl_component CYGFUN_LIBC_ATEXIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# >
-# Number of functions atexit() supports
-# This option sets the number of functions
-# that atexit() has room for. In other words,
-# the number of separate atexit() calls that
-# can be made before calling exit() or returning
-# from main() ( in an environment controlled by
-# cyg_iso_c_start() ). For strict compliance
-# with the ISO C standard this should be at
-# least 32.
-#
-cdl_option CYGNUM_LIBC_ATEXIT_HANDLERS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 32
-    # value_source default
-    # Default value: 32
-    # Legal values: 1 to 0x7fffffff
-};
-
-# <
-# Make exit() call fflush()
-# This option will ensure that all output
-# streams are flushed when exitting using
-# exit() as prescribed by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_EXIT_CALLS_FFLUSH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_STDIO_FILEACCESS 
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-};
-
-# _exit() stops all threads
-# If this option is enabled then _exit(),
-# which is called from exit() which itself is
-# called on return from main(), stops the eCos
-# scheduler. For strict POSIX 1003.1
-# compatibility this would be the normal
-# behaviour. To allow the thread to simply
-# exit, without affecting other threads, simply
-# leave this option disabled. If there is no eCos
-# scheduler, then _exit() simply loops
-# irrespective of the setting of this option.
-#
-cdl_option CYGSEM_LIBC_EXIT_STOPS_SYSTEM {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# Default environment
-# This option allows the setting of the default
-# contents of the environment. This is in fact
-# the contents of the global environment pointer
-# char **environ defined by POSIX 1003.1. Strings
-# must be of the form NAME=VALUE, and the final
-# entry must be NULL.
-#
-cdl_option CYGDAT_LIBC_DEFAULT_ENVIRONMENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "{ NULL }"
-    # value_source default
-    # Default value: "{ NULL }"
-};
-
-# Invoke default static constructors
-# This option causes the C library to call
-# static constructors with default priority
-# from within the context of the main() thread,
-# working with the co-operation of the HAL.
-# This may be needed for environments that
-# expect static constructors to be run in a
-# thread context. Note that this uses an object
-# with priority 65534. Therefore do not use
-# priority 65534 for any other static objects
-# with this option enabled.
-#
-cdl_option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-    #     CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG == 0
-    #   --> 0
-    # Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-    #     CYGSEM_LIBC_STARTUP_MAIN_THREAD == 0
-    #     CYGSEM_LIBC_STARTUP_MAIN_OTHER == 1
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG
-    #     Requires: CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-};
-
-# ISO environment startup/termination 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_STARTUP_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_STARTUP_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 this package. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STARTUP_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# ISO environment startup/termination tests
-# This option specifies the set of tests for this package.
-#
-cdl_option CYGPKG_LIBC_STARTUP_TESTS {
-    # Calculated value:  "tests/atexit" 
-    # Flavor: data
-    # Current_value: tests/atexit
-};
-
-# <
-# <
-# ISO C library standard input/output functions
-# doc: ref/libc.html
-# This package provides standard input/output functions associated
-# with the header file <stdio.h> as specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_STDIO {
-    # 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_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-    # Requires: CYGPKG_LIBC_I18N
-    #     CYGPKG_LIBC_I18N == current
-    #   --> 1
-    # Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-    #     CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\""
-    #     CYGPKG_IO_SERIAL_HALDIAG == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILETYPES_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILETYPES_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEACCESS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEACCESS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEPOS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEPOS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FILEOPS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FILEOPS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_CHAR_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_CHAR_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_DIRECT_IO_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_DIRECT_IO_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_ERROR_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_ERROR_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STDIO_STREAMS_HEADER ==  "<cyg/libc/stdio/stdio.h>" 
-    #     CYGBLD_ISO_STDIO_STREAMS_HEADER == <cyg/libc/stdio/stdio.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRERROR
-    #     CYGINT_ISO_STRERROR == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_MEMFUNCS
-    #     CYGINT_ISO_STRING_MEMFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDLIB_STRCONV
-    #     CYGINT_ISO_STDLIB_STRCONV == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_LIBM_USE_STDERR
-    #     Requires: CYGPKG_LIBC_STDIO
-};
-
-# >
-# Inline versions of <stdio.h> functions
-# This option chooses whether some of the
-# particularly simple functions from
-# <stdio.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_STDIO_INLINES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Permitted number of open files
-# This option controls the guaranteed minimum
-# number of simultaneously open files. The ISO
-# C standard requires it to be defined (para
-# 7.9.1), and if strictly compliant, it must be
-# at least 8 (para 7.9.3). In practice it can be
-# as low as 3 - for stdin, stdout and stderr.
-#
-cdl_option FOPEN_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 3 to 0x7fffffff
-};
-
-# Maximum length of filename
-# This option defines the maximum allowed size of
-# a filename in characters. The ISO C standard
-# requires it to be defined (para 7.9.1).
-#
-cdl_option FILENAME_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 0x7fffffff
-};
-
-# Maximum length of filenames for temporary files
-# This option defines the maximum allowed size of
-# filenames for temporary files as generated by
-# tmpnam(). It is measured in characters, and the
-# ISO C standard requires it to be defined (para 
-# 7.9.1).
-#
-cdl_option L_tmpnam {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 4 to 0x7fffffff
-};
-
-# Unique file names generated by tmpnam()
-# This option defines the minimum number of
-# unique file names generated by tmpnam(). The
-# ISO C standard requires it to be defined (para
-# 7.9.1) and for ISO compliance it should be at least
-# 25. Note that TMP_MAX names may not be generated
-# if L_tmpnam is too small.
-#
-cdl_option TMP_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 25
-    # value_source default
-    # Default value: 25
-    # Legal values: 1 to 0x7fffffff
-};
-
-# Buffered I/O
-# This option controls whether input/output
-# through the <stdio.h> functions is buffered.
-# This may save some memory per file. It
-# is equivalent to putting every file into
-# non-buffered mode (_IONBF) through setvbuf(),
-# except now it can never be altered back to
-# buffered mode. Disabling buffering is strictly 
-# non-compliant with the ISO C standard.
-#
-cdl_component CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO {
-    # 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 BUFSIZ
-    #     Calculated: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     Requires: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
-};
-
-# >
-# Default buffer size
-# This option defines the default size of buffer
-# used with calls to setbuf(), and is the default
-# size for buffered streams that have not had
-# either setbuf() or setvbuf() invoked on them.
-# It is exactly equivalent to the standard
-# constant BUFSIZ, except that it is 0 if
-# CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO is disabled.
-# The ISO C standard requires this to be defined
-# (para 7.9.1), and says it must be at least 256
-# (para 7.9.2).
-#
-cdl_option CYGNUM_LIBC_STDIO_BUFSIZE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 256
-    # value_source default
-    # Default value: 256
-    # Legal values: 1 to 0x7fffffff
-
-    # The following properties are affected by this value
-    # option BUFSIZ
-    #     Calculated: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-};
-
-# setbuf()/setvbuf() allows dynamic setting
-# This option controls whether I/O buffers are
-# implemented dynamically within the stdio
-# implementation. Otherwise they will be static,
-# and cannot be changed by setbuf()/setvbuf(). If
-# they are static (i.e. this option is disabled),
-# any attempt to use an arbitrary buffer size, or
-# to pass a user-supplied buffer to setbuf() or
-# setvbuf() will fail - the buffer is implemented
-# internally as a static array taking the size
-# of the configuration option BUFSIZ. The only
-# exception is if a user buffer is not supplied,
-# and the buffer size requested is less than
-# BUFSIZ. In this case, the buffer will
-# be configured to only use that amount of
-# buffering. However the unused memory left over
-# will NOT be freed. If this option is enabled,
-# then setvbuf() can be used to assign a user supplied
-# buffer to the stream.
-# Either setting can be considered to
-# be compliant with the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF {
-    # 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_LIBC_STDIO_SETVBUF_MALLOC
-    #     Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-};
-
-# setbuf()/setvbuf() uses malloc()
-# This option controls whether buffers set by setbuf() and
-# setvbuf() may be allocated using malloc().
-#
-cdl_option CYGSEM_LIBC_STDIO_SETVBUF_MALLOC {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    #     CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF == 1
-    #   --> 1
-};
-
-# <
-# Default buffer size (BUFSIZ)
-#
-cdl_option BUFSIZ {
-    # Calculated value: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO ? CYGNUM_LIBC_STDIO_BUFSIZE : 0
-    #     CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO == 1
-    #     CYGNUM_LIBC_STDIO_BUFSIZE == 256
-    # Flavor: data
-    # Current_value: 256
-};
-
-# Support for ungetc()
-# This option controls whether ungetc() is
-# supported. If not, then some space can be
-# saved, and speed is improved. Note that you
-# MUST have this defined if you want to use the
-# scanf() family of functions.
-#
-cdl_option CYGFUN_LIBC_STDIO_ungetc {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Dynamic opening/closing of files
-# fopen() and fclose() use dynamic memory
-# allocation routines to allocate memory for
-# new FILE structure pointers. If a malloc
-# implementation is available, this option
-# may be enabled to use
-# fopen() and fclose(). If disabled, only the
-# default console streams - stdin, stdout and
-# stderr - will be available.
-#
-cdl_component CYGPKG_LIBC_STDIO_OPEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGINT_ISO_MALLOC 
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# POSIX fdopen/fileno functions
-# This identifies to the rest of the system
-# whether the POSIX fdopen() and
-# fileno() functions are implemented.
-#
-cdl_option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS {
-    # ActiveIf constraint: CYGPKG_LIBC_STDIO_FILEIO
-    #     CYGPKG_LIBC_STDIO_FILEIO == 1
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# <
-# Default console device
-# This option allows you to choose the
-# default console device. In the current
-# implementation, all these devices begin
-# with the prefix /dev/ and are followed by
-# the name of a device. The name of the device
-# depends on the device drivers you have
-# configured in your system. For example,
-# /dev/ttydiag could be the HAL diagnostic output
-# pseudo-device, or /dev/tty0 could be your
-# first serial driver, depending on your
-# configuration.
-#
-cdl_option CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "\"/dev/ttydiag\""
-    # value_source default
-    # Default value:  CYGDAT_IO_SERIAL_TTY_CONSOLE ? CYGDAT_IO_SERIAL_TTY_CONSOLE : "\"/dev/null\"" 
-    #     CYGDAT_IO_SERIAL_TTY_CONSOLE == "\"/dev/ttydiag\""
-    #     CYGDAT_IO_SERIAL_TTY_CONSOLE == "\"/dev/ttydiag\""
-    #   --> "\"/dev/ttydiag\""
-
-    # The following properties are affected by this value
-    # package CYGPKG_LIBC_STDIO
-    #     Requires:  (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE == "\"/dev/ttydiag\"" ?  CYGPKG_IO_SERIAL_HALDIAG : 1) 
-};
-
-# Floating point support
-# This component allows floating point support
-# to be enabled in certain standard I/O
-# functions.
-#
-cdl_component CYGPKG_LIBC_STDIO_FLOATING_POINT {
-    # There is no associated value.
-};
-
-# >
-# printf() family
-# This option enables the use of floating point
-# number output in the printf() family (i.e.
-# printf(), sprintf(), vprintf(), etc.) of
-# functions. A substantial amount of code space
-# can be saved if this option is disabled. If it
-# is disabled then floating point specifiers
-# (%e, %f, %g) are ignored, and nothing is
-# output.
-#
-cdl_option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-};
-
-# scanf() family
-# This option enables the use of floating point
-# number conversion in the scanf() family (i.e.
-# scanf(), sscanf(), vscanf(), etc.) of
-# functions. A substantial amount of code space
-# can be saved if this option is disabled. If it
-# is disabled then floating point specifiers
-# (%e, %f, %g) are ignored, and nothing is
-# converted.
-#
-cdl_option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM &&
-    #                                 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    #     CYGPKG_LIBM == current
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STDLIB_STRCONV_FLOAT
-    #     CYGINT_ISO_STDLIB_STRCONV_FLOAT == 1
-    #   --> 1
-};
-
-# <
-# Long long support
-# This option allows various functions in the C Standard I/O
-# library to support the 'long long' datatype. Doing so
-# will come with a noticeable code size penalty however.
-#
-cdl_option CYGFUN_LIBC_STDIO_LONGLONG {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_STDLIB_CONV_LONGLONG
-    #     CYGFUN_LIBC_STDLIB_CONV_LONGLONG == 1
-    #   --> 1
-};
-
-# Thread safe I/O streams
-# doc: ref/libc-thread-safety.html
-# This option controls whether standard I/O streams
-# are thread-safe. Having this option set allows
-# the streams to be locked when accessed by
-# multiple threads simultaneously.
-#
-cdl_option CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# C99 compliant snprintf() family
-# This option allows C99 compliant implementation of 
-# snprintf() family (i.e. snprintf(), vsnprintf()) 
-# of functions. C99 compliant snprintf() functions
-# return the number of characters that would have been written 
-# to a sufficiently sized buffer (excluding the '\0'). 
-# If this option is disabled, the functions simply return 
-# the number of bytes that have been written to the buffer.
-#
-cdl_option CYGIMP_LIBC_STDIO_C99_SNPRINTF {
-    # Flavor: bool
-    user_value 1
-    # value_source user
-    # Default value: 0
-
-    # The following properties are affected by this value
-    # package CYGPKG_USTL
-    #     Requires: CYGIMP_LIBC_STDIO_C99_SNPRINTF
-};
-
-# Enable use of FILEIO package for IO operations.
-# This CDL exists to control how the standard I/O functions
-# interface to the underlying I/O system. Either using the
-# File I/O package, or the generic I/O package which is used
-# by fewer devices.
-#
-cdl_option CYGPKG_LIBC_STDIO_FILEIO {
-    # ActiveIf constraint: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO
-    #     CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO == 1
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF
-    #     CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS
-    #     ActiveIf: CYGPKG_LIBC_STDIO_FILEIO
-};
-
-# C library stdio 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_STDIO_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_STDIO_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 C library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBC_STDIO_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library stdio function tests
-# This option specifies the set of tests for the C library
-# stdio functions.
-#
-cdl_option CYGPKG_LIBC_STDIO_TESTS {
-    # Calculated value:  
-    #                     "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput " 
-    #                     . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
-    #                 
-    #     CYGPKG_IO_FILEIO == current
-    #     CYGPKG_FS_RAM (unknown) == 0
-    # Flavor: data
-    # Current_value: tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput 
-};
-
-# <
-# <
-# 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 == 1
-    #   --> 1
-};
-
-# 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # 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
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # 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 1
-    # value_source default
-    # Default value:  0 != CYGPKG_LIBM 
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-};
-
-# 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
-    # 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 CYGFUN_LIBC_STDIO_LONGLONG
-    #     Requires: CYGFUN_LIBC_STDLIB_CONV_LONGLONG
-};
-
-# 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 ""
-    # 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_LIBC_STDLIB_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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
-};
-
-# <
-# <
-# 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
-    # value_source default
-    # 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 {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-};
-
-# 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
-};
-
-# Provide strnlen() GNU extension
-# This option controls support for the strnlen() function.
-# (This is a GNU extension, not part of ANSI C.)
-#
-cdl_option CYGFUN_LIBC_STRING_GNU_STRNLEN {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 ""
-    # value_source default
-    # Default value: ""
-};
-
-# 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 tests/strnlen" 
-    # 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 tests/strnlen
-};
-
-# <
-# <
-# ISO C library date and time functions
-# doc: ref/libc.html
-# This package provides time functions specified by the
-# ISO C standard - ISO/IEC 9899:1990.
-#
-cdl_package CYGPKG_LIBC_TIME {
-    # 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_C_TIME_TYPES_HEADER == "<cyg/libc/time/time.h>" 
-    #     CYGBLD_ISO_C_TIME_TYPES_HEADER == <cyg/libc/time/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_C_CLOCK_FUNCS_HEADER ==  "<cyg/libc/time/time.h>" 
-    #     CYGBLD_ISO_C_CLOCK_FUNCS_HEADER == <cyg/libc/time/time.h>
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGINT_ISO_DIV
-    #     CYGINT_ISO_DIV == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ABS
-    #     CYGINT_ISO_ABS == 1
-    #   --> 1
-};
-
-# >
-# Working clock() function
-# This option controls whether clock() will
-# actually try and determine the process time
-# usage. With this option disabled, clock() does
-# not disappear, but will permanently return
-# (clock_t)-1 as mandated by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_TIME_CLOCK_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_KERNEL_THREADS_TIMER
-    #     CYGFUN_KERNEL_THREADS_TIMER == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-};
-
-# Working time() function
-# This option controls whether time() will
-# actually try and determine the current calendar
-# time. With this option disabled, time() does
-# not disappear, but will permanently return
-# (time_t)-1 as mandated by the ISO C standard.
-#
-cdl_option CYGSEM_LIBC_TIME_TIME_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_IO_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-};
-
-# Working cyg_libc_time_settime() function
-# This option controls whether cyg_libc_time_settime()
-# will actually try and set the current calendar
-# time. With this option disabled,
-# cyg_libc_time_settime() does not disappear, but
-# will permanently return an error.
-#
-cdl_option CYGSEM_LIBC_TIME_SETTIME_WORKING {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_IO_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-};
-
-# POSIX time functions
-# Enabling this option allows the use of the
-# following functions defined in POSIX 1003.1:
-# asctime_r(), ctime_r(), gmtime_r(), strptime(), and
-# localtime_r().
-#
-cdl_option CYGFUN_LIBC_TIME_POSIX {
-    # 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_BSD_FUNCS
-    #     CYGINT_ISO_STRING_BSD_FUNCS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_CTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_GMTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE
-    #     Requires: CYGFUN_LIBC_TIME_POSIX
-    # option CYGPKG_LIBC_TIME_TESTS
-    #     Calculated:  
-    #                     "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time " 
-    #                     . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
-    #                 
-};
-
-# Single UNIX extensions
-# Enabling this option allows the use of
-# certain additional conversion specifiers
-# in the strftime function.
-#
-cdl_option CYGFUN_LIBC_TIME_SUS_EXTNS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Time zone offsets
-# These options control the default STandarD (STD)
-# and Daylight Savings Time (DST)
-# time offsets so that dates can be set correctly
-# for the local environment.
-#
-cdl_component CYGPKG_LIBC_TIME_ZONES {
-    # There is no associated value.
-};
-
-# >
-# Default Daylight Savings Time state
-# This option controls whether the initial
-# time environment is set up as STD, DST or
-# unknown. Use the value 1 for DST, 0 for STD, 
-# and (-1) for unknown. This can also be set at
-# runtime using the cyg_libc_time_setdst()
-# function.
-#
-cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_STATE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -1
-    # value_source default
-    # Default value: -1
-    # Legal values: -1 to 1
-};
-
-# Default Standard Time offset
-# This option controls the offset from UTC in
-# seconds when in local Standard Time. This
-# value can be positive or negative. It
-# can also be set at run time using the
-# cyg_libc_time_setzoneoffsets() function.
-#
-cdl_option CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Legal values: -90000 to 90000
-};
-
-# Default Daylight Savings Time offset
-# This option controls the offset from UTC in
-# seconds when in local Daylight Savings Time. This
-# value can be positive or negative. It
-# can also be set at run time using the
-# cyg_libc_time_setzoneoffsets() function.
-#
-cdl_option CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 3600
-    # value_source default
-    # Default value: 3600
-    # Legal values: -90000 to 90000
-};
-
-# <
-# Inline functions
-# These options control whether certain functions
-# are available in inline form. This may lead to
-# faster code at the expense of code space. But for
-# some functions, or some functions with constant
-# arguments, it may in fact lead to smaller code.
-#
-cdl_component CYGPKG_LIBC_TIME_INLINES {
-    # There is no associated value.
-};
-
-# >
-# asctime()
-# Allow the asctime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_ASCTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# ctime()
-# Allow the ctime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_CTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# difftime()
-# Allow the difftime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_DIFFTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# gmtime()
-# Allow the gmtime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_GMTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# localtime()
-# Allow the localtime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_LOCALTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# mktime()
-# Allow the mktime() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_MKTIME_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# asctime_r()
-# Allow the asctime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_ASCTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# ctime_r()
-# Allow the ctime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_CTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# gmtime_r()
-# Allow the gmtime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_GMTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# localtime_r()
-# Allow the localtime_r() function to be inlined
-#
-cdl_option CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGFUN_LIBC_TIME_POSIX
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    #   --> 1
-};
-
-# <
-# clock() tracing level
-# Trace verbosity level for debugging the clock()
-# function. Increase this value to get
-# additional trace output when tracing is enabled.
-#
-cdl_option CYGNUM_LIBC_TIME_CLOCK_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 time 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_TIME_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_TIME_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wno-format
-    # value_source default
-    # Default value: -Wno-format
-};
-
-# 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_TIME_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# C library time and date function tests
-# This option specifies the set of tests for the C library
-# time and date functions.
-#
-cdl_option CYGPKG_LIBC_TIME_TESTS {
-    # Calculated value:  
-    #                     "tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time " 
-    #                     . (CYGFUN_LIBC_TIME_POSIX ? "tests/strptime" : "")
-    #                 
-    #     CYGFUN_LIBC_TIME_POSIX == 1
-    # Flavor: data
-    # Current_value: tests/asctime tests/clock tests/ctime tests/gmtime tests/localtime tests/mktime tests/strftime tests/time tests/strptime
-};
-
-# <
-# <
-# <
-# Math library
-# doc: ref/libc.html
-# ISO standard floating point mathematical library
-# containing many useful functions for mathematical
-# calculations.
-#
-cdl_package CYGPKG_LIBM {
-    # 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_LIBC_STDIO_PRINTF_FLOATING_POINT
-    #     Requires: CYGPKG_LIBM
-    # option CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM 
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     Requires: CYGPKG_LIBM
-    # option CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT
-    #     DefaultValue:  0 != CYGPKG_LIBM &&
-    #                                 0 != CYGINT_ISO_STDLIB_STRCONV_FLOAT 
-    # option CYGFUN_LIBC_strtod
-    #     Requires: CYGPKG_LIBM
-    # option CYGFUN_LIBC_strtod
-    #     DefaultValue:  0 != CYGPKG_LIBM 
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_LIBM
-};
-
-# >
-# Compatibility mode
-# These options deal with behaviour related to
-# the various compatibility modes - POSIX, IEEE,
-# X/OPEN and SVID.
-#
-cdl_component CYGPKG_LIBM_COMPATIBILITY {
-    # There is no associated value.
-};
-
-# >
-#
-cdl_interface CYGINT_LIBM_COMPAT {
-    # Implemented by CYGSEM_LIBM_COMPAT_IEEE_ONLY, active, disabled
-    # Implemented by CYGNUM_LIBM_COMPATIBILITY, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_LIBM_COMPAT
-    #     CYGINT_LIBM_COMPAT == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_LIBM_COMPAT
-    #     Requires: 1 == CYGINT_LIBM_COMPAT
-};
-
-# IEEE-only
-# The math library can be hard-coded to only
-# behave in one compatibility mode - IEEE. This
-# cannot be changed at run-time. IEEE mode is the
-# most minimal of the compatibility modes, and so
-# this will best help code size and speed, as well
-# as omitting the code for other compatibility
-# modes. If not defined, the math library can be
-# set at run-time to any of the supported
-# compatibility modes.
-#
-cdl_option CYGSEM_LIBM_COMPAT_IEEE_ONLY {
-    # 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 CYGSEM_LIBM_USE_STDERR
-    #     Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    # option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-};
-
-# Default mode
-# If you want to have support for more than one
-# compatibility mode settable at run-time, rather
-# than hard-coded IEEE mode, this component lets
-# you choose which mode should be the default.
-#
-cdl_component CYGNUM_LIBM_COMPATIBILITY {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 1 POSIX
-    # value_source default
-    # Default value: 1 POSIX
-    # Legal values:  "POSIX" "IEEE" "XOPEN" "SVID" 
-    # Requires: CYGPKG_LIBC
-    #     CYGPKG_LIBC == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    # option CYGNUM_LIBM_COMPAT_DEFAULT
-    #     Calculated:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-};
-
-# >
-# Numeric representation
-# This option automatically defines the default compatibility
-# mode for numeric representation in terms of the values used
-# to set that mode at run-time.
-#
-cdl_option CYGNUM_LIBM_COMPAT_DEFAULT {
-    # Calculated value:   CYGNUM_LIBM_COMPATIBILITY == "POSIX" ? "CYGNUM_LIBM_COMPAT_POSIX" : CYGNUM_LIBM_COMPATIBILITY == "IEEE"  ? "CYGNUM_LIBM_COMPAT_IEEE" : CYGNUM_LIBM_COMPATIBILITY == "XOPEN" ? "CYGNUM_LIBM_COMPAT_XOPEN" : CYGNUM_LIBM_COMPATIBILITY == "SVID"  ? "CYGNUM_LIBM_COMPAT_SVID" : "<undefined>"  
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    #     CYGNUM_LIBM_COMPATIBILITY == POSIX
-    # Flavor: data
-    # Current_value: CYGNUM_LIBM_COMPAT_POSIX
-};
-
-# <
-# SVID3-style scalb()
-# SVID3 defined the scalb() function as double
-# scalb(double, double) rather than double
-# scalb(double, int) which is used by IBM, DEC, and
-# probably others. Enabling this option chooses
-# the (double, double) version. Note there is a
-# function double scalbn(double, int) which is
-# unaffected by this choice.
-#
-cdl_option CYGFUN_LIBM_SVID3_scalb {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Reduce namespace pollution
-# If you do not want to use either the X/Open or
-# SVID3 compatibility modes, you may want to define
-# this option to reduce the chance of namespace
-# pollution. This is particularly likely to occur
-# here as these standards define symbols with
-# names that often appear in applications, such as
-# exception, DOMAIN, OVERFLOW, etc. If your
-# application also used these names, it may cause
-# problems.
-#
-cdl_option CYGSYM_LIBM_NO_XOPEN_SVID_NAMESPACE_POLLUTION {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Output to stderr for math errors
-# The SVID3 standard says that error
-# messages should be output on the stderr console
-# output stream. This option allows this ability
-# to be explicitly controlled. However, this still
-# only has an effect in SVID3 compatibility mode.
-#
-cdl_option CYGSEM_LIBM_USE_STDERR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    #     CYGSEM_LIBM_COMPAT_IEEE_ONLY == 0
-    #   --> 1
-    # Requires: CYGPKG_LIBC_STDIO
-    #     CYGPKG_LIBC_STDIO == current
-    #   --> 1
-};
-
-# <
-# Thread safety
-# This option controls whether the C library has
-# support for thread safe operation in general.
-# This requires eCos kernel support for per-thread
-# data, and adjustment of the stack limit.
-#
-cdl_component CYGPKG_LIBM_THREAD_SAFETY {
-    # There is no associated value.
-};
-
-# >
-# Compatibility mode setting
-# This option makes the setting of the compatiblity
-# mode be a per-thread property. This directly
-# implies that it also becomes thread-safe.
-#
-cdl_option CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: !CYGSEM_LIBM_COMPAT_IEEE_ONLY
-    #     CYGSEM_LIBM_COMPAT_IEEE_ONLY == 0
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL
-    #     Requires: CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-};
-
-# gamma() and lgamma()
-# This option makes the gamma() and lgamma()
-# functions be thread-safe. Note that these
-# functions are identical - they take the log of
-# the absolute value of their argument. The sign
-# of the argument is stored in a variable called
-# signgam. Enabling this option makes signgam
-# a per-thread variable. Note there are also
-# gamma_r() and lgamma_r() alternatives that
-# allow signgam to be passed in by reference as
-# an argument.
-#
-cdl_option CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS {
-    # 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 == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL
-    #     Requires: CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-};
-
-# <
-# Tracing output levels in math library
-# Tracing support is useful for debugging. Some
-# Math library modules can be configured with
-# different levels of tracing verbosity. These
-# levels can be configured here.
-#
-cdl_component CYGPKG_LIBM_TRACE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGDBG_USE_TRACING
-    #     CYGDBG_USE_TRACING == 0
-    #   --> 0
-};
-
-# >
-# Compatibility mode get/set
-# Trace level for debugging the getting and
-# setting of the compatibility mode when it is
-# configured to be thread-safe.
-#
-cdl_option CYGNUM_LIBM_COMPATMODE_TRACE_LEVEL {
-    # This option is not active
-    # The parent CYGPKG_LIBM_TRACE is disabled
-
-    # 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
-    # Requires: CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE
-    #     CYGSEM_LIBM_THREAD_SAFE_COMPAT_MODE == 0
-    #   --> 0
-};
-
-# signgam variable access
-# Trace level for debugging all accesses to the
-# signgam variable in thread-safe mode.
-#
-cdl_option CYGNUM_LIBM_SIGNGAM_TRACE_LEVEL {
-    # This option is not active
-    # The parent CYGPKG_LIBM_TRACE is disabled
-
-    # 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
-    # Requires: CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS
-    #     CYGSEM_LIBM_THREAD_SAFE_GAMMA_FUNCTIONS == 0
-    #   --> 0
-};
-
-# <
-# Bessel function limit of significance
-# For the Bessel functions (j0(), j1(), jn(),
-# y0(), y1(), yn()) this option defines the
-# maximum absolute value of the ordinate
-# before we assume total loss of significance.
-# This number must be a floating-point number (e.g.
-# contains a decimal point), and should be
-# large.
-#
-cdl_option CYGNUM_LIBM_X_TLOSS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1.41484755040569E+16
-    # value_source default
-    # Default value: 1.41484755040569E+16
-    # Legal values: 1 to 1e308
-};
-
-# Math library 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_LIBM_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the math library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_LIBM_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-fno-strict-aliasing -ffloat-store"
-    # value_source default
-    # Default value:  "-fno-strict-aliasing" .  ((!CYGPKG_HAL_I386 && !CYGPKG_HAL_SYNTH_I386) ? "" : " -ffloat-store") 
-    #     CYGPKG_HAL_I386 == current
-    #     CYGPKG_HAL_SYNTH_I386 (unknown) == 0
-    #   --> "-fno-strict-aliasing -ffloat-store"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the math library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_LIBM_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Math library tests
-# This option specifies the set of tests for the math library.
-#
-cdl_option CYGPKG_LIBM_TESTS {
-    # Calculated value:  "tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh" 
-    # Flavor: data
-    # Current_value: tests/vectors/acos tests/vectors/asin tests/vectors/atan tests/vectors/atan2 tests/vectors/ceil tests/vectors/cos tests/vectors/cosh tests/vectors/exp tests/vectors/fabs tests/vectors/floor tests/vectors/fmod tests/vectors/frexp tests/vectors/ldexp tests/vectors/log tests/vectors/log10 tests/vectors/modf tests/vectors/pow tests/vectors/sin tests/vectors/sinh tests/vectors/sqrt tests/vectors/tan tests/vectors/tanh
-};
-
-# <
-# <
-# Wallclock device
-# The wallclock device provides real time stamps, as opposed
-# to the eCos kernel timers which typically just count the
-# number of clock ticks since the hardware was powered up.
-# Depending on the target platform this device may involve
-# interacting with a suitable clock chip, or it may be
-# emulated by using the kernel timers.
-#
-cdl_package CYGPKG_IO_WALLCLOCK {
-    # 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_LIBC_TIME_TIME_WORKING
-    #     Requires: CYGPKG_IO_WALLCLOCK
-    # option CYGSEM_LIBC_TIME_SETTIME_WORKING
-    #     Requires: CYGPKG_IO_WALLCLOCK
-    # package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     ActiveIf: CYGPKG_IO_WALLCLOCK
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     ActiveIf: CYGPKG_IO_WALLCLOCK
-};
-
-# >
-# Number of wallclock hardware implementations
-#
-cdl_interface CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS {
-    # Implemented by CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_WALLCLOCK_EMULATE
-    #     DefaultValue:  0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    # option CYGIMP_WALLCLOCK_NONE
-    #     DefaultValue:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-};
-
-# Number of wallclock implementations
-#
-cdl_interface CYGINT_WALLCLOCK_IMPLEMENTATIONS {
-    # Implemented by CYGPKG_WALLCLOCK_EMULATE, active, disabled
-    # Implemented by CYGIMP_WALLCLOCK_NONE, active, disabled
-    # Implemented by CYGIMP_WALLCLOCK_HARDWARE, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-    # Requires: 1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
-    #     CYGINT_WALLCLOCK_IMPLEMENTATIONS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # interface CYGINT_WALLCLOCK_IMPLEMENTATIONS
-    #     Requires: 1 == CYGINT_WALLCLOCK_IMPLEMENTATIONS
-};
-
-# Wallclock driver supports set/get mode
-#
-cdl_interface CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED {
-    # Implemented by CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_WALLCLOCK_MODE
-    #     DefaultValue:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ?  "set_get" : "init_get" 
-    # option CYGSEM_WALLCLOCK_MODE
-    #     Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-};
-
-# Wallclock mode
-# The wallclock driver can be used in one of two
-# modes. Set/get mode allows time to be kept during power
-# off (assuming there's a battery backed clock). Init/get
-# mode is slightly smaller and can be used when there is no
-# battery backed clock - in this mode time 0 is the time of
-# the board power up.
-#
-cdl_option CYGSEM_WALLCLOCK_MODE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value set_get
-    # value_source default
-    # Default value:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ?  "set_get" : "init_get" 
-    #     CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED == 1
-    #   --> set_get
-    # Legal values:  "init_get" "set_get" 
-    # Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-    #     CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED == 1
-    #     CYGSEM_WALLCLOCK_MODE == set_get
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGSEM_WALLCLOCK_MODE
-    #     Requires:  CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED ||  CYGSEM_WALLCLOCK_MODE == "init_get" 
-    # option CYGSEM_WALLCLOCK_SET_GET_MODE
-    #     Calculated:  CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 
-};
-
-# Wallclock set/get mode
-#
-cdl_option CYGSEM_WALLCLOCK_SET_GET_MODE {
-    # Calculated value:  CYGSEM_WALLCLOCK_MODE == "set_get" ? 1 : 0 
-    #     CYGSEM_WALLCLOCK_MODE == set_get
-    # Flavor: bool
-    # Current value: 1
-};
-
-# Wallclock implementation
-# Implementations of the wallclock device.
-#
-cdl_component CYGPKG_IO_WALLCLOCK_IMPLEMENTATION {
-    # There is no associated value.
-
-    # The following properties are affected by this value
-};
-
-# >
-# Wallclock emulator
-# When this option is enabled, a wallclock device will be
-# emulated using the kernel real-time clock.
-#
-cdl_option CYGPKG_WALLCLOCK_EMULATE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    #     CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS == 1
-    #   --> 0
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-};
-
-# No wallclock
-# Disables the wallclock.
-#
-cdl_option CYGIMP_WALLCLOCK_NONE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value:  !CYGPKG_KERNEL && 0 == CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS 
-    #     CYGPKG_KERNEL == current
-    #     CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS == 1
-    #   --> 0
-};
-
-# Hardware wallclock
-#
-cdl_option CYGIMP_WALLCLOCK_HARDWARE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     ActiveIf: CYGIMP_WALLCLOCK_HARDWARE
-};
-
-# <
-# Wallclock 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_WALLCLOCK_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the wallclock device. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_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 wallclock device. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Wallclock tests
-# This option specifies the set of tests for the
-# wallclock device.
-#
-cdl_option CYGPKG_IO_WALLCLOCK_TESTS {
-    # Calculated value:  CYGPKG_KERNEL ? "tests/wallclock tests/wallclock2" : "" 
-    #     CYGPKG_KERNEL == current
-    # Flavor: data
-    # Current_value: tests/wallclock tests/wallclock2
-};
-
-# <
-# Wallclock device driver for Dallas 12887
-# This package provides a file with init, get and set functions
-# for the Dallas 12887 clock part.
-#
-cdl_package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 {
-    # 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_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-    # ActiveIf constraint: CYGIMP_WALLCLOCK_HARDWARE
-    #     CYGIMP_WALLCLOCK_HARDWARE == 1
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVICES_WALLCLOCK_I386_PC
-    #     Requires: CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-};
-
-# >
-# DS12887 wallclock 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_DEVICES_WALLCLOCK_DALLAS_DS12887_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the wallclock device. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887_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 wallclock device. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# PC board RTC Driver
-# RTC driver for PC.
-#
-cdl_package CYGPKG_DEVICES_WALLCLOCK_I386_PC {
-    # 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_WALLCLOCK
-    #     CYGPKG_IO_WALLCLOCK == current
-    #   --> 1
-    # ActiveIf constraint: CYGPKG_HAL_I386_PC
-    #     CYGPKG_HAL_I386_PC == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 current
-    # Requires: CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887
-    #     CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS12887 == current
-    #   --> 1
-};
-
-# >
-# IO port address of the ADDRESS register
-# This option sets the io address of the address port for
-# accessing the PC RTC
-#
-cdl_option CYGDAT_DEVS_WALLCLOCK_I386_PC_RTC_ADDRESS_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000070
-    # value_source default
-    # Default value: 0x00000070
-};
-
-# IO port address of the DATA register
-# This option sets the io address of the data port for
-# accessing the PC RTC
-#
-cdl_option CYGDAT_DEVS_WALLCLOCK_I386_PC_RTC_DATA_PORT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x00000071
-    # value_source default
-    # Default value: 0x00000071
-};
-
-# <
-# <
-# 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
-
-    # The following properties are affected by this value
-    # package CYGPKG_IO
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL_GENERIC_16X5X
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_SERIAL_I386_PC
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_FRAMEBUF
-    #     Requires: CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
-    # package CYGPKG_BLOCK_LIB
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_POSIX
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_IO_FILEIO
-    #     Requires: CYGPKG_ERROR
-    # package CYGPKG_USTL
-    #     Requires: CYGPKG_ERROR
-};
-
-# >
-# 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
-    # value_source default
-    # Default value: 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-};
-
-# 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: ""
-};
-
-# <
-# <
-# Framebuffer support
-# doc: ref/io-framebuf.html
-# The generic framebuffer package provides an API for accessing
-# one or more framebuffers, plus support for appropriate device
-# drivers.
-#
-cdl_package CYGPKG_IO_FRAMEBUF {
-    # 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_HAL CYGPKG_ERROR
-    #     CYGPKG_INFRA == current
-    #     CYGPKG_HAL == current
-    #     CYGPKG_ERROR == current
-    #   --> 1
-
-    # The following properties are affected by this value
-    # package CYGPKG_DEVS_FRAMEBUF_I386
-    #     ActiveIf: CYGPKG_IO_FRAMEBUF
-};
-
-# >
-# Number of available framebuffer devices
-# This interface specifies the number of framebuffer devices
-# supported by device driver(s) on this platform.
-#
-cdl_interface CYGINT_IO_FRAMEBUF_DEVICES {
-    # Implemented by CYGPKG_DEVS_FRAMEBUF_I386_FB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 1
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     ActiveIf: CYGINT_IO_FRAMEBUF_DEVICES
-    # option CYGPKG_IO_FRAMEBUF_TESTS
-    #     ActiveIf: CYGINT_IO_FRAMEBUF_DEVICES
-};
-
-# Names of available framebuffer devices
-# This option provides a list of the framebuffer devices available
-# on the current platform. It is controlled by the appropriate
-# device driver(s) and should not be edited by users.
-#
-cdl_option CYGDAT_IO_FRAMEBUF_DEVICES {
-    # Flavor: data
-    user_value " fb0 "
-    # value_source user
-    # Default value: ""
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-    # component CYGPKG_DEVS_FRAMEBUF_I386_FB
-    #     Requires: is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " fb0 ")
-};
-
-# Framebuffer device to use for testing
-# This option determines the framebuffer device to be used for running
-# the testcases. By default the build system will automatically select
-# the first entry in CYGDAT_IO_FRAMEBUF_DEVICES, which will be the
-# only entry if there is only framebuffer device in the system.
-#
-cdl_option CYGDAT_IO_FRAMEBUF_TEST_DEVICE {
-    # ActiveIf constraint: CYGINT_IO_FRAMEBUF_DEVICES
-    #     CYGINT_IO_FRAMEBUF_DEVICES == 1
-    #   --> 1
-
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-    #     CYGDAT_IO_FRAMEBUF_DEVICES == " fb0 "
-    #     CYGDAT_IO_FRAMEBUF_TEST_DEVICE == 0
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGDAT_IO_FRAMEBUF_TEST_DEVICE
-    #     Requires:  is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") 
-};
-
-# Functionality supported by the platform's framebuffer(s)
-# This component holds details of the functionality provided by the
-# framebuffer device driver(s) for the current platform.
-#
-cdl_component CYGPKG_IO_FRAMEBUF_FUNCTIONALITY {
-    # There is no associated value.
-};
-
-# >
-# 32bpp pixel support required
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provides a 32 bits
-# per pixel display. This constrains the cyg_colour data type
-# to be at least 32 bits.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_32BPP {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-};
-
-# Framebuffer supports true colour mode
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform support true colour
-# operation. In other words the contents of the framebuffer
-# defines the colours directly and there is no indirection via
-# a palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_TRUE_COLOUR {
-    # Implemented by CYGHWR_DEVS_FRAMEBUF_SYNTH_TRUE_COLOUR, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Framebuffer uses a palette for colours
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform use a palette. In
-# other words the contents of the framebuffer's memory do not
-# represent colours directly, but instead are treated as indices
-# into a separate table known as the palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_PALETTE {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-};
-
-# Framebuffer uses a writeable palette for colours
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform use a palette, and this
-# palette can be modified at run-time. In other words the contents
-# of the framebuffer's memory do not represent colours directly,
-# but instead are treated as indices into a separate table known
-# as the palette.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE {
-    # 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 CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE
-    #     ActiveIf: CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
-};
-
-# Framebuffer provides viewport support
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provide viewport support.
-# In other words only a subset of the framebuffer, the viewport,
-# is actually visible on the display and application code can move
-# this viewport.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_VIEWPORT {
-    # Implemented by CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT, active, disabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 0 0
-
-    # The following properties are affected by this value
-};
-
-# Framebuffer provides double buffering support
-# This interface will be implemented if any of the framebuffer
-# device drivers for the current platform provide support for
-# double buffering. In other words the framebuffer memory that
-# is updated by graphics operations is not what actually gets
-# displayed. Instead there is a separate hidden area of memory
-# used for the display, and when drawing is complete a flush
-# operation is needed to move the framebuffer contents to that
-# hidden area. This makes it possible to update the display more
-# smoothly, at the cost of potentially expensive memory copy
-# operations.
-#
-cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_DOUBLE_BUFFER {
-    # Implemented by CYGPKG_DEVS_FRAMEBUF_I386_FB, active, enabled
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 1
-
-    # The following properties are affected by this value
-};
-
-# <
-# Framebuffers should install a default palette
-# Framebuffer devices which involve a writeable palette may set this
-# to a default palette when activated by cyg_fb_on() or equivalent
-# functionality. This is useful when the application will access the
-# framebuffer directly. It is less useful if a higher-level graphics
-# library is in use because typically that will install its own
-# palette, and typically there is a code/data overhead of approximately 1K.
-#
-cdl_option CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE {
-    # This option is not active
-    # ActiveIf constraint: CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
-    #     CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE == 0
-    #   --> 0
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Framebuffer build options
-# Package specific build options including control over
-# compiler flags used only in building the generic frame
-# buffer package, and details of which tests are built.
-#
-cdl_component CYGPKG_IO_FRAMEBUF_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the generic framebuffer package. These flags
-# are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_IO_FRAMEBUF_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 generic framebuffer package. These flags
-# are removed from the set of global flags if present.
-#
-cdl_option CYGPKG_IO_FRAMEBUF_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# Framebuffer tests
-# This option specifies the set of tests for the framebuffer package
-#
-cdl_option CYGPKG_IO_FRAMEBUF_TESTS {
-    # ActiveIf constraint: CYGINT_IO_FRAMEBUF_DEVICES
-    #     CYGINT_IO_FRAMEBUF_DEVICES == 1
-    #   --> 1
-
-    # Calculated value:  "tests/fb tests/fbmacro" 
-    # Flavor: booldata
-    # Current value: 1 tests/fb tests/fbmacro
-};
-
-# <
-# i386 Target Framebuffer device driver
-# doc: ref/devs-framebuf-i386-ref.html
-# This package provides a framebuffer device driver for the
-# i386 target.
-#
-cdl_package CYGPKG_DEVS_FRAMEBUF_I386 {
-    # Packages cannot be added or removed, nor can their version be changed,
-    # simply by editing their value. Instead the appropriate configuration
-    # should be used to perform these actions.
-
-    # ActiveIf constraint: CYGPKG_IO_FRAMEBUF
-    #     CYGPKG_IO_FRAMEBUF == current
-    #   --> 1
-
-    # This value cannot be modified here.
-    # Flavor: booldata
-    # Current value: 1 v3_0
-};
-
-# >
-# Provide framebuffer device fb0
-# The synthetic target framebuffer driver can provide up to
-# four framebuffer devices, named fb0 to fb3. Each device's
-# width, height, depth, and colour format can be controlled.
-# This option enables device fb
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_FB {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " fb0 ")
-    #     CYGDAT_IO_FRAMEBUF_DEVICES == " fb0 "
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_DEVS_FRAMEBUF_I386_FUNCTIONALITY
-    #     ActiveIf:  CYGPKG_DEVS_FRAMEBUF_I386_FB 
-};
-
-# >
-# fb base address
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_BASE_ADDRESS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 0x0000A000
-    # value_source default
-    # Default value: 0x0000A000
-};
-
-# fb0 width
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 320
-    # value_source default
-    # Default value: 320
-    # Legal values: 16 to 4096
-
-    # The following properties are affected by this value
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH
-    #     DefaultValue: CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH
-    #     LegalValues: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-};
-
-# fb0 height
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 240
-    # value_source default
-    # Default value: 240
-    # Legal values: 16 to 4096
-
-    # The following properties are affected by this value
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT
-    #     DefaultValue: CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    # option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT
-    #     LegalValues: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-};
-
-# fb0 format
-# Each synthetic target framebuffer device can be configured
-# to emulate a particular format. This consists of two fields:
-# depth and colour. The depth is in bits per pixel and can be
-# 8bpp, 16bpp or 32bpp. Colour can be either paletted or true colour.
-# 16bpp and 32bpp implies true colour. 8bpp can be either paletted
-# or true colour. For 8bpp the default palette is VGA. The application
-# can change these default palettes as required to match the hardware being emulated.
-#
-cdl_option CYGDAT_DEVS_FRAMEBUF_I386_FB_FORMAT {
-    # Flavor: data
-    user_value 8BPP_TRUE_332
-    # value_source user
-    # Default value: 8BPP_PAL888
-    # Legal values: 
-    #                             "8BPP_PAL888"     "8BPP_TRUE_332"
-    #                             "16BPP_TRUE_565"  "16BPP_TRUE_555"
-    #                             "32BPP_TRUE_0888"
-    #                         
-};
-
-# fb0 provides viewport support
-# Optionally framebuffer device  can support a viewport.
-# In other words only a subset of the framebuffer, the viewport,
-# is actually visible on the display and application code can
-# move this viewport.
-#
-cdl_component CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# >
-# fb0 viewport width
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_WIDTH {
-    # This option is not active
-    # The parent CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 320
-    # value_source default
-    # Default value: CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH == 320
-    #   --> 320
-    # Legal values: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_WIDTH == 320
-};
-
-# fb0 viewport height
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_VIEWPORT_HEIGHT {
-    # This option is not active
-    # The parent CYGIMP_DEVS_FRAMEBUF_I386_FB_VIEWPORT is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 240
-    # value_source default
-    # Default value: CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT == 240
-    #   --> 240
-    # Legal values: 16 to CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT
-    #     CYGNUM_DEVS_FRAMEBUF_I386_FB_HEIGHT == 240
-};
-
-# <
-# fb0 supports page flipping
-# Optionally framebuffer device  can support page flipping.
-# The device supports between two and four pages, only one
-# of which is visible on the display. This allows code to
-# update one page without disturbing what is currently visible.
-#
-cdl_option CYGNUM_DEVS_FRAMEBUF_I386_FB_PAGE_FLIPPING {
-    # Flavor: booldata
-    # No user value, uncomment the following line to provide one.
-    # user_value 0 0
-    # value_source default
-    # Default value: 0 0
-    # Legal values: 2 3 4
-};
-
-# <
-# Functionality supported by the enabled framebuffer(s)
-# The generic framebuffer code needs configure-time information about
-# functionality of the enabled framebuffer or framebuffers. Usually
-# all this information is fixed by the hardware, but the i386
-# target framebuffer support is more flexible than real hardware. To
-# cope with this some dummy options are needed.
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_FUNCTIONALITY {
-    # ActiveIf constraint:  CYGPKG_DEVS_FRAMEBUF_I386_FB 
-    #     CYGPKG_DEVS_FRAMEBUF_I386_FB == 1
-    #   --> 1
-
-    # There is no associated value.
-};
-
-# >
-# One or more of the enabled framebuffer devices uses a true colour display
-#
-cdl_option CYGHWR_DEVS_FRAMEBUF_SYNTH_TRUE_COLOUR {
-    # Calculated value:  is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB0_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB1_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB2_FORMAT, "TRUE") ||
-    #                     is_substr(CYGDAT_DEVS_FRAMEBUF_SYNTH_FB3_FORMAT, "TRUE") 
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB0_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB1_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB2_FORMAT (unknown) == 0
-    #     CYGDAT_DEVS_FRAMEBUF_SYNTH_FB3_FORMAT (unknown) == 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Framebuffer build options
-# Package specific build options including control over
-# compiler flags used only in building the synthetic
-# target framebuffer device driver.
-#
-cdl_component CYGPKG_DEVS_FRAMEBUF_I386_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for building
-# the synthetic target framebuffer device driver. These flags
-# are used in addition to the set of global flags.
-#
-cdl_option CYGPKG_DEVS_FRAMEBUF_I386_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 synthetic target framebuffer device driver. These flags
-# are removed from the set of global flags if present.
-#
-cdl_option CYGPKG_DEVS_FRAMEBUF_I386_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value ""
-    # value_source default
-    # Default value: ""
-};
-
-# <
-# <
-# <
-# Block cache and access library
-#
-cdl_package CYGPKG_BLOCK_LIB {
-    # 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_MEMALLOC
-    #     CYGPKG_MEMALLOC == current
-    #   --> 1
-    # Requires: CYGPKG_LINUX_COMPAT
-    #     CYGPKG_LINUX_COMPAT == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-};
-
-# >
-# Block access statistics support
-# This option enables statistics for
-# block access operations.
-#
-cdl_option CYGIMP_BLOCK_LIB_STATISTICS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-};
-
-# <
-# Linux compatibility layer
-# eCos supports a basic Linux compatibility Layer providing various
-# functions, equivalents or stubs expected by Linux kernel code, for
-# assistance in porting drivers and file system code from Linux.
-# Note this does not provide Linux compatibility to applications.
-#
-cdl_package CYGPKG_LINUX_COMPAT {
-    # 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_BLOCK_LIB
-    #     Requires: CYGPKG_LINUX_COMPAT
-};
-
-# >
-# Define page size
-# Define the page size. The value entered here is used as an
-# exponent X in the expression 2^^X to ensure that the page
-# size is always an integer power of two.
-#
-cdl_option CYGNUM_LINUX_COMPAT_PAGE_SIZE_EXPONENT {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 12
-    # value_source default
-    # Default value: 12
-    # Legal values: 10 to 16
-};
-
-# <
-# POSIX compatibility layer
-# doc: ref/posix-compatibility.html
-# This package enables the POSIX compatibility
-# layer that implements IEEE 1003.1.
-#
-cdl_package CYGPKG_POSIX {
-    # 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_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGIMP_KERNEL_SCHED_SORTED_QUEUES
-    #     CYGIMP_KERNEL_SCHED_SORTED_QUEUES == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_POSIX_LIMITS_HEADER ==  "<cyg/posix/limits.h>" 
-    #     CYGBLD_ISO_POSIX_LIMITS_HEADER == <cyg/posix/limits.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PMUTEXTYPES_HEADER ==  "<cyg/posix/muttypes.h>" 
-    #     CYGBLD_ISO_PMUTEXTYPES_HEADER == <cyg/posix/muttypes.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PTHREAD_MUTEX_HEADER ==  "<cyg/posix/mutex.h>" 
-    #     CYGBLD_ISO_PTHREAD_MUTEX_HEADER == <cyg/posix/mutex.h>
-    #   --> 1
-};
-
-# >
-# POSIX pthread mutexes
-# This component provides support for POSIX pthreads
-# mutexes.
-#
-cdl_component CYGPKG_POSIX_PTHREAD_MUTEX {
-    # 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_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# >
-# POSIX mutex priority inheritance feature test macro
-# This option defines the POSIX feature test macro for
-# supporting priority inheritance protocol in mutexes.
-#
-cdl_option _POSIX_THREAD_PRIO_INHERIT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_INHERIT == 1
-    #   --> 1
-};
-
-# POSIX mutex priority ceiling feature test macro
-# This option defines the POSIX feature test macro for 
-# supporting priority ceiling protocol in mutexes.
-#
-cdl_option _POSIX_THREAD_PRIO_PROTECT {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
-    #     CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING == 1
-    #   --> 1
-};
-
-# <
-# POSIX scheduling configuration
-# This component provides controls over scheduling in POSIX.
-#
-cdl_component CYGPKG_POSIX_SCHED {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires: CYGPKG_POSIX_CLOCKS
-    #     CYGPKG_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_PTHREAD_REQUIREMENTS
-    #     Requires: CYGPKG_POSIX_SCHED
-};
-
-# >
-# POSIX priority scheduling feature test macro
-# This option defines the POSIX feature test macro that 
-# indicates that priority scheduling is present. This 
-# should not be undefined.
-#
-cdl_option _POSIX_PRIORITY_SCHEDULING {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-};
-
-# <
-# POSIX pthread configuration
-# This component provides configuration controls for the 
-# POSIX pthreads package.
-#
-cdl_component CYGPKG_POSIX_PTHREAD {
-    # 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_POSIX_TIMERS
-    #     Requires: CYGPKG_POSIX_PTHREAD
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires: CYGPKG_POSIX_PTHREAD
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS
-    #     Requires:  CYGSEM_LIBC_STARTUP_MAIN_THREAD ||  (CYGSEM_LIBC_STARTUP_MAIN_OTHER && CYGPKG_POSIX_PTHREAD) 
-};
-
-# >
-# Generic requirements of pthread package
-# This option exists merely to carry the pthread
-# package requirements.
-#
-cdl_option CYGPKG_POSIX_PTHREAD_REQUIREMENTS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGPKG_POSIX_SCHED
-    #     CYGPKG_POSIX_SCHED == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE
-    #     CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_SCHED_ASR_SUPPORT
-    #     CYGSEM_KERNEL_SCHED_ASR_SUPPORT == 1
-    #   --> 1
-    # Requires: CYGSEM_KERNEL_SCHED_ASR_GLOBAL
-    #     CYGSEM_KERNEL_SCHED_ASR_GLOBAL == 1
-    #   --> 1
-    # Requires: !CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL
-    #     CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL == 0
-    #   --> 1
-    # Requires: CYGFUN_KERNEL_THREADS_STACK_LIMIT
-    #     CYGFUN_KERNEL_THREADS_STACK_LIMIT == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PTHREADTYPES_HEADER ==  "<cyg/posix/types.h>" 
-    #     CYGBLD_ISO_PTHREADTYPES_HEADER == <cyg/posix/types.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_PTHREAD_IMPL_HEADER ==  "<cyg/posix/pthread.h>" 
-    #     CYGBLD_ISO_PTHREAD_IMPL_HEADER == <cyg/posix/pthread.h>
-    #   --> 1
-};
-
-# Constant values used in pthread package
-# These are values that are either configurable, or derived
-# from system parameters.
-#
-cdl_component CYGPKG_POSIX_PTHREAD_VALUES {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# Maximum number of iterations of key destructors
-# Maximum number of iterations of key destructors allowed.
-#
-cdl_option CYGNUM_POSIX_PTHREAD_DESTRUCTOR_ITERATIONS {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 4 to 100
-};
-
-# Maximum number of per-thread data keys allowed
-# Number of per-thread data keys supported.
-#
-cdl_option CYGNUM_POSIX_PTHREAD_KEYS_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 128
-    # value_source default
-    # Default value: 128
-    # Legal values: 128 to 65535
-};
-
-# Maximum number of threads allowed
-# Maximum number of threads supported.
-#
-cdl_option CYGNUM_POSIX_PTHREAD_THREADS_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 64
-    # value_source default
-    # Default value: 64
-    # Legal values: 64 to 1024
-};
-
-# <
-# Fixed Feature test macros for POSIX
-# These options define POSIX feature test macros that
-# describe the eCos implementation of pthreads. These
-# are not changeable configuration options.
-#
-cdl_component CYGPKG_POSIX_PTHREAD_FEATURES {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# >
-# POSIX thread support feature test macro
-# This option defines the POSIX feature test macro
-# for thread support.
-#
-cdl_option _POSIX_THREADS {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_KERNEL_SCHED_TIMESLICE
-    #     CYGSEM_KERNEL_SCHED_TIMESLICE == 1
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_THREADS_DATA
-    #     CYGVAR_KERNEL_THREADS_DATA == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option _POSIX_THREAD_PRIORITY_SCHEDULING
-    #     Requires: _POSIX_THREADS
-};
-
-# POSIX thread priority scheduling feature test macro
-# This option defines the POSIX feature test macro
-# for thread priority scheduling support.
-#
-cdl_option _POSIX_THREAD_PRIORITY_SCHEDULING {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires: CYGSEM_KERNEL_SCHED_MLQUEUE
-    #     CYGSEM_KERNEL_SCHED_MLQUEUE == 1
-    #   --> 1
-    # Requires: _POSIX_THREADS
-    #     _POSIX_THREADS == 1
-    #   --> 1
-};
-
-# POSIX stack address attribute feature test macro
-# This option defines the POSIX feature test macro
-# for supporting the thread stack address in the thread
-# attribute object.
-#
-cdl_option _POSIX_THREAD_ATTR_STACKADDR {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# POSIX stack size attribute feature test macro
-# This option defines the POSIX feature test macro
-# for supporting the thread stack size in the thread
-# attribute object.
-#
-cdl_option _POSIX_THREAD_ATTR_STACKSIZE {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-};
-
-# POSIX process shared attribute feature test macro
-# This option defines the POSIX feature test macro
-# for supporting process shared mutexes. Since eCos
-# does not have processes, this attribute is undefined.
-#
-cdl_option _POSIX_THREAD_PROCESS_SHARED {
-    # Calculated value: 0
-    # Flavor: bool
-    # Current value: 0
-};
-
-# <
-# Main thread configuration
-# These options control the thread used to
-# run the main() application entry routine.
-#
-cdl_component CYGPKG_POSIX_MAIN_THREAD {
-    # Calculated value: 1
-    # Flavor: bool
-    # Current value: 1
-    # Requires:  0 != CYGPKG_LIBC_STARTUP 
-    #     CYGPKG_LIBC_STARTUP == current
-    #   --> 1
-    # Requires: CYGSEM_LIBC_STARTUP_MAIN_OTHER
-    #     CYGSEM_LIBC_STARTUP_MAIN_OTHER == 1
-    #   --> 1
-};
-
-# >
-# main()'s default thread priority
-# POSIX compatibility requires that the application's
-# main() function be invoked in a thread.
-# This option controls the priority of that thread. This
-# priority is the POSIX priority and is NOT the same as
-# an eCos thread priority. With POSIX thread priorities,
-# lower numbers are lower priority, and higher numbers are
-# higher priority.
-#
-cdl_option CYGNUM_POSIX_MAIN_DEFAULT_PRIORITY {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 0 to 31
-};
-
-# <
-# <
-# POSIX clocks
-# This component provides configuration controls for
-# the POSIX clocks and the sleep(), nanosleep() and 
-# gettimeofday() functions.
-#
-cdl_option CYGPKG_POSIX_CLOCKS {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_POSIX_CLOCKS_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_CLOCKS_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_STRUCTTIMEVAL_HEADER ==  "<cyg/posix/sys/time.h>" 
-    #     CYGBLD_ISO_STRUCTTIMEVAL_HEADER == <cyg/posix/sys/time.h>
-    #   --> 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_SCHED
-    #     Requires: CYGPKG_POSIX_CLOCKS
-    # component CYGPKG_POSIX_MQUEUES
-    #     Requires: CYGPKG_POSIX_CLOCKS
-};
-
-# POSIX timers
-# This component provides configuration controls for
-# the POSIX timers.
-#
-cdl_option CYGPKG_POSIX_TIMERS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_TIMER_TYPES_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_POSIX_TIMERS_HEADER ==  "<cyg/posix/time.h>" 
-    #     CYGBLD_ISO_POSIX_TIMERS_HEADER == <cyg/posix/time.h>
-    #   --> 1
-    # Requires: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-    # Requires: CYGVAR_KERNEL_COUNTERS_CLOCK
-    #     CYGVAR_KERNEL_COUNTERS_CLOCK == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_PTHREAD
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_SIGNALS
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #   --> 0
-    # Requires: CYGINT_ISO_POSIX_CLOCKS
-    #     CYGINT_ISO_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_POSIX_SIGNALS
-    #     Requires: CYGPKG_POSIX_TIMERS
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# POSIX semaphores
-# This component provides configuration controls for
-# POSIX semaphores.
-#
-cdl_option CYGPKG_POSIX_SEMAPHORES {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_SEMAPHORES_HEADER ==  "<cyg/posix/semaphore.h>" 
-    #     CYGBLD_ISO_SEMAPHORES_HEADER == <cyg/posix/semaphore.h>
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# POSIX message queues
-# This component provides configuration controls for
-# POSIX message queues.
-#
-cdl_component CYGPKG_POSIX_MQUEUES {
-    # 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 == current
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_PTHREAD_MUTEX
-    #     CYGINT_ISO_PTHREAD_MUTEX == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_CLOCKS
-    #     CYGPKG_POSIX_CLOCKS == 1
-    #   --> 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# >
-# Maximum number of message queues
-#
-cdl_option CYGNUM_POSIX_MQUEUE_OPEN_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 1 to 999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     DefaultValue:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-    # option CYGNUM_ISO_MQUEUE_OPEN_MAX
-    #     DefaultValue:  CYGNUM_POSIX_MQUEUE_OPEN_MAX > 0 ? CYGNUM_POSIX_MQUEUE_OPEN_MAX : 0 
-};
-
-# Validate queue descriptors
-# This option turns on checking that message queue descriptors
-# (of type mqd_t) passed into mq_* functions are valid. If so,
-# the functions will fail with EBADF, as POSIX 1003.1 mandates.
-# If this option is disabled, if an invalid descriptor is used,
-# random corruption may occur, or the system may crash. If
-# you are confident invalid descriptors will not be used,
-# you may wish to be disable this to save some per-instance
-# memory and execution time.
-#
-cdl_option CYGIMP_POSIX_MQUEUE_VALIDATE_DESCRIPTOR {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Allow empty queue notification
-# Enabling this option adds the function mq_notify() to the
-# API. Without it, some code and per-message queue descriptor
-# space is saved, as well as no longer requiring POSIX realtime
-# signal support.
-#
-cdl_option CYGFUN_POSIX_MQUEUE_NOTIFY {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: CYGPKG_POSIX_SIGNALS
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #   --> 0
-    # Requires: CYGPKG_POSIX_SIGNALS
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #   --> 0
-};
-
-# <
-# POSIX signals configuration
-# This component provides configuration controls for
-# the POSIX signals.
-#
-cdl_component CYGPKG_POSIX_SIGNALS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: 1
-    # Requires: CYGPKG_KERNEL_EXCEPTIONS
-    #     CYGPKG_KERNEL_EXCEPTIONS == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_PTHREAD
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #   --> 1
-    # Requires: CYGPKG_POSIX_TIMERS
-    #     CYGPKG_POSIX_TIMERS == 0
-    #   --> 0
-    # Requires:  CYGBLD_ISO_SIGSETJMP_HEADER ==  "<cyg/posix/sigsetjmp.h>" 
-    #     CYGBLD_ISO_SIGSETJMP_HEADER == <cyg/posix/sigsetjmp.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_SIGNAL_NUMBERS_HEADER ==  "<cyg/posix/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 0
-    # Requires:  CYGBLD_ISO_SIGNAL_IMPL_HEADER ==  "<cyg/posix/signal.h>" 
-    #     CYGBLD_ISO_SIGNAL_IMPL_HEADER == <cyg/libc/signals/signal.h>
-    #   --> 0
-
-    # The following properties are affected by this value
-    # option CYGPKG_POSIX_TIMERS
-    #     Requires: CYGPKG_POSIX_SIGNALS
-    # option CYGFUN_POSIX_MQUEUE_NOTIFY
-    #     Requires: CYGPKG_POSIX_SIGNALS
-    # option CYGFUN_POSIX_MQUEUE_NOTIFY
-    #     DefaultValue: CYGPKG_POSIX_SIGNALS
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    # option CYGPKG_POSIX_TESTS
-    #     Calculated:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-};
-
-# POSIX utsname configuration
-# This component provides configuration controls for
-# the POSIX utsname structure and the uname() function.
-#
-cdl_component CYGPKG_POSIX_UTSNAME {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Requires:  CYGBLD_ISO_UTSNAME_HEADER ==  "<cyg/posix/utsname.h>" 
-    #     CYGBLD_ISO_UTSNAME_HEADER == <cyg/posix/utsname.h>
-    #   --> 1
-};
-
-# >
-# Length of name strings in utsname structure
-#
-cdl_option CYG_POSIX_UTSNAME_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 65
-    # value_source default
-    # Default value: 65
-    # Legal values: 1 to 99999999
-
-    # The following properties are affected by this value
-    # option CYG_POSIX_UTSNAME_NODENAME_LENGTH
-    #     DefaultValue:  CYG_POSIX_UTSNAME_LENGTH 
-};
-
-# Length of nodename string in utsname structure
-#
-cdl_option CYG_POSIX_UTSNAME_NODENAME_LENGTH {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 65
-    # value_source default
-    # Default value:  CYG_POSIX_UTSNAME_LENGTH 
-    #     CYG_POSIX_UTSNAME_LENGTH == 65
-    #   --> 65
-    # Legal values: 1 to 99999999
-};
-
-# <
-# POSIX tests
-# This option specifies the set of tests for the POSIX package.
-#
-cdl_option CYGPKG_POSIX_TESTS {
-    # Calculated value:  
-    #                 (CYGPKG_POSIX_PTHREAD ? "tests/pthread1 tests/pthread2 tests/pthread3 " 
-    #                                       : "") .
-    #                 (CYGPKG_POSIX_PTHREAD_MUTEX ? "tests/pmutex3 " : "") .
-    #                 (CYGPKG_POSIX_MQUEUES ? "tests/pmqueue1 tests/pmqueue2 " : "") .
-    #                 (CYGPKG_POSIX_SIGNALS ? "tests/signal1 tests/signal2 tests/signal3  tests/sigsetjmp " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS && 
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/timer1 " : "") .
-    #                 ((CYGPKG_POSIX_SIGNALS && 
-    #                   CYGPKG_POSIX_TIMERS &&     
-    #                   CYGPKG_POSIX_PTHREAD &&
-    #                   CYGPKG_POSIX_SEMAPHORES) ? "tests/tm_posix " : "")
-    #                 
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #     CYGPKG_POSIX_PTHREAD_MUTEX == 1
-    #     CYGPKG_POSIX_MQUEUES == 1
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #     CYGPKG_POSIX_TIMERS == 0
-    #     CYGPKG_POSIX_SEMAPHORES == 1
-    #     CYGPKG_POSIX_SIGNALS == 0
-    #     CYGPKG_POSIX_TIMERS == 0
-    #     CYGPKG_POSIX_PTHREAD == 1
-    #     CYGPKG_POSIX_SEMAPHORES == 1
-    # Flavor: data
-    # Current_value: tests/pthread1 tests/pthread2 tests/pthread3 tests/pmutex3 tests/pmqueue1 tests/pmqueue2 
-};
-
-# <
-# POSIX File IO compatibility layer
-# doc: ref/fileio.html
-# This package enables the POSIX compatibility
-# layer that implements IEEE 1003.1 file IO.
-#
-cdl_package CYGPKG_IO_FILEIO {
-    # 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_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_STRFUNCS
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" 
-    #     CYGBLD_ISO_DIRENT_HEADER == <cyg/fileio/dirent.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" 
-    #     CYGBLD_ISO_OPEN_MAX_HEADER == <cyg/fileio/limits.h>
-    #   --> 1
-    # Requires:  CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" 
-    #     CYGBLD_ISO_NAME_MAX_HEADER == <cyg/fileio/limits.h>
-    #   --> 1
-
-    # The following properties are affected by this value
-    # component CYGPKG_IO_FILE_SUPPORT
-    #     ActiveIf: !CYGPKG_IO_FILEIO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     Requires: CYGPKG_IO_FILEIO
-    # component CYGPKG_IO_SERIAL_TERMIOS
-    #     DefaultValue:  0 != CYGPKG_ISOINFRA && 0 != CYGPKG_IO_FILEIO &&  0 != CYGINT_ISO_ERRNO_CODES &&  0 != CYGINT_ISO_ERRNO 
-    # option CYGPKG_IO_SERIAL_SELECT_SUPPORT
-    #     ActiveIf: CYGPKG_IO_FILEIO
-    # option CYGPKG_LIBC_STDIO_FILEIO
-    #     ActiveIf: CYGPKG_IO_FILEIO
-    # option CYGPKG_LIBC_STDIO_TESTS
-    #     Calculated:  
-    #                     "tests/sprintf1 tests/sprintf2 tests/snprintf tests/sscanf tests/stdiooutput " 
-    #                     . ((CYGPKG_IO_FILEIO && CYGPKG_FS_RAM) ? "tests/fileio " : "")
-    #                 
-    # component CYGCLS_USTL_FSTREAMS
-    #     DefaultValue: CYGPKG_IO_FILEIO
-    # component CYGCLS_USTL_FSTREAMS
-    #     Requires: CYGPKG_IO_FILEIO
-};
-
-# >
-# Filesystems interfacing to FILEIO
-# Each filesystem driver which FILEIO can use implements
-# this interface. You can use this to determine if there are
-# any filesystems configured in the system.
-#
-cdl_interface CYGINT_IO_FILEIO_FS {
-    # No options implement this inferface
-    # This value cannot be modified here.
-    # Flavor: data
-    # Current_value: 0
-};
-
-# Enable support for select()
-# This option enables support for select().
-#
-cdl_option CYGFUN_IO_FILEIO_SELECT {
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == 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 CYGPKG_IO_SERIAL_SELECT_SUPPORT
-    #     Requires:  CYGFUN_IO_FILEIO_SELECT == 1 
-};
-
-# Enable devfs support
-# This option enables support for the devfs file system.
-#
-cdl_option CYGPKG_IO_FILEIO_DEVFS_SUPPORT {
-    # ActiveIf constraint: CYGPKG_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value:  CYGPKG_REDBOOT ? 0 : 1 
-    #     CYGPKG_REDBOOT (unknown) == 0
-    #   --> 1
-};
-
-# Enable socket support
-# This option enables support for the socket interface. It is
-# only present if the NET package is included.
-#
-cdl_option CYGPKG_IO_FILEIO_SOCKET_SUPPORT {
-    # This option is not active
-    # ActiveIf constraint: CYGPKG_NET
-    #     CYGPKG_NET (unknown) == 0
-    #   --> 0
-    # ActiveIf constraint: CYGPKG_KERNEL
-    #     CYGPKG_KERNEL == current
-    #   --> 1
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Maximum number of open files
-# This option controls the number of open files
-# that are allowed for all filesystems.
-#
-cdl_option CYGNUM_FILEIO_NFILE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 9999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_FILEIO_NFD
-    #     LegalValues: CYGNUM_FILEIO_NFILE to 9999999
-};
-
-# Maximum number of open file descriptors
-# This option controls the number of open file descriptors
-# that are allowed for all filesystems.
-#
-cdl_option CYGNUM_FILEIO_NFD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: CYGNUM_FILEIO_NFILE to 9999999
-    #     CYGNUM_FILEIO_NFILE == 16
-};
-
-# Maximum number of installed filesystems
-# This option controls the maximum number of filesystems
-# that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_FSTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 4
-    # value_source default
-    # Default value: 4
-    # Legal values: 1 to 9999999
-};
-
-# Maximum number of mounted filesystems
-# This option controls the maximum number of mounted
-# filesystems that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_MTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: CYGNUM_FILEIO_MTAB_EXTRA to 9999999
-    #     CYGNUM_FILEIO_MTAB_EXTRA == 8
-};
-
-# Number of dynamically mounted filesystems
-# This option controls the number of mounted
-# filesystems that can be created dynamically.
-#
-cdl_option CYGNUM_FILEIO_MTAB_EXTRA {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 8
-    # value_source default
-    # Default value: 8
-    # Legal values: 0 to 9999999
-
-    # The following properties are affected by this value
-    # option CYGNUM_FILEIO_MTAB_MAX
-    #     LegalValues: CYGNUM_FILEIO_MTAB_EXTRA to 9999999
-};
-
-# Maximum number of installed network stacks
-# This option controls the maximum number of installed
-# network stacks that can be handled by the fileio system.
-#
-cdl_option CYGNUM_FILEIO_NSTAB_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-    # Legal values: 1 to 9999999
-};
-
-# Enable current directory tracking
-# This option enables tracking of the name of the current
-# directory in the FILEIO package, to support the getcwd()
-# function. When this option is enabled the FILEIO package
-# will attempt to maintain a string that names the current
-# directory. It does this textually, dealing with "." and
-# ".." entries by textual manipulation. While this should
-# always provide a path for the current directory, it may not
-# be the best, if symbolic links are present. This tracked CWD
-# is only used if a filesystem does not support the
-# FS_INFO_GETCWD key. 
-#
-cdl_option CYGPKG_IO_FILEIO_TRACK_CWD {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-};
-
-# Generic inode support
-# This option enables generic inode support useful to
-# some filesystems. Not all filesystems require this
-# so it is not enabled by default.
-#
-cdl_component CYGPKG_IO_FILEIO_INODE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-};
-
-# >
-# Maximum space for unused cached inodes
-# The inode cache allows a maximum limit to be set
-# for the number of unused inodes still in the
-# cache before they are freed. It may be set to 0
-# to indicate no dead inode caching should be
-# provided.
-#
-cdl_option CYGNUM_IO_FILEIO_MAX_INODE_CACHE_DEAD {
-    # This option is not active
-    # The parent CYGPKG_IO_FILEIO_INODE is disabled
-
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 10
-    # value_source default
-    # Default value: 10
-};
-
-# <
-# Maximum size of iovec used by readv/writev
-# This option controls the maximum size of the iovec
-# structure that can be used by readv()/writev().  This
-# limit is required because the iovec structure must be
-# invariant (to the user), thus a copy needs to be made
-# by the interface routines.  The limit is merely a 
-# control over the amount of stack space used by the
-# readv()/writev() functions.
-#
-cdl_option CYGNUM_FILEIO_IOVEC_MAX {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value 16
-    # value_source default
-    # Default value: 16
-    # Legal values: 1 to 9999999
-};
-
-# cyg_fs_getinfo call for disk usage
-# Enabling this option includes code in some filesystems to
-# implement a call using cyg_fs_getinfo to return the current
-# filesystem block usage.
-#
-cdl_option CYGSEM_FILEIO_INFO_DISK_USAGE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# POSIX fnmatch configuration
-# This component provides configuration controls for
-# the POSIX fnmatch() function.
-#
-cdl_component CYGPKG_FILEIO_FNMATCH {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
-    #     CYGINT_ISO_STRING_STRFUNCS == 1
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires:  CYGBLD_ISO_FNMATCH_HEADER ==  "<cyg/fileio/fnmatch.h>" 
-    #     CYGBLD_ISO_FNMATCH_HEADER == <cyg/fileio/fnmatch.h>
-    #   --> 1
-};
-
-# Struct dirent contains a d_type field
-# If this option is enabled then struct dirent contains a
-# d_type field. With this field, file type may be
-# distinguished directly without calling stat.  Note: This
-# member is not part of the POSIX standard, however is
-# commonely implemented in Linux, FreeBSD, but not SunOS.
-# Also, not all filesystems support it.  So this feature is
-# not portable and should be used with caution.
-#
-cdl_option CYGPKG_FILEIO_DIRENT_DTYPE {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# Fileio tests
-# This option specifies the set of tests for the FileIO package.
-#
-cdl_option CYGPKG_IO_FILEIO_TESTS {
-    # Calculated value:  "tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch" 
-    # Flavor: data
-    # Current_value: tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch
-};
-
-# <
-# uSTL library
-# doc: ref/ustl.html
-# This package provides the uSTL library. uSTL is a 
-# partial implementation of the STL specification intended to 
-# reduce code size of the derivative programs. This allows the 
-# user application to use well known standard C++ STL library 
-# containers, streams, iterators, algorithms and functors.
-#
-cdl_package CYGPKG_USTL {
-    # 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_IO
-    #     CYGPKG_IO == current
-    #   --> 1
-    # Requires: CYGPKG_ERROR
-    #     CYGPKG_ERROR == current
-    #   --> 1
-    # Requires: CYGPKG_ISOINFRA
-    #     CYGPKG_ISOINFRA == current
-    #   --> 1
-    # Requires: CYGPKG_LIBM
-    #     CYGPKG_LIBM == current
-    #   --> 1
-    # Requires: CYGINT_ISO_MALLOC
-    #     CYGINT_ISO_MALLOC == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FORMATTED_IO
-    #     CYGINT_ISO_STDIO_FORMATTED_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_CHAR_IO
-    #     CYGINT_ISO_STDIO_CHAR_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_DIRECT_IO
-    #     CYGINT_ISO_STDIO_DIRECT_IO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_ERROR
-    #     CYGINT_ISO_STDIO_ERROR == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_NUMBERS
-    #     CYGINT_ISO_SIGNAL_NUMBERS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_SIGNAL_IMPL
-    #     CYGINT_ISO_SIGNAL_IMPL == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_C_TIME_TYPES
-    #     CYGINT_ISO_C_TIME_TYPES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_EXIT
-    #     CYGINT_ISO_EXIT == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_MAIN_STARTUP
-    #     CYGINT_ISO_MAIN_STARTUP == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ENVIRON
-    #     CYGINT_ISO_ENVIRON == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRTOK_R
-    #     CYGINT_ISO_STRTOK_R == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STRING_LOCALE_FUNCS
-    #     CYGINT_ISO_STRING_LOCALE_FUNCS == 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_ISO_CTYPE
-    #     CYGINT_ISO_CTYPE == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO_CODES
-    #     CYGINT_ISO_ERRNO_CODES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_ERRNO
-    #     CYGINT_ISO_ERRNO == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_LOCALE
-    #     CYGINT_ISO_LOCALE == 1
-    #   --> 1
-    # Requires: CYGIMP_LIBC_STDIO_C99_SNPRINTF
-    #     CYGIMP_LIBC_STDIO_C99_SNPRINTF == 1
-    #   --> 1
-};
-
-# >
-# File streams support
-# This option enables file stream support. For file stream
-# support the File I/O package is required.
-#
-cdl_component CYGCLS_USTL_FSTREAMS {
-    # Flavor: bool
-    user_value 0
-    # value_source user
-    # Default value: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGPKG_IO_FILEIO
-    #     CYGPKG_IO_FILEIO == current
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILETYPES
-    #     CYGINT_ISO_STDIO_FILETYPES == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEACCESS
-    #     CYGINT_ISO_STDIO_FILEACCESS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_FILEPOS
-    #     CYGINT_ISO_STDIO_FILEPOS == 1
-    #   --> 1
-    # Requires: CYGINT_ISO_STDIO_STREAMS
-    #     CYGINT_ISO_STDIO_STREAMS == 1
-    #   --> 1
-};
-
-# >
-# cin, cout & cerr support
-# Enable this option if you want the standard streams
-# cin, cout and cerr to be included. You will not be able 
-# to run bvt tests if you don't enable this option.
-#
-cdl_option CYGVAR_USTL_CIN_COUT_CERR {
-    # This option is not active
-    # The parent CYGCLS_USTL_FSTREAMS is disabled
-
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 1
-    # value_source default
-    # Default value: 1
-
-    # The following properties are affected by this value
-    # option CYGPKG_USTL_TESTS
-    #     Calculated:  (CYGVAR_USTL_CIN_COUT_CERR ? "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" : "" )
-};
-
-# <
-# Stream bounds checking
-# Enable this option if you want stream operations to throw 
-# exceptions on insufficient data or insufficient space. 
-# All these errors should be preventable in output code; 
-# the input code should verify the data in a separate step. 
-# It slows down stream operations a lot, but it's your call. 
-# Debug builds always throws exceptions - this option is
-# only valid for release builds.
-#
-cdl_option CYGSEM_USTL_STREAM_BOUNDS_CHECK {
-    # Flavor: bool
-    # No user value, uncomment the following line to provide one.
-    # user_value 0
-    # value_source default
-    # Default value: 0
-};
-
-# uSTL library 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_USTL_OPTIONS {
-    # There is no associated value.
-};
-
-# >
-# Additional compiler flags
-# This option modifies the set of compiler flags for
-# building the uSTL library. These flags are used in addition
-# to the set of global flags.
-#
-cdl_option CYGPKG_USTL_CFLAGS_ADD {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value "-I\$(PREFIX)/include/ustl"
-    # value_source default
-    # Default value: "-I\$(PREFIX)/include/ustl"
-};
-
-# Suppressed compiler flags
-# This option modifies the set of compiler flags for
-# building the uSTL library. These flags are removed from
-# the set of global flags if present.
-#
-cdl_option CYGPKG_USTL_CFLAGS_REMOVE {
-    # Flavor: data
-    # No user value, uncomment the following line to provide one.
-    # user_value -Wundef
-    # value_source default
-    # Default value: -Wundef
-};
-
-# uSTL tests
-# This option specifies the set of tests for the uSTL library.
-#
-cdl_option CYGPKG_USTL_TESTS {
-    # Calculated value:  (CYGVAR_USTL_CIN_COUT_CERR ? "tests/bvt00 tests/bvt01 tests/bvt02 tests/bvt03 tests/bvt04 tests/bvt05 tests/bvt06 tests/bvt07 tests/bvt08 tests/bvt09 tests/bvt10 tests/bvt11 tests/bvt12 tests/bvt13 tests/bvt14 tests/bvt15 tests/bvt16 tests/bvt17 tests/bvt18 tests/bvt19 tests/bvt20 tests/bvt21 tests/bvt22 tests/bvt23 tests/bvt24 tests/bvt25 tests/bvt26 tests/bvt27" : "" )
-    #     CYGVAR_USTL_CIN_COUT_CERR == 0
-    # Flavor: data
-    # Current_value: 
-};
-
-# <
-# <
-# <
-
diff --git a/04_EAN/ecosenv.sh b/04_EAN/ecosenv.sh
deleted file mode 100755
index 93ac392339a532110240d0ae9833563120293d2d..0000000000000000000000000000000000000000
--- a/04_EAN/ecosenv.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-EZS_BASE_DIR=/proj/i4ezs/tools/ ; export EZS_BASE_DIR
-
-ECOS_BASE_DIR=$EZS_BASE_DIR/ecos/repo_ezs ; export ECOS_BASE_DIR
-EZS_COMPILER_DIR=$EZS_BASE_DIR/gnutools_422 ; export EZS_COMPILER_DIR
-EZS_CMAKE_MODULE_DIR=$ECOS_BASE_DIR/tools ; export EZS_CMAKE_MODULE_DIR
-ECOS_REPOSITORY=$ECOS_BASE_DIR/packages ; export ECOS_REPOSITORY
-UBUNTU_MENUPROXY=0 ; export UBUNTU_MENUPROXY
-if [[ $PATH != *ecos* ]] ;	then
-	# eCos paths - do not modify this line, it is used by the installer
-	PATH=$ECOS_BASE_DIR/tools:$EZS_COMPILER_DIR/bin:$PATH ; export PATH
-fi
-
-FAILBIN="/proj/i4ezs/tools/fail/bin"
-if [[ "$PATH" != *"$FAILBIN"* ]] ;	then
-	PATH="$FAILBIN:$PATH"
-fi
diff --git a/04_EAN/emu/BIOS-bochs-latest b/04_EAN/emu/BIOS-bochs-latest
deleted file mode 100644
index 2d3fea31f67a8c140e70b71cf14ceacd397923ab..0000000000000000000000000000000000000000
Binary files a/04_EAN/emu/BIOS-bochs-latest and /dev/null differ
diff --git a/04_EAN/emu/fail.sh b/04_EAN/emu/fail.sh
deleted file mode 100755
index 49e4e889e72a4a2297285a134d57bf336a3874bf..0000000000000000000000000000000000000000
--- a/04_EAN/emu/fail.sh
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-action=${1:?"Mandatory argument artifactsdir not set"}
-artifactsdir=${2:?"Mandatory argument artifactsdir not set"}
-variantname=${3:?"Mandatory argument variantname not set"}
-
-faildir="/proj/i4ezs/tools/fail/"
-
-vgabios="${faildir}/buildartifacts/vgabios.bin"
-bochsbioslatest="${faildir}/buildartifacts/BIOS-bochs-latest"
-
-startmarker="fail_start_trace"
-stopmarker="fail_stop_trace"
-
-okmarker="fail_marker_positive"
-failmarker="fail_marker_negative"
-detectedmarker="fail_marker_detected"
-
-function trace {
-  bochs-experiment-runner.py -e "$variantname" -i "$artifactsdir/system.iso" -1 \
-    -V "$vgabios"                              \
-    -b "$bochsbioslatest"                      \
-    -f fail-x86-tracing --                     \
-    -Wf,--start-symbol="$startmarker"          \
-    -Wf,--save-symbol="$startmarker"           \
-    -Wf,--end-symbol="$stopmarker"             \
-    -Wf,--state-file="$artifactsdir/state"     \
-    -Wf,--trace-file="$artifactsdir/trace.pb"  \
-    -Wf,--elf-file="$artifactsdir/system.elf" -q
-}
-
-function import {
-  test -f "$artifactsdir/trace.pb" || return 1
-  import-trace -t "$artifactsdir/trace.pb"  -i mem   -e "$artifactsdir/system.elf" -v "$variantname" -b mem
-  import-trace -t "$artifactsdir/trace.pb"  -i regs  -e "$artifactsdir/system.elf" -v "$variantname" -b regs --flags
-  import-trace -t "$artifactsdir/trace.pb"  -i regs  -e "$artifactsdir/system.elf" -v "$variantname" -b ip --no-gp --ip
-  import-trace -t "$artifactsdir/trace.pb"  -i ElfImporter --objdump objdump -e "$artifactsdir"/system.elf -v "$variantname" -b ip 
-  import-trace -t "$artifactsdir/trace.pb"  -i ElfImporter --objdump objdump -e "$artifactsdir"/system.elf -v "$variantname" -b mem
-  import-trace -t "$artifactsdir/trace.pb"  -i ElfImporter --objdump objdump -e "$artifactsdir"/system.elf -v "$variantname" -b regs
-
-  import-trace -t "$artifactsdir/trace.pb"  -i ElfImporter --objdump objdump -e "$artifactsdir"/system.elf -v "$variantname" -b ip --sources
-  import-trace -t "$artifactsdir/trace.pb"  -i ElfImporter --objdump objdump -e "$artifactsdir"/system.elf -v "$variantname" -b mem --sources
-  import-trace -t "$artifactsdir/trace.pb"  -i ElfImporter --objdump objdump -e "$artifactsdir"/system.elf -v "$variantname" -b regs --sources
-
-  prune-trace -v "$variantname" -b %% --overwrite
-}
-
-
-serverpid=""
-function start_server {
-  if [[ -z "${1}" ]] ; then
-    local target="%"
-  else
-    local target=${1}
-  fi
-  # Start server
-  generic-experiment-server -v "$variantname" -b "$target" &
-  echo server started
-  serverpid=$!
-}
-
-function start_client {
-  echo starting client
-  bochs-experiment-runner.py                \
-    -e "$artifactsdir"/system.elf           \
-    -j $(getconf _NPROCESSORS_ONLN)         \
-    -i "$artifactsdir"/system.iso           \
-    -V "$vgabios" -b "$bochsbioslatest"     \
-    -f generic-experiment-client --         \
-    -Wf,--state-dir="$artifactsdir"/state   \
-    -Wf,--trap -Wf,--timeout=500000         \
-    -Wf,--ok-marker="$okmarker"             \
-    -Wf,--fail-marker="$failmarker"         \
-    -Wf,--detected-marker="$detectedmarker" \
-    -Wf,--catch-write-textsegment           \
-    -Wf,--catch-write-outerspace 2>/dev/null | grep -C5 'INJECT' || true
-}
-
-function inject {
-  start_server "${1}"
-  start_client
-  echo "Waiting for serverprocess: $variantname (PID is $serverpid)"
-  # wait for server to terminate
-  wait "$serverpid"
-  serverexit="$?"
-  serverpid=""
-}
-
-function resultstat {
-  echo "select variant, benchmark, resulttype, sum(t.time2 - t.time1 + 1) as count \
-    FROM variant v \
-    JOIN trace t ON v.id = t.variant_id \
-    JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address \
-    JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id  \
-    JOIN fsppilot p ON r.pilot_id = p.id \
-    WHERE v.variant = '"$variantname"' \
-    GROUP BY v.id, resulttype \
-    ORDER BY variant, benchmark, count;" | mysql -t
-}
-
-function start_resultbrowser {
-  resultbrowser -s 127.0.0.1
-}
-
-function getmarker {
-  local var;
-  var="$(echo "$data" | grep $marker | grep "${1:?"Mandatory args"}" | awk -F, '{print $4;}')"
-  if [[ -z "$var" ]]; then
-    var=0;
-  fi
-
-  echo $var;
-}
-
-function addresulttocsv {
-  gitrev=$(git rev-parse --short HEAD)
-  data=$(resultstat | sed '/+-\++/d;s/^|//;s/|$$//;s/|/,/g;s/ //g;s/,$//g');
-  outfile="$(basename $artifactsdir)_result.csv"
-  marker="FAIL_MARKER"
-
-  ip=$(getmarker ip)
-  mem=$(getmarker mem)
-  regs=$(getmarker regs)
-
-  total=$((ip + mem + regs))
-
-  if [[ ! -f "$outfile" ]]; then
-    echo "Gitrev,IP,Mem,Regs,total" > "$outfile"
-  fi
-
-  echo "$gitrev,$ip,$mem,$regs,$total" >> "$outfile"
-
-}
-
-getmarker () {
-  local var;
-  var="$(echo "$data" | grep $marker | grep "${1:?"Mandatory args"}" | awk -F, '{print $4;}')"
-  if [[ -z "$var" ]]; then
-    var=0;
-  fi
-
-  echo $var;
-}
-
-addresulttocsv() {
-  gitrev=$(git rev-parse --short HEAD)
-  data=$(resultstat | sed '/+-\++/d;s/^|//;s/|$$//;s/|/,/g;s/ //g;s/,$//g');
-  outfile="injection_result.csv"
-
-  marker="FAIL_MARKER"
-
-  ip=$(getmarker ip)
-  mem=$(getmarker mem)
-  regs=$(getmarker regs)
-
-  total=$((ip + mem + regs))
-
-  if [[ ! -f "$outfile" ]]; then
-    echo "Gitrev,IP,Mem,Regs,total" > "$outfile"
-  fi
-
-  echo "$gitrev,$ip,$mem,$regs,$total" >> "$outfile"
-}
-
-case "$action" in
-  trace )
-    trace  | sed -e "s/^/tracing "$(basename $artifactsdir)" /"
-    import | sed -e "s/^/importing "$(basename $artifactsdir)" to server /"
-    ;;
-  inject )
-    inject
-    addresulttocsv
-    resultstat
-    ;;
-  inject_regs )
-    inject regs
-    addresulttocsv
-    resultstat
-    ;;
-  inject_mem )
-    inject mem
-    addresulttocsv
-    resultstat
-    ;;
-  inject_ip )
-    inject ip
-    addresulttocsv
-    resultstat
-    ;;
-  shortresult )
-    resultstat
-    ;;
-  resultbrowser )
-    start_resultbrowser
-    ;;
-
-  csv )
-    addresulttocsv
-    ;;
-  * )
-    echo command "$action" not supported
-    ;;
-esac
diff --git a/04_EAN/emu/findport.pl b/04_EAN/emu/findport.pl
deleted file mode 100755
index afff367669f7b1904d723537101d7fce98768f82..0000000000000000000000000000000000000000
--- a/04_EAN/emu/findport.pl
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/perl -w
-
-my $startport = 20500;
-my $remotecmd = shift;
-
-my @erg = `netstat -an | grep -i "tcp "`;
-my @ports;
-
-# print "Searching free port... ";
-foreach $i (@erg){
-	if($i =~ /[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}:/){
-		$i = $';
-		if($i =~ /[0-9]{5}/){
-		push(@belegt, $&);
-		}
-	}
-}
-
-my $i = $startport;
-my $counter = 2;
-while(1){
-	$frei = 1;
-	foreach $bel (@belegt){
-		if($i == $bel){
-			$frei = 0;
-			last;
-		}
-	}
-	if($frei == 1){
-		print $i;
-		$counter = $counter - 1;
-		if($counter == 0){
-			exit(0);
-		}else{
-			print "\n"
-		}
-	}
-	$i++;
-	if($i == 65530){
-		print "0"; 
-		exit(0);
-	}
-}
diff --git a/04_EAN/emu/gdbinit.in b/04_EAN/emu/gdbinit.in
deleted file mode 100644
index db7597ee291d154b865f0e6a03e10ffc2f059056..0000000000000000000000000000000000000000
--- a/04_EAN/emu/gdbinit.in
+++ /dev/null
@@ -1,6 +0,0 @@
-file @ELF@
-set archi i386:x64-32:intel
-target remote localhost:1234
-
-define pe
-  printf "[vc] %u - [B] %u - [D] %u %% [A] %u = %u (rem %u)\n", $arg0.vc, $arg0.B, $arg0.D, $arg0.A, (($arg0.vc - $arg0.B - $arg0.D) / $arg0.A), (($arg0.vc - $arg0.B - $arg0.D) % $arg0.A)
diff --git a/04_EAN/emu/prepareISO.sh b/04_EAN/emu/prepareISO.sh
deleted file mode 100755
index f28b9b08834bf6cd38b3bbc595034a5d5bff38ce..0000000000000000000000000000000000000000
--- a/04_EAN/emu/prepareISO.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-
-if [ "$#" -ne 2 ]; then
-        echo "$0 <elffile> <isofilename>"
-        echo "$@"
-        exit 1;
-fi
-
-elffile="$1"
-isofile="$2"
-
-if [[ ! -f "$elffile" ]]; then
-        1>&2 echo "$elffile: No such file or directory";
-        exit 1;
-fi
-
-grubdir="`mktemp -d`"
-mkdir -p "$grubdir/grub/boot/grub"
-cat  > "$grubdir/grub/boot/grub/grub.cfg" <<EOF
-set timeout=0
-set default=0
-
-menuentry "CIAO_KESO" {
-        multiboot /boot/system.elf
-        boot
-}
-EOF
-
-set -e
-
-cp "$elffile" "$grubdir/grub/boot/system.elf"
-grub-mkrescue -o "$isofile" "$grubdir/grub"
-
-rm -rf "$grubdir"
diff --git a/04_EAN/emu/qrun.sh.in b/04_EAN/emu/qrun.sh.in
deleted file mode 100755
index 227de9710e80f305fcebe4d1daf89d1f78e1ca14..0000000000000000000000000000000000000000
--- a/04_EAN/emu/qrun.sh.in
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-# a shell script to run in the Qemu PC emulator an eCos
-# application that's been built with "Grub" startup mode.
-#
-# It runs Qemu with a 
-# single serial port connected to a telnet
-# server socket.
-#
-# An instance of the "xterm" X11 terminal emulator is started with
-# telnet command to connect to that virtual serial port on port
-#
-# When $2 is 'ddd' a debugger window is opened accordingly
-
-PORTFILENAME=/tmp/$USER.portnum
-@STARTUP_SCRIPTS@/findport.pl > $PORTFILENAME
-PORTNUM=`head -n 1 /tmp/$USER.portnum`
-SERIALPORTNUM=`tail -n 1 /tmp/$USER.portnum`
-GDB_BIN=gdb
-GDB_TUI_BIN=gdbtui
-TERMINAL=urxvt
-
-declare -r COMMON_GDB_ARGS="-ex \"target remote :$PORTNUM\" \
-	-ex \"br cyg_user_start\""
-
-BINARY="$1"
-echo $PWD
-
-if [[ "$2" == "ddd" ]] || [[ "$2" == "gdb" ]] || [[ "$2" == "cgdb" ]]; then
-  DEBUG="-S -gdb tcp::$PORTNUM"
-fi
-
-XTERMEXE="telnet localhost $SERIALPORTNUM"
-
-# start a terminal that will telnet to the virtual machine's serial port
-(sleep 0.5; $TERMINAL -geometry 120x80 -title "eCos Serial 0" -name "eCos Serial 0" -e $XTERMEXE )&
-
-sleep 0.5
-# start ddd Debugger
-if [[ "$2" == "ddd" ]]; then
-	(sleep 0.5;	$TERMINAL -e sh -c "ddd $COMMON_GDB_ARGS --gdb --debugger $GDB_BIN   $BINARY" ) &
-fi
-
-# start GDB in xterm terminal
-if [[ "$2" == "gdb" ]]; then
-	(sleep 0.5; $TERMINAL -e sh -c "$GDB_BIN $COMMON_GDB_ARGS $BINARY" ) &
-fi
-
-# start GDBTUI in xterm terminal
-if [[ "$2" == "gdbtui" ]]; then
-	(sleep 0.5; $TERMINAL -e sh -c "$GDB_TUI_BIN $COMMON_GDB_ARGS $BINARY" ) &
-fi
-
-
-# start cgdb in xterm terminal
-if [[ "$2" == "cgdb" ]]; then
-	(sleep 0.5; $TERMINAL -e sh -c "cgdb $COMMON_GDB_ARGS $BINARY" ) &
-fi
-
-
-# MACHINE=$(gcc -dumpmachine|cut -f1 -d-)
-# if [[ $MACHINE == "x86_64" ]]; then
-#   BITS="64"
-# else
-#   BITS="32"
-# fi
-
-qemu-system-i386 -machine pc,accel=tcg \
-  $DEBUG \
-  -kernel $BINARY \
-  -serial telnet:localhost:$SERIALPORTNUM,server,nowait
-
diff --git a/04_EAN/emu/vgabios.bin b/04_EAN/emu/vgabios.bin
deleted file mode 100644
index fa9806b76fca32f6e44cbb4a8e0bec637fb9e8ab..0000000000000000000000000000000000000000
Binary files a/04_EAN/emu/vgabios.bin and /dev/null differ
diff --git a/04_EAN/i4vezs-deploy.pub b/04_EAN/i4vezs-deploy.pub
deleted file mode 100644
index 5f55402e23e45af2a3e416db92a9392d4b79aa48..0000000000000000000000000000000000000000
--- a/04_EAN/i4vezs-deploy.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDyx+L/cwo/yLhM4vwKpanOKVhvoFJQw5kIa+x/+xyb7BANnLk/vrSf9dsjM+NnuB47BLh3fvjithzNmeRJkcZ6klwqLShnoYKyMKky+6bk2j1GUQnuYYzmg3ZPcr9uXDj8urvzUUFV63l2beQon7iFjFRr6+pMmoWwQfZgE1ZPFgpHr9nEV+mLkjzHjfcALtgtpv4XGg4bwnyeORLZLarhrk8/xbjifhYxYTfWJVmQ2U4AOFUrpwwE7tH6aHVFhDzRk47G05VYbKMUuZRuE+0t8flDBaJOxFxvR1Wq0ZSDGy+dP4vTZJPIKb3+CTfzWjprm0JLVKWfx/lfR+wBluO7QvcsHL7Lf8gV5QXTUHnp568yfh7vu2EX2S1tYUSIWET+L8Pv4WejjaqxRW4F1j6RGBWOAV73BHzDafMKAzzUxsPcoIWjbEOcoAEw2VuGyscGqJxI7mqyrYBhq2oChQHxSaA3OZKUAUp832XZvjpCJgoOijOuzWsf+mqJVNuxeQu+rDs6DjqwLuJ2SHLv+96wZqlToHIsqghe6TLWKHa3Zr1mAOglVYqm03RhOvuFyIo5aUxah2+VuXJd2kr1KibGty51Li7wUW4Q+6wLFjvybOX14c2uiAoAJuDPfhzamPm4NVZfjD9A2UifduLL0aenqmUZxFWbcuQfyfjPTb96KMMXRSD873ZdhptwjHdnTR/UkERFlYw2683qIXlH8/OycEznVnb7OPgTuu3AQ8tSSYxeb1WeZqNmJopFjutgSPv+1RxEBxYTgIQA8mhorEG6mfVwo0x6adGLp6DSjtVdLoOAD0shza3bUWD2RAs7dLLgdGDhW8Rbm7i0JctZcdUg1R5B1+TcEY/byJgqIuS5qo8vpytFLUeEfIEVokJlApU1aky2AVf+ZjbTcIrArSeu6bksKH/z7O9L7fecTvM4INywZ7+ba+xGj7MaBu2toNUXJPwQhdU0LqUCksB0G1tSwWeCsbBGqDs+W2PymG+4mJHl+k+SHDXZrCD3/J2osmj6b3Bxdu/LcYksTVRN2Fs7L+hbbHJxSsfE/MwPF4k+UBYHxVcWZuWcRlUqdPtKEOfj0JjcN1/qS5fkDc3TuoqeV/CI/IbZIdwCuwC1VgLw1k7Tvahwc4yk4fJjKbeGN32fg5cGDmxZCUMFsUnyxISZ/U4djJXOOTqg/fResNj48WpCEy6sw88ES+FmKbT35hkvNAUikq+oy4xV8RBwWMSQUmV+pqsVE4SjUInRRLh5LBjXhh9fkJB6QriU7X/UIOq7+hNDrrPmDx7qdkrHlU76r4oK6m4V3EI8s5JWD2AoZIwetCAYCiTu1m4SJgMoQqGk3I75rTxylO9L8tgGLTw9 Deploykey for i4vezs
diff --git a/04_EAN/include/fail.h b/04_EAN/include/fail.h
deleted file mode 100644
index 6c654df06d152c09977393a3bfed15c9cf689934..0000000000000000000000000000000000000000
--- a/04_EAN/include/fail.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _include_fail_h
-#define _include_fail_h
-
-//Mark start of injection
-void __attribute__((noinline)) fail_start_trace(void);
-//Mark end of injection
-void __attribute__((noinline)) fail_stop_trace(void);
-
-//everything ok: valid code and right values
-void __attribute__((noinline)) fail_marker_positive(void);
-//everything ok: valid code but wrong values
-void __attribute__((noinline)) fail_marker_negative(void);
-//invalid code
-void __attribute__((noinline)) fail_marker_detected(void);
-
-#endif
diff --git a/04_EAN/include/filter.h b/04_EAN/include/filter.h
deleted file mode 100644
index 54410c1e46fb7ff869eb4396dac67464f0b682fc..0000000000000000000000000000000000000000
--- a/04_EAN/include/filter.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CONVOLVE_FILTER_H
-#define CONVOLVE_FILTER_H
-
-#include <stdint.h>
-
-typedef struct convolve_filter_struct {
-	/**
-	 * The Filter parameters;
-	 */
-	int8_t a, b, c;
-
-	/**
-	 * The internal filter state;
-	 */
-	int8_t z1, z2;
-} convolve_filter;
-
-void convolve_filter_init(convolve_filter *f, int8_t a, int8_t b, int8_t c);
-
-int8_t convolve_filter_step(convolve_filter *f, int8_t in);
-
-#endif
diff --git a/04_EAN/include/filter.hpp b/04_EAN/include/filter.hpp
deleted file mode 100644
index a959a6c5d0ff89308fc2063507d3d2b40ff361b3..0000000000000000000000000000000000000000
--- a/04_EAN/include/filter.hpp
+++ /dev/null
@@ -1,6 +0,0 @@
-template <int NUM, typename T>
-T abs(T a)
-{
-  return a;
-}
-
diff --git a/04_EAN/libEZS/drivers/i386/ezs_adc.c b/04_EAN/libEZS/drivers/i386/ezs_adc.c
deleted file mode 100644
index d5676fc23bc27b99008c87004488dc699ee9c6c3..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/drivers/i386/ezs_adc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-
-/*!
- * @file ezs_adc.c
- * @brief A very simple AD converter, based on Fail*
- * @author Martin Hoffmann 
- * \ingroup adc 
- */
-#include <stdint.h>
-#include "ezs_dac.h"
-
-static volatile uint8_t ezs_adc_in_register;
-/*!
- * \brief Get a value from the ADC
- */
-uint8_t ezs_adc_read(void){
-  return ezs_adc_in_register;
-}
-
-
-
diff --git a/04_EAN/libEZS/drivers/i386/ezs_counter.c b/04_EAN/libEZS/drivers/i386/ezs_counter.c
deleted file mode 100644
index a4ad16c19d17c7b5dd25feeab80759083c03a051..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/drivers/i386/ezs_counter.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#define EZS_HPET_ADDR  0xFED00000
-
-#include "ezs_counter.h"
-#include <stdio.h>
-#include <stdint.h>
-
-typedef struct hpetReg {
-  uint64_t  GCAP_ID;    /* General capabilities */
-  uint64_t  rsv1;
-  uint64_t  GEN_CONF;   /* General configuration */
-  uint64_t  rsv2;
-  uint64_t  GINTR_STA;    /* General Interrupt status */
-  uint64_t  rsv3[25];
-  uint64_t  MAIN_CNT;   /* Main counter */
-  uint64_t  rsv4;
-  uint64_t  TIM0_CONF;    /* Timer 0 config and cap */
-#define     TIM_CONF 0
-#define     Tn_INT_ENB_CNF 4
-  uint64_t  TIM0_COMP;    /* Timer 0 comparator */
-#define     TIM_COMP 8
-  uint64_t  rsv5[2];
-  uint64_t  TIM1_CONF;    /* Timer 1 config and cap */
-  uint64_t  TIM1_COMP;    /* Timer 1 comparator */
-  uint64_t  rsv6[2];
-  uint64_t  TIM2_CONF;    /* Timer 2 config and cap */
-  uint64_t  TIM2_COMP;    /* Timer 2 comparator */
-  uint64_t  rsv7[2];
-} hpetReg;
-typedef struct  hpetReg hpetReg_t;
-
-volatile hpetReg_t *hpet = (volatile hpetReg_t *) EZS_HPET_ADDR;
-
-static uint64_t hpet_divisor = 0;
-static uint32_t hpet_period = 0;
-static bool use_hpet = true;
-
-
-uint32_t ezs_hpet_period_fs(void)
-{
-  return hpet->GCAP_ID >> 32;
-}
-
-bool ezs_hpet_init(void)
-{
-  uint64_t test = hpet->GCAP_ID;
-  uint64_t gcap = hpet->GCAP_ID;
-
-  hpet_period = (gcap & 0xffffffff00000000ULL) >> 32;
-
-  if( hpet_period > 0x5f5e100 ){
-    use_hpet = false;
-    printf("HPET invalid, using Time Stamp Counter\n");
-    return false;
-  } else {
-    use_hpet = true;
-  }
-
-  uint8_t rev_id = gcap & 0xFF;
-  uint8_t num_timers = (gcap >> 8) & 0x1F;
-  uint8_t counter_size = (gcap >> 13) & 0x1;
-  uint16_t vendor_id = (gcap >> 16) & 0xFFFF;
-
-  hpet_divisor = 1000000000ULL / hpet_period; // 10e9 fs == 1 us
-
-  printf("HPET enabled\n");
-  /* enable HPET */
-  hpet->GEN_CONF = 0x1;
-}
-
-uint64_t ezs_hpet_read(void)
-{
-  uint64_t cnt = hpet->MAIN_CNT;
-  //printf("CNT: 0x%llx\n", cnt);
-  return cnt;
-}
-
-uint64_t ezs_hpet_resolution_us(void)
-{
-  return 1;
-}
-
-uint64_t ezs_hpet_read_us(void)
-{
-  return ezs_hpet_read() / hpet_divisor;
-}
-
-/* Timestamp counter implementation */
-
-#ifndef BOCHS_CPU_MHZ
-#error Bochs CPU Speed not defined
-#endif
-
-static inline unsigned long long getticks(void)
-{
-  unsigned int lo, hi;
-  // RDTSC copies contents of 64-bit TSC into EDX:EAX
-  asm volatile("rdtsc" : "=a" (lo), "=d" (hi));
-  return (unsigned long long)hi << 32 | lo;
-}
-
-cyg_uint64 ezs_rdtsc_get_us(void) {
-  return getticks() / (BOCHS_CPU_MHZ);
-}
-
-void ezs_tsc_init(void){
-  printf("Using time stamp counter, cpu running @ %d MHz\n", BOCHS_CPU_MHZ);
-}
-
-static volatile uint32_t FAILBOCHSID = 0;
-
-/* EZS API implementation */
-void ezs_counter_init(void)
-{
-  if (FAILBOCHSID == 42) { // We run in Fail*
-    ezs_tsc_init();
-    use_hpet = false;
-  } else { // not in Fail* try using HPET
-    if ( ! ezs_hpet_init() ) { // HPET not accurate enough fall back to TSC
-      ezs_tsc_init();
-      use_hpet = false;
-    }
-  }
-}
-
-
-cyg_uint64 ezs_counter_get(void)
-{
-  if(use_hpet){
-    return ezs_hpet_read_us();
-  } else {
-    return ezs_rdtsc_get_us();
-  }
-}
-
-cyg_uint64 ezs_counter_resolution_us(void)
-{
-  return ezs_hpet_resolution_us();
-}
-
-cyg_uint64 ezs_counter_resolution_ps(void)
-{
-  return ezs_hpet_resolution_us() * 1000000;
-}
-
diff --git a/04_EAN/libEZS/drivers/i386/ezs_dac.c b/04_EAN/libEZS/drivers/i386/ezs_dac.c
deleted file mode 100644
index f3cff1259c7d56af8b280e9921edff1c388fa345..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/drivers/i386/ezs_dac.c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/*!
- * @file ezs_dac.c
- * @brief A very simple DA converter, based on Fail*
- * @author Martin Hoffmann 
- * \ingroup dac 
- */
-#include <stdint.h>
-#include "ezs_dac.h"
-
-static volatile uint8_t ezs_dac_out_register;
-
-/*!
- * \brief Write a value to the DAC
- */
-void ezs_dac_write(uint8_t value){
-  ezs_dac_out_register = value;
-}
-
diff --git a/04_EAN/libEZS/drivers/i386/ezs_fb.c b/04_EAN/libEZS/drivers/i386/ezs_fb.c
deleted file mode 100644
index 7bbebc3c9afd07fdcd02b0ebff213b406828a3fe..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/drivers/i386/ezs_fb.c
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "ezs_fb.h"
-
-typedef struct {
-	int x;
-	int y;
-} cursor_t;
-
-static cursor_t cursor; 
-void ezs_fb_init(void)
-{
-    CYG_FB_ON(FRAMEBUF);
-    CYG_FB_FILL_BLOCK(FRAMEBUF, 0, 0, FB_WIDTH, FB_HEIGHT, 0);
-	cursor.x = 0;
-	cursor.y = 0;
-}
-
-
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,cyg_ucount16 height,cyg_fb_colour color)
-{
-	CYG_FB_FILL_BLOCK(FRAMEBUF, x, y, width, height, color);
-}
-
-
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color)
-{
-	CYG_FB_WRITE_HLINE(FRAMEBUF, x, y, len, color);
-}
-
-
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len, cyg_fb_colour color)
-{
-
-	CYG_FB_WRITE_VLINE(FRAMEBUF, x, y, len, color);
-}
-
-void ezs_fb_clear(cyg_fb_colour color)
-{
-	ezs_fb_fill_block(0, 0, FB_WIDTH, FB_HEIGHT, color);
-}
-
-
-void ezs_fb_print_char( int ch, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color){
-	int i, j;
-	for (i = ch*8; i < (ch*8)+8; i++){
-		unsigned char row = g_8x8_font[i];
-		for (j = 0; j < 8; j++){
-			if((row & (0x80 >> j)) != 0){
-				ezs_fb_fill_block(x+j, y+(i-ch*8), 1, 1, color);
-			}
-		}
-	}
-	
-}
-
-void ezs_fb_print_string(char*c,  cyg_fb_colour color){
-	ezs_fb_print_string_cur(c, cursor.x, cursor.y, color);
-}
-
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y, cyg_fb_colour color){
-	char* ch = c;
-	
-	while(*ch != '\0'){
-		if(*ch == '\n'){
-			ezs_fb_newline();
-		}else{
-			ezs_fb_print_char((*ch)+0, x , y, color);
-			x = x+8;
-			if( x >= FB_WIDTH - 8){
-				y += 8;
-				x = 0;
-			}
-		}
-		ch++;
-	}
-	cursor.x = x;
-	cursor.y = y;
-}
-
-void ezs_fb_newline(void){
-	cursor.x = 0;
-	cursor.y += 8;
-}
-
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y){
-	cursor.x = x;
-	cursor.y = y;
-}
-
diff --git a/04_EAN/libEZS/drivers/i386/ezs_keycodes.c b/04_EAN/libEZS/drivers/i386/ezs_keycodes.c
deleted file mode 100644
index 3b7ff903c45b898b4916e657901b0a146b2a291f..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/drivers/i386/ezs_keycodes.c
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#include "ezs_keycodes.h"
-#include <assert.h>
-#include <stdio.h>
-
-#define NUMBER_OF_KEYCODES 89
-unsigned char char_of_key[] = {
-  0, 0, '1', '2', '3', '4', '5', '6', '7', '8',
-  '9', '0', 225, 39, '\b', 0, 'q', 'w', 'e', 'r',
-  't', 'z', 'u', 'i', 'o', 'p', 129, '+', '\n', 0,
-  'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 148,
-  132, '^', 0, '#', 'y', 'x', 'c', 'v', 'b', 'n',
-  'm', ',', '.', '-', 0, '*', 0, ' ', 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
-  0, 0, 0, 0, 0, 0, '<', 0, 0 };
-
-unsigned char ezs_get_char_from_keycode(unsigned char code) {
-  assert(code < NUMBER_OF_KEYCODES);
-
-  return char_of_key[code];
-}
diff --git a/04_EAN/libEZS/drivers/i386/ezs_tracer.cpp b/04_EAN/libEZS/drivers/i386/ezs_tracer.cpp
deleted file mode 100644
index 635b57af2cb30dbb956638bfeccf6e607ffabe20..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/drivers/i386/ezs_tracer.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <pkgconf/system.h>
-#include <cyg/io/io.h>
-#include <cyg/error/codes.h>
-#include <stdint.h>
-#include <stdio.h>
-
-//! The magic tracer variable Fail* is listening on.
-volatile unsigned ezs_tracer_register;
-
-//! No Time triggered kernel -> normal event triggered ecos:
-#ifndef SMLPKG_TTKERNEL
-#include <cyg/kernel/kernel.hxx> 	// C Kernel-API
-extern "C" {
-#include <cyg/kernel/kapi.h> 	// C Kernel-API
-}
-class Cyg_Thread;
-
-
-extern "C" void ezs_instrument(Cyg_Thread* current, Cyg_Thread* next) {
-    // Get priority from next thread
-	int prio = next->get_priority();
-	if(prio > 32) prio = 32;
-
-    // Write priority to tracer register
-    ezs_tracer_register = prio;
-}
-
-#else
-#include <sml/ttkernel/task.hxx>
-extern "C" void ezs_instrument(TT_Task* current, TT_Task* next){
-    ezs_tracer_register = next->get_id();
-}
-#endif
-
diff --git a/04_EAN/libEZS/hal/drivers/CMakeLists.txt b/04_EAN/libEZS/hal/drivers/CMakeLists.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/04_EAN/libEZS/hal/drivers/DAC.cpp b/04_EAN/libEZS/hal/drivers/DAC.cpp
deleted file mode 100644
index bf192b3b91aa52a9437e4c732c7124ea4bb4c3b2..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/drivers/DAC.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "DAC.h"
-
-#include "GPTA.h"
-#include "GPIO.h"
-#include "IOLS.h"
-#include "LTC.h"
-#include "OSAbstraction.h"
-
-#define PERIOD 0xfff
-#define MIN 0x058 //minimal value. below dac outputs zero
-#define MAX 0xff0 //maximal value. above dac outputs full duty cycle
-
-void DAC::init(unsigned char port, unsigned char baseLtc)
-{
-    
-    this->ltc = baseLtc;
-    this->port = port;
-    
-    GPIO::setFunction(IO_PORT(port), IO_PIN(port), GPIO_FUNCTION_GPTA0);
-
-    //configure the connects
-    if ( !IOLS<0>::connectLTCInputClock(baseLtc, 0) )
-    {
-        osPanic();    //main clock to the first ltc
-    }
-    if ( !IOLS<0>::connectIoLTC(port, baseLtc+2) )
-    {
-        osPanic();    //wiring the output pin with the last ltc (base+2)
-    }
-    //initializing the counting time for comparing
-    LTC<0>::setupResetTimer(baseLtc);
-
-    //Timer for the main period
-    LTC<0>::setupComparator(baseLtc+1, PERIOD, LTC_SO_BOTH);
-    LTC<0>::setComparatorAction(baseLtc+1, LTC_COMPARATOR_ACTION_SET, LTC_EVENT_LOCAL);
-
-    //Timer for the high-period
-    LTC<0>::setupComparator(baseLtc+2, 0, LTC_SO_BOTH);
-    LTC<0>::setComparatorAction(baseLtc+2, LTC_COMPARATOR_ACTION_RESET, LTC_EVENT_ALL);
-    on();
-}
-
-void DAC::on() {
-    if ( ! state ) {
-        LTC<0>::setX(ltc+2, 0);
-        GPIO::setFunction(IO_PORT(port), IO_PIN(port), GPIO_FUNCTION_GPTA0);
-        state = true;
-    }
-}
-
-void DAC::off()
-{
-    if ( state ) {
-        LTC<0>::setX(ltc+2, 0);
-        GPIO::setFunction(IO_PORT(port), IO_PIN(port), GPIO_FUNCTION_INPUT_PULLDOWN);
-        state = false;
-    }
-}
-
-void DAC::write(uint8_t v)
-{
-  uint16_t value = 0;
-  if(v == 0) {
-    value = 0;
-  }
-  else if (v == UINT8_MAX) {
-    value = PERIOD-1;
-  }
-  else {
-    uint16_t diff = MAX-MIN;
-    float frac = (float)v / (float) UINT8_MAX;
-    uint16_t mapped = frac * (float) diff;
-    value = MIN + mapped;
-  }
-  LTC<0>::setX(ltc+2, value);
-}
diff --git a/04_EAN/libEZS/hal/drivers/DAC.h b/04_EAN/libEZS/hal/drivers/DAC.h
deleted file mode 100644
index ef5f0e622c4db737f617f3a11c6b2138ff2e829f..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/drivers/DAC.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*====================================================================
-* Function: Driver for generell PWM with GPTA
-*
-* Copyright I4Copter Project 2007-2011
-* http://www4.informatik.uni-erlangen.de/Research/I4Copter
-*=====================================================================
-* Author: Peter,Tobias
-*====================================================================
-* $Id: Beeper.h 3494 2011-01-31 17:36:26Z ulbrich $
-*====================================================================*/
-#ifndef DAC_PWM_H_INCLUDED
-#define DAC_PWM_H_INCLUDED
-
-
-#include <stdint.h>
-class DAC {
-
-    private:
-        unsigned char ltc;
-        unsigned char port;
-        bool state;
-
-    public:
-        void init(unsigned char port, unsigned char baseLtc);
-        void on();
-        void off();
-        void write(uint8_t v);
-        bool getState() const { return state; };
-//         void setState(bool state) { state ? on() : off(); }
-};
-
-#endif // BEEPER_H_INCLUDED
diff --git a/04_EAN/libEZS/hal/include/AnalogDevice.h b/04_EAN/libEZS/hal/include/AnalogDevice.h
deleted file mode 100644
index 2040d39b5f369a3b1a526909662a9935a71169fa..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/AnalogDevice.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2012
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file AnalogDevice.h
- * \ingroup hal
- * \brief Abstract interface for an analog device
- * \author Peter Ulbrich <ulbrich@cs.fau.de>
- *
- */
-
-#ifndef ANALOGDEVICE_H_
-#define ANALOGDEVICE_H_
-
-#include <stdint.h>
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "AnalogDeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class AnalogDevice
- * \brief Abstract interface for an analog device (pin)
- * \note This class is just a wrapper for the platform specific implementation (AnalogDeviceImpl)
- */
-class AnalogDevice {
-public:
-	/**
-	 * constructor...
-	 * @param pin
-	 */
-	AnalogDevice(AnalogDeviceImpl::channelnum const pin) :
-			m_impl(pin) {
-	}
-
-	/**
-	 * Initialize implementation object
-	 * \todo Do this explicitly or implicitly in the constructor?
-	 * @return
-	 */
-	bool init() {
-		return m_impl.init();
-	}
-
-	/**
-	 * Trigger the sampling of the analog pin
-	 * \note Even in case of autoscan/DMA operation, this is a necessary step. Otherwise the raw and the millivolt value would differ!
-	 */
-	void sample() {
-		m_value = m_impl.sample();
-		m_millivolt = toMillivolt(m_value);
-	}
-
-	/**
-	 * Convert a analog raw value to millivolt
-	 * \note It is assumed that the raw value has a 12bit resolution (3300mV = 4095raw). The conversion factor is thereof 0.80581!
-	 * @param value A raw value from a 3.3V ADC
-	 * @return Millivolt
-	 */
-	float toMillivolt(const int16_t value) const {
-		return static_cast<float>(value) * 0.80581f;
-	}
-
-	/**
-	 * Get the sampled raw value of the analog pin
-	 * \waring sample() must be called before reading the result!
-	 * @return A raw sample value
-	 */
-	uint16_t getValue() const {
-		return m_value;
-	}
-
-	/**
-	 * Get the sampled value of the analog pin
-	 * \waring sample() must be called before reading the result!
-	 * @return A sample value in millivolt
-	 */
-	float getMillivolt() const {
-		return m_millivolt;
-	}
-
-protected:
-	// Raw value
-		uint16_t m_value;
-
-	// millivolt
-		float m_millivolt;
-
-private:
-//! HW specific implementation object
-	AnalogDeviceImpl m_impl;
-
-};
-// End of class AnalogDevice
-
-/**
- * \class AnalogDeviceBiased
- * \brief Abstract interface for an biased analog device (pin)
- * \note This class is just a wrapper for the platform specific implementation (AnalogDeviceImpl)
- */
-class AnalogDeviceBiased: protected AnalogDevice {
-public:
-
-	/**
-	 * constructor...
-	 * @param pin
-	 * @param calCycles Number of cycles to be used for calibaration
-	 */
-	AnalogDeviceBiased(AnalogDeviceImpl::channelnum const pin,
-			uint16_t calCycles) :
-			AnalogDevice(pin), m_calCycles(calCycles) {
-		reset();
-	}
-
-	/**
-	 * Initialize implementation object
-	 * \todo Do this explicitly or implicitly in the constructor?
-	 * @return
-	 */
-	bool init() {
-		reset();
-		return AnalogDevice::init();
-	}
-
-	void reset() {
-		m_isBiased = false;
-		m_iterator = 0;
-		m_biasSum = 0;
-		m_bias = 0;
-	}
-
-	bool sample() {
-		AnalogDevice::sample();
-
-		if (!m_isBiased) {
-			calibrateBias();
-		} else {
-			m_valueBiased = AnalogDevice::getValue() - m_bias;
-			m_millivoltBiased = AnalogDevice::toMillivolt(m_valueBiased);
-		}
-
-		return m_isBiased;
-	}
-
-	int16_t getValue() const {
-		return m_valueBiased;
-	}
-
-	float getMillivolt() const {
-		return m_millivoltBiased;
-	}
-
-	uint16_t getValue_ub() const {
-		return AnalogDevice::getValue();
-	}
-
-	float getMillivolt_ub() const {
-		return AnalogDevice::getMillivolt();
-	}
-
-	uint16_t getBias() const {
-		return m_bias;
-	}
-
-protected:
-
-private:
-	// Bias calibration data
-	const uint16_t m_calCycles;
-	uint16_t m_iterator;
-	uint32_t m_biasSum;
-	bool m_isBiased;
-
-	// Bias
-	uint16_t m_bias;
-
-	// Biased values
-	int16_t m_valueBiased;
-	float m_millivoltBiased;
-
-	void calibrateBias() {
-		m_iterator++;
-		m_biasSum += AnalogDevice::getValue();
-
-		if (m_iterator == m_calCycles) {
-			m_bias = m_biasSum / m_calCycles;
-			m_isBiased = true;
-		}
-	}
-
-};
-// End of class AnalogDeviceBiased
-
-
-} // End of namespace hal
-
-#endif /* ANALOGDEVICE_H_ */
diff --git a/04_EAN/libEZS/hal/include/Config.h b/04_EAN/libEZS/hal/include/Config.h
deleted file mode 100644
index 883d28aa29a41c5546fceed2f38839ec88297fa7..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/Config.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * SPIConfig.h
- *
- *  Created on: Aug 21, 2012
- *      Author: hoffmann
- */
-
-#ifndef SPICONFIG_H_
-#define SPICONFIG_H_
-
-namespace hal {
-namespace spi {
-
-	enum Mode_t {
-		Master = 1,
-		Slave,
-		NotConfigured,
-	};
-
-	typedef void(*tx_callback)(void*);
-	typedef void(*rx_callback)(void*);
-
-} // spi
-
-namespace digitaldevice {
-
-	enum IRQDIR_t {
-		Falling = 1,
-		Rising,
-		Rising_Falling,
-	};
-
-	enum PINDIR_t {
-		Input = 1,
-		Output,
-	};
-
-	typedef void(*callback)(void*);
-
-} // digitaldevice
-
-namespace dma {
-
-	typedef void(*callback)(void*);
-
-} // dma
-
-} // hal
-
-#endif /* SPICONFIG_H_ */
diff --git a/04_EAN/libEZS/hal/include/DMA.h b/04_EAN/libEZS/hal/include/DMA.h
deleted file mode 100644
index 46428be2b89dc4f18c7bcd5e46bcef98e450a2e8..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/DMA.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2013
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file DMA.h
- * \ingroup hal
- * \brief Abstract interface for a DMA channel
- * \author Florian Lukas <florian.lukas@gmail.com>
- *
- */
-
-#ifndef DMA_H_
-#define DMA_H_
-
-#include <stdint.h>
-#include "Config.h"
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "DMAImpl.h"
-
-namespace hal {
-
-/**
- * \class DMAChannel
- * \brief Abstract interface for a DMA channel
- * \note This class is just a wrapper for the platform specific implementation (DMAChannelImpl)
- */
-class DMAChannel {
-public:
-	typedef DMAChannelImpl::unitnum unitnum;
-	typedef DMAChannelImpl::channelnum channelnum;
-	typedef DMAChannelImpl::move_size move_size;
-
-	/**
-	 * Constructor
-	 * @param channel DMA channel number
-	 */
-	DMAChannel(DMAChannelImpl::unitnum const unit, DMAChannelImpl::channelnum const channel) : m_impl(unit, channel) {}
-
-	/**
-	 * Initialize DMA.
-	 */
-	void init() {
-		m_impl.init();
-	}
-
-	/**
-	 * Set DMA transfer source address and increment mode.
-	 * @param src_addr source address
-	 * @param increment increment source address after each move (0: always read same address)
-	 */
-	void set_source(uint32_t* src_addr, bool increment) {
-		m_impl.set_source(src_addr, increment);
-	}
-
-	/**
-	 * Set DMA transfer destination address and increment mode.
-	 * @param dest_addr destination address
-	 * @param increment increment destination address after each move (0: always write same address)
-	 */
-	void set_destination(uint32_t* dest_addr, bool increment) {
-		m_impl.set_destination(dest_addr, increment);
-	}
-
-	/**
-	 * Set DMA transfer length and move unit.
-	 * @param length transfer length in number of moves
-	 * @param size of one DMA move
-	 */
-	void set_length(uint32_t length, move_size movesize) {
-		m_impl.set_length(length, movesize);
-	}
-
-	/**
-	 * Request start of DMA transaction.
-	 */
-	void start() {
-		m_impl.start();
-	}
-
-	/**
-	 * Check if DMA transfer is done.
-	 */
-	bool done() {
-		return m_impl.done();
-	}
-
-	/**
-	 * Start DMA transaction and BLOCK until finish.
-	 */
-	void start_block() {
-		start();
-		while(!done()) {};
-	}
-
-	/**
-	 * Set IRQ handler to be called (with argument) when DMA transaction is finished
-	 * @param cb call
-	 * @param arg
-	 */
-	void set_irq_handler(hal::dma::callback cb, void* arg) {
-		m_impl.set_irq_handler(cb, arg);
-	}
-
-	/**
-	 * Enable DMA finish interrupt.
-	 */
-	void enable_irq() {
-		m_impl.set_irq(true);
-	}
-
-	/**
-	 * Disable DMA finish interrupt.
-	 */
-	void disable_irq(){
-		m_impl.set_irq(false);
-	}
-
-private:
-	//! HW specific implementation object
-	DMAChannelImpl m_impl;
-}; // End of class DMAChannel
-
-} // End of namespace hal
-
-#endif /* DMA_H_ */
diff --git a/04_EAN/libEZS/hal/include/DigitalDevice.h b/04_EAN/libEZS/hal/include/DigitalDevice.h
deleted file mode 100644
index 385400e5196007285d4283417ed4d5ab72b57719..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/DigitalDevice.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2012
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file DigitalDevice.h
- * \ingroup hal
- * \brief Abstract interface for an digital device (I/O Pin)
- * \author Martin Hoffmann <hoffmanh@cs.fau.de>
- *
- */
-
-#ifndef DIGITALDEVICE_H_
-#define DIGITALDEVICE_H_
-
-#include "Config.h"
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "DigitalDeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class DigitalDevice
- * \brief Abstract interface for an digital device (pin)
- * \note This class is just a wrapper for the platform specific implementation (DigitalDeviceImpl)
- */
-class DigitalDevice {
-public:
-	/**
-	 * constructor...
-	 * @param pin
-	 */
-	DigitalDevice(DigitalDeviceImpl::pin_t const pin, hal::digitaldevice::PINDIR_t dir) :
-			m_impl(pin, dir) {
-	}
-	/**
-	 * constructor...
-	 * @param pin
-	 */
-	DigitalDevice(DigitalDeviceImpl::pin_t const pin) :
-			m_impl(pin, hal::digitaldevice::Output) {
-	}
-
-
-	/**
-	 * Initialize implementation object
-	 */
-	bool init()  {
-		return m_impl.init();
-	}
-
-	/**
-	 * Set the pin to hight
-	 */
-	void set() const {
-		m_impl.set();
-	}
-
-
-	/**
-	 * Set the pin to hight
-	 */
-	void clear() const {
-		m_impl.clear();
-	}
-
-	/**
-	 * Toggle pin
-	 * @return The current pin level
-	 */
-	bool toggle() const {
-		return m_impl.toggle();
-	}
-
-	void set_irq_handler(hal::digitaldevice::callback cb, void* arg)  {
-		m_impl.set_irq_handler(cb, arg);
-	}
-
-	void enable_irq(hal::digitaldevice::IRQDIR_t dir){
-		m_impl.enable_irq(dir);
-	}
-
-
-	void disable_irq(){
-		m_impl.disable_irq();
-	}
-
-	bool isSet(){
-		return m_impl.isSet();
-	}
-private:
-//! HW specific implementation object
-	DigitalDeviceImpl m_impl;
-
-};
-// End of class AnalogDevice
-
-
-} // End of namespace hal
-
-#endif /* DIGITALDEVICE_H_ */
diff --git a/04_EAN/libEZS/hal/include/HalStartup.h b/04_EAN/libEZS/hal/include/HalStartup.h
deleted file mode 100644
index c07f579817e8d3a09db9721f5dcc03c80e9bd7d1..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/HalStartup.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * \defgroup hal General hardware abstraction layer
- */
-
-/**
- * \defgroup tc1796 TC1796 hardware abstraction layer
- * \ingroup hal
- */
-
-/**
- * \defgroup stm32f1 STM32F1xx hardware abstraction layer
- * \ingroup hal
- */
-
-/**
- * \namespace hal
- * \brief Namespace for the hardware abstraction layer
- */
-
-/**
- * \namespace tc1796
- * \brief Namespace for the TriCore TC1796 specific part of the hardware abstraction layer
- */
-
-/**
- * \namespace stm32f1
- * \brief Namespace for the STM32F1 specific part of the hardware abstraction layer
- */
-
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file HalStartup.h
- * \ingroup hal
- * \brief All HAL Startup routines are called here.
- * \author Peter Ulbrich <ulbrich@cs.fau.de>
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-#ifndef HALSTARTUP_H
-#define HALSTARTUP_H
-
-namespace hal {
-
-/**
- * \class HalStartup
- *
- * \brief The abstract interface for the HAL startup
- *
- * This class implements a run method.
- */
-class HalStartup {
-public:
-	/**
-	 * This is the basic run method for proper
-	 * hal initialization
-	 */
-	static void run(void);
-
-protected:
-private:
-};
-
-}
-#endif // HALSTARTUP_H
diff --git a/04_EAN/libEZS/hal/include/I2CDevice.h b/04_EAN/libEZS/hal/include/I2CDevice.h
deleted file mode 100644
index a53cb453542bc61a2a4cf8e05883791749de9784..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/I2CDevice.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file I2C.h
- * \ingroup hal
- * \brief I2C Abstraction Layer
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-#ifndef I2C_H_
-#define I2C_H_
-
-#include <stdint.h>
-
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "I2CDeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class I2C
- * \brief I2C Interface Abstractions
- *
- * This is the basic "abstract" class of the
- * I2C interface (some sort of Pimpl pattern).
- * A I2C::Impl class
- * holds the hardware dependent implementation.
- */
-class I2C {
-
-public:
-	/**
-	 * \brief Interface initialization
-	 *
-	 * This method just calls the init method
-	 * of a global I2C::Impl "Singleton"
-	 */
-	static void init() { i2cDeviceImpl.init(); }
-
-
-	/**
-	 * \brief I2C send routine
-	 * @param address I2C Slave address
-	 * @param data 	  Buffer to read data to send
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	static uint32_t send(uint8_t address, uint8_t* data, uint32_t length) {
-		return i2cDeviceImpl.send(address, data, length);
-	}
-
-	/**
-	 * \brief I2C receive routine
-	 * @param address I2C Slave address
-	 * @param data 	  Buffer to write received data to
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	static uint32_t receive(uint8_t address, uint8_t* data, uint32_t length) {
-		return i2cDeviceImpl.receive(address, data, length);
-	}
-};
-
-} // end of namespace
-
-#endif /* I2C_H_ */
diff --git a/04_EAN/libEZS/hal/include/OSAbstraction.h b/04_EAN/libEZS/hal/include/OSAbstraction.h
deleted file mode 100644
index d8e372937a2cb5dc20fe67761c2ef299308af029..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/OSAbstraction.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef OSABSTRACTION_H
-#define OSABSTRACTION_H
-
-void osPanic(void) {
-  while(1)
-    ;
-}
-
-#endif
\ No newline at end of file
diff --git a/04_EAN/libEZS/hal/include/RS232Device.h b/04_EAN/libEZS/hal/include/RS232Device.h
deleted file mode 100644
index 291271c7e04e8b3d944d17d40e36dafe3eaf2027..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/RS232Device.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file RS232Device.h
- * \ingroup hal
- * \brief RS232 Abstraction Layer
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-
-#ifndef RS232DEVICE_H
-#define RS232DEVICE_H
-
-#include <stdint.h>
-
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "RS232DeviceImpl.h"
-
-namespace hal {
-
-/**
- * \class RS232Device
- * \brief RS232 Interface Abstractions
- */
-class RS232Device {
-	RS232DeviceImpl m_impl;
-public:
-
-	//! A baudrate type..
-	enum Baudrate {
-		BR9600 = 9600,
-		BR38400 = 38400,
-		BR115200 = 115200,
-	} ;
-
-	/**
-	 * Constructor defines the RS232 Device number
-	 * @param device number
-	 */
-	RS232Device(uint8_t const device) : m_impl(device){};
-
-	/**
-	 * Initalizer mainly sets the baudrate
-	 * @param baudrate
-	 * @return true if initalization was successful
-	 */
-	bool init(RS232Device::Baudrate baudrate){ return m_impl.init(baudrate); };
-
-	/**
-	 * \brief Send a byte blocking
-	 * @param b Byte to send
-	 */
-	void send(uint8_t b) { m_impl.send(b); };
-
-	/**
-	 * \brief Send an array of bytes (blocking)
-	 *
-	 * @param buf Array to be sent
-	 * @param length Length of the array
-	 * @return Number of bytes sent
-	 */
-	void send(uint8_t * buf, uint32_t length){ m_impl.send(buf, length); };
-
-
-	/**
-	 * \brief Send byte non-blocking
-	 * \param b Byte to send
-	 * \return \c true if byte is scheduled for sending, else \c false
-	 */
-	bool send_nb(uint8_t b){ return m_impl.send_nb(b); };
-
-	/**
-	 * \brief Send an array of bytes non-blocking
-	 * \param buf Pointer to the array to send
-	 * \param length Length of the array
-	 * \return Number of bytes sent, -1 on error TODO
-	 */
-	bool send_nb(uint8_t const * buf, uint32_t length){ return  m_impl.send_nb(buf, length); };
-
-	/**
-	 * \brief Receive a single byte blocking
-	 * @return The received byte
-	 */
-	uint8_t recv() { return m_impl.recv(); };
-	/**
-	 * \brief Enable RS232 RX Interrupt
-	 */
-
-	void enable_rx_int(){ m_impl.enable_rx_irq(); };
-
-	/**
-	 * \brief Disable RS232 RX Interrupt
-	 */
-	void disable_rx_int(){ m_impl.disable_rx_irq(); };
-
-	/**
-	 * \brief Received byte from within RX IRQ Handler
-	 * @param dest Reference where to store the received byte
-	 * @return true if byte was received, false on error
-	 * \note The hw dependent implementation can reset status bits here.
-	 */
-	bool getc_irq(uint8_t& dest){ return  m_impl.getc_irq(dest); };
-
-	/**
-	 * \brief Setup DMA based reception of a string
-	 *
-	 * @param buffer The destination where to store the bytes
-	 * @param length The number of bytes to receive
-	 * \note The hw dependent implementation can reset status bits here.
-	 * \note This method enables DMA Interrupt after complete reception! (\see dma_rx_completed_irq)
-	 */
-	void config_dma_rx_irq(uint8_t* buffer, uint32_t length){ m_impl.config_dma_rx_irq(buffer, length); };
-
-	/**
-	 * \brief Test and acknowledge dma rx interrupt
-	 * @return \c true if IRQ was an DMA RX complete, \c false on error
-	 * \note The hw dependent implementation can reset status bits here.
-	 * \note This must be called from within the according IRQ Handler
-	 */
-	bool dma_rx_completed_irq()  { return m_impl.rx_dma_handler_completed(); };
-
-
-	/**
-	 * \brief Test and acknowledge dma tx interrupt
-	 * @return \c true if IRQ was an DMA TX complete, \c false on error
-	 * \note The hw dependent implementation can reset status bits here.
-	 * \note This must be called from within the according IRQ Handler
-	 */
-	bool dma_tx_completed_irq()  { return m_impl.tx_dma_handler(); };
-
-
-};
-
-
-}
-
-
-#endif
diff --git a/04_EAN/libEZS/hal/include/SPIBus.h b/04_EAN/libEZS/hal/include/SPIBus.h
deleted file mode 100644
index a3ab5385e987ae7fb9362795e36467cb63cf8fc3..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/hal/include/SPIBus.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Copyright I4Copter Project 2007-2011
- * http://www4.informatik.uni-erlangen.de/Research/I4Copter
- *
- * \file SPI.h
- * \ingroup hal
- * \brief SPI Abstraction Layer
- * \author Martin Hoffmann <hoffmann@cs.fau.de>
- */
-
-#ifndef SPIBUS_H_
-#define SPIBUS_H_
-
-#include <stdint.h>
-#include "DigitalDevice.h"
-//! \note The actual implementation is determined by the header search path, which depends on the CMake build type (microcontroller platform)
-#include "Config.h"
-#include "SPIBusImpl.h"
-
-namespace hal {
-
-/**
- * \class SPIBus
- * \brief SPI Interface Abstractions
- *
- * This is the basic "abstract" class of the
- * SPI interface (some sort of Pimpl pattern).
- * A SPI::Impl class
- * holds the hardware dependent implementation.
- */
-class SPIBus {
-	SPIBusImpl* m_impl;
-public:
-
-	SPIBus(uint8_t const device)  {
-		if(device == 1) m_impl = &spibus1;
-		if(device == 2) m_impl = &spibus2;
-	};
-	/**
-	 * \brief Interface initialization
-	 *
-	 * This method just calls the init method
-	 * of a global SPI::Impl "Singleton"
-	 */
-	void init( hal::spi::Mode_t mode) const { m_impl->init(mode); }
-
-
-	/**
-	 * \brief SPI send routine
-	 * @param address SPI Slave address
-	 * @param data 	  Buffer to read data to send
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	uint32_t master_send(DigitalDevice& slave, uint8_t* txbuf, uint8_t* rxbuf, uint32_t length, hal::spi::tx_callback cb) const {
-		return m_impl->send_nonblocking(slave, txbuf, rxbuf, length, cb);
-	}
-
-
-	/**
-	 * \brief SPI slave receive routine
-	 * @param address Slave Select line to wait for data
-	 * @param data 	  Buffer to input/output data
-	 * @param length  Buffer/Message length
-	 * @return
-	 */
-	uint32_t slave_receive(DigitalDevice& slave, uint8_t* rxbuf, uint8_t* txbuf, uint32_t length, hal::spi::rx_callback cb) const {
-		return m_impl->receive_nonblocking(slave, rxbuf, txbuf, length, cb);
-	}
-};
-
-} // end of namespace
-
-#endif /* SPIBUS_H_ */
diff --git a/04_EAN/libEZS/include/ezs_adc.h b/04_EAN/libEZS/include/ezs_adc.h
deleted file mode 100644
index 0af07fac905ff6e52d468ff159a650da6000e1ca..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_adc.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef EZS_ADC_H_INCLUDED
-#define EZS_ADC_H_INCLUDED
-
-/*!
- * @file ezs_adc.h
- * @brief A very simple AD converter, based on Fail*
- * @author Martin Hoffmann
- * \ingroup dac
- */
-
-#include <stdint.h>
-
-/*!
- * \brief Get a value from the ADC.
- */
-uint8_t ezs_adc_read(void);
-
-
-#endif // EZS_ADC_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_common.h b/04_EAN/libEZS/include/ezs_common.h
deleted file mode 100644
index c6454a4712398b1afe82ba5d5c4dad4869241926..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_common.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef EZS_COMMON_H_INCLUDED
-#define EZS_COMMON_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann
- * \ingroup common
- */
-
-#include <stdint.h>
-
-
-
-/*!
- * \brief returns the low byte of value
- */
-uint8_t ezs_low_byte(uint16_t value);
-
-/*!
- * \brief returns the high byte of value
- */
-uint8_t ezs_high_byte(uint16_t value);
-
-
-#endif // EZS_COMMON_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_counter.h b/04_EAN/libEZS/include/ezs_counter.h
deleted file mode 100644
index f5b8fc2db34f7eb26e1e1e4661db940900e1f771..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_counter.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef EZS_COUNTER_H_INCLUDED
-#define EZS_COUNTER_H_INCLUDED
-
-/*!
- * @file ezs_counter.h
- * @brief A simple counter interface. Implemented for tricore and for fail*
- * @authors Martin Hoffmann, Tobias Klaus
- * \ingroup counter
- */
-
-#include <cyg/infra/cyg_type.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*!
- * \brief This function has to be called exactly once so ezs_counter_get()
- *        yields meaningfull results.
- */
-void ezs_counter_init(void);
-
-/**
- * \brief Read the current counter value from the hardware counter.
- * @return counter value (for time resolution \see ezs_counter_resolution_us)
- */
-cyg_uint64 ezs_counter_get(void);
-
-/**
- * \brief Returns the current time resolution of the hardware counter.
- * @return tick resolution in microseconds
- * @retval 0 Resolution cannot be expressed in this granularity. Try another one.
- */
-cyg_uint64 ezs_counter_resolution_us(void);
-/**
- * \brief Returns the current time resolution of the hardware counter.
- * @return tick resolution in picoseconds
- * @retval 0 Resolution cannot be expressed in this granularity. Try another one.
- */
-cyg_uint64 ezs_counter_resolution_ps(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // EZS_COUNTER_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_dac.h b/04_EAN/libEZS/include/ezs_dac.h
deleted file mode 100644
index 8ede635aaab9ba8e0af9e9726d8aab012a39313f..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_dac.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef EZS_DAC_H_INCLUDED
-#define EZS_DAC_H_INCLUDED
-
-/*!
- * @file ezs_dac.h
- * @brief A very simple DA converter. Implemented for tricore and for fail*
- * @authors Martin Hoffmann, Tobias Klaus
- * \ingroup dac
- */
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
- * \brief Initializes the DAC. This function has to be called exactly once
- *        so ezs_dac_write() exhibits defined behaviour.
- */
-void ezs_dac_init(void);
-
-/*!
- * \brief Write a value to the DAC.
- */
-void ezs_dac_write(uint8_t value);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // EZS_DAC_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_fb.h b/04_EAN/libEZS/include/ezs_fb.h
deleted file mode 100644
index 2720196f504570ba078d4ad15691c65fd9754b12..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_fb.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*!
- * @file ezs_fb.h
- * @brief eCos framebuffer helper
- * @author Martin Hoffmann
- * \ingroup hw
- * Some helper functions for the eCos framebuffer driver.
- * \note You can still use the eCos functions directly, of course
- *
- */
-
-#ifndef __FB_H_
-#define __FB_H_
-
-#include <cyg/infra/cyg_type.h>
-#include <cyg/infra/diag.h>
-#include <cyg/hal/hal_arch.h>
-#include <cyg/io/framebuf.h>
-#include <string.h>
-#include <stdio.h>
-
-#define FRAMEBUF fb0
-#define FB_WIDTH    CYG_FB_WIDTH(FRAMEBUF)
-#define FB_HEIGHT   CYG_FB_HEIGHT(FRAMEBUF)
-
-#define FB_BLACK 0
-#define FB_WHITE ((16*4)-1)
-
-#define FB_FONT_SMILE 1
-
-/*!
- *  \brief Initialize the framebuffer. Call this function exactly once before
- *  using any of the other framebuffer related functions.
- */
-void ezs_fb_init(void);
-
-/*!
- *  \brief Fill block.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param width Width of the box.
- *  \param height Height of the box.
- *  \param color Color.
- */
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,
-                       cyg_ucount16 height, cyg_fb_colour color);
-
-/*!
- *  \brief Draw horizontal line.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param len length of the line.
- *  \param color Color.
- */
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color);
-
-/*!
- *  \brief Draw vertical line.
- *  \param x X-Axis start position.
- *  \param y Y-Axis start position.
- *  \param len length of the line.
- *  \param color Color.
- */
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color);
-
-/*!
- *  \brief Clear the framebuffer.
- *  \param color Color.
- */
-void ezs_fb_clear(cyg_fb_colour color);
-
-/*  and so on.. see: http://ecos.sourceware.org/docs-latest/ref/framebuf-drawing.html   */
-
-/*!
- * \brief Prints a character at a given position.
- * \param c Character to print.
- * \param x X-Axis position.
- * \param y Y-Axis position.
- * \param color Color.
- */
-void ezs_fb_print_char(int c, cyg_ucount16 x, cyg_ucount16 y,
-                       cyg_fb_colour color);
-
-/*!
- * \brief Prints a string at a given position.
- * \param c Pointer to null terminated string.
- * \param x X-Axis position.
- * \param y Y-Axis position.
- * \param color Color.
- */
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y,
-                             cyg_fb_colour color);
-
-/*!
- * \brief Prints a string.
- * \param c Pointer to null terminated string.
- * \param color String color.
- */
-void ezs_fb_print_string(char* c, cyg_fb_colour color);
-
-/*!
- * \brief Sets the cursor to a new line.
- */
-void ezs_fb_newline(void);
-
-/*!
- * \brief Sets the cursor to an arbitrary position.
- * \param x X-axis position (0 .. FB_WIDTH)
- * \param y Y-axis position (0 .. FB_HEIGHT)
- */
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y);
-
-#endif
-
diff --git a/04_EAN/libEZS/include/ezs_fft.h b/04_EAN/libEZS/include/ezs_fft.h
deleted file mode 100644
index 39095aa438782ed5913bd4907619f369c7076af3..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_fft.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef EZS_DSP_FFT_H
-#define EZS_DSP_FFT_H
-
-
-/**
- * \defgroup dsp Digital Signal Processing (DSP)
- */
-
-/**
- * \file ezs_fft.h Fast fourier transformation
- * \ingroup dsp
- * \brief calculates the power density spectrum of in[]
- */
-
-
-
-/**
- * \brief Calculates the PDS of a given time domain signal
- * \param in input, time domain signal.
- * \param out output, out[0] to out[length / 2 - 1] contains the power density spectrum of in[] in dB
- * \param length of in[]. Must be a power of 2. The size of out[] must be at least length / 2 - 1.
- *
- * \note Be careful, only rudimentary error checking is performed.
- * \see http://en.wikipedia.org/wiki/Spectral_density
- */
-void ezs_power_density_spectrum(float in[], float out[], int length);
-
-/**
- * \brief Calculates the PDS of a given time domain signal
- * \param in input, time domain signal.
- * \param out output, contains the power density spectrum of in[] in dB.
- * \param length of in[]. Must be a power of 2. The size of out[] must be at least length/2 - 1.
- *
- * This is a convenience function that calls ezs_power_density_spectrum().
- *
- * \note Be careful, only rudimentary error checking is performed.
- * \see http://en.wikipedia.org/wiki/Spectral_density
- */
-void ezs_easy_pds(cyg_uint32 in[], float out[], int length);
-
-
-#endif // EZS_DSP_FFT_H
diff --git a/04_EAN/libEZS/include/ezs_gcd.h b/04_EAN/libEZS/include/ezs_gcd.h
deleted file mode 100644
index 76aabd192ee0c115d170641a36526d488d1a3ded..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_gcd.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef EZS_MATH_GCD_H
-#define EZS_MATH_GCD_H
-/**
- * \defgroup math Math stuff
- */
-
-/**
- * \file ezs_gcd.h
- * \ingroup math
- * \brief Greatest common divisor implementation
- */
-
-
-/**
- * \brief calculates the greatest common divisor of a and b
- */
-int ezs_greatest_common_divisor(int a, int b);
-
-/**
- * \brief calculates the lowest common multiple of a and b
- */
-int ezs_lowest_common_multiple(int a, int b);
-
-#endif // EZS_MATH_GCD_H
diff --git a/04_EAN/libEZS/include/ezs_gpio.h b/04_EAN/libEZS/include/ezs_gpio.h
deleted file mode 100644
index 9532d9745674cbc9b7cfa5def0a77d0ea652eb14..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_gpio.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef EZS_GPIO_H_INCLUDED
-#define EZS_GPIO_H_INCLUDED
-
-#include <stdbool.h>
-/**
- * \file ezs_gpio.h
- * \ingroup hw
- * \brief Access to General Purpose Input/Output pins
- */
-
-/**
- * \brief Call this function exactly once to initialize the GPIO system.
- * As long as this function has not been called, calls to other functions in
- * this module have undefined behaviour.
- */
-void ezs_gpio_init(void);
-
-/**
- * \brief Sets the GPIO pin to high (enabled == true) or low (enabled ==
- * false).
- */
-void ezs_gpio_set(bool /* enabled */);
-
-#endif // EZS_GPIO_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_interpolation.h b/04_EAN/libEZS/include/ezs_interpolation.h
deleted file mode 100644
index c1dab000e947c8cb8ba3d6fab7bf5875d5d738dd..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_interpolation.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef EZS_INTERPOLATION_H
-#define EZS_INTERPOLATION_H
-
-/**
- * \file ezs_interpolation.h
- * \ingroup dsp
- * \brief performs linear resampling of in[] and writes the result to out[]
- * @see http://en.wikipedia.org/wiki/Sample_rate_conversion
- * @see http://en.wikipedia.org/wiki/Linear_interpolation
- */
-void ezs_resample_linear(float in[], size_t in_length, float out[],
-                         size_t out_length);
-#endif // EZS_INTERPOLATION_H
diff --git a/04_EAN/libEZS/include/ezs_io.h b/04_EAN/libEZS/include/ezs_io.h
deleted file mode 100644
index d0935bc23d40821d56911350646d4261bdc70bca..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_io.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef EZS_IO_H_INCLUDED
-#define EZS_IO_H_INCLUDED
-
-#include <cyg/infra/cyg_type.h>
-
-/**
- * \file ezs_io.h
- * \brief Input/Output primitives
- */
-
-/**
- * \brief print value annotated with timestamp. The exact means of printing are
- * subject to the underlying hardware.
- */
-void ezs_print_measurement(cyg_uint32 timestamp, cyg_uint32 value);
-
-#endif // EZS_IO_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_keycodes.h b/04_EAN/libEZS/include/ezs_keycodes.h
deleted file mode 100644
index c9cdf8cdf2eae720d00bc6f40aed210cda01f9c4..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_keycodes.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __KEYCODES_H__
-#define __KEYCODES_H__
-/**
- * @file ezs_keycodes.h
- *
- * @brief Keyboard keycodes.
- * @author Martin Hoffmann
- */
-
-
-/**
- *  Get character from keyboard code.
- */
-unsigned char ezs_get_char_from_keycode(unsigned char code);
-
-#endif
diff --git a/04_EAN/libEZS/include/ezs_outputs.h b/04_EAN/libEZS/include/ezs_outputs.h
deleted file mode 100644
index c2fd3a7cd3c448dfc0cd8768c696bbcea1fafc79..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_outputs.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef EZS_OUTPUTS_H_INCLUDED
-#define EZS_OUTPUTS_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann
- * \ingroup common
- */
-
-#include <stdint.h>
-
-void outputs_init(void);
-
-/*!
- * \brief returns the low byte of value
- */
-void ezs_setOutputA(uint16_t);
-void ezs_setOutputB(uint16_t);
-void ezs_setOutputC(uint16_t);
-
-#endif // EZS_OUTPUTS_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_plot.h b/04_EAN/libEZS/include/ezs_plot.h
deleted file mode 100644
index 4d85004474f29c27703de2f8a514ad854b1f5bd1..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_plot.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef EZS_PLOT_H
-#define EZS_PLOT_H
-#include <cyg/infra/cyg_type.h>
-#include <cyg/io/framebuf.h>
-
-/**
- * \defgroup plot Graph plotting
- */
-
-
-/**
- * \file ezs_plot.h
- * \ingroup plot
- * \brief Helper function to plot a <b>time domain signal</b>
- */
-
-/**
- * \brief Plots a <b>time signal</b> of given length to framebuffer
- *
- * @param data  A pointer of data values
- * @param length The size of the data array
- * @param foreground The foreground color: e.g. FB_WHITE
- * @param background The background color: e.g. FB_BLACK
- */
-void ezs_plot(cyg_uint32 data[], size_t length, cyg_fb_colour foreground,
-              cyg_fb_colour background);
-
-#endif // EZS_PLOT_H
diff --git a/04_EAN/libEZS/include/ezs_plot_pds.h b/04_EAN/libEZS/include/ezs_plot_pds.h
deleted file mode 100644
index 132d3f3467e182f30f19980abb7ef83a6398481b..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_plot_pds.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef EZS_PLOT_PDS_H
-#define EZS_PLOT_PDS_H
-#include "ezs_fb.h"
-
-/**
- * \file ezs_plot_pds.h
- * \ingroup plot
- * \brief plot an previously calculated <b>power density spectrum</b>
- *
- * @param spectrum The caculated pds data
- * @param length The length of the pds array
- * @param foreground The framebuffer foreground color
- * @param background The framebuffer background color
- */
-void ezs_plot_pds(float spectrum[], int length, cyg_fb_colour foreground,
-                  cyg_fb_colour background);
-
-#endif // EZS_PLOT_PDS_H
diff --git a/04_EAN/libEZS/include/ezs_rs232.h b/04_EAN/libEZS/include/ezs_rs232.h
deleted file mode 100644
index fa4008a1fdcf75a77bce04bc28dd9c0301f0e375..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_rs232.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef EZS_RS232_H_INCLUDED
-#define EZS_RS232_H_INCLUDED
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \file ezs_rs232.h
- * \ingroup hw
- * \brief Functions for using the RS232 interface.
- */
-
-/**
- * \brief initializes the RS232 interface. Call this function exactly once
- * before using any other function provided by this module.
- */
-void ezs_rs232_init(uint32_t /* baudrate */, uint8_t /* irq */);
-
-/**
- * \brief writes a single byte to the RS232 interface.
- */
-void ezs_rs232_putc(uint8_t /* c */);
-
-/**
- * \brief consumes a single byte from the RS232 interface's input buffer.
- */
-uint8_t ezs_rs232_getc(void);
-
-/**
- * \brief Marks the current RS232 interrupt as handled.
- */
-void ezs_rs232_acknowledge_rx_interrupt(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // EZS_RS232_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_sensors.h b/04_EAN/libEZS/include/ezs_sensors.h
deleted file mode 100644
index 81e171955009caabebb69e5047a35dfe7b9fe22a..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_sensors.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef EZS_SENSORS_H_INCLUDED
-#define EZS_SENSORS_H_INCLUDED
-
-/*!
- * @file ezs_common.h
- * @brief common functions for EZS
- * @author Florian Franzmann
- * \ingroup common
- */
-
-#include <stdint.h>
-
-void sensors_init(void);
-
-/*!
- * \brief returns the low byte of value
- */
-uint16_t ezs_getValueSensorA(void);
-uint16_t ezs_getValueSensorB(void);
-uint16_t ezs_getValueSensorC(void);
-
-#endif // EZS_SENSORS_H_INCLUDED
diff --git a/04_EAN/libEZS/include/ezs_stopwatch.h b/04_EAN/libEZS/include/ezs_stopwatch.h
deleted file mode 100644
index 42fb2472e624604d2c41095c9170560764705ae7..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_stopwatch.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*!
- * @file ezs_stopwatch.h
- * A stopwatch for time measurement and
- * WCET generation.
- *
- * \ingroup hw
- *  @brief EZS time measurement and WCET generation
- *  @author Martin Hoffmann
- */
-
-#ifndef __STOPWATCH_H_
-#define __STOPWATCH_H_
-#include <cyg/infra/cyg_type.h>
-
-/**
- *  Start stop watch.
- *  @param state Pointer to a state variable
- */
-void ezs_watch_start(cyg_uint32* state);
-
-/**
- *  Stop watch and return time in timer's ticks.
- *  @param state Pointer to a state variable
- *  @see ezs_watch_start
- */
-cyg_uint32 ezs_watch_stop(cyg_uint32* state);
-
-/**
- *  Waits actively for WCET simulation.
- *  @param wcet Desired time to wait actively in in ticks.
- *              Beware! Not too small amounts of ticks may be undetectable.
- *              Thus this function may not support small granularities.
- *  @param percentage Maximal percentage of the wcet that might NOT be lost to better simulate real workload. Values above 100 are mapped to 100
- */
-void ezs_lose_time(cyg_uint32 wcet, cyg_uint8 percentage);
-
-
-#endif
-
diff --git a/04_EAN/libEZS/include/ezs_trace.h b/04_EAN/libEZS/include/ezs_trace.h
deleted file mode 100644
index 3c5056c777c357cb3caeedf217e047bd17f93cb4..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_trace.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef EZS_TRACER_H
-#define EZS_TRACER_H
-
-/**
- * \file ezs_trace.h
- * \brief Functions for execution tracing.
- */
-
-/**
- * \brief initializes execution tracing
- */
-int ezs_trace_init(void);
-
-#endif
diff --git a/04_EAN/libEZS/include/ezs_window.h b/04_EAN/libEZS/include/ezs_window.h
deleted file mode 100644
index c70b8e444db20d52e7c3ea9ab34dbf916a6e58af..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/ezs_window.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef EZS_DSP_WINDOW_H
-#define EZS_DSP_WINDOW_H
-
-/**
- * \file ezs_window.h
- * \ingroup dsp
- * \brief Various FFT window implementations
- * \author Florian Franzmann
- * \note only for internal use.
- */
-
-/**
- * \brief This function calculates the weights for a rectangulage window
- * \return always returns 1.0
- */
-float ezs_rect_window(float alpha, int position, int length);
-
-/**
- * \brief This function calculates the weights for a blackman window
- */
-float ezs_blackman_window(float alpha, int position, int length);
-
-/*!
- * \brief This function calculates the weights for a hamming window
- */
-float ezs_hamming_window(float alpha, int position, int length);
-
-#endif // EZS_DSP_WINDOW_H
diff --git a/04_EAN/libEZS/include/fixedpoint.h b/04_EAN/libEZS/include/fixedpoint.h
deleted file mode 100644
index d4bec65deaf0863aaccc291f4524b85323db073c..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/include/fixedpoint.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef FIXEDPOINT_H_INCLUDED
-#define FIXEDPOINT_H_INCLUDED
-
-#include <stdint.h>
-
-int8_t float_to_q(float f);
-
-float q_to_float(int8_t q);
-
-int8_t q_add(int8_t s1, int8_t s2);
-
-int8_t q_sub(int8_t minuend, int8_t subtrahend);
-
-int8_t q_mul(int8_t fac1, int8_t fac2);
-
-int8_t q_div(int8_t divident, int8_t divisor);
-
-#endif // FIXEDPOINT_H_INCLUDED
diff --git a/04_EAN/libEZS/src/ezs_common.c b/04_EAN/libEZS/src/ezs_common.c
deleted file mode 100644
index cb8146982ebf75e04891343cfbf165e07c03cde1..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_common.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "ezs_common.h"
-
-uint8_t ezs_low_byte(uint16_t value) {
-    return (uint8_t) (value & 0xFF);
-}
-
-uint8_t ezs_high_byte(uint16_t value) {
-    return (uint8_t) ((value & 0xFF00) >> 8);
-}
-
diff --git a/04_EAN/libEZS/src/ezs_dac.c b/04_EAN/libEZS/src/ezs_dac.c
deleted file mode 100644
index 2c3295e6137db2464138b02f6ec11c0139e8e235..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_dac.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * @file ezs_dac.c
- * @brief A very simple DA converter, based on Fail*
- * @author Martin Hoffmann
- * \ingroup dac
- */
-#include <stdint.h>
-#include "ezs_dac.h"
-
-static volatile uint8_t ezs_dac_out_register;
-
-/*!
- * \brief Write a value to the DAC
- */
-void ezs_dac_write(uint8_t value) {
-    ezs_dac_out_register = value;
-}
-
-void ezs_dac_init() {
-}
-
diff --git a/04_EAN/libEZS/src/ezs_fb.c b/04_EAN/libEZS/src/ezs_fb.c
deleted file mode 100644
index 1a1493a152436c2f4dc287b2909e7bb1695de497..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_fb.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include "libEZS/include/ezs_fb.h"
-typedef struct {
-    int x;
-    int y;
-} cursor_t;
-
-static cursor_t cursor;
-void ezs_fb_init(void) {
-    CYG_FB_ON(FRAMEBUF);
-    CYG_FB_FILL_BLOCK(FRAMEBUF, 0, 0, FB_WIDTH, FB_HEIGHT, 0);
-    cursor.x = 0;
-    cursor.y = 0;
-}
-
-
-void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,
-                       cyg_ucount16 height, cyg_fb_colour color) {
-    CYG_FB_FILL_BLOCK(FRAMEBUF, x, y, width, height, color);
-}
-
-
-void ezs_fb_hline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color) {
-    CYG_FB_WRITE_HLINE(FRAMEBUF, x, y, len, color);
-}
-
-
-void ezs_fb_vline(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 len,
-                  cyg_fb_colour color) {
-
-    CYG_FB_WRITE_VLINE(FRAMEBUF, x, y, len, color);
-}
-
-void ezs_fb_clear(cyg_fb_colour color) {
-    ezs_fb_fill_block(0, 0, FB_WIDTH, FB_HEIGHT, color);
-}
-
-
-void ezs_fb_print_char( int ch, cyg_ucount16 x, cyg_ucount16 y,
-                        cyg_fb_colour color) {
-    int i, j;
-
-    for (i = ch * 8; i < (ch * 8) + 8; i++) {
-        unsigned char row = g_8x8_font[i];
-
-        for (j = 0; j < 8; j++) {
-            if ((row & (0x80 >> j)) != 0) {
-                ezs_fb_fill_block(x + j, y + (i - ch * 8), 1, 1, color);
-            }
-        }
-    }
-
-}
-
-void ezs_fb_print_string(char* c,  cyg_fb_colour color) {
-    ezs_fb_print_string_cur(c, cursor.x, cursor.y, color);
-}
-
-void ezs_fb_print_string_cur(char* c, cyg_ucount16 x, cyg_ucount16 y,
-                             cyg_fb_colour color) {
-    char* ch = c;
-
-    while (*ch != '\0') {
-        if (*ch == '\n') {
-            ezs_fb_newline();
-        }
-        else {
-            ezs_fb_print_char((*ch) + 0, x , y, color);
-            x = x + 8;
-
-            if ( x >= FB_WIDTH - 8) {
-                y += 8;
-                x = 0;
-            }
-        }
-
-        ch++;
-    }
-
-    cursor.x = x;
-    cursor.y = y;
-}
-
-void ezs_fb_newline(void) {
-    cursor.x = 0;
-    cursor.y += 8;
-}
-
-void ezs_fb_setpos(cyg_ucount16 x, cyg_ucount16 y) {
-    cursor.x = x;
-    cursor.y = y;
-}
-
diff --git a/04_EAN/libEZS/src/ezs_fft.c b/04_EAN/libEZS/src/ezs_fft.c
deleted file mode 100644
index c42549e159106096dd9f4568c903b1b16ec341e9..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_fft.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/****************************************************************************
-* rfft(float X[],int N)                                                     *
-*     A real-valued, in-place, split-radix FFT program                      *
-*     Decimation-in-time, cos/sin in second loop                            *
-*     Input: float X[1]...X[N] (NB Fortran style: 1st pt X[1] not X[0]!)    *
-*     Length is N=2**M (i.e. N must be power of 2--no error checking)       *
-*     Output in X[1]...X[N], in order:                                      *
-*           [Re(0), Re(1),..., Re(N/2), Im(N/2-1),..., Im(1)]               *
-*                                                                           *
-* Original Fortran code by Sorensen; published in H.V. Sorensen, D.L. Jones,*
-* M.T. Heideman, C.S. Burrus (1987) Real-valued fast fourier transform      *
-* algorithms.  IEEE Trans on Acoustics, Speech, & Signal Processing, 35,    *
-* 849-863.  Adapted to C by Bill Simpson, 1995  wsimpson@uwinnipeg.ca       *
-****************************************************************************/
-
-#include <math.h>
-#include <assert.h>
-#include <string.h>
-#include <float.h>
-#include "ezs_fft.h"
-#include "ezs_window.h"
-
-#define EZS_ADC_MAXIMUM 255.0f
-
-void rfft(float X[], int N) {
-    assert(log(N) / log(2.0) == floor(log(N) / log(2.0)));
-    int I, I0, I1, I2, I3, I4, I5, I6, I7, I8, IS, ID;
-    int J, K, M, N2, N4, N8;
-    float A, A3, CC1, SS1, CC3, SS3, E, R1, XT;
-    float T1, T2, T3, T4, T5, T6;
-
-    M = (int)(log(N) / log(2.0));           /* N=2^M */
-
-    /* ----Digit reverse counter--------------------------------------------- */
-    J = 1;
-
-    for (I = 1; I < N; I++) {
-        if (I < J) {
-            XT    = X[J];
-            X[J]  = X[I];
-            X[I]  = XT;
-        }
-
-        K = N / 2;
-
-        while (K < J) {
-            J -= K;
-            K /= 2;
-        }
-
-        J += K;
-    }
-
-    /* ----Length two butterflies--------------------------------------------- */
-    IS = 1;
-    ID = 4;
-
-    do {
-        for (I0 = IS; I0 <= N; I0 += ID) {
-            I1    = I0 + 1;
-            R1    = X[I0];
-            X[I0] = R1 + X[I1];
-            X[I1] = R1 - X[I1];
-        }
-
-        IS = 2 * ID - 1;
-        ID = 4 * ID;
-    }
-    while (IS < N);
-
-    /* ----L shaped butterflies----------------------------------------------- */
-    N2 = 2;
-
-    for (K = 2; K <= M; K++) {
-        N2    = N2 * 2;
-        N4    = N2 / 4;
-        N8    = N2 / 8;
-        E     = (float) 6.2831853071719586f / N2;
-        IS    = 0;
-        ID    = N2 * 2;
-
-        do {
-            for (I = IS; I < N; I += ID) {
-                I1 = I + 1;
-                I2 = I1 + N4;
-                I3 = I2 + N4;
-                I4 = I3 + N4;
-                T1 = X[I4] + X[I3];
-                X[I4] = X[I4] - X[I3];
-                X[I3] = X[I1] - T1;
-                X[I1] = X[I1] + T1;
-
-                if (N4 != 1) {
-                    I1 += N8;
-                    I2 += N8;
-                    I3 += N8;
-                    I4 += N8;
-                    T1 = (X[I3] + X[I4]) * .7071067811865475244f;
-                    T2 = (X[I3] - X[I4]) * .7071067811865475244f;
-                    X[I4] = X[I2] - T1;
-                    X[I3] = -X[I2] - T1;
-                    X[I2] = X[I1] - T2;
-                    X[I1] = X[I1] + T2;
-                }
-            }
-
-            IS = 2 * ID - N2;
-            ID = 4 * ID;
-        }
-        while (IS < N);
-
-        A = E;
-
-        for (J = 2; J <= N8; J++) {
-            A3 = 3.0 * A;
-            CC1   = cos(A);
-            SS1   = sin(A);  /*typo A3--really A?*/
-            CC3   = cos(A3); /*typo 3--really A3?*/
-            SS3   = sin(A3);
-            A = (float)J * E;
-            IS = 0;
-            ID = 2 * N2;
-
-            do {
-                for (I = IS; I < N; I += ID) {
-                    I1 = I + J;
-                    I2 = I1 + N4;
-                    I3 = I2 + N4;
-                    I4 = I3 + N4;
-                    I5 = I + N4 - J + 2;
-                    I6 = I5 + N4;
-                    I7 = I6 + N4;
-                    I8 = I7 + N4;
-                    T1 = X[I3] * CC1 + X[I7] * SS1;
-                    T2 = X[I7] * CC1 - X[I3] * SS1;
-                    T3 = X[I4] * CC3 + X[I8] * SS3;
-                    T4 = X[I8] * CC3 - X[I4] * SS3;
-                    T5 = T1 + T3;
-                    T6 = T2 + T4;
-                    T3 = T1 - T3;
-                    T4 = T2 - T4;
-                    T2 = X[I6] + T6;
-                    X[I3] = T6 - X[I6];
-                    X[I8] = T2;
-                    T2    = X[I2] - T3;
-                    X[I7] = -X[I2] - T3;
-                    X[I4] = T2;
-                    T1    = X[I1] + T5;
-                    X[I6] = X[I1] - T5;
-                    X[I1] = T1;
-                    T1    = X[I5] + T4;
-                    X[I5] = X[I5] - T4;
-                    X[I2] = T1;
-                }
-
-                IS = 2 * ID - N2;
-                ID = 4 * ID;
-            }
-            while (IS < N);
-        }
-    }
-
-    return;
-}
-
-float db(float real, float imag) {
-    float square = real * real + imag * imag;
-
-    if (square == 0.0f) {
-        square = FLT_MIN * 10.0f;
-    }
-
-    float ret = 10.0f * log(square) / log(10.0f);
-    return ret;
-}
-
-void ezs_power_density_spectrum(float in[], float out[], int length) {
-    assert(length > 0);
-    assert(log((float) length) / log(2.0f) == floor(log((float) length) / log(
-                2.0f)));
-
-    {
-        int i;
-
-        for (i = 0; i < length; ++i) {
-            out[i] = ezs_blackman_window(0.16f, i, length) * in[i];
-        }
-    }
-    rfft(&out[-1], length);
-    float scale = (float) length / 2.0f;
-    {
-        int i;
-
-        for (i = 0; i < length; ++i) {
-            int second = length - i - 1;
-            assert(second < length);
-            assert(0 <= second);
-            out[i] = db(out[i] / scale, out[length - i - 1] / scale);
-        }
-    }
-}
-
-void ezs_easy_pds(cyg_uint32 in[], float out[], int length) {
-    float in_f[length];
-
-    {
-        int i = 0;
-
-        for (i = 0; i < length; ++i) {
-            in_f[i] = (((float) in[i]) - (EZS_ADC_MAXIMUM / 2.0f)) / EZS_ADC_MAXIMUM;
-        }
-    }
-
-    float tmp[length];
-    ezs_power_density_spectrum(in_f, tmp, length);
-
-    memcpy(out, tmp, (length / 2) * sizeof(float));
-}
-
diff --git a/04_EAN/libEZS/src/ezs_gcd.c b/04_EAN/libEZS/src/ezs_gcd.c
deleted file mode 100644
index 6029589a0b59f1132d439a554d9b2bc6c648770e..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_gcd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "ezs_gcd.h"
-#include <math.h>
-#include <stdlib.h>
-
-int ezs_greatest_common_divisor(int a, int b) {
-    a = abs(a);
-    b = abs(b);
-
-    while (b != 0) {
-        int tmp = b;
-        b = a % b;
-        a = tmp;
-    }
-
-    return a;
-}
-
-int ezs_lowest_common_multiple(int a, int b) {
-    return abs(a * b) / ezs_greatest_common_divisor(a, b);
-}
diff --git a/04_EAN/libEZS/src/ezs_impure_ptr.c b/04_EAN/libEZS/src/ezs_impure_ptr.c
deleted file mode 100644
index 2bcce4eecc67716dddaadc5346b1742b437208c3..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_impure_ptr.c
+++ /dev/null
@@ -1 +0,0 @@
-struct _reent* _impure_ptr = 0;
diff --git a/04_EAN/libEZS/src/ezs_interpolation.c b/04_EAN/libEZS/src/ezs_interpolation.c
deleted file mode 100644
index 7de20d4786641d09c25000b71843c1738fc96c96..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_interpolation.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#include "ezs_gcd.h"
-#include <stddef.h>
-#include <assert.h>
-
-float linear_interpolation(float first, float second, float alpha) {
-    float ret = (1.0f - alpha) * first + alpha * second;
-    printf("%f * %f + %f * %f = %f\n", 1.0f - alpha, first, alpha, second, ret);
-    return ret;
-}
-
-void ezs_resample_linear(float in[], size_t in_length, float out[],
-                         size_t out_length) {
-    size_t lcm = ezs_lowest_common_multiple(in_length, out_length);
-    size_t size = lcm + 1;
-    float tmp[size];
-
-
-    {
-        size_t in_stride = size / (in_length - 1);
-        size_t i = 0;
-
-        for (i = 0; i < in_length - 1; ++i) {
-            size_t j = 0;
-
-            for (j = 0; j < in_stride; ++j) {
-                float alpha = ((float) (j)) / ((float) in_stride - 1);
-
-                size_t first_position = i;
-                size_t second_position = i + 1;
-
-                size_t target_position = i * in_stride + j;
-                assert(target_position < size);
-
-                tmp[target_position] = linear_interpolation(in[first_position],
-                                       in[second_position], alpha);
-            }
-        }
-
-        tmp[size - 1] = in[in_length - 1];
-    }
-
-    {
-        size_t out_stride = lcm / (out_length - 1);
-        int i = 0;
-
-        for (i = 0; i < out_length; ++i) {
-            size_t source_position = i * out_stride;
-            assert(source_position < size);
-
-            out[i] = tmp[source_position];
-        }
-
-        out[out_length - 1] = tmp[size - 1];
-    }
-}
-
-/*
-int main()
-{
-#define IN_LENGTH 512
-#define OUT_LENGTH 320
-	float input[IN_LENGTH];
-	{
-		int i;
-		for (i = 0; i < IN_LENGTH; ++i) {
-			input[i] = i + 1;
-		}
-	}
-	float output[OUT_LENGTH];
-
-	ezs_resample_linear(input, IN_LENGTH, output, OUT_LENGTH);
-	int i;
-	for (i = 0; i < IN_LENGTH; ++i) {
-		printf("%f ", input[i]);
-	}
-	printf("\n");
-	for (i = 0; i < OUT_LENGTH; ++i) {
-		printf("%f ", output[i]);
-	}
-	printf("\n");
-}
-*/
diff --git a/04_EAN/libEZS/src/ezs_io.c b/04_EAN/libEZS/src/ezs_io.c
deleted file mode 100644
index 9adaeb3824721ecde42360535eb22a0ef1d7036d..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_io.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "ezs_io.h"
-
-#include <cyg/infra/diag.h>
-
-#include <string.h>
-#include <stdio.h>
-
-void ezs_print_measurement(cyg_uint32 timestamp, cyg_uint32 value) {
-    const size_t buffer_length = 10   /* first number */
-                                 + 1  /* separator */
-                                 + 10 /* second number */
-                                 + 1  /* newline  */
-                                 + 1  /* terminating null byte  */ ;
-    char buffer[buffer_length];
-    memset(buffer, 0, buffer_length);
-    snprintf(buffer, buffer_length, "%u;%u\n", (unsigned int)timestamp,
-             (unsigned int)value);
-    diag_printf(buffer);
-}
-
diff --git a/04_EAN/libEZS/src/ezs_outputs.c b/04_EAN/libEZS/src/ezs_outputs.c
deleted file mode 100644
index 956e8d9c33a23389fea0bab45de63175342e64b6..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_outputs.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * @file ezs_outputs.c
- * @brief output stubs functions for VEZS
- * @author Tobias Klaus
- * \ingroup common
- */
-
-#include "ezs_outputs.h"
-
-void outputs_init(void) {
-  return;
-}
-
-/*!
- * \brief returns the low byte of value
- */
-static uint16_t valueA = 0;
-static uint16_t valueB = 0;
-static uint16_t valueC = 0;
-
-
-void ezs_setOutputA(uint16_t v) {
-  valueA = v;
-}
-void ezs_setOutputB(uint16_t v) {
-  valueB = v;
-}
-void ezs_setOutputC(uint16_t v) {
-  valueC = v;
-}
-
diff --git a/04_EAN/libEZS/src/ezs_plot.c b/04_EAN/libEZS/src/ezs_plot.c
deleted file mode 100644
index 3032cee14428a84594d7c28aec6007ab6e09b2fe..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_plot.c
+++ /dev/null
@@ -1,147 +0,0 @@
-#include "ezs_plot.h"
-#include "ezs_fb.h"
-#include <stdio.h>
-#include <math.h>
-#include <assert.h>
-
-
-void ezs_plot(cyg_uint32 data[], size_t length, cyg_fb_colour foreground,
-              cyg_fb_colour background) {
-    ezs_fb_clear(background);
-    {
-        size_t i = 0;
-
-        for (i = 1; i < length; ++i) {
-            assert(data[i] < 1024);
-            cyg_ucount16 y = (((int) data[i]) * FB_HEIGHT) / 1024;
-
-            ezs_fb_vline(i, FB_HEIGHT - y, 1, foreground);
-        }
-    }
-}
-
-void ezs_plot_drawCoordSystem(void) {
-    // y-axis
-    ezs_fb_vline(1, 0, FB_HEIGHT, CYG_FB_DEFAULT_PALETTE_BLACK);
-    ezs_fb_hline(0, 1, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-
-    // x-axis
-    ezs_fb_hline(0, FB_HEIGHT - 2, FB_WIDTH, CYG_FB_DEFAULT_PALETTE_BLACK);
-    ezs_fb_vline(FB_WIDTH - 2, FB_HEIGHT - 3, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-}
-
-void ezs_plot_markXaxis(short numberOfMarks) {
-
-    int delta = (FB_WIDTH - 1) / (numberOfMarks + 1);
-    int shift = delta + 1;
-
-    int i;
-
-    for (i = 0; i < numberOfMarks; ++i) {
-        ezs_fb_vline(shift, FB_HEIGHT - 4, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-        shift += delta;
-    }
-}
-
-void ezs_plot_markYaxis(short numberOfMarks) {
-
-    int delta = (FB_HEIGHT - 1) / (numberOfMarks + 1);
-    int shift = FB_HEIGHT - 1 - delta;
-
-    int i;
-
-    for (i = 0; i < numberOfMarks + 1; ++i) {
-        ezs_fb_hline(0, shift, 3, CYG_FB_DEFAULT_PALETTE_BLACK);
-        shift -= delta;
-    }
-}
-
-void ezs_plot_drawBarOnCoordSystem(float upperBound, float lowerBound,
-                                 float inputArray[], int sizeOfArray) {
-
-    // Clear FrameBuffer
-    ezs_fb_clear(CYG_FB_DEFAULT_PALETTE_WHITE);
-
-    // Flag for bufferOverflow/Underflow
-    bool overflow;
-    bool underflow;
-
-    // Define max / min Area Y-Axis
-    int maxValueY = FB_HEIGHT - ((FB_HEIGHT - 1) / 11) * 10 - 1; //=21
-    int minValueY = FB_HEIGHT - 1; //=239
-    int area = minValueY - maxValueY; //=218
-
-    // Define half block width
-    int halfBlockWidth = ((FB_WIDTH - 1) / (sizeOfArray + 1)) / 3;
-
-    // Temp variables for scaling
-    assert(upperBound > lowerBound);
-    float scaleTo = upperBound - lowerBound;
-    float offset = 0 - lowerBound;
-    float scaledValue;
-    int scaledValueInt;
-
-    // Bar drawing loop
-    int delta = (FB_WIDTH - 1) / (sizeOfArray + 1);
-    int shift = delta + 1;
-    int i;
-
-    for (i = 0; i < sizeOfArray; ++i) {
-
-        scaledValue = (inputArray[i] + offset) / scaleTo;
-
-        // Overflow check!
-        if (scaledValue > 1.0) {
-            scaledValue = 1.0;
-            overflow = true;
-        }
-        else {
-            overflow = false;
-        }
-
-        // Underflow check!
-        if (scaledValue < 0.0) {
-            scaledValue = 0.0;
-            underflow = true;
-        }
-        else {
-            underflow = false;
-        }
-
-        scaledValueInt = scaledValue * area;
-
-        if (!overflow) {
-            if (!underflow) {
-                ezs_fb_fill_block(shift - halfBlockWidth, minValueY - scaledValueInt,
-                                  halfBlockWidth * 2, scaledValueInt, CYG_FB_DEFAULT_PALETTE_BLUE);
-            }
-            else {
-                ezs_fb_fill_block(shift - halfBlockWidth, minValueY, halfBlockWidth * 2, 2,
-                                  CYG_FB_DEFAULT_PALETTE_YELLOW);
-            }
-        }
-        else {
-            ezs_fb_fill_block(shift - halfBlockWidth, minValueY - scaledValueInt,
-                              halfBlockWidth * 2, scaledValueInt, CYG_FB_DEFAULT_PALETTE_RED);
-        }
-
-        shift += delta;
-    }
-
-    // Draw coord system
-    ezs_plot_drawCoordSystem();
-    ezs_plot_markYaxis(10);
-    ezs_plot_markXaxis(sizeOfArray);
-
-    /*!
-    *  \brief Fill block.
-    *  \param x X-Axis start position.
-    *  \param y Y-Axis start position.
-    *  \param width Width of the box.
-    *  \param height Height of the box.
-    *  \param color Color.
-    */
-//void ezs_fb_fill_block(cyg_ucount16 x, cyg_ucount16 y, cyg_ucount16 width,cyg_ucount16 height,cyg_fb_colour color);
-
-
-}
diff --git a/04_EAN/libEZS/src/ezs_plot_pds.c b/04_EAN/libEZS/src/ezs_plot_pds.c
deleted file mode 100644
index 0c88a12fdf39e302750d6c67537d667208ec0d78..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_plot_pds.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "ezs_plot_pds.h"
-
-#include "ezs_fb.h"
-
-#include <cyg/infra/cyg_type.h>
-#include <cyg/io/framebuf.h>
-
-#include <assert.h>
-#include <stddef.h>
-
-static void plot_spectrum(float* spectrum, int length,
-                          cyg_ucount16 widget_x, cyg_ucount16 widget_y,
-                          cyg_ucount16 widget_width, cyg_ucount16 widget_height,
-                          cyg_fb_colour widget_color) {
-    assert(widget_x + widget_width <= FB_WIDTH);
-    assert(widget_y + widget_height <= FB_HEIGHT);
-
-    int bar_width = widget_width / length;
-    int bar_unit = widget_height / 140;
-    {
-        int i;
-
-        for (i = 0; i < length; ++i) {
-            int x = i * bar_width + widget_x;
-            assert(x < widget_x + widget_width);
-            assert(x >= widget_x);
-
-            int width = bar_width;
-            assert(width >= 0);
-
-            int height = bar_unit * (spectrum[i] + 140.0f);
-            assert(height >= 0);
-
-            int y = widget_y + widget_height - height;
-            assert(y <= widget_y + widget_height);
-            assert(y >= widget_y);
-
-
-            ezs_fb_fill_block(x, y, width, height, widget_color);
-        }
-    }
-}
-
-void ezs_plot_pds(float spectrum[], int length, cyg_fb_colour foreground,
-                  cyg_fb_colour background) {
-    assert(length <= FB_WIDTH);
-
-    ezs_fb_clear(background);
-    plot_spectrum(spectrum, length, 0, 0, FB_WIDTH, FB_HEIGHT, foreground);
-}
-
diff --git a/04_EAN/libEZS/src/ezs_stopwatch.c b/04_EAN/libEZS/src/ezs_stopwatch.c
deleted file mode 100644
index 4cc49f040969f85afee799060f83ba1c39d7c1f1..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_stopwatch.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "ezs_stopwatch.h"
-#include "ezs_counter.h"
-#include <stdlib.h>
-
-void ezs_watch_start(cyg_uint32* state) {
-    *state = ezs_counter_get();
-}
-
-cyg_uint32 ezs_watch_stop(cyg_uint32* state) {
-    return  ezs_counter_get() - (*state);
-}
-
-
-void ezs_lose_time(cyg_uint32 wcet, cyg_uint8 percentage) {
-    cyg_uint32 previous_value = ezs_counter_get();
-    cyg_uint8 percent = 0;
-    const cyg_uint32 resolution = 50U;
-    cyg_uint32 temp, diff;
-
-    if (percentage > 0 && percentage <= 100 ) {
-        percent = rand() % percentage;
-    }
-
-    cyg_int32 counter = ( wcet - (wcet * percent) / 100);
-
-    //make sure we always return before the demanded wcet
-    counter = counter - resolution;
-
-    while (counter > 0) {
-        temp = ezs_counter_get();
-        diff = temp - previous_value;
-
-        // if we were not interrupted
-        if (diff < resolution) {
-            counter = counter - diff ;
-        }
-
-        previous_value = temp;
-    }
-}
-
diff --git a/04_EAN/libEZS/src/ezs_tracer.cpp b/04_EAN/libEZS/src/ezs_tracer.cpp
deleted file mode 100644
index 9bff353c36280457ed3e0e0fd3468b40a8a6f728..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_tracer.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <pkgconf/system.h>
-#include <cyg/io/io.h>
-#include <cyg/error/codes.h>
-#include <stdint.h>
-#include <stdio.h>
-
-//! Determine if we are running in FailBochs
-static volatile unsigned FAILBOCHSID;
-static volatile uint8_t ezs_adc_in_register;
-
-//! The magic tracer variable Fail* is listening on.
-volatile unsigned ezs_tracer_register;
-
-extern "C" int ezs_trace_init(){
-    FAILBOCHSID = ezs_adc_in_register;
-	return 0;
-}
-
-//! No Time triggered kernel -> normal event triggered ecos:
-#ifndef SMLPKG_TTKERNEL
-#include <cyg/kernel/kernel.hxx> 	// C Kernel-API
-extern "C" {
-#include <cyg/kernel/kapi.h> 	// C Kernel-API
-}
-class Cyg_Thread;
-
-
-extern "C" void ezs_instrument(Cyg_Thread* current, Cyg_Thread* next) {
-    // Get priority from next thread
-	int prio = next->get_priority();
-	if(prio > 32) prio = 32;
-
-    // Write priority to tracer register
-    ezs_tracer_register = prio;
-}
-
-#else
-#include <sml/ttkernel/task.hxx>
-extern "C" void ezs_instrument(TT_Task* current, TT_Task* next){
-    ezs_tracer_register = next->get_id();
-}
-#endif
-
diff --git a/04_EAN/libEZS/src/ezs_window.c b/04_EAN/libEZS/src/ezs_window.c
deleted file mode 100644
index 1d2c6986b2471571ac78bfb92feb6b07abbecdaf..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/ezs_window.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "ezs_window.h"
-#include <math.h>
-#define M_PI	3.14159265358979323846f	/* pi */
-
-#include <assert.h>
-
-float ezs_rect_window(float alpha, int position, int length) {
-    return 1.0f;
-}
-
-float ezs_blackman_window(float alpha, int position, int length) {
-    assert(length > 0);
-    assert(position >= 0);
-    assert(position < length);
-    assert(alpha >= 0.0f);
-    assert(1.0f >= alpha);
-
-    float a[3] = {(1.0f - alpha) / 2.0f, 0.5f, alpha / 2.0f};
-    return a[0]
-           - a[1] * cos((2.0f * M_PI * ((float) position)) / ((float) (length - 1)))
-           + a[2] * cos((4.0f * M_PI * ((float) position)) / ((float) (length - 1)));
-}
-
-float ezs_hamming_window(float alpha, int position, int length) {
-    assert(length > 0);
-    assert(position >= 0);
-    assert(position < length);
-
-    return 0.54f - 0.46f * cos((2.0f * M_PI * (float) position) / (float) (
-                                   length - 1));
-}
diff --git a/04_EAN/libEZS/src/fixedpoint.c b/04_EAN/libEZS/src/fixedpoint.c
deleted file mode 100644
index fb4d892056af032e22b96d47dc31d0ba4cdc9651..0000000000000000000000000000000000000000
--- a/04_EAN/libEZS/src/fixedpoint.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "fixedpoint.h"
-
-enum {
-  N = 3,
-};
-static const int16_t K = 1 << (N - 1);
-
-int8_t float_to_q(float f)
-{
-  float temp = f * (1 << N);
-  return (int8_t) temp;
-}
-
-float q_to_float(int8_t q)
-{
-  float temp = (float) q;
-  return temp / (1 << N);
-}
-
-int8_t q_add(int8_t s1, int8_t s2)
-{
-  int8_t res = (int8_t) (s1 + s2);
-  return res;
-}
-
-int8_t q_sub(int8_t minuend, int8_t subtrahend)
-{
-  int8_t res = (int8_t) (minuend - subtrahend);
-  return res;
-}
-
-// saturate to range of int8_t
-int8_t sat8(int16_t x)
-{
-  if (x > 0x7F) return 0x7F;
-  else if (x < -0x80) return -0x80;
-  else return (int8_t)x;
-}
-
-int8_t q_mul(int8_t fac1, int8_t fac2)
-{
-  int8_t result;
-  int16_t temp;
-  
-  temp = (int16_t)fac1 * (int16_t)fac2; // result type is operand's type
-  // Rounding; mid values are rounded up
-  temp += K;
-  
-  // Correct by dividing by base and saturate result
-  result = sat8(temp >> N);
-  
-  return result;
-}
-
-int8_t q_div(int8_t dividend, int8_t divisor)
-{
-  int8_t result;
-  int16_t temp;
-  
-  // pre-multiply by the base
-  temp = (int16_t)dividend << N;
-  // Rounding: mid values are rounded up (down for negative values).
-  if ((temp >= 0 && divisor >= 0) || (temp < 0 && divisor < 0))
-    temp += divisor / 2;
-  else
-    temp -= divisor / 2;
-  result = (int8_t)(temp / divisor);
-  
-  return result;
-}
diff --git a/04_EAN/my.cnf b/04_EAN/my.cnf
deleted file mode 100644
index e1f0a8228ab7f9f5ad4f37b8d7e8432b9c70cb81..0000000000000000000000000000000000000000
--- a/04_EAN/my.cnf
+++ /dev/null
@@ -1,5 +0,0 @@
-[client]
-host = i4jenkins.cs.fau.de.
-user = vezsXX
-password = XXXXXXXXXX
-database = vezsXX
diff --git a/04_EAN/src/app.c b/04_EAN/src/app.c
deleted file mode 100644
index e50d8616d35cbe157572f1c8c4f34ffcc4ad8cc0..0000000000000000000000000000000000000000
--- a/04_EAN/src/app.c
+++ /dev/null
@@ -1,134 +0,0 @@
-#include <cyg/hal/hal_arch.h>
-#include <cyg/kernel/kapi.h>
-
-#include <cyg/io/framebuf.h>
-#include <cyg/io/framebufs/i386_fb.h>
-#include <assert.h>
-#include <ezs_fb.h>
-#include <stdio.h>
-
-#include <ezs_outputs.h>
-#include "fixedpoint.h"
-#include "ezs_sensors.h"
-#include "filter.h"
-#include "fail.h"
-
-#ifdef SMALL_ANB_TYPES
-typedef uint16_t enc_t;
-typedef uint8_t plain_t;
-typedef int8_t sig_t;
-#else
-typedef uint32_t enc_t;
-typedef uint16_t plain_t;
-typedef int16_t sig_t;
-#endif
-
-/**
- * Check Signature of a ANB-coded value
- **/
-static bool check(enc_t vc, sig_t A, sig_t B) {
-  return (vc-B)%A == 0;
-}
-
-/**
- * Encode plain values with ANB-Code
- */
-static enc_t encode(plain_t v, sig_t A, sig_t B) {
-  return (v*A)+B ;
-}
-
-/**
- * decodes ANB-coded values.
- * No signature checking is performed! This has to be done beforehand
- **/
-static plain_t decode(enc_t vc, sig_t A, sig_t B) {
-  return (vc -B)/A;
-}
-
-#define equals(vc1, vc2, B1, B2) ((vc1 - vc2) == (B1 - B2))
-
-#define THE_A 221
-
-// CONSTANT Replica results signatures
-#define SIG_X /* FIXME */
-#define SIG_Y /* FIXME */
-#define SIG_Z /* FIXME */
-
-// CONSTANT Voter Result Signatures
-#define SIG_s_XYZ ((SIG_X - SIG_Y)+(SIG_X - SIG_Z))
-#define SIG_s_XY  (SIG_X - SIG_Y)
-#define SIG_s_YZ  /* FIXME */
-#define SIG_s_XZ  /* FIXME */
-
-/**
- * Pseudo-Code for the CoRed voter
- *
- * SIGNAL_DUE() signals a Deteceted Unrecoverable Error
- *
- * The function APPLY() is appended after CORED_VOTE
-
-Require: Bx , By , Bz                            #Constant signatures of Operands
-
-function CORED_ VOTE (xc , yc , zc )
-  ZERO_LOCAL _ STORAGE()
-  if (xc − yc ) = (Bx − By ) then
-    if (xc − zc ) = (Bx − Bz ) then
-      winc <- APPLY(xc , (xc − yc ) + (xc − zc ))
-      return winc, BE <- (Bx − By ) + (Bx − Bz )  #statically computed
-    else
-      winc <- APPLY(xc , (xc − yc ))
-      return winc, BE <- (Bx − By )               #statically computed
-    end if
-  else if (yc − zc) = (By − Bz ) then
-    winc <- APPLY (yc, (yc − zc ))
-    return winc, BE <- (By -B z)                 #statically computed
-  else if (xc − zc) =(Bx − Bz) then
-    winc <- APPLY (xc , (xc − zc ))
-    return winc , BE <- (Bx − Bz )              #statically computed
-  else
-    winc <- ∅                                    #empty set
-    SIGNAL_DUE()
-  end if
-end function
-
-
-function APPLY (vc , Bdyn )
-  if Bdyn > Bmax then
-    SIGNAL_DUE()
-  end if
-  return vc + Bdyn
-end function
-
-**/
-
-static sig_t CoRedVote(void) {
-	/* TODO: Implement CoRed Voter */
-}
-
-void cyg_user_start(void) {
-  sensors_init();
-  outputs_init();
-
-  /* TODO: Sample Sensors */
-
-
-  /* TODO: Start injection */
-
-
-  /* TODO: Replicated input check */
-
-
-  /* TODO: Vote encoded input */
-
-
-  /* TODO: Replicated Filtersteps */
-
-
-  /* TODO: Vote encoded values: CoRed */
-
-
-  /* TODO: Stop injection */
-
-
-  /* TODO: Validate Vote result */
-}
diff --git a/04_EAN/src/app_ext.c b/04_EAN/src/app_ext.c
deleted file mode 100644
index 738761f67b384e084cf2e63fa49907d0d043319f..0000000000000000000000000000000000000000
--- a/04_EAN/src/app_ext.c
+++ /dev/null
@@ -1,92 +0,0 @@
-#include <cyg/hal/hal_arch.h>
-#include <cyg/kernel/kapi.h>
-
-#include <cyg/io/framebuf.h>
-#include <cyg/io/framebufs/i386_fb.h>
-#include <assert.h>
-#include <ezs_fb.h>
-#include <stdio.h>
-
-#include <ezs_outputs.h>
-#include "fixedpoint.h"
-#include "ezs_sensors.h"
-#include "filter.h"
-#include "fail.h"
-
-typedef uint32_t enc_t;
-typedef uint16_t plain_t;
-typedef int16_t sig_t;
-
-
-/**
- * Check Signature of a ANB-coded value
- **/
-static bool check(enc_t vc, sig_t A, sig_t B) {
-  return (vc-B)%A == 0;
-}
-
-/**
- * Encode plain values with ANB-Code
- */
-static enc_t encode(plain_t v, sig_t A, sig_t B) {
-  return (v*A)+B ;
-}
-
-/**
- * decodes ANB-coded values.
- * No signature checking is performed! This has to be done beforehand
- **/
-static bool decode(enc_t vc, sig_t A, sig_t B) {
-  return (vc -B)/A;
-}
-
-static bool equals(enc_t vc1, enc_t vc2, sig_t B1, sig_t B2, sig_t A) {
-  return (vc1 - vc2) == (B1 - B2);
-}
-
-#define equals(vc1, vc2, B1, B2) ((vc1 - vc2) == (B1 - B2))
-
-#define THE_A 221
-
-// CONSTANT Replica results signatures
-#define SIG_X /* FIXME */
-#define SIG_Y /* FIXME */
-#define SIG_Z /* FIXME */
-
-// CONSTANT Voter Result Signatures
-#define SIG_s_XYZ ((SIG_X - SIG_Y)+(SIG_X - SIG_Z))
-#define SIG_s_XY  (SIG_X - SIG_Y)
-#define SIG_s_YZ  /* FIXME */
-#define SIG_s_XZ  /* FIXME */
-
-static sig_t CoRedVote(void) {
-	/* TODO: Implement CoRed Voter */
-}
-
-void cyg_user_start(void) {
-  sensors_init();
-  outputs_init();
-
-  /* TODO: Sample Sensors */
-
-
-  /* TODO: Start injection */
-
-
-  /* TODO: Replicated input check */
-
-
-  /* TODO: Vote encoded input */
-
-
-  /* TODO: Replicated Filtersteps */
-
-
-  /* TODO: Vote encoded values: CoRed */
-
-
-  /* TODO: Stop injection */
-
-
-  /* TODO: Validate Vote result */
-}
diff --git a/04_EAN/src/ezs_sensors.c b/04_EAN/src/ezs_sensors.c
deleted file mode 100644
index cb9ca5802d8f1d5227311cd4afc69a6600846187..0000000000000000000000000000000000000000
--- a/04_EAN/src/ezs_sensors.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*!
- * @file ezs_sensors.c
- * @brief sensor stubs functions for VEZS
- * @author Tobias Klaus
- * \ingroup common
- */
-
-#include "ezs_sensors.h"
-#include "ezs_counter.h"
-#include <math.h>
-#include <stdlib.h>
-
-void sensors_init(void) {
-  ezs_counter_init();
-  return;
-}
-
-static uint16_t getValue(void) {
-  static float time = 1.f;
-  static uint16_t counter = 0;
-  uint16_t value = 0;
-  const uint16_t noise_max = 1; //15,3%....
-
-  uint16_t noise = rand() * (uint32_t) noise_max / RAND_MAX;
-
-  uint64_t ps_per_tick = ezs_counter_resolution_ps();
-  float s_per_tick = ps_per_tick /(float) 1e12;
-
-  float pi = 3.14159265358979323846;
-  float freq = 4; //Hz
-  float omega = 2.0 * pi *freq;
-
-  value = (float) (UINT16_MAX/2) + (float)(UINT16_MAX/2)*sin(omega * time);
-
-  counter++;
-  if ((counter % 3) == 0) {
-    time += 0.2;
-  }
-
-  return value + noise;
-}
-
-/*!
- * \brief returns the low byte of value
- */
-uint16_t ezs_getValueSensorA(void) {
-  return getValue();
-}
-uint16_t ezs_getValueSensorB(void) {
-  return getValue();
-}
-uint16_t ezs_getValueSensorC(void) {
-  return getValue();
-}
-
diff --git a/04_EAN/src/fail.c b/04_EAN/src/fail.c
deleted file mode 100644
index 4ddb9c09e9622d8e2e6e3352ecc8d4fb94c7f07f..0000000000000000000000000000000000000000
--- a/04_EAN/src/fail.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "fail.h"
-
-void fail_start_trace(void) {}
-void fail_stop_trace(void) {}
-void fail_marker_positive(void) {}
-void fail_marker_negative(void) {}
-void fail_marker_detected(void) {}
diff --git a/04_EAN/src/filter.c b/04_EAN/src/filter.c
deleted file mode 100644
index 650c6a097b7c07a9f423044674c2eb9e13248fac..0000000000000000000000000000000000000000
--- a/04_EAN/src/filter.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "filter.h"
-#include "fixedpoint.h"
-
-void convolve_filter_init(convolve_filter *f, int8_t a, int8_t b, int8_t c) {
-  /**
-   * TODO: transfer filter initialization from exercise 2
-   **/
-}
-
-int8_t convolve_filter_step(convolve_filter *f, int8_t in) {
-  /**
-   * TODO: transfer filter step implementation from exercise 2
-   **/
-}
diff --git a/06_Analyse/.~lock.Aufgabe 6 Fragen.odt# b/06_Analyse/.~lock.Aufgabe 6 Fragen.odt#
deleted file mode 100644
index 0be34ccbf1a2129fb8eefbefdfef63ac8d52c356..0000000000000000000000000000000000000000
--- a/06_Analyse/.~lock.Aufgabe 6 Fragen.odt#	
+++ /dev/null
@@ -1 +0,0 @@
-,fi40zera,faui0dq.informatik.uni-erlangen.de,04.07.2016 16:14,file:///home/cip/nf2015/fi40zera/.config/libreoffice/4;
\ No newline at end of file
diff --git a/06_Analyse/src/stackanalyzer.c b/06_Analyse/src/stackanalyzer.c
index 4d3de96107ab87b0b50e33e40b1f20ee8d6a98c9..e70ed98c3b7d3f6c28fa3d1a3d752b2be4be838b 100644
--- a/06_Analyse/src/stackanalyzer.c
+++ b/06_Analyse/src/stackanalyzer.c
@@ -19,13 +19,14 @@ static void *run(void *param) {
 
 
 
-  print_tree(tree_root);
+  //print_tree(tree_root);
   printf("\r\n");
   printf("Baumscheiss: ");
-  print_node(find(tree_root, 71876166));// 2006856019 = 4744 , 71876166 = 4736 geringster Stapelspeicherverbrauch, 0 = 4744
-  printf(" Baumscheissende"); // Suche mit Wert am Ende dauert solange wie Suche mit Wert der nicht gefunden werden kann
-  printf("\r\n");
-  print_node(find_maximum(tree_root));
+  print_node(find(tree_root, 0));// 2006856019 = 4744 , 0 = 4744, 71876166 = 4736 geringster Stapelspeicherverbrauch, 3620 fuer anfangswert neu, 4136 fuer nicht gefundenen wert
+
+  printf(" Baumscheissende\r\n"); // Suche mit Wert am Ende dauert solange wie Suche mit Wert der nicht gefunden werden kann
+  //printf("\r\n");
+  //print_node(find_maximum(tree_root));
   printf("\n");
   //print_nodes(tree_root);
 
diff --git a/06_Analyse/src/stackanalyzer_arm b/06_Analyse/src/stackanalyzer_arm
deleted file mode 100755
index 3845790c21fd9874c42d0a6277fadefab3c06461..0000000000000000000000000000000000000000
Binary files a/06_Analyse/src/stackanalyzer_arm and /dev/null differ
diff --git a/06_Analyse/src/stackanalyzer_arm.ais b/06_Analyse/src/stackanalyzer_arm.ais
index 672437a2c361398edc0d08b88c8590b0f61a4449..a81fe1e1728dbb427b27fd69af11b1722d86567b 100644
--- a/06_Analyse/src/stackanalyzer_arm.ais
+++ b/06_Analyse/src/stackanalyzer_arm.ais
@@ -2,16 +2,16 @@
 # compiler
 ais2 { compiler: "arm-gcc"; }
 # ais2 { computed call in routine "100"; }
-ais2 {
-    instruction "100" -> computed call(100)
-        calls: "run",
-               "insert",
-               "find";
-}
-# loop bounds for "main.L1"
-ais2 { loop "main.L1" bound: 0 .. 1024 end; }
-# loop bounds for "run.L1"
-ais2 { loop "run.L1" bound: 0 .. 1024 end; }
-# recursion bounds of "run" for aiT
-ais2 { routine "run" recursion bound: 0 .. 1024; }
-
+#ais2 {
+#    instruction "100" -> computed call(100)
+#        calls: "run",
+#               "insert",
+#               "find";
+#}
+## loop bounds for "main.L1"
+#ais2 { loop "main.L1" bound: 0 .. 1024 end; }
+## loop bounds for "run.L1"
+#ais2 { loop "run.L1" bound: 0 .. 1024 end; }
+## recursion bounds of "run" for aiT
+#ais2 { routine "run" recursion bound: 0 .. 1024; }
+#
diff --git a/06_Analyse/src/stackanalyzer_arm.c b/06_Analyse/src/stackanalyzer_arm.c
index 41696a2d71ebee5019b84349e44a9c2eb0f4804b..3922f0b739d56ef5d9e36dabab1d94cdbbaf9a6e 100644
--- a/06_Analyse/src/stackanalyzer_arm.c
+++ b/06_Analyse/src/stackanalyzer_arm.c
@@ -17,15 +17,15 @@ static void *run(void *param) {
 
   insert_data(&tree_root, g_data, DATA_SIZE);
   if (tree_root == NULL) {
-    printf("root is null\n");
+    //printf("root is null\n");
   }
-  print_tree(tree_root);
-  printf("\n");
-  print_node(find(tree_root, 4));
-  printf("\n");
-  print_node(find_maximum(tree_root));
-  printf("\n");
-  print_nodes(tree_root);
+  //print_tree(tree_root);
+  //printf("\n");
+  //print_node(find(tree_root, 4));
+  //printf("\n");
+  //print_node(find_maximum(tree_root));
+  //printf("\n");
+  //print_nodes(tree_root);
 
   return NULL;
 }
@@ -33,9 +33,9 @@ static void *run(void *param) {
 
 int main(void) {
 
-  srand(42U);
+  //srand(42U);
   for (size_t i = 0; i < DATA_SIZE; ++i) {
-    g_data[i] = (unsigned int) rand();
+    g_data[i] = (unsigned int) i; //(unsigned int) rand();
   }
   run(NULL);
   exit(EXIT_SUCCESS);
diff --git a/06_Analyse/src/tree.c b/06_Analyse/src/tree.c
index dfb81322bbe2a716ae31605cc9067a6c4d3613a4..aace386d7d4a2eeaa1f0f2e9d6cbed864d0e7a04 100644
--- a/06_Analyse/src/tree.c
+++ b/06_Analyse/src/tree.c
@@ -14,7 +14,7 @@ struct Node {
 struct Node *create_node(unsigned int value) {
     struct Node *ret = malloc(sizeof(struct Node));
     if (ret == NULL) {
-        abort();
+        return NULL;//abort();
     }
     ret->data = value;
     ret->left = NULL;
@@ -28,15 +28,15 @@ void insert(struct Node **root, unsigned int value) {
         return;
     }
 
-    int die = rand() % 2;
-    if (die == 0) {
+    //int die = rand() % 2;
+    if ((*root)->data < value) {
         if ((*root)->left == NULL) {
             (*root)->left = create_node(value);
             return;
         } else {
             insert(&(*root)->left, value);
         }
-    } else {
+    } else {// data <= value
         if ((*root)->right == NULL) {
             (*root)->right = create_node(value);
             return;
@@ -51,7 +51,7 @@ void print_node(struct Node *node) {
         return;
     }
 
-    printf("%u", node->data);
+   // printf("%u", node->data);
 }
 
 void print_tree(struct Node *root) {
@@ -60,17 +60,17 @@ void print_tree(struct Node *root) {
     }
     print_node(root);
     if (root->left != NULL or root->right != NULL) {
-        printf(" (");
+        //printf(" (");
     }
     if (root->left != NULL) {
         print_tree(root->left);
     }
     if (root->right != NULL) {
-        printf(", ");
+        //printf(", ");
         print_tree(root->right);
     }
     if (root->left != NULL or root->right != NULL) {
-        printf(") ");
+       // printf(") ");
     }
 }
 
@@ -94,7 +94,7 @@ struct Node* walk_tree(struct Node *root, struct Node* (*action)(struct Node*))
 
 static struct Node* print_newline_node(struct Node* node){
   print_node(node);
-  printf("\n");
+  //printf("\n");
   return NULL;
 }
 
@@ -112,30 +112,34 @@ void insert_data(struct Node **root, unsigned int *data, size_t length) {
 struct Node *find(struct Node *root, unsigned int value) {
   assert(root != NULL);
   struct Node *ret = NULL;
+  static int i = 0;
 
   if(root->data == value) {
     ret = root;
+    //printf("Gefunden\r\n");
   }
   else {
-    struct Node *first=NULL, *second=NULL;
+    struct Node *first = NULL;//, *second=NULL;
 
-    if(rand() % 2) {
-      first = root->left;
-      second = root->right;
+    if(value > root->data)
+    {
+        first = root->left;
     }
-    else {
-      first = root->right;
-      second = root->left;
+    else
+    {
+        first = root->right;
     }
 
-    if(first) {
-      ret = find(first, value);
-    }
+    i++;
+    //printf("%i. Durchlauf\r\n", i);
 
-    if(!ret) {
-      if(second) {
-        ret = find(second, value);
-      }
+    if(first)
+    {
+        ret = find(first, value);
+    }
+    else
+    {
+        return NULL;
     }
   }
 
@@ -157,11 +161,14 @@ struct Node *check_max_branch(struct Node *next, struct Node *best) {
 }
 
 struct Node *find_maximum(struct Node *root) {
-  assert(root != NULL);
+  //assert(root != NULL);
+  if(root == NULL)
+      return NULL;
+
   struct Node *ret = root;
 
   ret = check_max_branch(root->left, ret);
-  ret = check_max_branch(root->right, ret);
+  //ret = check_max_branch(root->right, ret);
 
   return ret;
 }
diff --git a/07_Astree/include/ab_filter.h b/07_Astree/include/ab_filter.h
index 3c82479a402b89534241d26bb92eedaee44d013e..73c40b951388268b9605ac56cce23a5cb8abeb24 100644
--- a/07_Astree/include/ab_filter.h
+++ b/07_Astree/include/ab_filter.h
@@ -10,9 +10,9 @@ typedef struct AB_State {
 	float value;
 	float dvalue;
 
-	float g;
-	float h;
-	float sampling_interval;
+    float g; //alpha?
+    float h; //beta?
+    float sampling_interval;//T
 } AB_State;
 
 
@@ -20,4 +20,11 @@ typedef struct AB_State {
  * TODO: Define interface for ab_filter
  **/
 
+void InitFilter(AB_State *FilterState);
+
+void TransientFilterStep(AB_State *FilterState, float sensorValue);
+
+double FilterStep(AB_State *FilterState, float sensorValue);
+
+
 #endif // AB_FILTER_H_INCLUDED
diff --git a/07_Astree/include/sensor.h b/07_Astree/include/sensor.h
index cca20f4af09ba6dcf0e1f1de7e8406bf2e4e13e3..0a2300cdc680419ee6697a01748142c7e1b777d6 100644
--- a/07_Astree/include/sensor.h
+++ b/07_Astree/include/sensor.h
@@ -3,9 +3,11 @@
 #include <stdbool.h>
 #include <stdio.h>
 
-/**
- * TODO: define Interface for sensor stub
- **/
+
+
+
+
+
 
 typedef struct _Sensor {
     FILE *file;
@@ -17,14 +19,15 @@ typedef struct _Sensor {
 bool sensor_init(Sensor *sensor, const char *filename);
 
 
-
 /**
+ *  Interface for sensor stub
+ **/
+/**
+
  * Poll Sensor object.
  **/
 
+float getSensorValue(void);
 
-/**
- * Other Sensor interfaces....
- **/
 
 #endif // _SENSOR_H_INCLUDED_
diff --git a/07_Astree/src/ab_filter.c b/07_Astree/src/ab_filter.c
index 1f4b5746f0ac8c7b3ebc348f31ca277ab4e3e80a..45e6a289eb237fdc6a5c32280add2e31da5a1b83 100644
--- a/07_Astree/src/ab_filter.c
+++ b/07_Astree/src/ab_filter.c
@@ -5,8 +5,95 @@
 #include <stdlib.h>
 #include <astree.h>
 #include <assert.h>
+#include <limits.h>
 
 /**
  * Implement ab_filter
  **/
 
+void InitFilter(AB_State *FilterState)
+{
+    FilterState->dvalue = 0;
+    FilterState->value = 0;
+
+    FilterState->initializationStep = 1;
+    FilterState->isTransient = true;
+
+    FilterState->g = 0.96f;//0.5944142444f;//0.8902638079f;
+    FilterState->h = 0.34f;//0.2944142444f;//0.8944142444f;
+    FilterState->sampling_interval = 0.5f;//0.3f;
+}
+
+void TransientFilterStep(AB_State *FilterState, float sensorValue)
+{
+    __ASTREE_known_fact(((FilterState->initializationStep >= 1) && (FilterState->initializationStep <= 4294967295)));
+    __ASTREE_known_fact((-10.0f < sensorValue && sensorValue < 10.0f));
+    __ASTREE_known_fact((-10.0f < FilterState->value && 10.0f > FilterState->value));
+    __ASTREE_known_fact((FilterState->h == FilterState->h));
+    __ASTREE_known_fact((FilterState->sampling_interval == FilterState->sampling_interval));
+
+    float alphaN = (float)(2.0f*(float)(2.0f*(float)FilterState->initializationStep + 1.0f));
+    alphaN = (float)(alphaN/((float)((float)FilterState->initializationStep + 2.0f)*(float)((float)FilterState->initializationStep + 1.0f)));
+
+    if(alphaN < FilterState->g)
+    {
+        FilterState->isTransient = false;
+    }
+    else
+    {
+        FilterState->isTransient = true;
+    }
+
+    if(FilterState->initializationStep == 4294967295)
+        return;
+
+    __ASTREE_known_fact(((FilterState->initializationStep >= 1) && (FilterState->initializationStep <= 4294967295)));
+    FilterState->initializationStep += 1;
+    __ASTREE_known_fact(((FilterState->initializationStep >= 2) && (FilterState->initializationStep <= 4294967295)));
+
+
+
+    //Filtern mit float
+    float rk, dxk, xk;
+
+
+
+    rk = sensorValue - FilterState->value;
+    dxk = (float)(FilterState->dvalue + (FilterState->h * rk)/FilterState->sampling_interval);
+    xk = FilterState->value + FilterState->sampling_interval * dxk + FilterState->g * rk;
+
+    FilterState->value = xk;
+    FilterState->dvalue = dxk;
+
+
+}
+
+
+
+double FilterStep(AB_State *FilterState, float sensorValue)
+{
+    __ASTREE_known_fact(((FilterState->initializationStep >= 1) && (FilterState->initializationStep <= 4294967295)));
+    __ASTREE_known_fact((-10.0f < sensorValue && sensorValue < 10.0f));
+    __ASTREE_known_fact((-10.0f < FilterState->value && 10.0f > FilterState->value));
+    __ASTREE_known_fact((FilterState->h == FilterState->h));
+    __ASTREE_known_fact((FilterState->sampling_interval == FilterState->sampling_interval));
+
+    double rk, dxk, xk, dxk_1, xk_1;
+    dxk_1 = FilterState->dvalue;
+    xk_1 = FilterState->value;
+
+
+    rk = sensorValue - FilterState->value;
+    dxk = (double)(dxk_1 + ((double)FilterState->h * rk)/(double)FilterState->sampling_interval);
+    xk = xk_1 + (double)FilterState->sampling_interval * dxk + (double)FilterState->g * rk;
+
+    FilterState->value = (float)xk;
+    FilterState->dvalue = (float)dxk;
+
+    if((xk > 10)||(xk < -10))
+    {
+        InitFilter(FilterState);
+        return 0;
+    }
+    return xk;
+}
diff --git a/07_Astree/src/main.c b/07_Astree/src/main.c
index f087ea3bd573f39d6f16d16302efc029d161d060..a8ed1bcaea1056f090dadba903829f37a19de3cb 100644
--- a/07_Astree/src/main.c
+++ b/07_Astree/src/main.c
@@ -1,23 +1,82 @@
 #include "ab_filter.h"
 #include "sensor.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <float.h>
 /**
  * Sonstige benoetigten Header-Dateien
  **/
+#include <astree.h>
 
 
 
+#define SIZE 2000 //groesse ringbuffer
+
 
 /*
  * Sensor, Filter, Ringpuffer, ... anlegen
  */
 
 
-
-
+bool BufferWrite(float value);
+bool BufferRead(float *value);
 /*
- * Rinpuffer implementieren
+ * Rinpuffer
  */
 
+struct RingBuf{
+float buf[SIZE];       // array of <size >
+int read_pos ;
+int write_pos;
+}Ringbuffer;
+
+
+
+
+
+bool BufferWrite(float value)
+{
+  //__ASTREE_known_fact((value == value));
+  //__ASTREE_known_fact((-10.0f < value && value < 10.0f));
+  __ASTREE_known_fact((0 <= Ringbuffer.write_pos && Ringbuffer.write_pos <= (SIZE + 1)));
+  __ASTREE_known_fact((0 <= Ringbuffer.read_pos && Ringbuffer.read_pos <= SIZE));
+  //__ASTREE_known_fact ((FLT_MIN < value && value < FLT_MAX));
+
+
+  if ( ( Ringbuffer.write_pos + 1 == Ringbuffer.read_pos ) ||
+       ( Ringbuffer.read_pos == 0 && Ringbuffer.write_pos + 1 == SIZE) )
+    return true; // voll
+
+  Ringbuffer.buf[Ringbuffer.write_pos] = value;
+
+  Ringbuffer.write_pos++;
+  __ASTREE_known_fact((Ringbuffer.write_pos == Ringbuffer.write_pos));
+
+  if (Ringbuffer.write_pos >= SIZE)
+  {
+    Ringbuffer.write_pos = 0;
+    __ASTREE_known_fact((Ringbuffer.write_pos == Ringbuffer.write_pos));
+  }
+
+  return false;
+}
+
+
+bool BufferRead(float *value)
+{
+  if (Ringbuffer.read_pos == Ringbuffer.write_pos)
+    return false;
+
+  *value = Ringbuffer.buf[Ringbuffer.read_pos];
+
+  Ringbuffer.read_pos++;
+  if (Ringbuffer.read_pos >= SIZE)
+    Ringbuffer.read_pos = 0;
+
+  return true;
+}
+
+
 
 
 
@@ -27,7 +86,104 @@ int main(void) {
    * Filter, Sensor, Rinpuffer... initialisieren
    **/
 
-  while(1) { /* Solange Sensor Daten liefert... */
+    Ringbuffer.read_pos=0;
+    Ringbuffer.write_pos=0;
+
+    Sensor bla;
+    AB_State FilterState;
+    double FilterValue = 0;
+    bool bufferstatefull = false;
+    float value = 0;
+
+  FILE *write = fopen("/home/cip/nf2015/fi40zera/vezs/vezs16-vorgabe/07_Astree/src/output.txt", "wt");
+
+  if(write == NULL)
+  {
+      printf("Schreibdatei geht net\r\n");
+      return 0;
+  }
+
+
+
+   bool result = false;
+
+# ifdef __ASTREE__
+ __ASTREE_modify ((result));
+ result = 0;
+// __ASTREE_known_fact (( buffer > -10.0f && buffer < 10.0f));
+# else
+   result = sensor_init(&bla, "/home/cip/nf2015/fi40zera/vezs/vezs16-vorgabe/07_Astree/src/sensor.dat");
+#endif
+  __ASTREE_modify((result));
+  InitFilter(&FilterState);
+
+  int i = 0;
+  if(result == true)
+  {
+      while(1)
+      {
+          float buffer = 0;
+          __ASTREE_unroll ((2000))
+          for(int i = 0; i < 2000; i++)//while(bufferstatefull == false)
+          {
+        # ifdef __ASTREE__
+            __ASTREE_modify ((buffer; [-10.0f,10.0f]));
+             buffer = 0;
+            // __ASTREE_known_fact (( buffer > -10.0f && buffer < 10.0f));
+        # else
+
+              buffer = getSensorValue();
+
+              //if(buffer != buffer)
+              //    break;
+
+              bufferstatefull = BufferWrite(buffer);
+#endif
+          }
+          __ASTREE_unroll ((2000))
+          while(bufferstatefull == true)
+          {
+
+              bufferstatefull = BufferRead(&value);
+
+              //Einschwingen des Filters
+              if(FilterState.isTransient == true)
+              {
+                  TransientFilterStep(&FilterState, value);
+              }
+              //Normaler Filtermodus
+              else
+              {
+                  FilterValue = FilterStep(&FilterState, value);
+
+                  if(FilterState.isTransient == true)
+                  {
+                        //FilterValue = 0;
+                  }
+              }
+              fprintf(write, "%i %f %f\r\n",i, value, FilterValue);//Value = sensor, result = filter
+
+
+              if(i > 2001)
+                  break;
+              i++;
+
+
+           }
+          break;
+         }
+      }
+  else
+  {
+      printf("Error\r\n");
+  }
+   fclose(write);
+
+
+
+
+
+  //while(1) { /* Solange Sensor Daten liefert... */
 
     /**
      * Bis Rinpuffer voll: Ringpuffer mit Sensordaten füllen
@@ -37,7 +193,7 @@ int main(void) {
      * Falls Rinpuffer voll: Alle Werte filtern und gefilterte
      * Werte ausgeben, ggf. mit gnuplot oder so betrachten
      */
-  }
+  //}
 
   return 0;
 }
diff --git a/07_Astree/src/output.txt b/07_Astree/src/output.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ec9b018cd9666aa7db22ef16c8b912ce75363c9b
--- /dev/null
+++ b/07_Astree/src/output.txt
@@ -0,0 +1,2000 @@
+0 0.000000 0.000000
+1 -0.064687 0.000000
+2 0.003000 0.007134
+3 -0.047767 -0.056619
+4 0.006000 0.013737
+5 0.083020 0.114046
+6 0.009000 0.011284
+7 -0.074839 -0.102593
+8 0.012000 0.015179
+9 -0.016731 -0.018541
+10 0.015000 0.021975
+11 0.009965 0.014679
+12 0.018000 0.023230
+13 -0.258635 -0.337832
+14 0.021000 0.038178
+15 0.027526 0.055862
+16 0.024000 0.042351
+17 -0.118687 -0.149922
+18 0.027000 0.042400
+19 0.085688 0.121152
+20 0.030000 0.039850
+21 -0.224388 -0.297456
+22 0.033000 0.048499
+23 0.021247 0.041789
+24 0.036000 0.053715
+25 -0.063480 -0.081156
+26 0.039000 0.052684
+27 0.041411 0.056519
+28 0.042000 0.052301
+29 -0.042107 -0.060709
+30 0.045000 0.054334
+31 0.009315 0.009372
+32 0.048000 0.057845
+33 -0.284506 -0.375821
+34 0.051000 0.074037
+35 -0.008837 0.006411
+36 0.054000 0.080209
+37 0.097992 0.131440
+38 0.057000 0.068827
+39 0.225251 0.281028
+40 0.060000 0.055725
+41 -0.242225 -0.344726
+42 0.063000 0.070899
+43 -0.127817 -0.163224
+44 0.066000 0.091412
+45 -0.022349 -0.021896
+46 0.069000 0.092171
+47 0.237613 0.308052
+48 0.072000 0.077441
+49 -0.101318 -0.158947
+50 0.075000 0.080405
+51 0.230457 0.290235
+52 0.078000 0.080110
+53 -0.151064 -0.226796
+54 0.081000 0.088360
+55 -0.202609 -0.270228
+56 0.084000 0.111011
+57 -0.100003 -0.122127
+58 0.087000 0.119173
+59 -0.167556 -0.213036
+60 0.090000 0.123961
+61 0.061010 0.088207
+62 0.093000 0.119117
+63 -0.120446 -0.166006
+64 0.096000 0.119459
+65 -0.054785 -0.073118
+66 0.099000 0.125332
+67 0.110639 0.139448
+68 0.102000 0.118987
+69 0.241216 0.293374
+70 0.105000 0.105535
+71 -0.088137 -0.153239
+72 0.108000 0.113523
+73 -0.192184 -0.267924
+74 0.111000 0.136709
+75 0.144952 0.188291
+76 0.114000 0.135381
+77 0.126350 0.142050
+78 0.117000 0.124824
+79 -0.003377 -0.035015
+80 0.120000 0.129738
+81 0.095351 0.100973
+82 0.123000 0.133855
+83 -0.354140 -0.488802
+84 0.126000 0.156259
+85 0.060990 0.087261
+86 0.129000 0.163981
+87 -0.182301 -0.249535
+88 0.132000 0.165375
+89 0.337595 0.437898
+90 0.135000 0.151322
+91 0.177415 0.189449
+92 0.138000 0.135643
+93 -0.005030 -0.051647
+94 0.141000 0.146550
+95 -0.097254 -0.157139
+96 0.144000 0.164704
+97 0.074253 0.079868
+98 0.147000 0.169136
+99 0.069865 0.064906
+100 0.150000 0.166598
+101 0.183589 0.208688
+102 0.153000 0.162072
+103 -0.013797 -0.059713
+104 0.156000 0.167763
+105 0.232725 0.272605
+106 0.159000 0.167397
+107 0.050200 0.018893
+108 0.162000 0.168938
+109 0.104185 0.097421
+110 0.165000 0.175920
+111 0.111903 0.106321
+112 0.168000 0.178361
+113 -0.099891 -0.170539
+114 0.171000 0.191684
+115 0.034540 0.021742
+116 0.174000 0.200594
+117 0.076381 0.071802
+118 0.177000 0.199011
+119 -0.068255 -0.122215
+120 0.180000 0.206013
+121 -0.060355 -0.102163
+122 0.183000 0.216086
+123 0.221464 0.267570
+124 0.186000 0.207850
+125 0.088320 0.071049
+126 0.189000 0.202333
+127 0.062395 0.038464
+128 0.192000 0.208533
+129 0.023953 -0.008747
+130 0.195000 0.216041
+131 0.058741 0.040742
+132 0.198000 0.220886
+133 -0.112365 -0.183164
+134 0.201000 0.232120
+135 0.049752 0.041528
+136 0.204000 0.237223
+137 0.320053 0.384624
+138 0.207000 0.221597
+139 -0.039949 -0.110921
+140 0.210000 0.224843
+141 0.157228 0.164623
+142 0.213000 0.232204
+143 0.085424 0.062529
+144 0.216000 0.233275
+145 0.073209 0.048603
+146 0.219000 0.239110
+147 0.058302 0.030986
+148 0.222000 0.244756
+149 0.078710 0.059293
+150 0.225000 0.248653
+151 -0.015288 -0.064189
+152 0.228000 0.256198
+153 0.077828 0.064203
+154 0.231000 0.260279
+155 0.038383 0.007765
+156 0.234000 0.262377
+157 0.242630 0.274132
+158 0.237000 0.256573
+159 0.124012 0.102331
+160 0.240000 0.254317
+161 0.212416 0.219670
+162 0.243000 0.255577
+163 0.018979 -0.038491
+164 0.246000 0.264414
+165 0.008817 -0.038068
+166 0.249000 0.278011
+167 0.023394 -0.012498
+168 0.252000 0.285273
+169 -0.010976 -0.055998
+170 0.255000 0.291428
+171 -0.055805 -0.111107
+172 0.258000 0.299541
+173 0.055631 0.038764
+174 0.261000 0.301047
+175 -0.217899 -0.324646
+176 0.264000 0.313089
+177 0.129740 0.147370
+178 0.267000 0.313185
+179 -0.097838 -0.170175
+180 0.270000 0.313275
+181 0.096071 0.091792
+182 0.273000 0.314395
+183 -0.105268 -0.182524
+184 0.276000 0.319515
+185 -0.077193 -0.134350
+186 0.279000 0.329980
+187 0.148687 0.161813
+188 0.282000 0.323930
+189 0.000221 -0.050154
+190 0.285000 0.322223
+191 -0.193741 -0.297901
+192 0.288000 0.338972
+193 -0.141834 -0.211668
+194 0.291000 0.352734
+195 0.117481 0.128746
+196 0.294000 0.345431
+197 0.007346 -0.036038
+198 0.297000 0.340004
+199 -0.210301 -0.319067
+200 0.300000 0.354942
+201 0.118110 0.126765
+202 0.303000 0.355052
+203 0.132511 0.124850
+204 0.306000 0.343783
+205 -0.043552 -0.114724
+206 0.309000 0.349452
+207 0.069708 0.043186
+208 0.312000 0.354932
+209 -0.012074 -0.068491
+210 0.315000 0.358950
+211 0.040184 0.003844
+212 0.318000 0.363156
+213 0.142583 0.134133
+214 0.321000 0.359787
+215 0.114600 0.087306
+216 0.324000 0.357907
+217 0.039129 -0.013130
+218 0.327000 0.364029
+219 0.090396 0.058940
+220 0.330000 0.368917
+221 0.235212 0.244860
+222 0.333000 0.363742
+223 -0.010874 -0.088991
+224 0.336000 0.370395
+225 0.061819 0.020641
+226 0.339000 0.380987
+227 0.152821 0.139092
+228 0.342000 0.380017
+229 0.102607 0.065517
+230 0.345000 0.380659
+231 0.078275 0.034398
+232 0.348000 0.386108
+233 0.083280 0.043084
+234 0.351000 0.391066
+235 -0.063306 -0.147235
+236 0.354000 0.402266
+237 -0.230353 -0.351823
+238 0.357000 0.422872
+239 0.194039 0.219614
+240 0.360000 0.418538
+241 0.009203 -0.049445
+242 0.363000 0.411713
+243 -0.015136 -0.077980
+244 0.366000 0.419276
+245 0.038725 -0.004405
+246 0.369000 0.422669
+247 -0.079070 -0.160987
+248 0.372000 0.429910
+249 0.163226 0.162450
+250 0.375000 0.427322
+251 0.139998 0.114625
+252 0.378000 0.420146
+253 0.015884 -0.052713
+254 0.381000 0.426346
+255 0.050159 -0.000002
+256 0.384000 0.433992
+257 -0.144525 -0.252728
+258 0.387000 0.447575
+259 0.072285 0.045862
+260 0.390000 0.451807
+261 -0.141783 -0.244288
+262 0.393000 0.457938
+263 0.189989 0.200034
+264 0.396000 0.454117
+265 0.100045 0.059779
+266 0.399000 0.446337
+267 0.123275 0.087262
+268 0.402000 0.447486
+269 -0.206956 -0.345213
+270 0.405000 0.465629
+271 -0.049631 -0.113571
+272 0.408000 0.479921
+273 0.044142 0.006192
+274 0.411000 0.477061
+275 -0.349368 -0.515043
+276 0.414000 0.493981
+277 -0.098054 -0.158522
+278 0.417000 0.505507
+279 0.174123 0.186236
+280 0.420000 0.488987
+281 -0.144607 -0.256348
+282 0.423000 0.489720
+283 0.046729 0.007725
+284 0.426000 0.494759
+285 0.052566 0.005399
+286 0.429000 0.491225
+287 -0.049419 -0.132444
+288 0.432000 0.496683
+289 -0.081492 -0.167683
+290 0.435000 0.506486
+291 -0.135620 -0.232658
+292 0.438000 0.516475
+293 -0.146073 -0.239536
+294 0.441000 0.525196
+295 0.284751 0.324035
+296 0.444000 0.509656
+297 0.073731 0.013408
+298 0.447000 0.499317
+299 -0.000026 -0.080168
+300 0.450000 0.508935
+301 -0.100218 -0.202822
+302 0.453000 0.522776
+303 0.000124 -0.060663
+304 0.456000 0.529306
+305 0.095184 0.058920
+306 0.459000 0.525395
+307 0.047673 -0.013245
+308 0.462000 0.524546
+309 0.009754 -0.063128
+310 0.465000 0.529965
+311 -0.072258 -0.166834
+312 0.468000 0.539785
+313 0.111208 0.079813
+314 0.471000 0.539818
+315 -0.028780 -0.114895
+316 0.474000 0.541810
+317 0.023422 -0.040728
+318 0.477000 0.547433
+319 -0.112871 -0.219820
+320 0.480000 0.556585
+321 -0.251246 -0.389018
+322 0.483000 0.574520
+323 -0.017825 -0.069128
+324 0.486000 0.577542
+325 0.107913 0.080771
+326 0.489000 0.565542
+327 0.100137 0.053387
+328 0.492000 0.558217
+329 -0.212216 -0.359584
+330 0.495000 0.573190
+331 0.060572 0.019160
+332 0.498000 0.579735
+333 0.109722 0.069607
+334 0.501000 0.571502
+335 -0.036512 -0.131158
+336 0.504000 0.575581
+337 0.186049 0.166176
+338 0.507000 0.573793
+339 -0.279136 -0.454589
+340 0.510000 0.589807
+341 -0.073041 -0.153505
+342 0.513000 0.605974
+343 -0.097333 -0.188692
+344 0.516000 0.607917
+345 0.205639 0.205060
+346 0.519000 0.596512
+347 0.032063 -0.047202
+348 0.522000 0.590918
+349 0.035248 -0.039767
+350 0.525000 0.597188
+351 -0.147637 -0.276306
+352 0.528000 0.610830
+353 0.194169 0.184173
+354 0.531000 0.608386
+355 0.121479 0.066666
+356 0.534000 0.599911
+357 -0.289367 -0.471546
+358 0.537000 0.621813
+359 -0.063204 -0.143554
+360 0.540000 0.637316
+361 0.155681 0.135848
+362 0.543000 0.626047
+363 0.300816 0.302580
+364 0.546000 0.607781
+365 0.045490 -0.051680
+366 0.549000 0.609543
+367 0.052867 -0.029566
+368 0.552000 0.621770
+369 -0.307740 -0.493560
+370 0.555000 0.646567
+371 -0.013321 -0.077778
+372 0.558000 0.657881
+373 0.057785 0.003068
+374 0.561000 0.649659
+375 0.073315 0.011388
+376 0.564000 0.644803
+377 -0.212507 -0.366793
+378 0.567000 0.658560
+379 -0.227052 -0.363824
+380 0.570000 0.677951
+381 -0.412250 -0.594007
+382 0.573000 0.697737
+383 -0.204142 -0.303288
+384 0.576000 0.704565
+385 -0.324018 -0.468856
+386 0.579000 0.707375
+387 -0.040001 -0.093924
+388 0.582000 0.700959
+389 -0.070640 -0.156124
+390 0.585000 0.690989
+391 0.069952 0.019275
+392 0.588000 0.683099
+393 -0.086862 -0.200002
+394 0.591000 0.684362
+395 0.078810 0.022147
+396 0.594000 0.684670
+397 -0.165778 -0.307368
+398 0.597000 0.692702
+399 -0.035439 -0.122005
+400 0.600000 0.700910
+401 -0.132482 -0.252709
+402 0.603000 0.706150
+403 -0.273071 -0.429459
+404 0.606000 0.721081
+405 -0.094422 -0.182574
+406 0.609000 0.725700
+407 -0.143821 -0.256314
+408 0.612000 0.725220
+409 -0.049306 -0.133712
+410 0.615000 0.724227
+411 0.032681 -0.035607
+412 0.618000 0.718132
+413 -0.087719 -0.203198
+414 0.621000 0.720546
+415 -0.138927 -0.264255
+416 0.624000 0.730770
+417 0.033446 -0.033450
+418 0.627000 0.730345
+419 -0.081848 -0.195743
+420 0.630000 0.731340
+421 -0.230134 -0.384206
+422 0.633000 0.745631
+423 -0.200440 -0.330942
+424 0.636000 0.757737
+425 -0.189786 -0.313628
+426 0.639000 0.763046
+427 0.113050 0.080202
+428 0.642000 0.751692
+429 -0.033328 -0.136670
+430 0.645000 0.744758
+431 -0.035556 -0.138626
+432 0.648000 0.749706
+433 0.157003 0.112363
+434 0.651000 0.744243
+435 0.116555 0.043037
+436 0.654000 0.738663
+437 0.345051 0.336069
+438 0.657000 0.728553
+439 -0.071101 -0.226607
+440 0.660000 0.738490
+441 0.073517 -0.012021
+442 0.663000 0.753370
+443 -0.257533 -0.443433
+444 0.666000 0.772494
+445 -0.126307 -0.245076
+446 0.669000 0.788502
+447 0.119627 0.075029
+448 0.672000 0.779738
+449 -0.053275 -0.171562
+450 0.675000 0.777361
+451 -0.171412 -0.319820
+452 0.678000 0.790987
+453 -0.118583 -0.238554
+454 0.681000 0.800512
+455 -0.077387 -0.184462
+456 0.684000 0.802347
+457 -0.120265 -0.243963
+458 0.687000 0.805686
+459 -0.111952 -0.231318
+460 0.690000 0.810324
+461 -0.028795 -0.123355
+462 0.693000 0.809782
+463 0.030388 -0.053993
+464 0.696000 0.805441
+465 -0.045976 -0.161961
+466 0.699000 0.807247
+467 -0.129031 -0.267229
+468 0.702000 0.817120
+469 -0.062920 -0.173043
+470 0.705000 0.823088
+471 0.099702 0.035896
+472 0.708000 0.816890
+473 -0.139259 -0.290330
+474 0.711000 0.822082
+475 -0.152517 -0.293761
+476 0.714000 0.836100
+477 -0.069954 -0.179360
+478 0.717000 0.840260
+479 -0.243939 -0.410084
+480 0.720000 0.849512
+481 0.114026 0.068096
+482 0.723000 0.844121
+483 -0.143479 -0.292441
+484 0.726000 0.843066
+485 0.120426 0.061438
+486 0.729000 0.841375
+487 -0.103825 -0.248308
+488 0.732000 0.843802
+489 -0.203266 -0.366372
+490 0.735000 0.860423
+491 -0.039970 -0.140610
+492 0.738000 0.864927
+493 -0.054539 -0.168307
+494 0.741000 0.863245
+495 -0.105550 -0.237571
+496 0.744000 0.867698
+497 -0.043564 -0.153982
+498 0.747000 0.870426
+499 0.027495 -0.065918
+500 0.750000 0.867645
+501 -0.077747 -0.211084
+502 0.753000 0.871073
+503 -0.002159 -0.107492
+504 0.756000 0.874785
+505 -0.052442 -0.177285
+506 0.759000 0.877953
+507 -0.324842 -0.529276
+508 0.762000 0.896837
+509 -0.062358 -0.163629
+510 0.765000 0.903950
+511 -0.204730 -0.361239
+512 0.768000 0.905916
+513 -0.005459 -0.095786
+514 0.771000 0.904254
+515 -0.162407 -0.314480
+516 0.774000 0.905805
+517 -0.298666 -0.484663
+518 0.777000 0.921323
+519 -0.459380 -0.678802
+520 0.780000 0.942991
+521 -0.392490 -0.571791
+522 0.783000 0.956717
+523 -0.133072 -0.232100
+524 0.786000 0.948810
+525 -0.189959 -0.328055
+526 0.789000 0.940469
+527 -0.026618 -0.120592
+528 0.792000 0.933120
+529 -0.288491 -0.477351
+530 0.795000 0.938981
+531 -0.171970 -0.310380
+532 0.798000 0.947666
+533 -0.261522 -0.430277
+534 0.801000 0.953260
+535 -0.130354 -0.253927
+536 0.804000 0.954461
+537 -0.070202 -0.184823
+538 0.807000 0.948939
+539 -0.278033 -0.464512
+540 0.810000 0.956795
+541 -0.411091 -0.623681
+542 0.813000 0.976699
+543 -0.254412 -0.402579
+544 0.816000 0.984162
+545 -0.166815 -0.295203
+546 0.819000 0.978834
+547 -0.343997 -0.536444
+548 0.822000 0.984173
+549 -0.129780 -0.247455
+550 0.825000 0.984503
+551 0.130293 0.076431
+552 0.828000 0.965441
+553 -0.109199 -0.264088
+554 0.831000 0.961652
+555 -0.115907 -0.264719
+556 0.834000 0.971701
+557 -0.139780 -0.291574
+558 0.837000 0.979319
+559 -0.090202 -0.223597
+560 0.840000 0.982904
+561 -0.156383 -0.312721
+562 0.843000 0.987806
+563 -0.406390 -0.633614
+564 0.846000 1.006893
+565 -0.281206 -0.447558
+566 0.849000 1.020091
+567 -0.379537 -0.576472
+568 0.852000 1.027621
+569 -0.084450 -0.185311
+570 0.855000 1.021749
+571 -0.211112 -0.372609
+572 0.858000 1.016372
+573 0.009417 -0.085073
+574 0.861000 1.010053
+575 -0.141558 -0.300145
+576 0.864000 1.008592
+577 -0.175977 -0.340190
+578 0.867000 1.017561
+579 -0.378481 -0.598445
+580 0.870000 1.034728
+581 -0.207128 -0.356219
+582 0.873000 1.043000
+583 -0.279771 -0.457433
+584 0.876000 1.045457
+585 -0.147226 -0.282237
+586 0.879000 1.044653
+587 -0.142467 -0.286501
+588 0.882000 1.041032
+589 -0.214693 -0.385639
+590 0.885000 1.045017
+591 -0.126338 -0.266902
+592 0.888000 1.047052
+593 -0.332347 -0.540918
+594 0.891000 1.056828
+595 0.001247 -0.092322
+596 0.894000 1.054104
+597 -0.420486 -0.663306
+598 0.897000 1.063288
+599 0.039090 -0.039469
+600 0.900000 1.062314
+601 -0.241054 -0.432172
+602 0.903000 1.060299
+603 -0.211486 -0.382316
+604 0.906000 1.070794
+605 -0.092363 -0.224984
+606 0.909000 1.070048
+607 -0.341688 -0.558801
+608 0.912000 1.079658
+609 -0.068795 -0.186841
+610 0.915000 1.081568
+611 -0.045647 -0.173170
+612 0.918000 1.072739
+613 -0.246356 -0.443698
+614 0.921000 1.080303
+615 0.103473 0.024315
+616 0.924000 1.075674
+617 -0.152624 -0.333452
+618 0.927000 1.075176
+619 -0.496809 -0.769810
+620 0.930000 1.104062
+621 0.039940 -0.037242
+622 0.933000 1.104326
+623 -0.107781 -0.261278
+624 0.936000 1.093202
+625 -0.276179 -0.481900
+626 0.939000 1.104774
+627 -0.338190 -0.548469
+628 0.942000 1.121143
+629 -0.339547 -0.538992
+630 0.945000 1.132325
+631 -0.145608 -0.282303
+632 0.948000 1.129278
+633 -0.355143 -0.569979
+634 0.951000 1.133081
+635 -0.200638 -0.357834
+636 0.954000 1.137006
+637 -0.209926 -0.378526
+638 0.957000 1.135180
+639 -0.184448 -0.348735
+640 0.960000 1.135548
+641 -0.262918 -0.454560
+642 0.963000 1.140687
+643 -0.140108 -0.289957
+644 0.966000 1.141706
+645 -0.052785 -0.185187
+646 0.969000 1.135074
+647 -0.063588 -0.210946
+648 0.972000 1.131580
+649 -0.332820 -0.565242
+650 0.975000 1.146074
+651 -0.248167 -0.433755
+652 0.978000 1.160169
+653 0.018745 -0.085043
+654 0.981000 1.151368
+655 0.045788 -0.072877
+656 0.984000 1.138175
+657 -0.169994 -0.365994
+658 0.987000 1.144571
+659 0.081477 -0.025761
+660 0.990000 1.144967
+661 0.134372 0.026791
+662 0.993000 1.134858
+663 -0.049584 -0.224411
+664 0.996000 1.139919
+665 -0.192165 -0.399055
+666 0.999000 1.158243
+667 -0.222032 -0.420949
+668 1.002000 1.174757
+669 0.003273 -0.118498
+670 1.005000 1.173419
+671 -0.060788 -0.217691
+672 1.008000 1.169436
+673 0.067370 -0.052786
+674 1.011000 1.165897
+675 -0.087508 -0.266081
+676 1.014000 1.169315
+677 -0.302443 -0.537452
+678 1.017000 1.189456
+679 0.050251 -0.056876
+680 1.020000 1.190367
+681 0.208823 0.127802
+682 1.023000 1.171277
+683 -0.056483 -0.240727
+684 1.026000 1.172664
+685 0.016327 -0.133241
+686 1.029000 1.181851
+687 0.248379 0.167678
+688 1.032000 1.173257
+689 0.144669 0.011922
+690 1.035000 1.168033
+691 0.052117 -0.108701
+692 1.038000 1.176555
+693 0.127775 -0.002436
+694 1.041000 1.181869
+695 0.275394 0.186058
+696 1.044000 1.175787
+697 0.116509 -0.035169
+698 1.047000 1.177601
+699 0.219984 0.106587
+700 1.050000 1.181322
+701 0.272574 0.169008
+702 1.053000 1.178282
+703 0.314970 0.216618
+704 1.056000 1.174930
+705 0.274942 0.157451
+706 1.059000 1.175974
+707 0.319613 0.215741
+708 1.062000 1.177751
+709 0.485933 0.427989
+710 1.065000 1.170487
+711 0.380941 0.275044
+712 1.068000 1.168408
+713 0.499923 0.431504
+714 1.071000 1.167690
+715 0.321113 0.189410
+716 1.074000 1.173811
+717 0.555855 0.505663
+718 1.077000 1.173491
+719 0.718885 0.701848
+720 1.080000 1.158224
+721 0.564104 0.479218
+722 1.083000 1.155484
+723 0.410022 0.283019
+724 1.086000 1.170072
+725 0.549064 0.478953
+726 1.089000 1.177063
+727 0.583462 0.517847
+728 1.092000 1.174887
+729 0.767657 0.751341
+730 1.095000 1.165492
+731 0.719117 0.669443
+732 1.098000 1.159038
+733 0.934196 0.944924
+734 1.101000 1.149557
+735 0.581062 0.465314
+736 1.104000 1.157118
+737 0.691826 0.630904
+738 1.107000 1.170295
+739 0.798676 0.769529
+740 1.110000 1.168130
+741 1.051330 1.088039
+742 1.113000 1.152525
+743 0.863621 0.817473
+744 1.116000 1.147854
+745 1.106440 1.137811
+746 1.119000 1.143071
+747 0.804860 0.726715
+748 1.122000 1.148912
+749 1.027580 1.033904
+750 1.125000 1.153799
+751 0.844059 0.783580
+752 1.128000 1.158457
+753 0.913632 0.884419
+754 1.131000 1.165968
+755 1.200910 1.256224
+756 1.134000 1.154044
+757 1.039820 1.020708
+758 1.137000 1.148207
+759 1.234890 1.276753
+760 1.140000 1.144305
+761 1.109210 1.097516
+762 1.143000 1.143548
+763 1.010330 0.972732
+764 1.146000 1.155053
+765 1.286150 1.341463
+766 1.149000 1.151818
+767 1.120330 1.106003
+768 1.152000 1.150213
+769 1.411280 1.489653
+770 1.155000 1.143420
+771 1.166110 1.147951
+772 1.158000 1.143763
+773 1.451850 1.530441
+774 1.161000 1.141082
+775 1.606650 1.711625
+776 1.164000 1.123310
+777 1.356640 1.364044
+778 1.167000 1.124624
+779 1.489960 1.549303
+780 1.170000 1.130166
+781 1.465480 1.511068
+782 1.173000 1.130580
+783 1.559170 1.631804
+784 1.176000 1.129037
+785 1.478840 1.518585
+786 1.179000 1.130862
+787 1.521130 1.576489
+788 1.182000 1.134623
+789 1.466030 1.502296
+790 1.185000 1.139333
+791 1.544780 1.608055
+792 1.188000 1.141477
+793 1.708980 1.815905
+794 1.191000 1.133154
+795 1.414050 1.415477
+796 1.194000 1.140219
+797 1.859560 2.012723
+798 1.197000 1.134219
+799 1.732570 1.816666
+800 1.200000 1.123030
+801 1.823550 1.932069
+802 1.203000 1.120819
+803 2.049270 2.216462
+804 1.206000 1.107191
+805 1.932150 2.040410
+806 1.209000 1.100836
+807 1.632090 1.650045
+808 1.212000 1.119792
+809 2.042110 2.209076
+810 1.215000 1.120636
+811 2.043570 2.186323
+812 1.218000 1.107174
+813 1.945840 2.047880
+814 1.221000 1.108523
+815 2.231910 2.423374
+816 1.224000 1.100587
+817 2.326360 2.522704
+818 1.227000 1.083664
+819 2.239270 2.390787
+820 1.230000 1.079506
+821 2.097560 2.206050
+822 1.233000 1.090298
+823 2.405490 2.618423
+824 1.236000 1.086814
+825 2.215070 2.349064
+826 1.239000 1.085105
+827 2.358580 2.542325
+828 1.242000 1.086586
+829 2.391770 2.575898
+830 1.245000 1.082066
+831 2.132290 2.231187
+832 1.248000 1.093950
+833 2.308540 2.479540
+834 1.251000 1.102021
+835 2.364910 2.545656
+836 1.254000 1.097765
+837 2.399630 2.582288
+838 1.257000 1.094146
+839 2.489400 2.692111
+840 1.260000 1.088888
+841 2.542320 2.749953
+842 1.263000 1.082684
+843 2.689980 2.932375
+844 1.266000 1.072774
+845 2.393580 2.529941
+846 1.269000 1.079911
+847 2.797580 3.073354
+848 1.272000 1.076075
+849 2.743020 2.975124
+850 1.275000 1.063745
+851 2.832710 3.084139
+852 1.278000 1.058346
+853 2.639680 2.822181
+854 1.281000 1.064400
+855 2.694310 2.905036
+856 1.284000 1.073611
+857 2.800290 3.043064
+858 1.287000 1.072022
+859 2.815870 3.053804
+860 1.290000 1.068546
+861 2.838090 3.076947
+862 1.293000 1.067455
+863 2.690350 2.880316
+864 1.296000 1.075587
+865 2.843460 3.090036
+866 1.299000 1.078980
+867 3.003630 3.289364
+868 1.302000 1.068511
+869 2.890700 3.124373
+870 1.305000 1.065749
+871 2.800930 3.009458
+872 1.308000 1.075498
+873 2.996580 3.272344
+874 1.311000 1.075204
+875 3.143350 3.449544
+876 1.314000 1.062257
+877 2.938640 3.164390
+878 1.317000 1.063588
+879 3.043380 3.310010
+880 1.320000 1.068819
+881 3.122430 3.407732
+882 1.323000 1.065027
+883 2.971640 3.202261
+884 1.326000 1.070007
+885 3.041200 3.301515
+886 1.329000 1.076408
+887 3.226990 3.540672
+888 1.332000 1.069104
+889 3.433050 3.790991
+890 1.335000 1.050701
+891 3.286130 3.574220
+892 1.338000 1.044642
+893 3.056240 3.276912
+894 1.341000 1.061362
+895 3.353210 3.683690
+896 1.344000 1.064247
+897 3.090800 3.325426
+898 1.347000 1.069160
+899 3.159390 3.429482
+900 1.350000 1.079857
+901 3.285740 3.594182
+902 1.353000 1.077323
+903 3.334890 3.646836
+904 1.356000 1.070998
+905 3.265240 3.546877
+906 1.359000 1.072044
+907 3.345030 3.652454
+908 1.362000 1.073208
+909 3.276990 3.557714
+910 1.365000 1.076061
+911 3.261980 3.541108
+912 1.368000 1.082633
+913 3.497600 3.849798
+914 1.371000 1.076158
+915 3.489770 3.819859
+916 1.374000 1.066876
+917 3.383570 3.673620
+918 1.377000 1.070732
+919 3.275210 3.538420
+920 1.380000 1.083863
+921 3.347940 3.644690
+922 1.383000 1.091806
+923 3.508610 3.851989
+924 1.386000 1.086255
+925 3.364420 3.649485
+926 1.389000 1.087046
+927 3.442530 3.756802
+928 1.392000 1.091051
+929 3.202280 3.440107
+930 1.395000 1.103744
+931 3.323540 3.616419
+932 1.398000 1.114145
+933 3.290640 3.570997
+934 1.401000 1.117418
+935 3.214650 3.473437
+936 1.404000 1.125846
+937 3.457780 3.796428
+938 1.407000 1.122097
+939 3.319620 3.598397
+940 1.410000 1.120159
+941 3.310700 3.590485
+942 1.413000 1.127162
+943 3.250990 3.515200
+944 1.416000 1.135404
+945 3.063560 3.277442
+946 1.419000 1.152476
+947 3.190140 3.460577
+948 1.422000 1.162371
+949 3.363840 3.683108
+950 1.425000 1.154895
+951 3.373000 3.678002
+952 1.428000 1.146726
+953 3.100670 3.315579
+954 1.431000 1.158693
+955 3.420760 3.751690
+956 1.434000 1.160106
+957 3.291760 3.564654
+958 1.437000 1.156864
+959 3.222380 3.476793
+960 1.440000 1.165996
+961 3.087550 3.308540
+962 1.443000 1.181190
+963 3.038970 3.259873
+964 1.446000 1.197052
+965 3.148080 3.411886
+966 1.449000 1.201981
+967 3.158020 3.419297
+968 1.452000 1.201330
+969 2.961370 3.160020
+970 1.455000 1.212546
+971 3.032220 3.267467
+972 1.458000 1.223194
+973 3.134430 3.400616
+974 1.461000 1.221751
+975 3.000660 3.217499
+976 1.464000 1.225946
+977 2.967040 3.181174
+978 1.467000 1.236526
+979 2.987480 3.213725
+980 1.470000 1.243166
+981 2.957960 3.175815
+982 1.473000 1.248602
+983 2.985640 3.214241
+984 1.476000 1.252610
+985 2.999150 3.230192
+986 1.479000 1.254546
+987 2.950040 3.164187
+988 1.482000 1.259310
+989 2.872580 3.066584
+990 1.485000 1.269059
+991 2.754780 2.921292
+992 1.488000 1.283953
+993 2.927540 3.159238
+994 1.491000 1.287970
+995 2.833310 3.027152
+996 1.494000 1.289710
+997 2.813060 3.004449
+998 1.497000 1.297088
+999 2.698670 2.858935
+1000 1.500000 1.308648
+1001 2.781040 2.977048
+1002 1.503000 1.315689
+1003 2.771560 2.962048
+1004 1.506000 1.317909
+1005 2.654440 2.809066
+1006 1.509000 1.327068
+1007 2.453390 2.557352
+1008 1.512000 1.347409
+1009 2.565720 2.724808
+1010 1.515000 1.359878
+1011 2.481420 2.614368
+1012 1.518000 1.366900
+1013 2.446240 2.575087
+1014 1.521000 1.376795
+1015 2.604390 2.786300
+1016 1.524000 1.376324
+1017 2.205940 2.256657
+1018 1.527000 1.392004
+1019 2.407190 2.547564
+1020 1.530000 1.405712
+1021 2.325830 2.436875
+1022 1.533000 1.409687
+1023 2.215150 2.297321
+1024 1.536000 1.421993
+1025 2.128720 2.196278
+1026 1.539000 1.437644
+1027 1.994950 2.034495
+1028 1.542000 1.456089
+1029 1.995330 2.051491
+1030 1.545000 1.470783
+1031 2.152350 2.262344
+1032 1.548000 1.470953
+1033 1.744420 1.720840
+1034 1.551000 1.487406
+1035 1.778480 1.795415
+1036 1.554000 1.510153
+1037 1.776020 1.802277
+1038 1.557000 1.520308
+1039 1.825210 1.870178
+1040 1.560000 1.524110
+1041 1.710270 1.717821
+1042 1.563000 1.531551
+1043 1.882320 1.949909
+1044 1.566000 1.532447
+1045 1.712290 1.717334
+1046 1.569000 1.536737
+1047 1.590370 1.568264
+1048 1.572000 1.553160
+1049 1.726680 1.760045
+1050 1.575000 1.559793
+1051 1.317090 1.221670
+1052 1.578000 1.579771
+1053 1.648060 1.684571
+1054 1.581000 1.589171
+1055 1.410750 1.361252
+1056 1.584000 1.594190
+1057 1.215480 1.120967
+1058 1.587000 1.617148
+1059 1.539240 1.564657
+1060 1.590000 1.619904
+1061 1.193210 1.096119
+1062 1.593000 1.627906
+1063 1.037970 0.915770
+1064 1.596000 1.654272
+1065 1.267270 1.236650
+1066 1.599000 1.661605
+1067 1.138720 1.058954
+1068 1.602000 1.664232
+1069 1.006960 0.893732
+1070 1.605000 1.678862
+1071 0.974691 0.865752
+1072 1.608000 1.693569
+1073 0.824278 0.678749
+1074 1.611000 1.710375
+1075 0.798511 0.661617
+1076 1.614000 1.726346
+1077 0.907243 0.811954
+1078 1.617000 1.730460
+1079 0.674571 0.503466
+1080 1.620000 1.741620
+1081 0.603442 0.428270
+1082 1.623000 1.760720
+1083 0.923846 0.858293
+1084 1.626000 1.757284
+1085 0.799316 0.673918
+1086 1.629000 1.751808
+1087 0.726006 0.579277
+1088 1.632000 1.760056
+1089 0.535928 0.338854
+1090 1.635000 1.777805
+1091 0.701959 0.573856
+1092 1.638000 1.786106
+1093 0.491921 0.294337
+1094 1.641000 1.795648
+1095 0.227665 -0.034216
+1096 1.644000 1.822865
+1097 0.251663 0.026296
+1098 1.647000 1.844996
+1099 0.209886 -0.017823
+1100 1.650000 1.857234
+1101 0.147208 -0.091853
+1102 1.653000 1.868994
+1103 0.191233 -0.026307
+1104 1.656000 1.876041
+1105 0.453865 0.314546
+1106 1.659000 1.866130
+1107 0.069398 -0.208714
+1108 1.662000 1.873233
+1109 0.109126 -0.134044
+1110 1.665000 1.890979
+1111 -0.001261 -0.270993
+1112 1.668000 1.904277
+1113 -0.071604 -0.350532
+1114 1.671000 1.919497
+1115 -0.208795 -0.517925
+1116 1.674000 1.937316
+1117 -0.029877 -0.269041
+1118 1.677000 1.942960
+1119 -0.061970 -0.319648
+1120 1.680000 1.942020
+1121 -0.219701 -0.526211
+1122 1.683000 1.952784
+1123 -0.368534 -0.706777
+1124 1.686000 1.972737
+1125 -0.332191 -0.641221
+1126 1.689000 1.986839
+1127 -0.242504 -0.520259
+1128 1.692000 1.988749
+1129 -0.554861 -0.932705
+1130 1.695000 2.003723
+1131 -0.593631 -0.959006
+1132 1.698000 2.025833
+1133 -0.356176 -0.636665
+1134 1.701000 2.026530
+1135 -0.568524 -0.928004
+1136 1.704000 2.030319
+1137 -0.587508 -0.941257
+1138 1.707000 2.043015
+1139 -0.485258 -0.801795
+1140 1.710000 2.045871
+1141 -0.725507 -1.120578
+1142 1.713000 2.057148
+1143 -0.463850 -0.762659
+1144 1.716000 2.059949
+1145 -0.773024 -1.179821
+1146 1.719000 2.068530
+1147 -0.685933 -1.046788
+1148 1.722000 2.081602
+1149 -0.695378 -1.058118
+1150 1.725000 2.086116
+1151 -0.718360 -1.087262
+1152 1.728000 2.091497
+1153 -0.541019 -0.854666
+1154 1.731000 2.087752
+1155 -0.898110 -1.333690
+1156 1.734000 2.099292
+1157 -0.908631 -1.323008
+1158 1.737000 2.120309
+1159 -0.820981 -1.197659
+1160 1.740000 2.126968
+1161 -0.998533 -1.431709
+1162 1.743000 2.137217
+1163 -1.024970 -1.452421
+1164 1.746000 2.151588
+1165 -1.043400 -1.468372
+1166 1.749000 2.161440
+1167 -0.996409 -1.402628
+1168 1.752000 2.165855
+1169 -0.968485 -1.368747
+1170 1.755000 2.166489
+1171 -0.854705 -1.224625
+1172 1.758000 2.162020
+1173 -1.018700 -1.449591
+1174 1.761000 2.166058
+1175 -1.164970 -1.630797
+1176 1.764000 2.183371
+1177 -1.152010 -1.597461
+1178 1.767000 2.197472
+1179 -1.161890 -1.604648
+1180 1.770000 2.205261
+1181 -1.239780 -1.703045
+1182 1.773000 2.214747
+1183 -1.043730 -1.440484
+1184 1.776000 2.213852
+1185 -1.380390 -1.892151
+1186 1.779000 2.224815
+1187 -1.238940 -1.685406
+1188 1.782000 2.237206
+1189 -1.228200 -1.673920
+1190 1.785000 2.238340
+1191 -1.282050 -1.746470
+1192 1.788000 2.243105
+1193 -1.242450 -1.691632
+1194 1.791000 2.247185
+1195 -1.280460 -1.743263
+1196 1.794000 2.251270
+1197 -1.274950 -1.734055
+1198 1.797000 2.256162
+1199 -1.375940 -1.865166
+1200 1.800000 2.265039
+1201 -1.062130 -1.448635
+1202 1.803000 2.258899
+1203 -1.443470 -1.968216
+1204 1.806000 2.265424
+1205 -1.201720 -1.631471
+1206 1.809000 2.272705
+1207 -1.525130 -2.063157
+1208 1.812000 2.284607
+1209 -1.469380 -1.967963
+1210 1.815000 2.301146
+1211 -1.584260 -2.112417
+1212 1.818000 2.313552
+1213 -1.335800 -1.777837
+1214 1.821000 2.312640
+1215 -1.600620 -2.139004
+1216 1.824000 2.317987
+1217 -1.433420 -1.906335
+1218 1.827000 2.324029
+1219 -1.054210 -1.421319
+1220 1.830000 2.303157
+1221 -1.330970 -1.817998
+1222 1.833000 2.295906
+1223 -1.574760 -2.127014
+1224 1.836000 2.317824
+1225 -1.405440 -1.882075
+1226 1.839000 2.329757
+1227 -1.246470 -1.679738
+1228 1.842000 2.322204
+1229 -1.303950 -1.770722
+1230 1.845000 2.317898
+1231 -1.417720 -1.920878
+1232 1.848000 2.326080
+1233 -1.341920 -1.813484
+1234 1.851000 2.332061
+1235 -1.521890 -2.050435
+1236 1.854000 2.342627
+1237 -1.422830 -1.907662
+1238 1.857000 2.350948
+1239 -1.470520 -1.972426
+1240 1.860000 2.354963
+1241 -1.373100 -1.843259
+1242 1.863000 2.355596
+1243 -1.238810 -1.676285
+1244 1.866000 2.347434
+1245 -1.386180 -1.883139
+1246 1.869000 2.348338
+1247 -1.314870 -1.784409
+1248 1.872000 2.352856
+1249 -1.380110 -1.872888
+1250 1.875000 2.357270
+1251 -1.460420 -1.973542
+1252 1.878000 2.367633
+1253 -1.358120 -1.832151
+1254 1.881000 2.371884
+1255 -1.335300 -1.808045
+1256 1.884000 2.370581
+1257 -1.275770 -1.735412
+1258 1.887000 2.368227
+1259 -1.409200 -1.916304
+1260 1.890000 2.373690
+1261 -1.466210 -1.982238
+1262 1.893000 2.385947
+1263 -1.389350 -1.873982
+1264 1.896000 2.391351
+1265 -1.473190 -1.986402
+1266 1.899000 2.396827
+1267 -1.414480 -1.904629
+1268 1.902000 2.401387
+1269 -1.194690 -1.621861
+1270 1.905000 2.392044
+1271 -1.510960 -2.053743
+1272 1.908000 2.397620
+1273 -1.599170 -2.150117
+1274 1.911000 2.418516
+1275 -1.325970 -1.779355
+1276 1.914000 2.418842
+1277 -1.421580 -1.921130
+1278 1.917000 2.415272
+1279 -1.378760 -1.865172
+1280 1.920000 2.417378
+1281 -1.502640 -2.029860
+1282 1.923000 2.424837
+1283 -1.344220 -1.814986
+1284 1.926000 2.426768
+1285 -1.238190 -1.687270
+1286 1.929000 2.418203
+1287 -1.058800 -1.468047
+1288 1.932000 2.403687
+1289 -1.048290 -1.476194
+1290 1.935000 2.392375
+1291 -1.078640 -1.526122
+1292 1.938000 2.390914
+1293 -1.070670 -1.517666
+1294 1.941000 2.393140
+1295 -1.126460 -1.591853
+1296 1.944000 2.398579
+1297 -1.294770 -1.806762
+1298 1.947000 2.413403
+1299 -1.320810 -1.824520
+1300 1.950000 2.429277
+1301 -1.188810 -1.643978
+1302 1.953000 2.432201
+1303 -1.387740 -1.910642
+1304 1.956000 2.440293
+1305 -1.272600 -1.747509
+1306 1.959000 2.447528
+1307 -0.966293 -1.353651
+1308 1.962000 2.432785
+1309 -1.262550 -1.767740
+1310 1.965000 2.431819
+1311 -1.169770 -1.634118
+1312 1.968000 2.440224
+1313 -1.186390 -1.658066
+1314 1.971000 2.442979
+1315 -1.101280 -1.547416
+1316 1.974000 2.442519
+1317 -1.105950 -1.561115
+1318 1.977000 2.441330
+1319 -0.937585 -1.345405
+1320 1.980000 2.434645
+1321 -1.219570 -1.728173
+1322 1.983000 2.441580
+1323 -1.019530 -1.450836
+1324 1.986000 2.447300
+1325 -1.110730 -1.579365
+1326 1.989000 2.448553
+1327 -0.649630 -0.976797
+1328 1.992000 2.431545
+1329 -1.160540 -1.679869
+1330 1.995000 2.434448
+1331 -0.942084 -1.368601
+1332 1.998000 2.446402
+1333 -0.973094 -1.415876
+1334 2.001000 2.446500
+1335 -1.064190 -1.535222
+1336 2.004000 2.454307
+1337 -0.681706 -1.030634
+1338 2.007000 2.443922
+1339 -0.914337 -1.363387
+1340 2.010000 2.438635
+1341 -0.786273 -1.190175
+1342 2.013000 2.441054
+1343 -0.863778 -1.299046
+1344 2.016000 2.443052
+1345 -0.819382 -1.238458
+1346 2.019000 2.446664
+1347 -0.785366 -1.197013
+1348 2.022000 2.446776
+1349 -0.950875 -1.416634
+1350 2.025000 2.455825
+1351 -0.840975 -1.261524
+1352 2.028000 2.462436
+1353 -0.826380 -1.247008
+1354 2.031000 2.462222
+1355 -0.938683 -1.396612
+1356 2.034000 2.469218
+1357 -0.841017 -1.261645
+1358 2.037000 2.473556
+1359 -0.688280 -1.068329
+1360 2.040000 2.465976
+1361 -0.531832 -0.880865
+1362 2.043000 2.451214
+1363 -0.850693 -1.316096
+1364 2.046000 2.457149
+1365 -0.989997 -1.478508
+1366 2.049000 2.480856
+1367 -0.643052 -1.007268
+1368 2.052000 2.480608
+1369 -0.901502 -1.365156
+1370 2.055000 2.482108
+1371 -0.737319 -1.139233
+1372 2.058000 2.486479
+1373 -0.733567 -1.143212
+1374 2.061000 2.483817
+1375 -0.849577 -1.298610
+1376 2.064000 2.490414
+1377 -0.624754 -0.998386
+1378 2.067000 2.488377
+1379 -0.442320 -0.777537
+1380 2.070000 2.471816
+1381 -0.613380 -1.023221
+1382 2.073000 2.468617
+1383 -0.581392 -0.976929
+1384 2.076000 2.474341
+1385 -0.835009 -1.307355
+1386 2.079000 2.490186
+1387 -0.499577 -0.849866
+1388 2.082000 2.491680
+1389 -0.498765 -0.868943
+1390 2.085000 2.481387
+1391 -0.375817 -0.718434
+1392 2.088000 2.473025
+1393 -0.754972 -1.226088
+1394 2.091000 2.485890
+1395 -0.373504 -0.703748
+1396 2.094000 2.488704
+1397 -0.511103 -0.904431
+1398 2.097000 2.484109
+1399 -0.509060 -0.899845
+1400 2.100000 2.489442
+1401 -0.458890 -0.833954
+1402 2.103000 2.491089
+1403 -0.585675 -1.003137
+1404 2.106000 2.498208
+1405 -0.514551 -0.901805
+1406 2.109000 2.504477
+1407 -0.426321 -0.789651
+1408 2.112000 2.501933
+1409 -0.453732 -0.834432
+1410 2.115000 2.500903
+1411 -0.161292 -0.456070
+1412 2.118000 2.488955
+1413 -0.462098 -0.873496
+1414 2.121000 2.489909
+1415 -0.498075 -0.905782
+1416 2.124000 2.505708
+1417 -0.408116 -0.779364
+1418 2.127000 2.511109
+1419 -0.440353 -0.825428
+1420 2.130000 2.513495
+1421 -0.365521 -0.727514
+1422 2.133000 2.514000
+1423 -0.162272 -0.469733
+1424 2.136000 2.503208
+1425 -0.431340 -0.840267
+1426 2.139000 2.506471
+1427 0.082119 -0.158545
+1428 2.142000 2.494526
+1429 -0.560038 -1.031859
+1430 2.145000 2.504053
+1431 -0.189285 -0.511159
+1432 2.148000 2.516140
+1433 -0.197548 -0.537148
+1434 2.151000 2.509297
+1435 -0.298701 -0.675277
+1436 2.154000 2.513887
+1437 -0.457433 -0.875771
+1438 2.157000 2.529641
+1439 -0.220326 -0.551365
+1440 2.160000 2.532372
+1441 -0.137190 -0.457232
+1442 2.163000 2.522245
+1443 -0.295252 -0.676447
+1444 2.166000 2.524839
+1445 -0.354854 -0.746225
+1446 2.169000 2.537009
+1447 -0.189512 -0.522850
+1448 2.172000 2.538056
+1449 -0.171622 -0.510675
+1450 2.175000 2.533262
+1451 -0.336602 -0.731872
+1452 2.178000 2.540897
+1453 -0.082218 -0.389861
+1454 2.181000 2.539691
+1455 -0.149553 -0.494801
+1456 2.184000 2.534823
+1457 -0.306750 -0.701247
+1458 2.187000 2.545314
+1459 -0.384907 -0.790129
+1460 2.190000 2.561607
+1461 -0.290743 -0.655635
+1462 2.193000 2.568604
+1463 -0.074085 -0.377342
+1464 2.196000 2.559038
+1465 -0.260072 -0.639833
+1466 2.199000 2.558124
+1467 -0.191210 -0.543333
+1468 2.202000 2.563504
+1469 -0.177369 -0.528314
+1470 2.205000 2.564414
+1471 -0.145464 -0.489680
+1472 2.208000 2.564693
+1473 -0.107442 -0.444482
+1474 2.211000 2.563719
+1475 -0.173014 -0.535096
+1476 2.214000 2.567178
+1477 0.056886 -0.233060
+1478 2.217000 2.561660
+1479 -0.135025 -0.501368
+1480 2.220000 2.562200
+1481 -0.221684 -0.605794
+1482 2.223000 2.576173
+1483 0.016034 -0.285683
+1484 2.226000 2.575382
+1485 -0.126260 -0.486903
+1486 2.229000 2.575062
+1487 0.131014 -0.147502
+1488 2.232000 2.569572
+1489 -0.163158 -0.550224
+1490 2.235000 2.574192
+1491 -0.347571 -0.773499
+1492 2.238000 2.598651
+1493 -0.019916 -0.324375
+1494 2.241000 2.601411
+1495 -0.278548 -0.679510
+1496 2.244000 2.604893
+1497 -0.159840 -0.511427
+1498 2.247000 2.612352
+1499 0.030992 -0.267727
+1500 2.250000 2.603345
+1501 0.023263 -0.296707
+1502 2.253000 2.594738
+1503 -0.140918 -0.517888
+1504 2.256000 2.601770
+1505 -0.049246 -0.387825
+1506 2.259000 2.608428
+1507 -0.064430 -0.410986
+1508 2.262000 2.610425
+1509 0.020477 -0.301163
+1510 2.265000 2.609611
+1511 0.089543 -0.219220
+1512 2.268000 2.604600
+1513 -0.083696 -0.454096
+1514 2.271000 2.610597
+1515 -0.072425 -0.428731
+1516 2.274000 2.621193
+1517 -0.066550 -0.417571
+1518 2.277000 2.626841
+1519 -0.117668 -0.483397
+1520 2.280000 2.633510
+1521 0.039064 -0.275224
+1522 2.283000 2.632401
+1523 -0.134726 -0.513134
+1524 2.286000 2.636647
+1525 0.048582 -0.265225
+1526 2.289000 2.637938
+1527 -0.152544 -0.538582
+1528 2.292000 2.643518
+1529 -0.050103 -0.393448
+1530 2.295000 2.650444
+1531 0.131115 -0.161701
+1532 2.298000 2.642321
+1533 0.225235 -0.057182
+1534 2.301000 2.629354
+1535 -0.101761 -0.498414
+1536 2.304000 2.638826
+1537 -0.122690 -0.504222
+1538 2.307000 2.658374
+1539 -0.157801 -0.538830
+1540 2.310000 2.670972
+1541 0.001887 -0.323913
+1542 2.313000 2.671510
+1543 0.172091 -0.113748
+1544 2.316000 2.659109
+1545 0.131106 -0.186996
+1546 2.319000 2.651576
+1547 0.035293 -0.316776
+1548 2.322000 2.656913
+1549 -0.061089 -0.436026
+1550 2.325000 2.669651
+1551 -0.038586 -0.395965
+1552 2.328000 2.679481
+1553 -0.045117 -0.402057
+1554 2.331000 2.684993
+1555 -0.110247 -0.485503
+1556 2.334000 2.692785
+1557 -0.145117 -0.524923
+1558 2.337000 2.702255
+1559 -0.058465 -0.406949
+1560 2.340000 2.705172
+1561 -0.206557 -0.605026
+1562 2.343000 2.712470
+1563 0.190193 -0.079099
+1564 2.346000 2.703346
+1565 -0.044251 -0.414180
+1566 2.349000 2.698121
+1567 -0.140847 -0.532889
+1568 2.352000 2.711866
+1569 -0.022462 -0.367499
+1570 2.355000 2.717340
+1571 0.191639 -0.094832
+1572 2.358000 2.706351
+1573 0.235593 -0.059170
+1574 2.361000 2.693457
+1575 0.170207 -0.157504
+1576 2.364000 2.691811
+1577 0.051317 -0.312160
+1578 2.367000 2.701651
+1579 0.100135 -0.238502
+1580 2.370000 2.709852
+1581 -0.017627 -0.391678
+1582 2.373000 2.719253
+1583 -0.127126 -0.524199
+1584 2.376000 2.735131
+1585 -0.160879 -0.554543
+1586 2.379000 2.749558
+1587 0.002338 -0.333928
+1588 2.382000 2.750624
+1589 -0.074639 -0.444957
+1590 2.385000 2.750658
+1591 -0.036748 -0.394112
+1592 2.388000 2.753772
+1593 -0.166943 -0.566101
+1594 2.391000 2.762144
+1595 0.078235 -0.237510
+1596 2.394000 2.760352
+1597 0.133335 -0.183158
+1598 2.397000 2.749474
+1599 -0.028509 -0.406224
+1600 2.400000 2.753033
+1601 -0.113559 -0.508255
+1602 2.403000 2.767017
+1603 -0.042863 -0.405359
+1604 2.406000 2.774516
+1605 -0.082152 -0.458182
+1606 2.409000 2.778858
+1607 -0.062541 -0.430416
+1608 2.412000 2.783194
+1609 0.080983 -0.244790
+1610 2.415000 2.779076
+1611 0.287058 0.009920
+1612 2.418000 2.763605
+1613 -0.206525 -0.655636
+1614 2.421000 2.776075
+1615 -0.067606 -0.442570
+1616 2.424000 2.795260
+1617 -0.065369 -0.437635
+1618 2.427000 2.799699
+1619 -0.016170 -0.373646
+1620 2.430000 2.800983
+1621 0.123157 -0.197062
+1622 2.433000 2.794687
+1623 -0.131604 -0.542602
+1624 2.436000 2.801531
+1625 0.161122 -0.146326
+1626 2.439000 2.801533
+1627 -0.036918 -0.422507
+1628 2.442000 2.802225
+1629 0.052278 -0.297900
+1630 2.445000 2.807694
+1631 0.122422 -0.210750
+1632 2.448000 2.805042
+1633 -0.122517 -0.537393
+1634 2.451000 2.815540
+1635 0.040104 -0.308451
+1636 2.454000 2.823163
+1637 0.038548 -0.317175
+1638 2.457000 2.822144
+1639 0.188343 -0.125686
+1640 2.460000 2.816325
+1641 0.144873 -0.196810
+1642 2.463000 2.812402
+1643 -0.009196 -0.399882
+1644 2.466000 2.822215
+1645 0.303483 0.018714
+1646 2.469000 2.818567
+1647 -0.036408 -0.445322
+1648 2.472000 2.824083
+1649 -0.106391 -0.516757
+1650 2.475000 2.844942
+1651 0.092229 -0.243972
+1652 2.478000 2.848281
+1653 0.117182 -0.222987
+1654 2.481000 2.842783
+1655 -0.076260 -0.482030
+1656 2.484000 2.851277
+1657 -0.127614 -0.535363
+1658 2.487000 2.866804
+1659 -0.040172 -0.411566
+1660 2.490000 2.872796
+1661 -0.066286 -0.449152
+1662 2.493000 2.875217
+1663 0.136703 -0.184948
+1664 2.496000 2.869092
+1665 -0.135857 -0.557011
+1666 2.499000 2.874451
+1667 -0.204374 -0.630330
+1668 2.502000 2.892590
+1669 -0.017515 -0.374663
+1670 2.505000 2.895347
+1671 0.158191 -0.157423
+1672 2.508000 2.882527
+1673 -0.098310 -0.511418
+1674 2.511000 2.885384
+1675 -0.295901 -0.755006
+1676 2.514000 2.908346
+1677 0.131067 -0.177011
+1678 2.517000 2.906034
+1679 0.127792 -0.208886
+1680 2.520000 2.890858
+1681 0.001391 -0.385436
+1682 2.523000 2.893125
+1683 -0.067933 -0.469788
+1684 2.526000 2.904439
+1685 0.006064 -0.365178
+1686 2.529000 2.910077
+1687 -0.155830 -0.578758
+1688 2.532000 2.919663
+1689 0.019378 -0.338614
+1690 2.535000 2.923081
+1691 0.267541 -0.026096
+1692 2.538000 2.907370
+1693 -0.027711 -0.436301
+1694 2.541000 2.908197
+1695 -0.105207 -0.522939
+1696 2.544000 2.925813
+1697 0.034272 -0.328699
+1698 2.547000 2.931077
+1699 0.180879 -0.145076
+1700 2.550000 2.922560
+1701 -0.155781 -0.598920
+1702 2.553000 2.932303
+1703 -0.057748 -0.449383
+1704 2.556000 2.946378
+1705 0.141176 -0.189792
+1706 2.559000 2.940462
+1707 -0.061614 -0.470823
+1708 2.562000 2.942555
+1709 0.020468 -0.354291
+1710 2.565000 2.949145
+1711 -0.006887 -0.392780
+1712 2.568000 2.952100
+1713 -0.085517 -0.494271
+1714 2.571000 2.960323
+1715 0.029648 -0.337620
+1716 2.574000 2.962990
+1717 -0.019697 -0.409048
+1718 2.577000 2.964156
+1719 -0.037090 -0.430866
+1720 2.580000 2.969434
+1721 -0.102993 -0.514852
+1722 2.583000 2.977599
+1723 0.095961 -0.250017
+1724 2.586000 2.975561
+1725 -0.186433 -0.632029
+1726 2.589000 2.983233
+1727 0.076994 -0.271803
+1728 2.592000 2.986094
+1729 0.063114 -0.305133
+1730 2.595000 2.979873
+1731 0.158397 -0.187167
+1732 2.598000 2.975127
+1733 -0.175076 -0.631603
+1734 2.601000 2.988246
+1735 -0.053695 -0.449727
+1736 2.604000 3.002408
+1737 -0.055747 -0.452636
+1738 2.607000 3.005676
+1739 -0.177556 -0.611465
+1740 2.610000 3.015201
+1741 -0.079543 -0.473907
+1742 2.613000 3.020919
+1743 -0.070204 -0.466145
+1744 2.616000 3.021057
+1745 0.306657 0.020680
+1746 2.619000 3.003943
+1747 -0.079551 -0.515724
+1748 2.622000 3.003805
+1749 0.038445 -0.343849
+1750 2.625000 3.014746
+1751 -0.034614 -0.440921
+1752 2.628000 3.020394
+1753 -0.040498 -0.443615
+1754 2.631000 3.027832
+1755 -0.275884 -0.747182
+1756 2.634000 3.044908
+1757 -0.130060 -0.536395
+1758 2.637000 3.055685
+1759 -0.277766 -0.732181
+1760 2.640000 3.063901
+1761 -0.023086 -0.390393
+1762 2.643000 3.062231
+1763 0.055199 -0.306344
+1764 2.646000 3.049879
+1765 0.161113 -0.183544
+1766 2.649000 3.038555
+1767 0.174558 -0.181784
+1768 2.652000 3.031233
+1769 -0.110184 -0.560024
+1770 2.655000 3.044010
+1771 0.215832 -0.115010
+1772 2.658000 3.045934
+1773 0.176845 -0.185027
+1774 2.661000 3.038172
+1775 -0.187674 -0.664415
+1776 2.664000 3.056750
+1777 -0.226286 -0.685310
+1778 2.667000 3.082347
+1779 0.034903 -0.329890
+1780 2.670000 3.083276
+1781 -0.065803 -0.477256
+1782 2.673000 3.080661
+1783 0.081892 -0.284067
+1784 2.676000 3.078110
+1785 0.177501 -0.172169
+1786 2.679000 3.068656
+1787 0.155820 -0.214328
+1788 2.682000 3.064237
+1789 -0.117879 -0.574423
+1790 2.685000 3.078998
+1791 -0.179014 -0.632043
+1792 2.688000 3.100664
+1793 -0.094444 -0.507511
+1794 2.691000 3.109682
+1795 -0.048823 -0.449752
+1796 2.694000 3.109856
+1797 -0.104574 -0.527297
+1798 2.697000 3.112989
+1799 -0.125872 -0.552569
+1800 2.700000 3.119519
+1801 0.068807 -0.296785
+1802 2.703000 3.115315
+1803 -0.142182 -0.587125
+1804 2.706000 3.118695
+1805 0.086415 -0.278849
+1806 2.709000 3.118800
+1807 -0.110299 -0.549715
+1808 2.712000 3.121934
+1809 -0.026478 -0.430599
+1810 2.715000 3.128622
+1811 -0.029980 -0.438114
+1812 2.718000 3.130356
+1813 -0.063399 -0.482924
+1814 2.721000 3.134901
+1815 -0.206827 -0.667287
+1816 2.724000 3.147257
+1817 0.022958 -0.355424
+1818 2.727000 3.148374
+1819 0.040693 -0.346940
+1820 2.730000 3.141141
+1821 0.181362 -0.172353
+1822 2.733000 3.132500
+1823 0.282990 -0.056149
+1824 2.736000 3.120525
+1825 0.037698 -0.390939
+1826 2.739000 3.126032
+1827 0.107057 -0.286406
+1828 2.742000 3.136300
+1829 -0.065282 -0.510320
+1830 2.745000 3.148494
+1831 0.073885 -0.314790
+1832 2.748000 3.155177
+1833 0.151905 -0.219388
+1834 2.751000 3.150693
+1835 -0.050807 -0.492748
+1836 2.754000 3.158023
+1837 -0.149579 -0.607967
+1838 2.757000 3.175798
+1839 0.051462 -0.332442
+1840 2.760000 3.178855
+1841 -0.119979 -0.567076
+1842 2.763000 3.182972
+1843 0.354791 0.059512
+1844 2.766000 3.169540
+1845 0.065998 -0.353265
+1846 2.769000 3.162275
+1847 0.072757 -0.335933
+1848 2.772000 3.172109
+1849 -0.035933 -0.473919
+1850 2.775000 3.183368
+1851 -0.100485 -0.547316
+1852 2.778000 3.197410
+1853 0.009354 -0.394640
+1854 2.781000 3.202175
+1855 -0.118358 -0.566317
+1856 2.784000 3.208315
+1857 -0.163047 -0.616128
+1858 2.787000 3.220003
+1859 -0.149831 -0.591653
+1860 2.790000 3.227880
+1861 0.010367 -0.381741
+1862 2.793000 3.224614
+1863 -0.057532 -0.483572
+1864 2.796000 3.222546
+1865 -0.076975 -0.509103
+1866 2.799000 3.227322
+1867 -0.008075 -0.418048
+1868 2.802000 3.228626
+1869 -0.036782 -0.460976
+1870 2.805000 3.229982
+1871 0.080223 -0.309083
+1872 2.808000 3.227828
+1873 -0.026768 -0.458636
+1874 2.811000 3.229839
+1875 -0.069181 -0.509262
+1876 2.814000 3.238936
+1877 0.010317 -0.400401
+1878 2.817000 3.242357
+1879 0.164861 -0.204335
+1880 2.820000 3.235004
+1881 0.055283 -0.362655
+1882 2.823000 3.233569
+1883 0.038111 -0.382531
+1884 2.826000 3.240099
+1885 -0.000036 -0.429637
+1886 2.829000 3.247385
+1887 -0.070032 -0.516527
+1888 2.832000 3.257367
+1889 -0.132046 -0.589562
+1890 2.835000 3.269276
+1891 -0.029123 -0.447385
+1892 2.838000 3.273418
+1893 0.289066 -0.039406
+1894 2.841000 3.257276
+1895 0.063810 -0.362738
+1896 2.844000 3.251735
+1897 0.063047 -0.357554
+1898 2.847000 3.260217
+1899 -0.076497 -0.536112
+1900 2.850000 3.272750
+1901 -0.004737 -0.429789
+1902 2.853000 3.281685
+1903 0.081690 -0.318311
+1904 2.856000 3.280292
+1905 -0.172259 -0.656760
+1906 2.859000 3.291125
+1907 -0.006339 -0.422822
+1908 2.862000 3.299065
+1909 -0.160659 -0.630119
+1910 2.865000 3.305687
+1911 -0.265870 -0.756845
+1912 2.868000 3.321616
+1913 0.127720 -0.231839
+1914 2.871000 3.314537
+1915 0.181865 -0.190286
+1916 2.874000 3.295828
+1917 0.118771 -0.289947
+1918 2.877000 3.291284
+1919 -0.196153 -0.701422
+1920 2.880000 3.309660
+1921 -0.062449 -0.501165
+1922 2.883000 3.324649
+1923 0.013275 -0.403122
+1924 2.886000 3.323885
+1925 -0.248688 -0.751010
+1926 2.889000 3.335778
+1927 0.004227 -0.402860
+1928 2.892000 3.340109
+1929 -0.190245 -0.669448
+1930 2.895000 3.343917
+1931 0.176049 -0.182816
+1932 2.898000 3.336665
+1933 -0.048510 -0.502165
+1934 2.901000 3.332888
+1935 0.213203 -0.154688
+1936 2.904000 3.328928
+1937 0.126068 -0.287515
+1938 2.907000 3.323657
+1939 -0.002373 -0.455744
+1940 2.910000 3.333311
+1941 0.095528 -0.317867
+1942 2.913000 3.339354
+1943 0.040315 -0.393807
+1944 2.916000 3.342858
+1945 -0.047917 -0.505899
+1946 2.919000 3.352856
+1947 -0.090772 -0.553008
+1948 2.922000 3.364521
+1949 -0.172544 -0.652142
+1950 2.925000 3.377062
+1951 -0.069031 -0.507711
+1952 2.928000 3.382189
+1953 -0.054502 -0.493891
+1954 2.931000 3.381610
+1955 -0.120362 -0.583348
+1956 2.934000 3.386140
+1957 -0.014741 -0.442171
+1958 2.937000 3.387286
+1959 0.092399 -0.310615
+1960 2.940000 3.380375
+1961 -0.044939 -0.502133
+1962 2.943000 3.382333
+1963 0.149608 -0.243071
+1964 2.946000 3.380733
+1965 0.099914 -0.322036
+1966 2.949000 3.377128
+1967 -0.184152 -0.693566
+1968 2.952000 3.393804
+1969 0.187265 -0.187070
+1970 2.955000 3.395024
+1971 0.091549 -0.333786
+1972 2.958000 3.388061
+1973 -0.168860 -0.674203
+1974 2.961000 3.403941
+1975 0.218657 -0.148579
+1976 2.964000 3.403126
+1977 0.046446 -0.396929
+1978 2.967000 3.398537
+1979 0.174159 -0.227060
+1980 2.970000 3.398924
+1981 0.222085 -0.174161
+1982 2.973000 3.393829
+1983 -0.247191 -0.792781
+1984 2.976000 3.415403
+1985 0.034685 -0.389376
+1986 2.979000 3.430223
+1987 -0.034979 -0.488581
+1988 2.982000 3.430964
+1989 -0.001638 -0.443631
+1990 2.985000 3.434292
+1991 0.097115 -0.317601
+1992 2.988000 3.431477
+1993 0.087504 -0.339987
+1994 2.991000 3.429046
+1995 -0.008337 -0.468267
+1996 2.994000 3.435255
+1997 0.152999 -0.251932
+1998 2.997000 3.435458
+1999 2.997000 3.433878
diff --git a/07_Astree/src/sensor.c b/07_Astree/src/sensor.c
index f1a3b4d06b4e864f9c36e02dccb426feedbc8e0a..9d1bbed558d7ad7f4631fa1b0459b0656dcb7815 100644
--- a/07_Astree/src/sensor.c
+++ b/07_Astree/src/sensor.c
@@ -1,12 +1,71 @@
 #include "sensor.h"
+#include <stdio.h>
+#include <astree.h>
+
+
+#define MAXVALUES 2000
+
+
+static float sensorArr[MAXVALUES];
+static int counter = 0;
+
+float buffer = 0;
+bool x = false;
+
+
+
 bool sensor_init(Sensor *sensor, const char *filename){
-  /**
-   * Implment!
-   **/
-  return false;
+# ifdef __ASTREE__
+    __ASTREE_modify ((x));
+    x = false;
+# else
+  FILE *test = NULL;
+  int i = 0;
+
+  test = fopen(filename, "r");
+
+  if(test != NULL)
+  {
+      sensor->file = test;
+
+      while(fscanf(test, "%f;%f", &sensorArr[i], &sensorArr[i + 1]) == 2)
+      {
+          i += 2;
+      }
+
+      fclose(test);
+      x = true;
+      return x;
+  }
+  x = false;
+  return x;
+#endif
 }
 
+
+
+
 /**
  * Implement sensor stub
  **/
 
+float getSensorValue(void)
+{
+    # ifdef __ASTREE__
+     __ASTREE_modify ((buffer; [-10.0f,10.0f]));
+     buffer = 0;
+    // __ASTREE_known_fact (( buffer > -10.0f && buffer < 10.0f));
+# else
+    buffer = sensorArr[counter];
+
+    counter++;
+    if(counter > MAXVALUES)
+    {
+        counter = 0;
+    }
+
+    return buffer;
+    # endif
+}
+
+
diff --git a/07_Astree/src/sensor.dat b/07_Astree/src/sensor.dat
index 322c09238b5e47260ed36ed6471371deb462fa62..82f0bc07f4345eec9e145c80b870922d19edbbba 100644
--- a/07_Astree/src/sensor.dat
+++ b/07_Astree/src/sensor.dat
@@ -1,4 +1,3 @@
-timestamp;IXZ500 LR packet
 0.000000e+00;-6.468720e-02
 3.000000e-03;-4.776680e-02
 6.000000e-03;8.301960e-02